@imtbl/sdk 0.31.1 → 0.31.3

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.
@@ -15,7 +15,7 @@
15
15
  * @copyright Chen, Yi-Cyuan 2015-2018
16
16
  * @license MIT
17
17
  */!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&&process.versions&&process.versions.node?r=xh:i&&(r=self);var o=!r.JS_SHA3_NO_COMMON_JS&&e.exports,a=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],l=[0,8,16,24],c=[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)}),!a||!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 O(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new O(e,t,i).update(r)[n]()}},A=function(e,t,n){return function(t,r,i,o){return x["cshake"+e].update(t,r,i,o)[n]()}},g=function(e,t,n){return function(t,r,i,o){return x["kmac"+e].update(t,r,i,o)[n]()}},b=function(e,t,n,r){for(var i=0;i<p.length;++i){var o=p[i];e[o]=t(n,r,o)}return e},v=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new O(e,t,e)},n.update=function(e){return n.create().update(e)},b(n,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:v},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:v},{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 O(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},b(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=A(e,0,"hex");return r.create=function(r,i,o){return i||o?new O(e,t,r).bytepad([i,o],n):x["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},b(r,A,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,o){return new N(e,t,i).bytepad(["KMAC",o],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},b(r,g,e,t)}}],x={},E=[],T=0;T<w.length;++T)for(var C=w[T],k=C.bits,S=0;S<k.length;++S){var I=C.name+"_"+k[S];if(E.push(I),x[I]=C.createMethod(k[S],C.padding),"sha3"!==C.name){var P=C.name+k[S];E.push(P),x[P]=x[I]}}function O(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){O.call(this,e,t,n)}O.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(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,o,s=this.blocks,u=this.byteCount,c=e.length,d=this.blockCount,f=0,p=this.s;f<c;){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<c&&i<u;++f)s[i>>2]|=e[f]<<l[3&i++];else for(i=this.start;f<c&&i<u;++f)(o=e.charCodeAt(f))<128?s[i>>2]|=o<<l[3&i++]:o<2048?(s[i>>2]|=(192|o>>6)<<l[3&i++],s[i>>2]|=(128|63&o)<<l[3&i++]):o<55296||o>=57344?(s[i>>2]|=(224|o>>12)<<l[3&i++],s[i>>2]|=(128|o>>6&63)<<l[3&i++],s[i>>2]|=(128|63&o)<<l[3&i++]):(o=65536+((1023&o)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|o>>18)<<l[3&i++],s[i>>2]|=(128|o>>12&63)<<l[3&i++],s[i>>2]|=(128|o>>6&63)<<l[3&i++],s[i>>2]|=(128|63&o)<<l[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];R(p),this.reset=!0}else this.start=i}return this},O.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},O.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(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,o=e.length;if(n)i=o;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},O.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,o=[];return o.length=i,this.update(o),this},O.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];R(r)}},O.prototype.toString=O.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,o=0,a=0,u="";a<r;){for(o=0;o<t&&a<r;++o,++a)e=n[o],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];a%t==0&&(R(n),o=0)}return i&&(e=n[o],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},O.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);a<r;){for(o=0;o<t&&a<r;++o,++a)u[a]=n[o];a%t==0&&R(n)}return i&&(u[o]=n[o],e=e.slice(0,s)),e},O.prototype.buffer=O.prototype.arrayBuffer,O.prototype.digest=O.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,o=this.extraBytes,a=0,s=0,u=[];s<i;){for(a=0;a<n&&s<i;++a,++s)e=s<<2,t=r[a],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&&R(r)}return o&&(e=s<<2,t=r[a],u[e]=255&t,o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},N.prototype=new O,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),O.prototype.finalize.call(this)};var R=function(e){var t,n,r,i,o,a,s,u,l,d,f,p,h,m,y,A,g,b,v,w,x,E,T,C,k,S,I,P,O,N,R,M,L,D,F,B,j,z,_,U,H,W,V,q,X,G,Z,Y,K,Q,J,$,ee,te,ne,re,ie,oe,ae,se,ue,le,ce;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],a=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],l=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])^(a<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>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|l>>>31),n=o^(l<<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=a^(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=l^(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|o>>>31),n=f^(o<<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],G=e[11]<<4|e[10]>>>28,Z=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,O=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,W=e[40]<<18|e[41]>>>14,V=e[41]<<18|e[40]>>>14,D=e[2]<<1|e[3]>>>31,F=e[3]<<1|e[2]>>>31,A=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,K=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,le=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,B=e[14]<<6|e[15]>>>26,j=e[15]<<6|e[14]>>>26,b=e[25]<<11|e[24]>>>21,v=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,J=e[35]<<15|e[34]>>>17,M=e[45]<<29|e[44]>>>3,L=e[44]<<29|e[45]>>>3,C=e[6]<<28|e[7]>>>4,k=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,z=e[26]<<25|e[27]>>>7,_=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,x=e[37]<<21|e[36]>>>11,$=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,q=e[8]<<27|e[9]>>>5,X=e[9]<<27|e[8]>>>5,S=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,U=e[38]<<8|e[39]>>>24,H=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,T=e[49]<<14|e[48]>>>18,e[0]=m^~A&b,e[1]=y^~g&v,e[10]=C^~S&P,e[11]=k^~I&O,e[20]=D^~B&z,e[21]=F^~j&_,e[30]=q^~G&Y,e[31]=X^~Z&K,e[40]=te^~re&oe,e[41]=ne^~ie&ae,e[2]=A^~b&w,e[3]=g^~v&x,e[12]=S^~P&N,e[13]=I^~O&R,e[22]=B^~z&U,e[23]=j^~_&H,e[32]=G^~Y&Q,e[33]=Z^~K&J,e[42]=re^~oe&se,e[43]=ie^~ae&ue,e[4]=b^~w&E,e[5]=v^~x&T,e[14]=P^~N&M,e[15]=O^~R&L,e[24]=z^~U&W,e[25]=_^~H&V,e[34]=Y^~Q&$,e[35]=K^~J&ee,e[44]=oe^~se&le,e[45]=ae^~ue&ce,e[6]=w^~E&m,e[7]=x^~T&y,e[16]=N^~M&C,e[17]=R^~L&k,e[26]=U^~W&D,e[27]=H^~V&F,e[36]=Q^~$&q,e[37]=J^~ee&X,e[46]=se^~le&te,e[47]=ue^~ce&ne,e[8]=E^~m&A,e[9]=T^~y&g,e[18]=M^~C&S,e[19]=L^~k&I,e[28]=W^~D&B,e[29]=V^~F&j,e[38]=$^~q&G,e[39]=ee^~X&Z,e[48]=le^~te&re,e[49]=ce^~ne&ie,e[0]^=c[r],e[1]^=c[r+1]};if(o)e.exports=x;else for(T=0;T<E.length;++T)r[E[T]]=x[E[T]]}()}(Wm);var Vm=Eh(Wm.exports);function qm(e){return"0x"+Vm.keccak_256(Uh(e))}const Xm=new Dh("rlp/5.7.0");function Gm(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Zm(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Ym(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(Ym(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=Gm(t.length);return n.unshift(247+n.length),n.concat(t)}var t;Wh(t=e)&&!(t.length%2)||_h(t)||Xm.throwArgumentError("RLP object must be BytesLike","object",e);const n=Array.prototype.slice.call(Uh(e));if(1===n.length&&n[0]<=127)return n;if(n.length<=55)return n.unshift(128+n.length),n;const r=Gm(n.length);return r.unshift(183+r.length),r.concat(n)}function Km(e,t,n,r){const i=[];for(;n<t+1+r;){const o=Qm(e,n);i.push(o.result),(n+=o.consumed)>t+1+r&&Xm.throwError("child data too short",Dh.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function Qm(e,t){if(0===e.length&&Xm.throwError("data too short",Dh.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&Xm.throwError("data short segment too short",Dh.errors.BUFFER_OVERRUN,{});const r=Zm(e,t+1,n);return t+1+n+r>e.length&&Xm.throwError("data long segment too short",Dh.errors.BUFFER_OVERRUN,{}),Km(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&Xm.throwError("data array too short",Dh.errors.BUFFER_OVERRUN,{}),Km(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&Xm.throwError("data array too short",Dh.errors.BUFFER_OVERRUN,{});const r=Zm(e,t+1,n);t+1+n+r>e.length&&Xm.throwError("data array too short",Dh.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:qh(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&Xm.throwError("data too short",Dh.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:qh(e.slice(t+1,t+1+n))}}return{consumed:1,result:qh(e[t])}}const Jm=new Dh("address/5.7.0");function $m(e){Wh(e,20)||Jm.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=Uh(qm(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 ey={};for(let e=0;e<10;e++)ey[String(e)]=String(e);for(let e=0;e<26;e++)ey[String.fromCharCode(65+e)]=String(10+e);const ty=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function ny(e){let t=null;if("string"!=typeof e&&Jm.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=$m(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Jm.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)!==function(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>ey[e])).join("");for(;t.length>=ty;){let e=t.substring(0,ty);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}(e)&&Jm.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new Zh(n,36).toString(16);t.length<40;)t="0"+t;t=$m("0x"+t)}else Jm.throwArgumentError("invalid address","address",e);var n;return t}function ry(e){try{return ny(e),!0}catch(e){}return!1}function iy(e){let t=null;try{t=ny(e.from)}catch(t){Jm.throwArgumentError("missing from address","transaction",e)}const n=function(e){let t=Uh(e);if(0===t.length)return t;let n=0;for(;n<t.length&&0===t[n];)n++;return n&&(t=t.slice(n)),t}(Uh($h.from(e.nonce).toHexString()));return ny(Xh(qm(qh(Ym([t,n]))),12))}class oy extends _m{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=ny(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return ny(Gh(e.readValue().toHexString(),20))}}class ay extends _m{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 sy=new Dh(mm);function uy(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||sy.throwError("cannot encode object for signature with missing names",Dh.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&sy.throwError("cannot encode object for signature with duplicate names",Dh.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else sy.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&sy.throwArgumentError("types/value length mismatch","tuple",n);let i=new Um(e.wordSize),o=new Um(e.wordSize),a=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=o.length;e.encode(o,n);let r=i.writeUpdatableValue();a.push((e=>{r(e+t)}))}else e.encode(i,n)})),a.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(o),s}function ly(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),o=r.subReader(n.toNumber());try{i=t.decode(o)}catch(e){if(e.code===Dh.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===Dh.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 o=n[t];o instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw o}}):n[r]=o}));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)}class cy extends _m{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)),sy.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 uy(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&sy.throwError("insufficient data length",Dh.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new ay(this.coder));return e.coerce(this.name,ly(e,n))}}class dy extends _m{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())}}class fy extends _m{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Uh(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}}class py extends fy{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,qh(super.decode(e)))}}class hy extends _m{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=Uh(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,qh(e.readBytes(this.size)))}}class my extends _m{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 yy=$h.from(-1),Ay=$h.from(0),gy=$h.from(1),by=$h.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class vy extends _m{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=$h.from(t),r=by.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(gy).mul(yy)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Ay)||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 wy=new Dh("strings/5.7.0");var xy,Ey;function Ty(e,t,n,r,i){if(e===Ey.BAD_PREFIX||e===Ey.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===Ey.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(xy||(xy={})),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"}(Ey||(Ey={}));const Cy=Object.freeze({error:function(e,t,n,r,i){return wy.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:Ty,replace:function(e,t,n,r,i){return e===Ey.OVERLONG?(r.push(i),0):(r.push(65533),Ty(e,t,n))}});function ky(e,t=xy.current){t!=xy.current&&(wy.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 o=65536+((1023&r)<<10)+(1023&i);n.push(o>>18|240),n.push(o>>12&63|128),n.push(o>>6&63|128),n.push(63&o|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return Uh(n)}function Sy(e,t){return n=function(e,t){null==t&&(t=Cy.error),e=Uh(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let o=null,a=null;if(192==(224&i))o=1,a=127;else if(224==(240&i))o=2,a=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?Ey.UNEXPECTED_CONTINUE:Ey.BAD_PREFIX,r-1,e,n);continue}o=3,a=65535}if(r-1+o>=e.length){r+=t(Ey.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-o-1)-1;for(let i=0;i<o;i++){let i=e[r];if(128!=(192&i)){r+=t(Ey.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(Ey.OUT_OF_RANGE,r-1-o,e,n,s):s>=55296&&s<=57343?r+=t(Ey.UTF16_SURROGATE,r-1-o,e,n,s):s<=a?r+=t(Ey.OVERLONG,r-1-o,e,n,s):n.push(s))}return n}(e,t),n.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("");var n}class Iy extends fy{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,ky(t))}decode(e){return Sy(super.decode(e))}}class Py extends _m{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 uy(e,this.coders,t)}decode(e){return e.coerce(this.name,ly(e,this.coders))}}const Oy=new Dh(mm),Ny=new RegExp(/^bytes([0-9]*)$/),Ry=new RegExp(/^(u?int)([0-9]*)$/);const My=new class{constructor(e){am(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new oy(e.name);case"bool":return new dy(e.name);case"string":return new Iy(e.name);case"bytes":return new py(e.name);case"array":return new cy(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Py((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new my(e.name)}let t=e.type.match(Ry);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Oy.throwArgumentError("invalid "+t[1]+" bit length","param",e),new vy(n/8,"int"===t[1],e.name)}if(t=e.type.match(Ny),t){let n=parseInt(t[1]);return(0===n||n>32)&&Oy.throwArgumentError("invalid bytes length","param",e),new hy(n,e.name)}return Oy.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Hm(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Um(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Tm.from(e))));return new Py(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Oy.throwError("types/values length mismatch",Dh.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Tm.from(e)))),r=new Py(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Tm.from(e))));return new Py(r,"_").decode(this._getReader(Uh(t),n))}};function Ly(e){return qm(ky(e))}const Dy=new Dh(mm);class Fy extends hm{}class By extends hm{}class jy extends hm{}class zy extends hm{static isIndexed(e){return!(!e||!e._isIndexed)}}const _y={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Uy(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}class Hy{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,am(this,"fragments",t.map((e=>km.from(e))).filter((e=>null!=e))),am(this,"_abiCoder",sm(new.target,"getAbiCoder")()),am(this,"functions",{}),am(this,"errors",{}),am(this,"events",{}),am(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Dy.warn("duplicate definition - constructor"):void am(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]?Dy.warn("duplicate definition - "+n):t[n]=e})),this.deploy||am(this,"deploy",Nm.from({payable:!1,type:"constructor"})),am(this,"_isInterface",!0)}format(e){e||(e=xm.full),e===xm.sighash&&Dy.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===xm.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return My}static getAddress(e){return ny(e)}static getSighash(e){return Xh(Ly(e.format()),0,4)}static getEventTopic(e){return Ly(e.format())}getFunction(e){if(Wh(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Dy.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?Dy.throwArgumentError("no matching function","name",t):n.length>1&&Dy.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[Rm.fromString(e).format()];return t||Dy.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Wh(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Dy.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?Dy.throwArgumentError("no matching event","name",t):n.length>1&&Dy.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[Sm.fromString(e).format()];return t||Dy.throwArgumentError("no matching event","signature",e),t}getError(e){if(Wh(e)){const t=sm(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Dy.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?Dy.throwArgumentError("no matching error","name",t):n.length>1&&Dy.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[Rm.fromString(e).format()];return t||Dy.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 sm(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),sm(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=Uh(t);return qh(n.slice(0,4))!==this.getSighash(e)&&Dy.throwArgumentError(`data signature does not match error ${e.name}.`,"data",qh(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),qh(Hh([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=Uh(t);return qh(n.slice(0,4))!==this.getSighash(e)&&Dy.throwArgumentError(`data signature does not match function ${e.name}.`,"data",qh(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),qh(Hh([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=Uh(t),r=null,i="",o=null,a=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=qh(n.slice(0,4)),t=_y[e];if(t)o=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,s=t.signature,t.reason&&(r=o[0]),"Error"===a?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(o[0])}`:"Panic"===a&&(i=`; VM Exception while processing transaction: reverted with panic code ${o[0]}`);else try{const t=this.getError(e);o=this._abiCoder.decode(t.inputs,n.slice(4)),a=t.name,s=t.format()}catch(e){}break}}return Dy.throwError("call revert exception"+i,Dh.errors.CALL_EXCEPTION,{method:e.format(),data:qh(t),errorArgs:o,errorName:a,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),qh(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Dy.throwError("too many arguments for "+e.format(),Dh.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Ly(t):"bytes"===e.type?qm(qh(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=$h.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Gh(qh(t),32));for(t.forEach(((t,i)=>{let o=e.inputs[i];o.indexed?null==t?n.push(null):"array"===o.baseType||"tuple"===o.baseType?Dy.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?n.push(t.map((e=>r(o,e)))):n.push(r(o,t)):null!=t&&Dy.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.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&&Dy.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,o)=>{const a=t[o];if(e.indexed)if("string"===e.type)n.push(Ly(a));else if("bytes"===e.type)n.push(qm(a));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[a]))}else r.push(e),i.push(a)})),{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);Wh(n[0],32)&&n[0].toLowerCase()===t||Dy.throwError("fragment/topic mismatch",Dh.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],o=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(Tm.fromObject({type:"bytes32",name:e.name})),o.push(!0)):(r.push(e),o.push(!1)):(i.push(e),o.push(!1))}));let a=null!=n?this._abiCoder.decode(r,Hh(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],l=0,c=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==a)u[t]=new zy({_isIndexed:!0,hash:null});else if(o[t])u[t]=new zy({_isIndexed:!0,hash:a[c++]});else try{u[t]=a[c++]}catch(e){u[t]=e}else try{u[t]=s[l++]}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 Uy(`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 Uy(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new By({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:$h.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Fy({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=qh(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new jy({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 Wy=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};const Vy=new Dh("abstract-provider/5.7.0");class qy{constructor(){Vy.checkAbstract(new.target,qy),am(this,"_isProvider",!0)}getFeeData(){return Wy(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield um({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=$h.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 Xy=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};const Gy=new Dh("abstract-signer/5.7.0"),Zy=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],Yy=[Dh.errors.INSUFFICIENT_FUNDS,Dh.errors.NONCE_EXPIRED,Dh.errors.REPLACEMENT_UNDERPRICED];class Ky{constructor(){Gy.checkAbstract(new.target,Ky),am(this,"_isSigner",!0)}getBalance(e){return Xy(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return Xy(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return Xy(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield um(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return Xy(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield um(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return Xy(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 Xy(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return Xy(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return Xy(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return Xy(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===Zy.indexOf(t)&&Gy.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=lm(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()&&Gy.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return Xy(this,void 0,void 0,(function*(){const t=yield um(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>Xy(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&Gy.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||Gy.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):Gy.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&&Gy.throwError("network does not support EIP-1559",Dh.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):Gy.throwError("failed to get consistent fee data",Dh.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(Yy.indexOf(e.code)>=0)throw e;return Gy.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Dh.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]&&Gy.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield um(t)}))}_checkProvider(e){this.provider||Gy.throwError("missing provider",Dh.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}}class Qy extends Ky{constructor(e,t){super(),am(this,"address",e),am(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{Gy.throwError(e,Dh.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(e){return new Qy(this.address,e)}}const Jy=new Dh("transactions/5.7.0");var $y;function eA(e,t){return{address:ny(e),storageKeys:(t||[]).map(((t,n)=>(32!==function(e){if("string"!=typeof e)e=qh(e);else if(!Wh(e)||e.length%2)return null;return(e.length-2)/2}(t)&&Jy.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}($y||($y={}));var tA=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};const nA=new Dh("contracts/5.7.0");function rA(e,t){return tA(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&nA.throwArgumentError("invalid address or ENS name","name",n);try{return ny(n)}catch(e){}e||nA.throwError("a provider or signer is needed to resolve ENS names",Dh.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&nA.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function iA(e,t,n){return tA(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>iA(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield rA(e,t):"tuple"===n.type?yield iA(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>iA(e,t,n.arrayChildren)))):Promise.reject(nA.makeError("invalid value for array",Dh.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function oA(e,t,n){return tA(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=lm(n.pop())),nA.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=um({override:rA(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>tA(this,void 0,void 0,(function*(){return ny(e.signer)!==e.override&&nA.throwError("Contract with a Signer cannot override from",Dh.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=rA(e.provider,r.from));const i=yield um({args:iA(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:um(r)||{}}),o=e.interface.encodeFunctionData(t,i.args),a={data:o,to:i.address},s=i.overrides;if(null!=s.nonce&&(a.nonce=$h.from(s.nonce).toNumber()),null!=s.gasLimit&&(a.gasLimit=$h.from(s.gasLimit)),null!=s.gasPrice&&(a.gasPrice=$h.from(s.gasPrice)),null!=s.maxFeePerGas&&(a.maxFeePerGas=$h.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(a.maxPriorityFeePerGas=$h.from(s.maxPriorityFeePerGas)),null!=s.from&&(a.from=s.from),null!=s.type&&(a.type=s.type),null!=s.accessList&&(a.accessList=function(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&Jy.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),eA(e[0],e[1])):eA(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return eA(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}(s.accessList)),null==a.gasLimit&&null!=t.gas){let e=21e3;const n=Uh(o);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);a.gasLimit=$h.from(t.gas).add(e)}if(s.value){const e=$h.from(s.value);e.isZero()||t.payable||nA.throwError("non-payable method cannot override value",Dh.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),a.value=e}s.customData&&(a.customData=lm(s.customData)),s.ccipReadEnabled&&(a.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&&nA.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,Dh.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),a}))}function aA(e,t,n){const r=e.signer||e.provider;return function(...i){return tA(this,void 0,void 0,(function*(){let o;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=lm(i.pop());null!=e.blockTag&&(o=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(o));const a=yield oA(e,t,i),s=yield r.call(a,o);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===Dh.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=a),t}}))}}function sA(e,t){return function(...n){return tA(this,void 0,void 0,(function*(){e.signer||nA.throwError("sending a transaction requires a signer",Dh.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield oA(e,t,n),i=yield e.signer.sendTransaction(r);return function(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=pm(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)))}(e,i),i}))}}function uA(e,t,n){return t.constant?aA(e,t,n):sA(e,t)}function lA(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(":"):""):"*"}class cA{constructor(e,t){am(this,"tag",e),am(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]}}class dA extends cA{constructor(){super("error",null)}}class fA extends cA{constructor(e,t,n,r){const i={address:e};let o=t.getEventTopic(n);r?(o!==r[0]&&nA.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[o],super(lA(i),i),am(this,"address",e),am(this,"interface",t),am(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=function(e){const t=[],n=function(e,r){if(Array.isArray(r))for(let i in r){const o=e.slice();o.push(i);try{n(o,r[i])}catch(e){t.push({path:o,error:e})}}};return n([],e),t}(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}}class pA extends cA{constructor(e,t){super("*",{address:e}),am(this,"address",e),am(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){}}}class hA{constructor(e,t,n){am(this,"interface",sm(new.target,"getInterface")(t)),null==n?(am(this,"provider",null),am(this,"signer",null)):Ky.isSigner(n)?(am(this,"provider",n.provider||null),am(this,"signer",n)):qy.isProvider(n)?(am(this,"provider",n),am(this,"signer",null)):nA.throwArgumentError("invalid signer or provider","signerOrProvider",n),am(this,"callStatic",{}),am(this,"estimateGas",{}),am(this,"functions",{}),am(this,"populateTransaction",{}),am(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];am(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?am(this.filters,t,this.filters[n[0]]):nA.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(am(this,"_runningEvents",{}),am(this,"_wrappedEmits",{}),null==e&&nA.throwArgumentError("invalid contract address or ENS name","addressOrName",e),am(this,"address",e),this.provider)am(this,"resolvedAddress",rA(this.provider,e));else try{am(this,"resolvedAddress",Promise.resolve(ny(e)))}catch(e){nA.throwError("provider is required to use ENS name as contract address",Dh.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])nA.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]&&am(this,e,uA(this,t,!0)),null==this.functions[e]&&am(this.functions,e,uA(this,t,!1)),null==this.callStatic[e]&&am(this.callStatic,e,aA(this,t,!0)),null==this.populateTransaction[e]&&am(this.populateTransaction,e,function(e,t){return function(...n){return oA(e,t,n)}}(this,t)),null==this.estimateGas[e]&&am(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return tA(this,void 0,void 0,(function*(){n||nA.throwError("estimate require a provider or signer",Dh.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield oA(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]&&am(this,e,this[n])}catch(e){}null==this.functions[e]&&am(this.functions,e,this.functions[n]),null==this.callStatic[e]&&am(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&am(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&am(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return iy(e)}static getInterface(e){return Hy.isInterface(e)?e:new Hy(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&&nA.throwError("contract not deployed",Dh.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||nA.throwError("sending a transactions require a signer",Dh.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=lm(e||{});return["from","to"].forEach((function(e){null!=t[e]&&nA.throwError("cannot override "+e,Dh.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new Qy(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&am(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return zy.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 dA);if("event"===e)return this._normalizeRunningEvent(new cA("event",null));if("*"===e)return this._normalizeRunningEvent(new pA(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new fA(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 fA(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new cA(lA(t),t))}return this._normalizeRunningEvent(new pA(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=pm(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||nA.throwError("events require a provider or a signer with a provider",Dh.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=lm(r.filter);return"string"==typeof t&&Wh(t,32)?(null!=n&&nA.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)}}class mA extends hA{}var yA;!function(e){e.SUCCESS="SUCCESS",e.PENDING="PENDING",e.FAILED="FAILED"}(yA||(yA={}));const AA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"TokenMapped",type:"event"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childERC20Predicate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"depositNativeTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"exitHelper",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newStateSender",type:"address"},{internalType:"address",name:"newExitHelper",type:"address"},{internalType:"address",name:"newChildERC20Predicate",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"nativeTokenRootAddress",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"}],name:"mapToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onL2StateReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"stateSender",outputs:[{internalType:"contract IStateSender",name:"",type:"address"}],stateMutability:"view",type:"function"}],gA=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],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"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",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"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];var bA;!function(e){e.UNSUPPORTED_ERROR="UNSUPPORTED_ERROR",e.INVALID_ADDRESS="INVALID_ADDRESS",e.INVALID_AMOUNT="INVALID_AMOUNT",e.INTERNAL_ERROR="INTERNAL_ERROR",e.PROVIDER_ERROR="PROVIDER_ERROR",e.TRANSACTION_REVERTED="TRANSACTION_REVERTED",e.INVALID_TOKEN="INVALID_TOKEN",e.INVALID_TRANSACTION="INVALID_TRANSACTION"}(bA||(bA={}));class vA extends Error{type;constructor(e,t){super(e),this.type=t}}const wA=async(e,t,n)=>{try{return await e()}catch(e){let r=`${t}: ${e.message}`||"UnknownError";throw n&&(r=`${n}: ${r}`),new vA(r,t)}},xA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"bytes",name:"data",type:"bytes"}],name:"StateSynced",type:"event"},{inputs:[],name:"MAX_LENGTH",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"counter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"syncState",outputs:[],stateMutability:"nonpayable",type:"function"}],EA=[{inputs:[{internalType:"string",name:"only",type:"string"}],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"startId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"endId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"root",type:"bytes32"}],name:"NewCommitment",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"counter",type:"uint256"},{indexed:!0,internalType:"bool",name:"status",type:"bool"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"}],name:"StateSyncResult",type:"event"},{inputs:[],name:"NATIVE_TOKEN_CONTRACT",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"SYSTEM",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[][]",name:"proofs",type:"bytes32[][]"},{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct StateReceiver.StateSync[]",name:"objs",type:"tuple[]"}],name:"batchExecute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"startId",type:"uint256"},{internalType:"uint256",name:"endId",type:"uint256"},{internalType:"bytes32",name:"root",type:"bytes32"}],internalType:"struct StateReceiver.StateSyncCommitment",name:"commitment",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"bitmap",type:"bytes"}],name:"commit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"commitmentCounter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"commitmentIds",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"commitments",outputs:[{internalType:"uint256",name:"startId",type:"uint256"},{internalType:"uint256",name:"endId",type:"uint256"},{internalType:"bytes32",name:"root",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"proof",type:"bytes32[]"},{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct StateReceiver.StateSync",name:"obj",type:"tuple"}],name:"execute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getCommitmentByStateSyncId",outputs:[{components:[{internalType:"uint256",name:"startId",type:"uint256"},{internalType:"uint256",name:"endId",type:"uint256"},{internalType:"bytes32",name:"root",type:"bytes32"}],internalType:"struct StateReceiver.StateSyncCommitment",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getRootByStateSyncId",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"lastCommittedId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"processedStateSyncs",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];const TA=[{inputs:[{internalType:"string",name:"only",type:"string"}],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"L2ERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"L2ERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"L2TokenMapped",type:"event"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN_CONTRACT",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TRANSFER_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"SYSTEM",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATOR_PKCHECK_PRECOMPILE_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newL2StateSender",type:"address"},{internalType:"address",name:"newStateReceiver",type:"address"},{internalType:"address",name:"newRootERC20Predicate",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newNativeTokenRootAddress",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"l2StateSender",outputs:[{internalType:"contract IStateSender",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onStateReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootERC20Predicate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"stateReceiver",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"}],CA=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{inputs:[],name:"DOMAIN",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"bls",outputs:[{internalType:"contract IBLS",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"bn256G2",outputs:[{internalType:"contract IBN256G2",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"checkpointBlockNumbers",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"checkpoints",outputs:[{internalType:"uint256",name:"epoch",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"eventRoot",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentCheckpointBlockNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentEpoch",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"currentValidatorSet",outputs:[{internalType:"address",name:"_address",type:"address"},{internalType:"uint256",name:"votingPower",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentValidatorSetHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentValidatorSetLength",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getCheckpointBlock",outputs:[{internalType:"bool",name:"",type:"bool"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"leaf",type:"bytes32"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getEventMembershipByBlockNumber",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"epoch",type:"uint256"},{internalType:"bytes32",name:"leaf",type:"bytes32"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"getEventMembershipByEpoch",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getEventRootByBlock",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IBLS",name:"newBls",type:"address"},{internalType:"contract IBN256G2",name:"newBn256G2",type:"address"},{internalType:"uint256",name:"chainId_",type:"uint256"},{components:[{internalType:"address",name:"_address",type:"address"},{internalType:"uint256[4]",name:"blsKey",type:"uint256[4]"},{internalType:"uint256",name:"votingPower",type:"uint256"}],internalType:"struct ICheckpointManager.Validator[]",name:"newValidatorSet",type:"tuple[]"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"bytes32",name:"blockHash",type:"bytes32"},{internalType:"uint256",name:"blockRound",type:"uint256"},{internalType:"bytes32",name:"currentValidatorSetHash",type:"bytes32"}],internalType:"struct ICheckpointManager.CheckpointMetadata",name:"checkpointMetadata",type:"tuple"},{components:[{internalType:"uint256",name:"epoch",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"eventRoot",type:"bytes32"}],internalType:"struct ICheckpointManager.Checkpoint",name:"checkpoint",type:"tuple"},{internalType:"uint256[2]",name:"signature",type:"uint256[2]"},{components:[{internalType:"address",name:"_address",type:"address"},{internalType:"uint256[4]",name:"blsKey",type:"uint256[4]"},{internalType:"uint256",name:"votingPower",type:"uint256"}],internalType:"struct ICheckpointManager.Validator[]",name:"newValidatorSet",type:"tuple[]"},{internalType:"bytes",name:"bitmap",type:"bytes"}],name:"submit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalVotingPower",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}];function kA(e){const t=function(e){const t=Uh(e),n=Qm(t,0);return n.consumed!==t.length&&Xm.throwArgumentError("invalid rlp data","data",e),n.result}(`0x${e.substring(66)}`);return{validators:t[0],parent:t[1],committed:t[2],checkpoint:{blockRound:t[3][0],epochNumber:parseInt(t[3][1],16),currentValidatorHash:t[3][2],nextValidatorHash:t[3][3],eventRoot:t[3][4]}}}const SA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"bytes",name:"data",type:"bytes"}],name:"L2StateSynced",type:"event"},{inputs:[],name:"MAX_LENGTH",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"counter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"syncState",outputs:[],stateMutability:"nonpayable",type:"function"}],IA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"bytes",name:"returnData",type:"bytes"}],name:"ExitProcessed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{inputs:[{components:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes",name:"unhashedLeaf",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],internalType:"struct IExitHelper.BatchExitInput[]",name:"inputs",type:"tuple[]"}],name:"batchExit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"checkpointManager",outputs:[{internalType:"contract ICheckpointManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"leafIndex",type:"uint256"},{internalType:"bytes",name:"unhashedLeaf",type:"bytes"},{internalType:"bytes32[]",name:"proof",type:"bytes32[]"}],name:"exit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract ICheckpointManager",name:"newCheckpointManager",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"processedExits",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],PA=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"userAddress",type:"address"},{indexed:!1,internalType:"address",name:"relayerAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"functionSignature",type:"bytes"}],name:"MetaTransactionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"userAddress",type:"address"},{internalType:"bytes",name:"functionSignature",type:"bytes"},{internalType:"bytes32",name:"sigR",type:"bytes32"},{internalType:"bytes32",name:"sigS",type:"bytes32"},{internalType:"uint8",name:"sigV",type:"uint8"}],name:"executeMetaTransaction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"rootToken_",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"}],name:"invalidateNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"predicate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class OA{config;constructor(e){this.config=e}async getFee(e){if(this.validateChainConfiguration(),"NATIVE"!==e.token&&!ry(e.token))throw new vA(`token address ${e.token} is not a valid address`,bA.INVALID_ADDRESS);return{bridgeable:!0,feeAmount:$h.from(0)}}async getUnsignedApproveDepositBridgeTx(e){if(this.validateChainConfiguration(),OA.validateDepositArgs(e.depositorAddress,e.depositAmount,e.token),"NATIVE"===e.token)return{unsignedTx:null};const t=await wA((async()=>new mA(e.token,gA,this.config.rootProvider)),bA.PROVIDER_ERROR),n=await wA((()=>t.allowance(e.depositorAddress,this.config.bridgeContracts.rootChainERC20Predicate)),bA.PROVIDER_ERROR);if(n.gte(e.depositAmount))return{unsignedTx:null};const r=e.depositAmount.sub(n);return{unsignedTx:{data:await wA((async()=>t.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootChainERC20Predicate,r])),bA.INTERNAL_ERROR),to:e.token,value:0,from:e.depositorAddress}}}async getUnsignedDepositTx(e){this.validateChainConfiguration(),OA.validateDepositArgs(e.recipientAddress,e.depositAmount,e.token);const t=await wA((async()=>new mA(this.config.bridgeContracts.rootChainERC20Predicate,AA)),bA.INTERNAL_ERROR),n=ny(e.recipientAddress);if("NATIVE"===e.token){return{unsignedTx:{data:await wA((async()=>t.interface.encodeFunctionData("depositNativeTo",[n])),bA.INTERNAL_ERROR),to:this.config.bridgeContracts.rootChainERC20Predicate,value:e.depositAmount}}}const r=ny(e.token);return{unsignedTx:{data:await wA((async()=>t.interface.encodeFunctionData("depositTo",[r,n,e.depositAmount])),bA.INTERNAL_ERROR),to:this.config.bridgeContracts.rootChainERC20Predicate,value:0}}}async waitForDeposit(e){this.validateChainConfiguration();const t=await wA((async()=>this.config.rootProvider.waitForTransaction(e.transactionHash,this.config.rootChainFinalityBlocks)),bA.PROVIDER_ERROR);if(1!==t.status)throw new vA(`${t.transactionHash} on rootchain was reverted`,bA.TRANSACTION_REVERTED);const n=await wA((async()=>this.getRootStateSyncID(t)),bA.PROVIDER_ERROR),r=await wA((async()=>await this.config.rootProvider.getBlock(t.blockNumber)),bA.PROVIDER_ERROR,`failed to query block ${t.blockNumber} on rootchain`),i=await wA((async()=>async function(e,t,n,r){let i=0,o=await e.getBlockNumber();for(;o!==i+1;){const a=Math.floor((i+o)/2),s=await e.getBlock(a),u=t-s.timestamp;if(u>r&&u<n+r)return a;s.timestamp<t?i=a:o=a}return i}(this.config.childProvider,r.timestamp,this.config.blockTime,this.config.clockInaccuracy)),bA.PROVIDER_ERROR),o=i+this.config.maxDepositBlockDelay;return{status:await wA((async()=>this.waitForChildStateSync(n,this.config.pollInterval,i,o)),bA.PROVIDER_ERROR)}}async getChildToken(e){this.validateChainConfiguration();const t="NATIVE"===e.rootToken?gh:e.rootToken;if(!ry(t))throw new vA(`token address ${t} is not a valid address`,bA.INVALID_ADDRESS);return{childToken:await wA((async()=>{const e=new mA(this.config.bridgeContracts.rootChainERC20Predicate,AA,this.config.rootProvider);return await e.rootTokenToChildToken(t)}),bA.PROVIDER_ERROR,"failed to query rootTokenToChildToken mapping")}}async getRootToken(e){this.validateChainConfiguration();const t=await wA((async()=>{const t=new mA(e.childToken,PA,this.config.childProvider);return await t.rootToken()}),bA.PROVIDER_ERROR,"failed to query the root token from the child token contract");return{rootToken:t===gh?"NATIVE":t}}async getUnsignedWithdrawTx(e){this.validateChainConfiguration(),OA.validateWithdrawArgs(e.recipientAddress,e.withdrawAmount,e.token);const t=await wA((async()=>new mA(this.config.bridgeContracts.childChainERC20Predicate,TA)),bA.INTERNAL_ERROR);return{unsignedTx:{data:await wA((async()=>t.interface.encodeFunctionData("withdrawTo",[e.token,e.recipientAddress,e.withdrawAmount])),bA.INTERNAL_ERROR),to:this.config.bridgeContracts.childChainERC20Predicate,value:0}}}async waitForWithdrawal(e){this.validateChainConfiguration();const t=()=>new Promise((e=>{setTimeout(e,this.config.pollInterval)}));return await wA((async()=>{const n=await this.config.childProvider.getTransactionReceipt(e.transactionHash),r=kA((await this.config.childProvider.getBlock(n.blockNumber)).extraData),i=new mA(this.config.bridgeContracts.rootChainCheckpointManager,CA,this.config.rootProvider),o=async()=>await i.currentEpoch()>=r.checkpoint.epochNumber?null:(await t(),o());await o()}),bA.PROVIDER_ERROR),{}}async getUnsignedExitTx(e){this.validateChainConfiguration();const t=await wA((async()=>await this.config.childProvider.getTransactionReceipt(e.transactionHash)),bA.PROVIDER_ERROR),n=t.logs.filter((e=>e.address.toLowerCase()===Ah));if(1!==n.length)throw new vA(`expected 1 log in tx ${t.transactionHash} from address ${Ah}`,bA.INVALID_TRANSACTION);const r=await wA((async()=>{const e=new Hy(SA).parseLog(n[0]);if("L2StateSynced(uint256,address,address,bytes)"!==e.signature)throw new Error(`expected L2StateSynced event in tx ${t.transactionHash}`);return e}),bA.INVALID_TRANSACTION),i=await wA((async()=>new mA(this.config.bridgeContracts.rootChainExitHelper,IA,this.config.rootProvider)),bA.PROVIDER_ERROR),o=await wA((async()=>this.config.childProvider.send("bridge_generateExitProof",[r.args.id.toHexString()])),bA.PROVIDER_ERROR);return{unsignedTx:{data:await wA((async()=>{const e=My.encode(["uint256","address","address","bytes"],r.args);return i.interface.encodeFunctionData("exit",[o.Metadata.CheckpointBlock,o.Metadata.LeafIndex,e,o.Data])}),bA.INTERNAL_ERROR),to:this.config.bridgeContracts.rootChainExitHelper,value:0}}}async waitForChildStateSync(e,t,n,r){const i=new mA(this.config.bridgeContracts.childChainStateReceiver,EA,this.config.childProvider),o=i.filters.StateSyncResult(e,null,null),a=async()=>{const s=await(async()=>i.queryFilter(o,n,r))();if(s.length>1)throw new Error(`expected maximum of 1 events with statesync id ${e} but found ${s.length}`);return 1===s.length?s[0]:(await new Promise((e=>{setTimeout(e,t)})),a())},s=await a();if(!s)throw new Error("failed to find child deposit event");if(!s.args)throw new Error("child deposit event has no args");if(null==s.args.status)throw new Error("child deposit event has no status");return s.args.status?yA.SUCCESS:yA.FAILED}async getRootStateSyncID(e){const t=new Hy(xA),n=e.logs.filter((e=>e.address.toLowerCase()===this.config.bridgeContracts.rootChainStateSender.toLowerCase()));if(1!==n.length)throw new Error(`expected at least 1 log in tx ${e.transactionHash}`);const r=t.parseLog(n[0]);if("StateSynced(uint256,address,address,bytes)"!==r.signature)throw new Error(`expected state sync event in tx ${e.transactionHash}`);return parseInt(r.args.id,10)}static validateDepositArgs(e,t,n){if(!ry(e))throw new vA(`address ${e} is not a valid address`,bA.INVALID_ADDRESS);if(t.isNegative()||t.isZero())throw new vA(`deposit amount ${t.toString()} is invalid`,bA.INVALID_AMOUNT);if("NATIVE"!==n&&!ry(n))throw new vA(`token address ${n} is not a valid address`,bA.INVALID_ADDRESS)}static validateWithdrawArgs(e,t,n){if(!ry(e))throw new vA(`withdrawer address ${e} is not a valid address`,bA.INVALID_ADDRESS);if(t.isNegative()||t.isZero())throw new vA(`withdraw amount ${t.toString()} is invalid`,bA.INVALID_AMOUNT);if(!ry(n))throw new vA(`token address ${n} is not a valid address`,bA.INVALID_ADDRESS)}async validateChainConfiguration(){const e="Please upgrade to the latest version of the Bridge SDK or provide valid configuration",t=await wA((async()=>this.config.rootProvider.getNetwork()),bA.PROVIDER_ERROR);if(t.chainId.toString()!==this.config.bridgeInstance.rootChainID)throw new vA(`Rootchain provider chainID ${t.chainId} does not match expected chainID ${this.config.bridgeInstance.rootChainID}. ${e}`,bA.UNSUPPORTED_ERROR);const n=await this.config.childProvider.getNetwork();if(n.chainId.toString()!==this.config.bridgeInstance.childChainID)throw new vA(`Childchain provider chainID ${n.chainId} does not match expected chainID ${this.config.bridgeInstance.childChainID}. ${e}`,bA.UNSUPPORTED_ERROR)}}var NA;!function(e){e.PRODUCTION="production",e.SANDBOX="sandbox"}(NA||(NA={}));const RA=[bh,vh],MA={[NA.SANDBOX]:RA,[NA.PRODUCTION]:[]},LA=(new Map).set(bh,{rootChainERC20Predicate:"0x75E468cF088F947B96422996132FbE71160F21F1",rootChainStateSender:"0xbdC11416f01b122b7621855e61c99C7ED986F894",rootChainCheckpointManager:"0x0721b564a96466b864A998D31846Ba409d21092B",rootChainExitHelper:"0x0a2cb3f90aE65429E5c516af500F59d8fed51844",childChainERC20Predicate:"0x0000000000000000000000000000000000001004",childChainStateReceiver:"0x0000000000000000000000000000000000001001"}).set(vh,{rootChainERC20Predicate:"0x1118Cc83780d07ef99F84fD1C0E10CEd49AF3613",rootChainStateSender:"0x41716a0DD85ae257DD011A97cE1470F609871270",rootChainCheckpointManager:"0xfD69e3FCd72C6374623eeb156dd2C4159eBa7327",rootChainExitHelper:"0x270D2B290c8183De23eCD17C7DaAE59fd084fE70",childChainERC20Predicate:"0x0000000000000000000000000000000000001004",childChainStateReceiver:"0x0000000000000000000000000000000000001001"}).set(wh,{rootChainERC20Predicate:"0x",rootChainStateSender:"0x",rootChainCheckpointManager:"0x",rootChainExitHelper:"0x",childChainERC20Predicate:"0x",childChainStateReceiver:"0x"});class DA{baseConfig;bridgeInstance;bridgeContracts;rootProvider;childProvider;blockTime;pollInterval;maxDepositBlockDelay;clockInaccuracy;rootChainFinalityBlocks;constructor({bridgeInstance:e,rootProvider:t,childProvider:n,baseConfig:r,overrides:i}){if(this.baseConfig=r,this.bridgeInstance=e,this.rootProvider=t,this.childProvider=n,this.blockTime=12,this.pollInterval=5e3,this.maxDepositBlockDelay=250,this.clockInaccuracy=900,this.rootChainFinalityBlocks=3,i)return void(this.bridgeContracts=i.bridgeContracts);if(!MA[r.environment].includes(e))throw new Error(`Bridge instance with rootchain ${e.rootChainID} and childchain ${e.childChainID} is not supported in environment ${r.environment}`);if(!LA.has(e))throw new Error(`Bridge instance with rootchain ${e.rootChainID} and childchain ${e.childChainID} is not supported in environment ${r.environment}`);const o=LA.get(e);if(!o)throw new Error(`Bridge instance with rootchain ${e.rootChainID} and childchain ${e.childChainID} is not supported in environment ${r.environment}`);this.bridgeContracts=o}}var FA={exports:{}};!function(e,t){e.exports=function(){var e=Math.imul,t=Math.clz32,n=Math.abs,r=Math.max,i=Math.floor;class o extends Array{constructor(e,t){if(super(e),this.sign=t,e>o.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded")}static BigInt(e){var t=Number.isFinite;if("number"==typeof e){if(0===e)return o.__zero();if(o.__isOneDigitInt(e))return 0>e?o.__oneDigit(-e,!0):o.__oneDigit(e,!1);if(!t(e)||i(e)!==e)throw new RangeError("The number "+e+" cannot be converted to BigInt because it is not an integer");return o.__fromDouble(e)}if("string"==typeof e){const t=o.__fromString(e);if(null===t)throw new SyntaxError("Cannot convert "+e+" to a BigInt");return t}if("boolean"==typeof e)return!0===e?o.__oneDigit(1,!1):o.__zero();if("object"==typeof e){if(e.constructor===o)return e;const t=o.__toPrimitive(e);return o.BigInt(t)}throw new TypeError("Cannot convert "+e+" to a BigInt")}toDebugString(){const e=["BigInt["];for(const t of this)e.push((t?(t>>>0).toString(16):t)+", ");return e.push("]"),e.join("")}toString(e=10){if(2>e||36<e)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(e&e-1)?o.__toStringBasePowerOfTwo(this,e):o.__toStringGeneric(this,e,!1)}static toNumber(e){const t=e.length;if(0===t)return 0;if(1===t){const t=e.__unsignedDigit(0);return e.sign?-t:t}const n=e.__digit(t-1),r=o.__clz30(n),i=30*t-r;if(1024<i)return e.sign?-1/0:1/0;let a=i-1,s=n,u=t-1;const l=r+3;let c=32===l?0:s<<l;c>>>=12;const d=l-12;let f=12<=l?0:s<<20+l,p=20+l;for(0<d&&0<u&&(u--,s=e.__digit(u),c|=s>>>30-d,f=s<<d+2,p=d+2);0<p&&0<u;)u--,s=e.__digit(u),f|=30<=p?s<<p-30:s>>>30-p,p-=30;const h=o.__decideRounding(e,p,u,s);if((1===h||0===h&&1==(1&f))&&(f=f+1>>>0,0===f&&(c++,0!=c>>>20&&(c=0,a++,1023<a))))return e.sign?-1/0:1/0;const m=e.sign?-2147483648:0;return a=a+1023<<20,o.__kBitConversionInts[1]=m|a|c,o.__kBitConversionInts[0]=f,o.__kBitConversionDouble[0]}static unaryMinus(e){if(0===e.length)return e;const t=e.__copy();return t.sign=!e.sign,t}static bitwiseNot(e){return e.sign?o.__absoluteSubOne(e).__trim():o.__absoluteAddOne(e,!0)}static exponentiate(e,t){if(t.sign)throw new RangeError("Exponent must be positive");if(0===t.length)return o.__oneDigit(1,!1);if(0===e.length)return e;if(1===e.length&&1===e.__digit(0))return e.sign&&0==(1&t.__digit(0))?o.unaryMinus(e):e;if(1<t.length)throw new RangeError("BigInt too big");let n=t.__unsignedDigit(0);if(1===n)return e;if(n>=o.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===e.length&&2===e.__digit(0)){const t=1+(0|n/30),r=e.sign&&0!=(1&n),i=new o(t,r);i.__initializeDigits();const a=1<<n%30;return i.__setDigit(t-1,a),i}let r=null,i=e;for(0!=(1&n)&&(r=e),n>>=1;0!==n;n>>=1)i=o.multiply(i,i),0!=(1&n)&&(r=null===r?i:o.multiply(r,i));return r}static multiply(e,t){if(0===e.length)return e;if(0===t.length)return t;let n=e.length+t.length;30<=e.__clzmsd()+t.__clzmsd()&&n--;const r=new o(n,e.sign!==t.sign);r.__initializeDigits();for(let n=0;n<e.length;n++)o.__multiplyAccumulate(t,e.__digit(n),r,n);return r.__trim()}static divide(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>o.__absoluteCompare(e,t))return o.__zero();const n=e.sign!==t.sign,r=t.__unsignedDigit(0);let i;if(1===t.length&&32767>=r){if(1===r)return n===e.sign?e:o.unaryMinus(e);i=o.__absoluteDivSmall(e,r,null)}else i=o.__absoluteDivLarge(e,t,!0,!1);return i.sign=n,i.__trim()}static remainder(e,t){if(0===t.length)throw new RangeError("Division by zero");if(0>o.__absoluteCompare(e,t))return e;const n=t.__unsignedDigit(0);if(1===t.length&&32767>=n){if(1===n)return o.__zero();const t=o.__absoluteModSmall(e,n);return 0===t?o.__zero():o.__oneDigit(t,e.sign)}const r=o.__absoluteDivLarge(e,t,!1,!0);return r.sign=e.sign,r.__trim()}static add(e,t){const n=e.sign;return n===t.sign?o.__absoluteAdd(e,t,n):0<=o.__absoluteCompare(e,t)?o.__absoluteSub(e,t,n):o.__absoluteSub(t,e,!n)}static subtract(e,t){const n=e.sign;return n===t.sign?0<=o.__absoluteCompare(e,t)?o.__absoluteSub(e,t,n):o.__absoluteSub(t,e,!n):o.__absoluteAdd(e,t,n)}static leftShift(e,t){return 0===t.length||0===e.length?e:t.sign?o.__rightShiftByAbsolute(e,t):o.__leftShiftByAbsolute(e,t)}static signedRightShift(e,t){return 0===t.length||0===e.length?e:t.sign?o.__leftShiftByAbsolute(e,t):o.__rightShiftByAbsolute(e,t)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(e,t){return 0>o.__compareToBigInt(e,t)}static lessThanOrEqual(e,t){return 0>=o.__compareToBigInt(e,t)}static greaterThan(e,t){return 0<o.__compareToBigInt(e,t)}static greaterThanOrEqual(e,t){return 0<=o.__compareToBigInt(e,t)}static equal(e,t){if(e.sign!==t.sign)return!1;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e.__digit(n)!==t.__digit(n))return!1;return!0}static notEqual(e,t){return!o.equal(e,t)}static bitwiseAnd(e,t){if(!e.sign&&!t.sign)return o.__absoluteAnd(e,t).__trim();if(e.sign&&t.sign){const n=r(e.length,t.length)+1;let i=o.__absoluteSubOne(e,n);const a=o.__absoluteSubOne(t);return i=o.__absoluteOr(i,a,i),o.__absoluteAddOne(i,!0,i).__trim()}return e.sign&&([e,t]=[t,e]),o.__absoluteAndNot(e,o.__absoluteSubOne(t)).__trim()}static bitwiseXor(e,t){if(!e.sign&&!t.sign)return o.__absoluteXor(e,t).__trim();if(e.sign&&t.sign){const n=r(e.length,t.length),i=o.__absoluteSubOne(e,n),a=o.__absoluteSubOne(t);return o.__absoluteXor(i,a,i).__trim()}const n=r(e.length,t.length)+1;e.sign&&([e,t]=[t,e]);let i=o.__absoluteSubOne(t,n);return i=o.__absoluteXor(i,e,i),o.__absoluteAddOne(i,!0,i).__trim()}static bitwiseOr(e,t){const n=r(e.length,t.length);if(!e.sign&&!t.sign)return o.__absoluteOr(e,t).__trim();if(e.sign&&t.sign){let r=o.__absoluteSubOne(e,n);const i=o.__absoluteSubOne(t);return r=o.__absoluteAnd(r,i,r),o.__absoluteAddOne(r,!0,r).__trim()}e.sign&&([e,t]=[t,e]);let i=o.__absoluteSubOne(t,n);return i=o.__absoluteAndNot(i,e,i),o.__absoluteAddOne(i,!0,i).__trim()}static asIntN(e,t){if(0===t.length)return t;if(0>(e=i(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return o.__zero();if(e>=o.__kMaxLengthBits)return t;const n=0|(e+29)/30;if(t.length<n)return t;const r=t.__unsignedDigit(n-1),a=1<<(e-1)%30;if(t.length===n&&r<a)return t;if((r&a)!==a)return o.__truncateToNBits(e,t);if(!t.sign)return o.__truncateAndSubFromPowerOfTwo(e,t,!0);if(0==(r&a-1)){for(let r=n-2;0<=r;r--)if(0!==t.__digit(r))return o.__truncateAndSubFromPowerOfTwo(e,t,!1);return t.length===n&&r===a?t:o.__truncateToNBits(e,t)}return o.__truncateAndSubFromPowerOfTwo(e,t,!1)}static asUintN(e,t){if(0===t.length)return t;if(0>(e=i(e)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===e)return o.__zero();if(t.sign){if(e>o.__kMaxLengthBits)throw new RangeError("BigInt too big");return o.__truncateAndSubFromPowerOfTwo(e,t,!1)}if(e>=o.__kMaxLengthBits)return t;const n=0|(e+29)/30;if(t.length<n)return t;const r=e%30;if(t.length==n){if(0===r)return t;if(0==t.__digit(n-1)>>>r)return t}return o.__truncateToNBits(e,t)}static ADD(e,t){if(e=o.__toPrimitive(e),t=o.__toPrimitive(t),"string"==typeof e)return"string"!=typeof t&&(t=t.toString()),e+t;if("string"==typeof t)return e.toString()+t;if(e=o.__toNumeric(e),t=o.__toNumeric(t),o.__isBigInt(e)&&o.__isBigInt(t))return o.add(e,t);if("number"==typeof e&&"number"==typeof t)return e+t;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(e,t){return o.__compare(e,t,0)}static LE(e,t){return o.__compare(e,t,1)}static GT(e,t){return o.__compare(e,t,2)}static GE(e,t){return o.__compare(e,t,3)}static EQ(e,t){for(;;){if(o.__isBigInt(e))return o.__isBigInt(t)?o.equal(e,t):o.EQ(t,e);if("number"==typeof e){if(o.__isBigInt(t))return o.__equalToNumber(t,e);if("object"!=typeof t)return e==t;t=o.__toPrimitive(t)}else if("string"==typeof e){if(o.__isBigInt(t))return null!==(e=o.__fromString(e))&&o.equal(e,t);if("object"!=typeof t)return e==t;t=o.__toPrimitive(t)}else if("boolean"==typeof e){if(o.__isBigInt(t))return o.__equalToNumber(t,+e);if("object"!=typeof t)return e==t;t=o.__toPrimitive(t)}else if("symbol"==typeof e){if(o.__isBigInt(t))return!1;if("object"!=typeof t)return e==t;t=o.__toPrimitive(t)}else{if("object"!=typeof e)return e==t;if("object"==typeof t&&t.constructor!==o)return e==t;e=o.__toPrimitive(e)}}}static NE(e,t){return!o.EQ(e,t)}static __zero(){return new o(0,!1)}static __oneDigit(e,t){const n=new o(1,t);return n.__setDigit(0,e),n}__copy(){const e=new o(this.length,this.sign);for(let t=0;t<this.length;t++)e[t]=this[t];return e}__trim(){let e=this.length,t=this[e-1];for(;0===t;)e--,t=this[e-1],this.pop();return 0===e&&(this.sign=!1),this}__initializeDigits(){for(let e=0;e<this.length;e++)this[e]=0}static __decideRounding(e,t,n,r){if(0<t)return-1;let i;if(0>t)i=-t-1;else{if(0===n)return-1;n--,r=e.__digit(n),i=29}let o=1<<i;if(0==(r&o))return-1;if(o-=1,0!=(r&o))return 1;for(;0<n;)if(n--,0!==e.__digit(n))return 1;return 0}static __fromDouble(e){o.__kBitConversionDouble[0]=e;const t=(2047&o.__kBitConversionInts[1]>>>20)-1023,n=1+(0|t/30),r=new o(n,0>e);let i=1048575&o.__kBitConversionInts[1]|1048576,a=o.__kBitConversionInts[0];const s=20,u=t%30;let l,c=0;if(20>u){const e=s-u;c=e+32,l=i>>>e,i=i<<32-e|a>>>e,a<<=32-e}else if(20===u)c=32,l=i,i=a,a=0;else{const e=u-s;c=32-e,l=i<<e|a>>>32-e,i=a<<e,a=0}r.__setDigit(n-1,l);for(let e=n-2;0<=e;e--)0<c?(c-=30,l=i>>>2,i=i<<30|a>>>2,a<<=30):l=0,r.__setDigit(e,l);return r.__trim()}static __isWhitespace(e){return!!(13>=e&&9<=e)||(159>=e?32==e:131071>=e?160==e||5760==e:196607>=e?10>=(e&=131071)||40==e||41==e||47==e||95==e||4096==e:65279==e)}static __fromString(e,t=0){let n=0;const r=e.length;let i=0;if(i===r)return o.__zero();let a=e.charCodeAt(i);for(;o.__isWhitespace(a);){if(++i===r)return o.__zero();a=e.charCodeAt(i)}if(43===a){if(++i===r)return null;a=e.charCodeAt(i),n=1}else if(45===a){if(++i===r)return null;a=e.charCodeAt(i),n=-1}if(0===t){if(t=10,48===a){if(++i===r)return o.__zero();if(a=e.charCodeAt(i),88===a||120===a){if(t=16,++i===r)return null;a=e.charCodeAt(i)}else if(79===a||111===a){if(t=8,++i===r)return null;a=e.charCodeAt(i)}else if(66===a||98===a){if(t=2,++i===r)return null;a=e.charCodeAt(i)}}}else if(16===t&&48===a){if(++i===r)return o.__zero();if(a=e.charCodeAt(i),88===a||120===a){if(++i===r)return null;a=e.charCodeAt(i)}}if(0!=n&&10!==t)return null;for(;48===a;){if(++i===r)return o.__zero();a=e.charCodeAt(i)}const s=r-i;let u=o.__kMaxBitsPerChar[t],l=o.__kBitsPerCharTableMultiplier-1;if(s>1073741824/u)return null;const c=u*s+l>>>o.__kBitsPerCharTableShift,d=new o(0|(c+29)/30,!1),f=10>t?t:10,p=10<t?t-10:0;if(0==(t&t-1)){u>>=o.__kBitsPerCharTableShift;const t=[],n=[];let s=!1;do{let o=0,l=0;for(;;){let t;if(a-48>>>0<f)t=a-48;else{if(!((32|a)-97>>>0<p)){s=!0;break}t=(32|a)-87}if(l+=u,o=o<<u|t,++i===r){s=!0;break}if(a=e.charCodeAt(i),30<l+u)break}t.push(o),n.push(l)}while(!s);o.__fillFromParts(d,t,n)}else{d.__initializeDigits();let n=!1,s=0;do{let c=0,h=1;for(;;){let o;if(a-48>>>0<f)o=a-48;else{if(!((32|a)-97>>>0<p)){n=!0;break}o=(32|a)-87}const u=h*t;if(1073741823<u)break;if(h=u,c=c*t+o,s++,++i===r){n=!0;break}a=e.charCodeAt(i)}l=30*o.__kBitsPerCharTableMultiplier-1;const m=0|(u*s+l>>>o.__kBitsPerCharTableShift)/30;d.__inplaceMultiplyAdd(h,c,m)}while(!n)}if(i!==r){if(!o.__isWhitespace(a))return null;for(i++;i<r;i++)if(a=e.charCodeAt(i),!o.__isWhitespace(a))return null}return d.sign=-1==n,d.__trim()}static __fillFromParts(e,t,n){let r=0,i=0,o=0;for(let a=t.length-1;0<=a;a--){const s=t[a],u=n[a];i|=s<<o,o+=u,30===o?(e.__setDigit(r++,i),o=0,i=0):30<o&&(e.__setDigit(r++,1073741823&i),o-=30,i=s>>>u-o)}if(0!==i){if(r>=e.length)throw new Error("implementation bug");e.__setDigit(r++,i)}for(;r<e.length;r++)e.__setDigit(r,0)}static __toStringBasePowerOfTwo(e,t){const n=e.length;let r=t-1;r=(85&r>>>1)+(85&r),r=(51&r>>>2)+(51&r),r=(15&r>>>4)+(15&r);const i=r,a=t-1,s=e.__digit(n-1);let u=0|(30*n-o.__clz30(s)+i-1)/i;if(e.sign&&u++,268435456<u)throw new Error("string too long");const l=Array(u);let c=u-1,d=0,f=0;for(let t=0;t<n-1;t++){const n=e.__digit(t),r=(d|n<<f)&a;l[c--]=o.__kConversionChars[r];const s=i-f;for(d=n>>>s,f=30-s;f>=i;)l[c--]=o.__kConversionChars[d&a],d>>>=i,f-=i}const p=(d|s<<f)&a;for(l[c--]=o.__kConversionChars[p],d=s>>>i-f;0!==d;)l[c--]=o.__kConversionChars[d&a],d>>>=i;if(e.sign&&(l[c--]="-"),-1!=c)throw new Error("implementation bug");return l.join("")}static __toStringGeneric(e,t,n){const r=e.length;if(0===r)return"";if(1===r){let r=e.__unsignedDigit(0).toString(t);return!1===n&&e.sign&&(r="-"+r),r}const i=30*r-o.__clz30(e.__digit(r-1)),a=o.__kMaxBitsPerChar[t]-1;let s=i*o.__kBitsPerCharTableMultiplier;s+=a-1,s=0|s/a;const u=s+1>>1,l=o.exponentiate(o.__oneDigit(t,!1),o.__oneDigit(u,!1));let c,d;const f=l.__unsignedDigit(0);if(1===l.length&&32767>=f){c=new o(e.length,!1),c.__initializeDigits();let n=0;for(let t=2*e.length-1;0<=t;t--){const r=n<<15|e.__halfDigit(t);c.__setHalfDigit(t,0|r/f),n=0|r%f}d=n.toString(t)}else{const n=o.__absoluteDivLarge(e,l,!0,!0);c=n.quotient;const r=n.remainder.__trim();d=o.__toStringGeneric(r,t,!0)}c.__trim();let p=o.__toStringGeneric(c,t,!0);for(;d.length<u;)d="0"+d;return!1===n&&e.sign&&(p="-"+p),p+d}static __unequalSign(e){return e?-1:1}static __absoluteGreater(e){return e?-1:1}static __absoluteLess(e){return e?1:-1}static __compareToBigInt(e,t){const n=e.sign;if(n!==t.sign)return o.__unequalSign(n);const r=o.__absoluteCompare(e,t);return 0<r?o.__absoluteGreater(n):0>r?o.__absoluteLess(n):0}static __compareToNumber(e,t){if(o.__isOneDigitInt(t)){const r=e.sign,i=0>t;if(r!==i)return o.__unequalSign(r);if(0===e.length){if(i)throw new Error("implementation bug");return 0===t?0:-1}if(1<e.length)return o.__absoluteGreater(r);const a=n(t),s=e.__unsignedDigit(0);return s>a?o.__absoluteGreater(r):s<a?o.__absoluteLess(r):0}return o.__compareToDouble(e,t)}static __compareToDouble(e,t){if(t!=t)return t;if(t===1/0)return-1;if(t===-1/0)return 1;const n=e.sign;if(n!==0>t)return o.__unequalSign(n);if(0===t)throw new Error("implementation bug: should be handled elsewhere");if(0===e.length)return-1;o.__kBitConversionDouble[0]=t;const r=2047&o.__kBitConversionInts[1]>>>20;if(2047==r)throw new Error("implementation bug: handled elsewhere");const i=r-1023;if(0>i)return o.__absoluteGreater(n);const a=e.length;let s=e.__digit(a-1);const u=o.__clz30(s),l=30*a-u,c=i+1;if(l<c)return o.__absoluteLess(n);if(l>c)return o.__absoluteGreater(n);let d=1048576|1048575&o.__kBitConversionInts[1],f=o.__kBitConversionInts[0];const p=20,h=29-u;if(h!==(0|(l-1)%30))throw new Error("implementation bug");let m,y=0;if(20>h){const e=p-h;y=e+32,m=d>>>e,d=d<<32-e|f>>>e,f<<=32-e}else if(20===h)y=32,m=d,d=f,f=0;else{const e=h-p;y=32-e,m=d<<e|f>>>32-e,d=f<<e,f=0}if(s>>>=0,m>>>=0,s>m)return o.__absoluteGreater(n);if(s<m)return o.__absoluteLess(n);for(let t=a-2;0<=t;t--){0<y?(y-=30,m=d>>>2,d=d<<30|f>>>2,f<<=30):m=0;const r=e.__unsignedDigit(t);if(r>m)return o.__absoluteGreater(n);if(r<m)return o.__absoluteLess(n)}if(0!==d||0!==f){if(0===y)throw new Error("implementation bug");return o.__absoluteLess(n)}return 0}static __equalToNumber(e,t){return o.__isOneDigitInt(t)?0===t?0===e.length:1===e.length&&e.sign===0>t&&e.__unsignedDigit(0)===n(t):0===o.__compareToDouble(e,t)}static __comparisonResultToBool(e,t){return 0===t?0>e:1===t?0>=e:2===t?0<e:3===t?0<=e:void 0}static __compare(e,t,n){if(e=o.__toPrimitive(e),t=o.__toPrimitive(t),"string"==typeof e&&"string"==typeof t)switch(n){case 0:return e<t;case 1:return e<=t;case 2:return e>t;case 3:return e>=t}if(o.__isBigInt(e)&&"string"==typeof t)return null!==(t=o.__fromString(t))&&o.__comparisonResultToBool(o.__compareToBigInt(e,t),n);if("string"==typeof e&&o.__isBigInt(t))return null!==(e=o.__fromString(e))&&o.__comparisonResultToBool(o.__compareToBigInt(e,t),n);if(e=o.__toNumeric(e),t=o.__toNumeric(t),o.__isBigInt(e)){if(o.__isBigInt(t))return o.__comparisonResultToBool(o.__compareToBigInt(e,t),n);if("number"!=typeof t)throw new Error("implementation bug");return o.__comparisonResultToBool(o.__compareToNumber(e,t),n)}if("number"!=typeof e)throw new Error("implementation bug");if(o.__isBigInt(t))return o.__comparisonResultToBool(o.__compareToNumber(t,e),2^n);if("number"!=typeof t)throw new Error("implementation bug");return 0===n?e<t:1===n?e<=t:2===n?e>t:3===n?e>=t:void 0}__clzmsd(){return o.__clz30(this.__digit(this.length-1))}static __absoluteAdd(e,t,n){if(e.length<t.length)return o.__absoluteAdd(t,e,n);if(0===e.length)return e;if(0===t.length)return e.sign===n?e:o.unaryMinus(e);let r=e.length;(0===e.__clzmsd()||t.length===e.length&&0===t.__clzmsd())&&r++;const i=new o(r,n);let a=0,s=0;for(;s<t.length;s++){const n=e.__digit(s)+t.__digit(s)+a;a=n>>>30,i.__setDigit(s,1073741823&n)}for(;s<e.length;s++){const t=e.__digit(s)+a;a=t>>>30,i.__setDigit(s,1073741823&t)}return s<i.length&&i.__setDigit(s,a),i.__trim()}static __absoluteSub(e,t,n){if(0===e.length)return e;if(0===t.length)return e.sign===n?e:o.unaryMinus(e);const r=new o(e.length,n);let i=0,a=0;for(;a<t.length;a++){const n=e.__digit(a)-t.__digit(a)-i;i=1&n>>>30,r.__setDigit(a,1073741823&n)}for(;a<e.length;a++){const t=e.__digit(a)-i;i=1&t>>>30,r.__setDigit(a,1073741823&t)}return r.__trim()}static __absoluteAddOne(e,t,n=null){const r=e.length;null===n?n=new o(r,t):n.sign=t;let i=1;for(let t=0;t<r;t++){const r=e.__digit(t)+i;i=r>>>30,n.__setDigit(t,1073741823&r)}return 0!=i&&n.__setDigitGrow(r,1),n}static __absoluteSubOne(e,t){const n=e.length,r=new o(t=t||n,!1);let i=1;for(let t=0;t<n;t++){const n=e.__digit(t)-i;i=1&n>>>30,r.__setDigit(t,1073741823&n)}if(0!=i)throw new Error("implementation bug");for(let e=n;e<t;e++)r.__setDigit(e,0);return r}static __absoluteAnd(e,t,n=null){let r=e.length,i=t.length,a=i;if(r<i){a=r;const n=e,o=r;e=t,r=i,t=n,i=o}let s=a;null===n?n=new o(s,!1):s=n.length;let u=0;for(;u<a;u++)n.__setDigit(u,e.__digit(u)&t.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteAndNot(e,t,n=null){const r=e.length,i=t.length;let a=i;r<i&&(a=r);let s=r;null===n?n=new o(s,!1):s=n.length;let u=0;for(;u<a;u++)n.__setDigit(u,e.__digit(u)&~t.__digit(u));for(;u<r;u++)n.__setDigit(u,e.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteOr(e,t,n=null){let r=e.length,i=t.length,a=i;if(r<i){a=r;const n=e,o=r;e=t,r=i,t=n,i=o}let s=r;null===n?n=new o(s,!1):s=n.length;let u=0;for(;u<a;u++)n.__setDigit(u,e.__digit(u)|t.__digit(u));for(;u<r;u++)n.__setDigit(u,e.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteXor(e,t,n=null){let r=e.length,i=t.length,a=i;if(r<i){a=r;const n=e,o=r;e=t,r=i,t=n,i=o}let s=r;null===n?n=new o(s,!1):s=n.length;let u=0;for(;u<a;u++)n.__setDigit(u,e.__digit(u)^t.__digit(u));for(;u<r;u++)n.__setDigit(u,e.__digit(u));for(;u<s;u++)n.__setDigit(u,0);return n}static __absoluteCompare(e,t){const n=e.length-t.length;if(0!=n)return n;let r=e.length-1;for(;0<=r&&e.__digit(r)===t.__digit(r);)r--;return 0>r?0:e.__unsignedDigit(r)>t.__unsignedDigit(r)?1:-1}static __multiplyAccumulate(e,t,n,r){if(0===t)return;const i=32767&t,a=t>>>15;let s=0,u=0;for(let t,l=0;l<e.length;l++,r++){t=n.__digit(r);const c=e.__digit(l),d=32767&c,f=c>>>15,p=o.__imul(d,i),h=o.__imul(d,a),m=o.__imul(f,i);t+=u+p+s,s=t>>>30,t&=1073741823,t+=((32767&h)<<15)+((32767&m)<<15),s+=t>>>30,u=o.__imul(f,a)+(h>>>15)+(m>>>15),n.__setDigit(r,1073741823&t)}for(;0!=s||0!==u;r++){let e=n.__digit(r);e+=s+u,u=0,s=e>>>30,n.__setDigit(r,1073741823&e)}}static __internalMultiplyAdd(e,t,n,r,i){let a=n,s=0;for(let n=0;n<r;n++){const r=e.__digit(n),u=o.__imul(32767&r,t),l=o.__imul(r>>>15,t),c=u+((32767&l)<<15)+s+a;a=c>>>30,s=l>>>15,i.__setDigit(n,1073741823&c)}if(i.length>r)for(i.__setDigit(r++,a+s);r<i.length;)i.__setDigit(r++,0);else if(0!==a+s)throw new Error("implementation bug")}__inplaceMultiplyAdd(e,t,n){n>this.length&&(n=this.length);const r=32767&e,i=e>>>15;let a=0,s=t;for(let e=0;e<n;e++){const t=this.__digit(e),n=32767&t,u=t>>>15,l=o.__imul(n,r),c=o.__imul(n,i),d=o.__imul(u,r);let f=s+l+a;a=f>>>30,f&=1073741823,f+=((32767&c)<<15)+((32767&d)<<15),a+=f>>>30,s=o.__imul(u,i)+(c>>>15)+(d>>>15),this.__setDigit(e,1073741823&f)}if(0!=a||0!==s)throw new Error("implementation bug")}static __absoluteDivSmall(e,t,n=null){null===n&&(n=new o(e.length,!1));let r=0;for(let i,o=2*e.length-1;0<=o;o-=2){i=(r<<15|e.__halfDigit(o))>>>0;const a=0|i/t;r=0|i%t,i=(r<<15|e.__halfDigit(o-1))>>>0;const s=0|i/t;r=0|i%t,n.__setDigit(o>>>1,a<<15|s)}return n}static __absoluteModSmall(e,t){let n=0;for(let r=2*e.length-1;0<=r;r--)n=0|((n<<15|e.__halfDigit(r))>>>0)%t;return n}static __absoluteDivLarge(e,t,n,r){const i=t.__halfDigitLength(),a=t.length,s=e.__halfDigitLength()-i;let u=null;n&&(u=new o(s+2>>>1,!1),u.__initializeDigits());const l=new o(i+2>>>1,!1);l.__initializeDigits();const c=o.__clz15(t.__halfDigit(i-1));0<c&&(t=o.__specialLeftShift(t,c,0));const d=o.__specialLeftShift(e,c,1),f=t.__halfDigit(i-1);let p=0;for(let e,r=s;0<=r;r--){e=32767;const s=d.__halfDigit(r+i);if(s!==f){const n=(s<<15|d.__halfDigit(r+i-1))>>>0;e=0|n/f;let a=0|n%f;const u=t.__halfDigit(i-2),l=d.__halfDigit(r+i-2);for(;o.__imul(e,u)>>>0>(a<<16|l)>>>0&&(e--,a+=f,!(32767<a)););}o.__internalMultiplyAdd(t,e,0,a,l);let c=d.__inplaceSub(l,r,i+1);0!==c&&(c=d.__inplaceAdd(t,r,i),d.__setHalfDigit(r+i,32767&d.__halfDigit(r+i)+c),e--),n&&(1&r?p=e<<15:u.__setDigit(r>>>1,p|e))}if(r)return d.__inplaceRightShift(c),n?{quotient:u,remainder:d}:d;if(n)return u;throw new Error("unreachable")}static __clz15(e){return o.__clz30(e)-15}__inplaceAdd(e,t,n){let r=0;for(let i=0;i<n;i++){const n=this.__halfDigit(t+i)+e.__halfDigit(i)+r;r=n>>>15,this.__setHalfDigit(t+i,32767&n)}return r}__inplaceSub(e,t,n){let r=0;if(1&t){t>>=1;let i=this.__digit(t),o=32767&i,a=0;for(;a<n-1>>>1;a++){const n=e.__digit(a),s=(i>>>15)-(32767&n)-r;r=1&s>>>15,this.__setDigit(t+a,(32767&s)<<15|32767&o),i=this.__digit(t+a+1),o=(32767&i)-(n>>>15)-r,r=1&o>>>15}const s=e.__digit(a),u=(i>>>15)-(32767&s)-r;if(r=1&u>>>15,this.__setDigit(t+a,(32767&u)<<15|32767&o),t+a+1>=this.length)throw new RangeError("out of bounds");0==(1&n)&&(i=this.__digit(t+a+1),o=(32767&i)-(s>>>15)-r,r=1&o>>>15,this.__setDigit(t+e.length,1073709056&i|32767&o))}else{t>>=1;let i=0;for(;i<e.length-1;i++){const n=this.__digit(t+i),o=e.__digit(i),a=(32767&n)-(32767&o)-r;r=1&a>>>15;const s=(n>>>15)-(o>>>15)-r;r=1&s>>>15,this.__setDigit(t+i,(32767&s)<<15|32767&a)}const o=this.__digit(t+i),a=e.__digit(i),s=(32767&o)-(32767&a)-r;r=1&s>>>15;let u=0;0==(1&n)&&(u=(o>>>15)-(a>>>15)-r,r=1&u>>>15),this.__setDigit(t+i,(32767&u)<<15|32767&s)}return r}__inplaceRightShift(e){if(0===e)return;let t=this.__digit(0)>>>e;const n=this.length-1;for(let r=0;r<n;r++){const n=this.__digit(r+1);this.__setDigit(r,1073741823&n<<30-e|t),t=n>>>e}this.__setDigit(n,t)}static __specialLeftShift(e,t,n){const r=e.length,i=new o(r+n,!1);if(0===t){for(let t=0;t<r;t++)i.__setDigit(t,e.__digit(t));return 0<n&&i.__setDigit(r,0),i}let a=0;for(let n=0;n<r;n++){const r=e.__digit(n);i.__setDigit(n,1073741823&r<<t|a),a=r>>>30-t}return 0<n&&i.__setDigit(r,a),i}static __leftShiftByAbsolute(e,t){const n=o.__toShiftAmount(t);if(0>n)throw new RangeError("BigInt too big");const r=0|n/30,i=n%30,a=e.length,s=0!==i&&0!=e.__digit(a-1)>>>30-i,u=a+r+(s?1:0),l=new o(u,e.sign);if(0===i){let t=0;for(;t<r;t++)l.__setDigit(t,0);for(;t<u;t++)l.__setDigit(t,e.__digit(t-r))}else{let t=0;for(let e=0;e<r;e++)l.__setDigit(e,0);for(let n=0;n<a;n++){const o=e.__digit(n);l.__setDigit(n+r,1073741823&o<<i|t),t=o>>>30-i}if(s)l.__setDigit(a+r,t);else if(0!==t)throw new Error("implementation bug")}return l.__trim()}static __rightShiftByAbsolute(e,t){const n=e.length,r=e.sign,i=o.__toShiftAmount(t);if(0>i)return o.__rightShiftByMaximum(r);const a=0|i/30,s=i%30;let u=n-a;if(0>=u)return o.__rightShiftByMaximum(r);let l=!1;if(r)if(0!=(e.__digit(a)&(1<<s)-1))l=!0;else for(let t=0;t<a;t++)if(0!==e.__digit(t)){l=!0;break}l&&0===s&&0==~e.__digit(n-1)&&u++;let c=new o(u,r);if(0===s){c.__setDigit(u-1,0);for(let t=a;t<n;t++)c.__setDigit(t-a,e.__digit(t))}else{let t=e.__digit(a)>>>s;const r=n-a-1;for(let n=0;n<r;n++){const r=e.__digit(n+a+1);c.__setDigit(n,1073741823&r<<30-s|t),t=r>>>s}c.__setDigit(r,t)}return l&&(c=o.__absoluteAddOne(c,!0,c)),c.__trim()}static __rightShiftByMaximum(e){return e?o.__oneDigit(1,!0):o.__zero()}static __toShiftAmount(e){if(1<e.length)return-1;const t=e.__unsignedDigit(0);return t>o.__kMaxLengthBits?-1:t}static __toPrimitive(e,t="default"){if("object"!=typeof e)return e;if(e.constructor===o)return e;if("undefined"!=typeof Symbol&&"symbol"==typeof Symbol.toPrimitive){const n=e[Symbol.toPrimitive];if(n){const e=n(t);if("object"!=typeof e)return e;throw new TypeError("Cannot convert object to primitive value")}}const n=e.valueOf;if(n){const t=n.call(e);if("object"!=typeof t)return t}const r=e.toString;if(r){const t=r.call(e);if("object"!=typeof t)return t}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(e){return o.__isBigInt(e)?e:+e}static __isBigInt(e){return"object"==typeof e&&null!==e&&e.constructor===o}static __truncateToNBits(e,t){const n=0|(e+29)/30,r=new o(n,t.sign),i=n-1;for(let e=0;e<i;e++)r.__setDigit(e,t.__digit(e));let a=t.__digit(i);if(0!=e%30){const t=32-e%30;a=a<<t>>>t}return r.__setDigit(i,a),r.__trim()}static __truncateAndSubFromPowerOfTwo(e,t,n){var r=Math.min;const i=0|(e+29)/30,a=new o(i,n);let s=0;const u=i-1;let l=0;for(const e=r(u,t.length);s<e;s++){const e=0-t.__digit(s)-l;l=1&e>>>30,a.__setDigit(s,1073741823&e)}for(;s<u;s++)a.__setDigit(s,0|1073741823&-l);let c=u<t.length?t.__digit(u):0;const d=e%30;let f;if(0==d)f=0-c-l,f&=1073741823;else{const e=32-d;c=c<<e>>>e;const t=1<<32-e;f=t-c-l,f&=t-1}return a.__setDigit(u,f),a.__trim()}__digit(e){return this[e]}__unsignedDigit(e){return this[e]>>>0}__setDigit(e,t){this[e]=0|t}__setDigitGrow(e,t){this[e]=0|t}__halfDigitLength(){const e=this.length;return 32767>=this.__unsignedDigit(e-1)?2*e-1:2*e}__halfDigit(e){return 32767&this[e>>>1]>>>15*(1&e)}__setHalfDigit(e,t){const n=e>>>1,r=this.__digit(n),i=1&e?32767&r|t<<15:1073709056&r|32767&t;this.__setDigit(n,i)}static __digitPow(e,t){let n=1;for(;0<t;)1&t&&(n*=e),t>>>=1,e*=e;return n}static __isOneDigitInt(e){return(1073741823&e)===e}}return o.__kMaxLength=33554432,o.__kMaxLengthBits=o.__kMaxLength<<5,o.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],o.__kBitsPerCharTableShift=5,o.__kBitsPerCharTableMultiplier=1<<o.__kBitsPerCharTableShift,o.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],o.__kBitConversionBuffer=new ArrayBuffer(8),o.__kBitConversionDouble=new Float64Array(o.__kBitConversionBuffer),o.__kBitConversionInts=new Int32Array(o.__kBitConversionBuffer),o.__clz30=t?function(e){return t(e)-2}:function(e){var t=Math.LN2,n=Math.log;return 0===e?30:0|29-(0|n(e>>>0)/t)},o.__imul=e||function(e,t){return 0|e*t},o}()}(FA);var BA=FA.exports,jA=_e(BA),zA="Invariant failed";function _A(e,t){if(!e)throw new Error(zA)}var UA={exports:{}};
18
- /*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */!function(e){!function(t){var n,r=1e9,i={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},o=!0,a="[DecimalError] ",s=a+"Invalid argument: ",u=a+"Exponent out of range: ",l=Math.floor,c=Math.pow,d=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,f=1e7,p=7,h=9007199254740991,m=l(h/p),y={};function A(e,t){var n,r,i,a,s,u,l,c,d=e.constructor,h=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),o?S(t,h):t;if(l=e.d,c=t.d,s=e.e,i=t.e,l=l.slice(),a=s-i){for(a<0?(r=l,a=-a,u=c.length):(r=c,i=s,u=l.length),a>(u=(s=Math.ceil(h/p))>u?s+1:u+1)&&(a=u,r.length=1),r.reverse();a--;)r.push(0);r.reverse()}for((u=l.length)-(a=c.length)<0&&(a=u,r=c,c=l,l=r),n=0;a;)n=(l[--a]=l[a]+c[a]+n)/f|0,l[a]%=f;for(n&&(l.unshift(n),++i),u=l.length;0==l[--u];)l.pop();return t.d=l,t.e=i,o?S(t,h):t}function g(e,t,n){if(e!==~~e||e<t||e>n)throw Error(s+e)}function b(e){var t,n,r,i=e.length-1,o="",a=e[0];if(i>0){for(o+=a,t=1;t<i;t++)r=e[t]+"",(n=p-r.length)&&(o+=T(n)),o+=r;a=e[t],(n=p-(r=a+"").length)&&(o+=T(n))}else if(0===a)return"0";for(;a%10==0;)a/=10;return o+a}y.absoluteValue=y.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e},y.comparedTo=y.cmp=function(e){var t,n,r,i,o=this;if(e=new o.constructor(e),o.s!==e.s)return o.s||-e.s;if(o.e!==e.e)return o.e>e.e^o.s<0?1:-1;for(t=0,n=(r=o.d.length)<(i=e.d.length)?r:i;t<n;++t)if(o.d[t]!==e.d[t])return o.d[t]>e.d[t]^o.s<0?1:-1;return r===i?0:r>i^o.s<0?1:-1},y.decimalPlaces=y.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t])for(;t%10==0;t/=10)n--;return n<0?0:n},y.dividedBy=y.div=function(e){return v(this,new this.constructor(e))},y.dividedToIntegerBy=y.idiv=function(e){var t=this.constructor;return S(v(this,new t(e),0,1),t.precision)},y.equals=y.eq=function(e){return!this.cmp(e)},y.exponent=function(){return x(this)},y.greaterThan=y.gt=function(e){return this.cmp(e)>0},y.greaterThanOrEqualTo=y.gte=function(e){return this.cmp(e)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return 0===this.s},y.lessThan=y.lt=function(e){return this.cmp(e)<0},y.lessThanOrEqualTo=y.lte=function(e){return this.cmp(e)<1},y.logarithm=y.log=function(e){var t,r=this,i=r.constructor,s=i.precision,u=s+5;if(void 0===e)e=new i(10);else if((e=new i(e)).s<1||e.eq(n))throw Error(a+"NaN");if(r.s<1)throw Error(a+(r.s?"NaN":"-Infinity"));return r.eq(n)?new i(0):(o=!1,t=v(C(r,u),C(e,u),u),o=!0,S(t,s))},y.minus=y.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?I(t,e):A(t,(e.s=-e.s,e))},y.modulo=y.mod=function(e){var t,n=this,r=n.constructor,i=r.precision;if(!(e=new r(e)).s)throw Error(a+"NaN");return n.s?(o=!1,t=v(n,e,0,1).times(e),o=!0,n.minus(t)):S(new r(n),i)},y.naturalExponential=y.exp=function(){return w(this)},y.naturalLogarithm=y.ln=function(){return C(this)},y.negated=y.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},y.plus=y.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?A(t,e):I(t,(e.s=-e.s,e))},y.precision=y.sd=function(e){var t,n,r,i=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(s+e);if(t=x(i)+1,n=(r=i.d.length-1)*p+1,r=i.d[r]){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},y.squareRoot=y.sqrt=function(){var e,t,n,r,i,s,u,c=this,d=c.constructor;if(c.s<1){if(!c.s)return new d(0);throw Error(a+"NaN")}for(e=x(c),o=!1,0==(i=Math.sqrt(+c))||i==1/0?(((t=b(c.d)).length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=l((e+1)/2)-(e<0||e%2),r=new d(t=i==1/0?"5e"+e:(t=i.toExponential()).slice(0,t.indexOf("e")+1)+e)):r=new d(i.toString()),i=u=(n=d.precision)+3;;)if(r=(s=r).plus(v(c,s,u+2)).times(.5),b(s.d).slice(0,u)===(t=b(r.d)).slice(0,u)){if(t=t.slice(u-3,u+1),i==u&&"4999"==t){if(S(s,n+1,0),s.times(s).eq(c)){r=s;break}}else if("9999"!=t)break;u+=4}return o=!0,S(r,n)},y.times=y.mul=function(e){var t,n,r,i,a,s,u,l,c,d=this,p=d.constructor,h=d.d,m=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,(l=h.length)<(c=m.length)&&(a=h,h=m,m=a,s=l,l=c,c=s),a=[],r=s=l+c;r--;)a.push(0);for(r=c;--r>=0;){for(t=0,i=l+r;i>r;)u=a[i]+m[r]*h[i-r-1]+t,a[i--]=u%f|0,t=u/f|0;a[i]=(a[i]+t)%f|0}for(;!a[--s];)a.pop();return t?++n:a.shift(),e.d=a,e.e=n,o?S(e,p.precision):e},y.toDecimalPlaces=y.todp=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(g(e,0,r),void 0===t?t=i.rounding:g(t,0,8),S(n,e+x(n)+1,t))},y.toExponential=function(e,t){var n,i=this,o=i.constructor;return void 0===e?n=P(i,!0):(g(e,0,r),void 0===t?t=o.rounding:g(t,0,8),n=P(i=S(new o(i),e+1,t),!0,e+1)),n},y.toFixed=function(e,t){var n,i,o=this,a=o.constructor;return void 0===e?P(o):(g(e,0,r),void 0===t?t=a.rounding:g(t,0,8),n=P((i=S(new a(o),e+x(o)+1,t)).abs(),!1,e+x(i)+1),o.isneg()&&!o.isZero()?"-"+n:n)},y.toInteger=y.toint=function(){var e=this,t=e.constructor;return S(new t(e),x(e)+1,t.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(e){var t,r,i,s,u,c,d=this,f=d.constructor,m=+(e=new f(e));if(!e.s)return new f(n);if(!(d=new f(d)).s){if(e.s<1)throw Error(a+"Infinity");return d}if(d.eq(n))return d;if(i=f.precision,e.eq(n))return S(d,i);if(c=(t=e.e)>=(r=e.d.length-1),u=d.s,c){if((r=m<0?-m:m)<=h){for(s=new f(n),t=Math.ceil(i/p+4),o=!1;r%2&&O((s=s.times(d)).d,t),0!==(r=l(r/2));)O((d=d.times(d)).d,t);return o=!0,e.s<0?new f(n).div(s):S(s,i)}}else if(u<0)throw Error(a+"NaN");return u=u<0&&1&e.d[Math.max(t,r)]?-1:1,d.s=1,o=!1,s=e.times(C(d,i+12)),o=!0,(s=w(s)).s=u,s},y.toPrecision=function(e,t){var n,i,o=this,a=o.constructor;return void 0===e?i=P(o,(n=x(o))<=a.toExpNeg||n>=a.toExpPos):(g(e,1,r),void 0===t?t=a.rounding:g(t,0,8),i=P(o=S(new a(o),e,t),e<=(n=x(o))||n<=a.toExpNeg,e)),i},y.toSignificantDigits=y.tosd=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(g(e,1,r),void 0===t?t=n.rounding:g(t,0,8)),S(new n(this),e,t)},y.toString=y.valueOf=y.val=y.toJSON=function(){var e=this,t=x(e),n=e.constructor;return P(e,t<=n.toExpNeg||t>=n.toExpPos)};var v=function(){function e(e,t){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%f|0,r=n/f|0;return r&&e.unshift(r),e}function t(e,t,n,r){var i,o;if(n!=r)o=n>r?1:-1;else for(i=o=0;i<n;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=e[n]<t[n]?1:0,e[n]=r*f+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,o,s){var u,l,c,d,h,m,y,A,g,b,v,w,E,T,C,k,I,P,O=r.constructor,N=r.s==i.s?1:-1,R=r.d,M=i.d;if(!r.s)return new O(r);if(!i.s)throw Error(a+"Division by zero");for(l=r.e-i.e,I=M.length,C=R.length,A=(y=new O(N)).d=[],c=0;M[c]==(R[c]||0);)++c;if(M[c]>(R[c]||0)&&--l,(w=null==o?o=O.precision:s?o+(x(r)-x(i))+1:o)<0)return new O(0);if(w=w/p+2|0,c=0,1==I)for(d=0,M=M[0],w++;(c<C||d)&&w--;c++)E=d*f+(R[c]||0),A[c]=E/M|0,d=E%M|0;else{for((d=f/(M[0]+1)|0)>1&&(M=e(M,d),R=e(R,d),I=M.length,C=R.length),T=I,b=(g=R.slice(0,I)).length;b<I;)g[b++]=0;(P=M.slice()).unshift(0),k=M[0],M[1]>=f/2&&++k;do{d=0,(u=t(M,g,I,b))<0?(v=g[0],I!=b&&(v=v*f+(g[1]||0)),(d=v/k|0)>1?(d>=f&&(d=f-1),1==(u=t(h=e(M,d),g,m=h.length,b=g.length))&&(d--,n(h,I<m?P:M,m))):(0==d&&(u=d=1),h=M.slice()),(m=h.length)<b&&h.unshift(0),n(g,h,b),-1==u&&(u=t(M,g,I,b=g.length))<1&&(d++,n(g,I<b?P:M,b)),b=g.length):0===u&&(d++,g=[0]),A[c++]=d,u&&g[0]?g[b++]=R[T]||0:(g=[R[T]],b=1)}while((T++<C||void 0!==g[0])&&w--)}return A[0]||A.shift(),y.e=l,S(y,s?o+x(y)+1:o)}}();function w(e,t){var r,i,a,s,l,d=0,f=0,p=e.constructor,h=p.precision;if(x(e)>16)throw Error(u+x(e));if(!e.s)return new p(n);for(null==t?(o=!1,l=h):l=t,s=new p(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(l+=Math.log(c(2,f))/Math.LN10*2+5|0,r=i=a=new p(n),p.precision=l;;){if(i=S(i.times(e),l),r=r.times(++d),b((s=a.plus(v(i,r,l))).d).slice(0,l)===b(a.d).slice(0,l)){for(;f--;)a=S(a.times(a),l);return p.precision=h,null==t?(o=!0,S(a,h)):a}a=s}}function x(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function E(e,t,n){if(t>e.LN10.sd())throw o=!0,n&&(e.precision=n),Error(a+"LN10 precision limit exceeded");return S(new e(e.LN10),t)}function T(e){for(var t="";e--;)t+="0";return t}function C(e,t){var r,i,s,u,l,c,d,f,p,h=1,m=e,y=m.d,A=m.constructor,g=A.precision;if(m.s<1)throw Error(a+(m.s?"NaN":"-Infinity"));if(m.eq(n))return new A(0);if(null==t?(o=!1,f=g):f=t,m.eq(10))return null==t&&(o=!0),E(A,f);if(f+=10,A.precision=f,i=(r=b(y)).charAt(0),u=x(m),!(Math.abs(u)<15e14))return d=E(A,f+2,g).times(u+""),m=C(new A(i+"."+r.slice(1)),f-10).plus(d),A.precision=g,null==t?(o=!0,S(m,g)):m;for(;i<7&&1!=i||1==i&&r.charAt(1)>3;)i=(r=b((m=m.times(e)).d)).charAt(0),h++;for(u=x(m),i>1?(m=new A("0."+r),u++):m=new A(i+"."+r.slice(1)),c=l=m=v(m.minus(n),m.plus(n),f),p=S(m.times(m),f),s=3;;){if(l=S(l.times(p),f),b((d=c.plus(v(l,new A(s),f))).d).slice(0,f)===b(c.d).slice(0,f))return c=c.times(2),0!==u&&(c=c.plus(E(A,f+2,g).times(u+""))),c=v(c,new A(h),f),A.precision=g,null==t?(o=!0,S(c,g)):c;c=d,s+=2}}function k(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);)++r;for(i=t.length;48===t.charCodeAt(i-1);)--i;if(t=t.slice(r,i)){if(i-=r,n=n-r-1,e.e=l(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=p;r<i;)e.d.push(+t.slice(r,r+=p));t=t.slice(r),r=p-t.length}else r-=i;for(;r--;)t+="0";if(e.d.push(+t),o&&(e.e>m||e.e<-m))throw Error(u+n)}else e.s=0,e.e=0,e.d=[0];return e}function S(e,t,n){var r,i,a,s,d,h,y,A,g=e.d;for(s=1,a=g[0];a>=10;a/=10)s++;if((r=t-s)<0)r+=p,i=t,y=g[A=0];else{if((A=Math.ceil((r+1)/p))>=(a=g.length))return e;for(y=a=g[A],s=1;a>=10;a/=10)s++;i=(r%=p)-p+s}if(void 0!==n&&(d=y/(a=c(10,s-i-1))%10|0,h=t<0||void 0!==g[A+1]||y%a,h=n<4?(d||h)&&(0==n||n==(e.s<0?3:2)):d>5||5==d&&(4==n||h||6==n&&(r>0?i>0?y/c(10,s-i):0:g[A-1])%10&1||n==(e.s<0?8:7))),t<1||!g[0])return h?(a=x(e),g.length=1,t=t-a-1,g[0]=c(10,(p-t%p)%p),e.e=l(-t/p)||0):(g.length=1,g[0]=e.e=e.s=0),e;if(0==r?(g.length=A,a=1,A--):(g.length=A+1,a=c(10,p-r),g[A]=i>0?(y/c(10,s-i)%c(10,i)|0)*a:0),h)for(;;){if(0==A){(g[0]+=a)==f&&(g[0]=1,++e.e);break}if(g[A]+=a,g[A]!=f)break;g[A--]=0,a=1}for(r=g.length;0===g[--r];)g.pop();if(o&&(e.e>m||e.e<-m))throw Error(u+x(e));return e}function I(e,t){var n,r,i,a,s,u,l,c,d,h,m=e.constructor,y=m.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new m(e),o?S(t,y):t;if(l=e.d,h=t.d,r=t.e,c=e.e,l=l.slice(),s=c-r){for((d=s<0)?(n=l,s=-s,u=h.length):(n=h,r=c,u=l.length),s>(i=Math.max(Math.ceil(y/p),u)+2)&&(s=i,n.length=1),n.reverse(),i=s;i--;)n.push(0);n.reverse()}else{for((d=(i=l.length)<(u=h.length))&&(u=i),i=0;i<u;i++)if(l[i]!=h[i]){d=l[i]<h[i];break}s=0}for(d&&(n=l,l=h,h=n,t.s=-t.s),u=l.length,i=h.length-u;i>0;--i)l[u++]=0;for(i=h.length;i>s;){if(l[--i]<h[i]){for(a=i;a&&0===l[--a];)l[a]=f-1;--l[a],l[i]+=f}l[i]-=h[i]}for(;0===l[--u];)l.pop();for(;0===l[0];l.shift())--r;return l[0]?(t.d=l,t.e=r,o?S(t,y):t):new m(0)}function P(e,t,n){var r,i=x(e),o=b(e.d),a=o.length;return t?(n&&(r=n-a)>0?o=o.charAt(0)+"."+o.slice(1)+T(r):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+T(-i-1)+o,n&&(r=n-a)>0&&(o+=T(r))):i>=a?(o+=T(i+1-a),n&&(r=n-i-1)>0&&(o=o+"."+T(r))):((r=i+1)<a&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-a)>0&&(i+1===a&&(o+="."),o+=T(r))),e.s<0?"-"+o:o}function O(e,t){if(e.length>t)return e.length=t,!0}function N(e){if(!e||"object"!=typeof e)throw Error(a+"Object expected");var t,n,i,o=["precision",1,r,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<o.length;t+=3)if(void 0!==(i=e[n=o[t]])){if(!(l(i)===i&&i>=o[t+1]&&i<=o[t+2]))throw Error(s+n+": "+i);this[n]=i}if(void 0!==(i=e[n="LN10"])){if(i!=Math.LN10)throw Error(s+n+": "+i);this[n]=new this(i)}return this}i=function e(t){var n,r,i;function o(e){var t=this;if(!(t instanceof o))return new o(e);if(t.constructor=o,e instanceof o)return t.s=e.s,t.e=e.e,void(t.d=(e=e.d)?e.slice():e);if("number"==typeof e){if(0*e!=0)throw Error(s+e);if(e>0)t.s=1;else{if(!(e<0))return t.s=0,t.e=0,void(t.d=[0]);e=-e,t.s=-1}return e===~~e&&e<1e7?(t.e=0,void(t.d=[e])):k(t,e.toString())}if("string"!=typeof e)throw Error(s+e);if(45===e.charCodeAt(0)?(e=e.slice(1),t.s=-1):t.s=1,!d.test(e))throw Error(s+e);k(t,e)}if(o.prototype=y,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.clone=e,o.config=o.set=N,void 0===t&&(t={}),t)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n<i.length;)t.hasOwnProperty(r=i[n++])||(t[r]=this[r]);return o.config(t),o}(i),i.default=i.Decimal=i,n=new i(1),e.exports?e.exports=i:(t||(t="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),t.Decimal=i)}(ze)}(UA);var HA=_e(UA.exports),WA={exports:{}};!function(e){!function(t){var n,r=1e6,i=1e6,o="[big.js] ",a=o+"Invalid ",s=a+"decimal places",u=a+"rounding mode",l=o+"Division by zero",c={},d=void 0,f=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function p(e,t,n,r){var i=e.c,o=e.e+t+1;if(o<i.length){if(1===n)r=i[o]>=5;else if(2===n)r=i[o]>5||5==i[o]&&(r||o<0||i[o+1]!==d||1&i[o-1]);else if(3===n)r=r||!!i[0];else if(r=!1,0!==n)throw Error(u);if(o<1)i.length=1,r?(e.e=-t,i[0]=1):i[0]=e.e=0;else{if(i.length=o--,r)for(;++i[o]>9;)i[o]=0,o--||(++e.e,i.unshift(1));for(o=i.length;!i[--o];)i.pop()}}else if(n<0||n>3||n!==~~n)throw Error(u);return e}function h(e,t,n,i){var o,u,l=e.constructor,c=!e.c[0];if(n!==d){if(n!==~~n||n<(3==t)||n>r)throw Error(3==t?a+"precision":s);for(n=i-(e=new l(e)).e,e.c.length>++i&&p(e,n,l.RM),2==t&&(i=e.e+n+1);e.c.length<i;)e.c.push(0)}if(o=e.e,n=(u=e.c.join("")).length,2!=t&&(1==t||3==t&&i<=o||o<=l.NE||o>=l.PE))u=u.charAt(0)+(n>1?"."+u.slice(1):"")+(o<0?"e":"e+")+o;else if(o<0){for(;++o;)u="0"+u;u="0."+u}else if(o>0)if(++o>n)for(o-=n;o--;)u+="0";else o<n&&(u=u.slice(0,o)+"."+u.slice(o));else n>1&&(u=u.charAt(0)+"."+u.slice(1));return e.s<0&&(!c||4==t)?"-"+u:u}c.abs=function(){var e=new this.constructor(this);return e.s=1,e},c.cmp=function(e){var t,n=this,r=n.c,i=(e=new n.constructor(e)).c,o=n.s,a=e.s,s=n.e,u=e.e;if(!r[0]||!i[0])return r[0]?o:i[0]?-a:0;if(o!=a)return o;if(t=o<0,s!=u)return s>u^t?1:-1;for(a=(s=r.length)<(u=i.length)?s:u,o=-1;++o<a;)if(r[o]!=i[o])return r[o]>i[o]^t?1:-1;return s==u?0:s>u^t?1:-1},c.div=function(e){var t=this,n=t.constructor,i=t.c,o=(e=new n(e)).c,a=t.s==e.s?1:-1,u=n.DP;if(u!==~~u||u<0||u>r)throw Error(s);if(!o[0])throw Error(l);if(!i[0])return new n(0*a);var c,f,h,m,y,A=o.slice(),g=c=o.length,b=i.length,v=i.slice(0,c),w=v.length,x=e,E=x.c=[],T=0,C=u+(x.e=t.e-e.e)+1;for(x.s=a,a=C<0?0:C,A.unshift(0);w++<c;)v.push(0);do{for(h=0;h<10;h++){if(c!=(w=v.length))m=c>w?1:-1;else for(y=-1,m=0;++y<c;)if(o[y]!=v[y]){m=o[y]>v[y]?1:-1;break}if(!(m<0))break;for(f=w==c?o:A;w;){if(v[--w]<f[w]){for(y=w;y&&!v[--y];)v[y]=9;--v[y],v[w]+=10}v[w]-=f[w]}for(;!v[0];)v.shift()}E[T++]=m?h:++h,v[0]&&m?v[w]=i[g]||0:v=[i[g]]}while((g++<b||v[0]!==d)&&a--);return E[0]||1==T||(E.shift(),x.e--),T>C&&p(x,u,n.RM,v[0]!==d),x},c.eq=function(e){return!this.cmp(e)},c.gt=function(e){return this.cmp(e)>0},c.gte=function(e){return this.cmp(e)>-1},c.lt=function(e){return this.cmp(e)<0},c.lte=function(e){return this.cmp(e)<1},c.minus=c.sub=function(e){var t,n,r,i,o=this,a=o.constructor,s=o.s,u=(e=new a(e)).s;if(s!=u)return e.s=-u,o.plus(e);var l=o.c.slice(),c=o.e,d=e.c,f=e.e;if(!l[0]||!d[0])return d[0]?(e.s=-u,e):new a(l[0]?o:0);if(s=c-f){for((i=s<0)?(s=-s,r=l):(f=c,r=d),r.reverse(),u=s;u--;)r.push(0);r.reverse()}else for(n=((i=l.length<d.length)?l:d).length,s=u=0;u<n;u++)if(l[u]!=d[u]){i=l[u]<d[u];break}if(i&&(r=l,l=d,d=r,e.s=-e.s),(u=(n=d.length)-(t=l.length))>0)for(;u--;)l[t++]=0;for(u=t;n>s;){if(l[--n]<d[n]){for(t=n;t&&!l[--t];)l[t]=9;--l[t],l[n]+=10}l[n]-=d[n]}for(;0===l[--u];)l.pop();for(;0===l[0];)l.shift(),--f;return l[0]||(e.s=1,l=[f=0]),e.c=l,e.e=f,e},c.mod=function(e){var t,n=this,r=n.constructor,i=n.s,o=(e=new r(e)).s;if(!e.c[0])throw Error(l);return n.s=e.s=1,t=1==e.cmp(n),n.s=i,e.s=o,t?new r(n):(i=r.DP,o=r.RM,r.DP=r.RM=0,n=n.div(e),r.DP=i,r.RM=o,this.minus(n.times(e)))},c.plus=c.add=function(e){var t,n=this,r=n.constructor,i=n.s,o=(e=new r(e)).s;if(i!=o)return e.s=-o,n.minus(e);var a=n.e,s=n.c,u=e.e,l=e.c;if(!s[0]||!l[0])return l[0]?e:new r(s[0]?n:0*i);if(s=s.slice(),i=a-u){for(i>0?(u=a,t=l):(i=-i,t=s),t.reverse();i--;)t.push(0);t.reverse()}for(s.length-l.length<0&&(t=l,l=s,s=t),i=l.length,o=0;i;s[i]%=10)o=(s[--i]=s[i]+l[i]+o)/10|0;for(o&&(s.unshift(o),++u),i=s.length;0===s[--i];)s.pop();return e.c=s,e.e=u,e},c.pow=function(e){var t=this,n=new t.constructor(1),r=n,o=e<0;if(e!==~~e||e<-1e6||e>i)throw Error(a+"exponent");for(o&&(e=-e);1&e&&(r=r.times(t)),e>>=1;)t=t.times(t);return o?n.div(r):r},c.round=function(e,t){var n=this.constructor;if(e===d)e=0;else if(e!==~~e||e<-r||e>r)throw Error(s);return p(new n(this),e,t===d?n.RM:t)},c.sqrt=function(){var e,t,n,r=this,i=r.constructor,a=r.s,s=r.e,u=new i(.5);if(!r.c[0])return new i(r);if(a<0)throw Error(o+"No square root");0===(a=Math.sqrt(r+""))||a===1/0?((t=r.c.join("")).length+s&1||(t+="0"),s=((s+1)/2|0)-(s<0||1&s),e=new i(((a=Math.sqrt(t))==1/0?"1e":(a=a.toExponential()).slice(0,a.indexOf("e")+1))+s)):e=new i(a),s=e.e+(i.DP+=4);do{n=e,e=u.times(n.plus(r.div(n)))}while(n.c.slice(0,s).join("")!==e.c.slice(0,s).join(""));return p(e,i.DP-=4,i.RM)},c.times=c.mul=function(e){var t,n=this,r=n.constructor,i=n.c,o=(e=new r(e)).c,a=i.length,s=o.length,u=n.e,l=e.e;if(e.s=n.s==e.s?1:-1,!i[0]||!o[0])return new r(0*e.s);for(e.e=u+l,a<s&&(t=i,i=o,o=t,l=a,a=s,s=l),t=new Array(l=a+s);l--;)t[l]=0;for(u=s;u--;){for(s=0,l=a+u;l>u;)s=t[l]+o[u]*i[l-u-1]+s,t[l--]=s%10,s=s/10|0;t[l]=(t[l]+s)%10}for(s?++e.e:t.shift(),u=t.length;!t[--u];)t.pop();return e.c=t,e},c.toExponential=function(e){return h(this,1,e,e)},c.toFixed=function(e){return h(this,2,e,this.e+e)},c.toPrecision=function(e){return h(this,3,e,e-1)},c.toString=function(){return h(this)},c.valueOf=c.toJSON=function(){return h(this,4)},n=function e(){function t(n){var r=this;if(!(r instanceof t))return n===d?e():new t(n);n instanceof t?(r.s=n.s,r.e=n.e,r.c=n.c.slice()):function(e,t){var n,r,i;if(0===t&&1/t<0)t="-0";else if(!f.test(t+=""))throw Error(a+"number");e.s="-"==t.charAt(0)?(t=t.slice(1),-1):1,(n=t.indexOf("."))>-1&&(t=t.replace(".",""));(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length);for(i=t.length,r=0;r<i&&"0"==t.charAt(r);)++r;if(r==i)e.c=[e.e=0];else{for(;i>0&&"0"==t.charAt(--i););for(e.e=n-r-1,e.c=[],n=0;r<=i;)e.c[n++]=+t.charAt(r++)}}(r,n),r.constructor=t}return t.prototype=c,t.DP=20,t.RM=1,t.NE=-7,t.PE=21,t.version="5.2.2",t}(),n.default=n.Big=n,e.exports?e.exports=n:t.Big=n}(ze)}(WA);var VA=_e(WA.exports),qA={exports:{}};!function(e){e.exports&&(e.exports=function(e){return e.prototype.toFormat=function(e,t,n){if(!this.e&&0!==this.e)return this.toString();var r,i,o,a,s,u,l,c,d,f,p,h,m,y,A,g=this.format||{},b=this.constructor.format||{};if(e!=s?"object"==typeof e?(n=e,e=s):t!=s?"object"==typeof t?(n=t,t=s):"object"!=typeof n&&(n={}):n={}:n={},c=(r=this.toFixed(e,t).split("."))[0],d=r[1],u=(l=this.s<0?c.slice(1):c).length,(f=n.decimalSeparator)==s&&(f=g.decimalSeparator)==s&&(f=b.decimalSeparator)==s&&(f="."),(p=n.groupSeparator)==s&&(p=g.groupSeparator)==s&&(p=b.groupSeparator),p&&((h=n.groupSize)==s&&(h=g.groupSize)==s&&(h=b.groupSize)==s&&(h=0),(m=n.secondaryGroupSize)==s&&(m=g.secondaryGroupSize)==s&&(m=b.secondaryGroupSize)==s&&(m=0),m?(i=+m,u-=o=+h):(i=+h,o=+m),i>0&&u>0)){for(a=u%i||i,c=l.substr(0,a);a<u;a+=i)c+=p+l.substr(a,i);o>0&&(c+=p+l.slice(a)),this.s<0&&(c="-"+c)}return d?((y=n.fractionGroupSeparator)==s&&(y=g.fractionGroupSeparator)==s&&(y=b.fractionGroupSeparator),y&&((A=n.fractionGroupSize)==s&&(A=g.fractionGroupSize)==s&&(A=b.fractionGroupSize)==s&&(A=0),(A=+A)&&(d=d.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+y))),c+f+d):c},e.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:"",fractionGroupSize:0},e})}(qA);var XA,GA,ZA,YA=_e(qA.exports);!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.BNB=56]="BNB"}(XA||(XA={})),function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(GA||(GA={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(ZA||(ZA={}));var KA,QA,JA=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function $A(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function eg(e,t,n){return t&&$A(e.prototype,t),n&&$A(e,n),e}function tg(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var ng=YA(HA),rg=YA(VA),ig=((KA={})[ZA.ROUND_DOWN]=ng.ROUND_DOWN,KA[ZA.ROUND_HALF_UP]=ng.ROUND_HALF_UP,KA[ZA.ROUND_UP]=ng.ROUND_UP,KA),og=((QA={})[ZA.ROUND_DOWN]=0,QA[ZA.ROUND_HALF_UP]=1,QA[ZA.ROUND_UP]=3,QA),ag=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=ZA.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),ng.set({precision:e+1,rounding:ig[n]});var r=new ng(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=ZA.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),rg.DP=e,rg.RM=og[n],new rg(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},eg(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),sg=YA(VA),ug=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,JA)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}tg(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=ZA.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=ZA.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),sg.DP=this.currency.decimals,new sg(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},eg(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(ag),lg=new ag(jA.BigInt(100));function cg(e){return new dg(e.numerator,e.denominator)}var dg=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}tg(t,e);var n=t.prototype;return n.add=function(t){return cg(e.prototype.add.call(this,t))},n.subtract=function(t){return cg(e.prototype.subtract.call(this,t))},n.multiply=function(t){return cg(e.prototype.multiply.call(this,t))},n.divide=function(t){return cg(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,lg).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,lg).toFixed(t,n,r)},t}(ag);var fg=/^0x[0-9a-fA-F]{40}$/;var pg,hg,mg=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(fg.test(e))return e;throw new Error(e+" is not a valid address.")}(n):function(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}(n),s}tg(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},eg(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));(pg={})[1]=new mg(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),pg[3]=new mg(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),pg[4]=new mg(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),pg[5]=new mg(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),pg[42]=new mg(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),pg[10]=new mg(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),pg[69]=new mg(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),pg[42161]=new mg(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),pg[421611]=new mg(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),hg="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};var yg=hg;function Ag(e,t){var n={seen:[],stylize:bg};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),Eg(t)?n.showHidden=t:t&&function(e,t){if(!t||!Ig(t))return e;var n=Object.keys(t),r=n.length;for(;r--;)e[n[r]]=t[n[r]]}(n,t),kg(n.showHidden)&&(n.showHidden=!1),kg(n.depth)&&(n.depth=2),kg(n.colors)&&(n.colors=!1),kg(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=gg),vg(n,e,n.depth)}function gg(e,t){var n=Ag.styles[t];return n?"["+Ag.colors[n][0]+"m"+e+"["+Ag.colors[n][1]+"m":e}function bg(e,t){return e}function vg(e,t,n){if(e.customInspect&&t&&Ng(t.inspect)&&t.inspect!==Ag&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return Cg(r)||(r=vg(e,r,n)),r}var i=function(e,t){if(kg(t))return e.stylize("undefined","undefined");if(Cg(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(r=t,"number"==typeof r)return e.stylize(""+t,"number");var r;if(Eg(t))return e.stylize(""+t,"boolean");if(Tg(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Og(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return wg(t);if(0===o.length){if(Ng(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Sg(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Pg(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Og(t))return wg(t)}var u,l="",c=!1,d=["{","}"];(function(e){return Array.isArray(e)}(t)&&(c=!0,d=["[","]"]),Ng(t))&&(l=" [Function"+(t.name?": "+t.name:"")+"]");return Sg(t)&&(l=" "+RegExp.prototype.toString.call(t)),Pg(t)&&(l=" "+Date.prototype.toUTCString.call(t)),Og(t)&&(l=" "+wg(t)),0!==o.length||c&&0!=t.length?n<0?Sg(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),u=c?function(e,t,n,r,i){for(var o=[],a=0,s=t.length;a<s;++a)Lg(t,String(a))?o.push(xg(e,t,n,r,String(a),!0)):o.push("");return i.forEach((function(i){i.match(/^\d+$/)||o.push(xg(e,t,n,r,i,!0))})),o}(e,t,n,a,o):o.map((function(r){return xg(e,t,n,a,r,c)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(r>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,l,d)):d[0]+l+d[1]}function wg(e){return"["+Error.prototype.toString.call(e)+"]"}function xg(e,t,n,r,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),Lg(r,i)||(a="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=Tg(n)?vg(e,u.value,null):vg(e,u.value,n-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),kg(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function Eg(e){return"boolean"==typeof e}function Tg(e){return null===e}function Cg(e){return"string"==typeof e}function kg(e){return void 0===e}function Sg(e){return Ig(e)&&"[object RegExp]"===Mg(e)}function Ig(e){return"object"==typeof e&&null!==e}function Pg(e){return Ig(e)&&"[object Date]"===Mg(e)}function Og(e){return Ig(e)&&("[object Error]"===Mg(e)||e instanceof Error)}function Ng(e){return"function"==typeof e}function Rg(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function Mg(e){return Object.prototype.toString.call(e)}function Lg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Dg(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0}Ag.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Ag.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Fg,Bg=Object.prototype.hasOwnProperty,jg=Object.keys||function(e){var t=[];for(var n in e)Bg.call(e,n)&&t.push(n);return t},zg=Array.prototype.slice;function _g(){return void 0!==Fg?Fg:Fg="foo"===function(){}.name}function Ug(e){return Object.prototype.toString.call(e)}function Hg(e){return!Ut(e)&&("function"==typeof We.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function Wg(e,t){e||Jg(e,!0,t,"==",$g)}var Vg,qg,Xg,Gg=/\s*function\s+([^\(\s]*)\s*/;function Zg(e){if(Ng(e)){if(_g())return e.name;var t=e.toString().match(Gg);return t&&t[1]}}function Yg(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return Kg(Qg(e.actual),128)+" "+e.operator+" "+Kg(Qg(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||Jg;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=Zg(t),o=r.indexOf("\n"+i);if(o>=0){var a=r.indexOf("\n",o+1);r=r.substring(a+1)}this.stack=r}}}function Kg(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function Qg(e){if(_g()||!Ng(e))return Ag(e);var t=Zg(e);return"[Function"+(t?": "+t:"")+"]"}function Jg(e,t,n,r,i){throw new Yg({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function $g(e,t){e||Jg(e,!0,t,"==",$g)}function eb(e,t,n,r){if(e===t)return!0;if(Ut(e)&&Ut(t))return 0===Dg(e,t);if(Pg(e)&&Pg(t))return e.getTime()===t.getTime();if(Sg(e)&&Sg(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(Hg(e)&&Hg(t)&&Ug(e)===Ug(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===Dg(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(Ut(e)!==Ut(t))return!1;var i=(r=r||{actual:[],expected:[]}).actual.indexOf(e);return-1!==i&&i===r.expected.indexOf(t)||(r.actual.push(e),r.expected.push(t),function(e,t,n,r){if(null==e||null==t)return!1;if(Rg(e)||Rg(t))return e===t;if(n&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=tb(e),o=tb(t);if(i&&!o||!i&&o)return!1;if(i)return eb(e=zg.call(e),t=zg.call(t),n);var a,s,u=jg(e),l=jg(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),s=u.length-1;s>=0;s--)if(u[s]!==l[s])return!1;for(s=u.length-1;s>=0;s--)if(!eb(e[a=u[s]],t[a],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function tb(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function nb(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function rb(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&Jg(i,n,"Missing expected exception"+r);var o="string"==typeof r,a=!e&&i&&!n;if((!e&&Og(i)&&o&&nb(i,n)||a)&&Jg(i,n,"Got unwanted exception"+r),e&&i&&n&&!nb(i,n)||!e&&i)throw i}function ib(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ob(e,t,n){return t&&ib(e.prototype,t),n&&ib(e,n),e}function ab(){return ab=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ab.apply(this,arguments)}function sb(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}Wg.AssertionError=Yg,yg(Yg,Error),Wg.fail=Jg,Wg.ok=$g,Wg.equal=function e(t,n,r){t!=n&&Jg(t,n,r,"==",e)},Wg.notEqual=function e(t,n,r){t==n&&Jg(t,n,r,"!=",e)},Wg.deepEqual=function e(t,n,r){eb(t,n,!1)||Jg(t,n,r,"deepEqual",e)},Wg.deepStrictEqual=function e(t,n,r){eb(t,n,!0)||Jg(t,n,r,"deepStrictEqual",e)},Wg.notDeepEqual=function e(t,n,r){eb(t,n,!1)&&Jg(t,n,r,"notDeepEqual",e)},Wg.notDeepStrictEqual=function e(t,n,r){eb(t,n,!0)&&Jg(t,n,r,"notDeepStrictEqual",e)},Wg.strictEqual=function e(t,n,r){t!==n&&Jg(t,n,r,"===",e)},Wg.notStrictEqual=function e(t,n,r){t===n&&Jg(t,n,r,"!==",e)},Wg.throws=function(e,t,n){rb(!0,e,t,n)},Wg.doesNotThrow=function(e,t,n){rb(!1,e,t,n)},Wg.ifError=function(e){if(e)throw e},function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(Vg||(Vg={})),Vg.MAINNET,Vg.OPTIMISM,Vg.OPTIMISM_GOERLI,Vg.ARBITRUM_ONE,Vg.ARBITRUM_GOERLI,Vg.POLYGON,Vg.POLYGON_MUMBAI,Vg.GOERLI,Vg.SEPOLIA,Vg.CELO_ALFAJORES,Vg.CELO,Vg.BNB,Vg.AVALANCHE,Vg.BASE,Vg.BASE_GOERLI,function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(qg||(qg={}));Vg.MAINNET,Vg.GOERLI;Vg.OPTIMISM,Vg.ARBITRUM_ONE,Vg.POLYGON,Vg.POLYGON_MUMBAI,Vg.SEPOLIA;var ub,lb,cb={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},db=ab({},cb,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),fb=ab({},cb,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),pb=cb,hb=ab({},cb,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),mb=cb,yb={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(Xg={})[Vg.MAINNET]=db,Xg[Vg.OPTIMISM]=pb,Xg[Vg.ARBITRUM_ONE]=hb,Xg[Vg.POLYGON]=mb,Xg[Vg.POLYGON_MUMBAI]=mb,Xg[Vg.GOERLI]=fb,Xg[Vg.CELO]=yb,Xg[Vg.CELO_ALFAJORES]=yb,Xg[Vg.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},Xg[Vg.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},Xg[Vg.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},Xg[Vg.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},Xg[Vg.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},Xg[Vg.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},Xg[Vg.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[Vg.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[Vg.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[Vg.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[Vg.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[Vg.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(ub||(ub={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(lb||(lb={}));var Ab,gb,bb=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),vb=YA(HA),wb=YA(VA),xb=((Ab={})[lb.ROUND_DOWN]=vb.ROUND_DOWN,Ab[lb.ROUND_HALF_UP]=vb.ROUND_HALF_UP,Ab[lb.ROUND_UP]=vb.ROUND_UP,Ab),Eb=((gb={})[lb.ROUND_DOWN]=0,gb[lb.ROUND_HALF_UP]=1,gb[lb.ROUND_UP]=3,gb),Tb=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=lb.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),vb.set({precision:e+1,rounding:xb[n]});var r=new vb(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=lb.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),wb.DP=e,wb.RM=Eb[n],new wb(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},ob(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),Cb=YA(VA),kb=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,bb)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}sb(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=lb.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=lb.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),Cb.DP=this.currency.decimals,new Cb(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},ob(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(Tb),Sb=new Tb(jA.BigInt(100));function Ib(e){return new Pb(e.numerator,e.denominator)}var Pb=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}sb(t,e);var n=t.prototype;return n.add=function(t){return Ib(e.prototype.add.call(this,t))},n.subtract=function(t){return Ib(e.prototype.subtract.call(this,t))},n.multiply=function(t){return Ib(e.prototype.multiply.call(this,t))},n.divide=function(t){return Ib(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,Sb).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,Sb).toFixed(t,n,r)},t}(Tb),Ob=function(e){function t(){for(var t,n,r,i,o,a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],o=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),c=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=c[0],r=c[1],i=c[2],o=c[3]}return(t=e.call(this,o,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new Tb(jA.exponentiate(jA.BigInt(10),jA.BigInt(n.decimals)),jA.exponentiate(jA.BigInt(10),jA.BigInt(r.decimals))),t}sb(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||_A(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||_A(!1);var n=e.prototype.multiply.call(this,t);return kb.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},ob(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(Tb);function Nb(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}var Rb=/^0x[0-9a-fA-F]{40}$/;var Mb,Lb=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(Rb.test(e))return e;throw new Error(e+" is not a valid address.")}(n):Nb(n),s}sb(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},ob(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));function Db(e,t,n,r){if(n>0||_A(!1),e.length<=n||_A(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var o=0,a=e.length;o<a;){var s=o+a>>>1;r(e[s],t)<=0?o=s+1:a=s}return e.splice(o,0,t),i?e.pop():null}(Mb={})[1]=new Lb(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),Mb[3]=new Lb(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Mb[4]=new Lb(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Mb[5]=new Lb(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),Mb[42]=new Lb(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),Mb[10]=new Lb(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Mb[69]=new Lb(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Mb[42161]=new Lb(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),Mb[421611]=new Lb(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var Fb=jA.BigInt(Number.MAX_SAFE_INTEGER),Bb=jA.BigInt(0),jb=jA.BigInt(1),zb=jA.BigInt(2);var _b=[{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],Ub=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"},{internalType:"address",name:"_tokenDescriptor_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"DecreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"IncreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Max",type:"uint128"},{internalType:"uint128",name:"amount1Max",type:"uint128"}],internalType:"struct INonfungiblePositionManager.CollectParams",name:"params",type:"tuple"}],name:"collect",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"createAndInitializePoolIfNecessary",outputs:[{internalType:"address",name:"pool",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.DecreaseLiquidityParams",name:"params",type:"tuple"}],name:"decreaseLiquidity",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"positions",outputs:[{internalType:"uint96",name:"nonce",type:"uint96"},{internalType:"address",name:"operator",type:"address"},{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount0Owed",type:"uint256"},{internalType:"uint256",name:"amount1Owed",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3MintCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],Hb=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"}],Wb=[{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"}],Vb=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],qb=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactInputSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactOutputSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],Xb=[{inputs:[{internalType:"contract IUniswapV3Factory",name:"_factory",type:"address"},{internalType:"contract INonfungiblePositionManager",name:"_nonfungiblePositionManager",type:"address"},{internalType:"uint256",name:"_maxIncentiveStartLeadTime",type:"uint256"},{internalType:"uint256",name:"_maxIncentiveDuration",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"DepositTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{indexed:!0,internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{indexed:!1,internalType:"uint256",name:"startTime",type:"uint256"},{indexed:!1,internalType:"uint256",name:"endTime",type:"uint256"},{indexed:!1,internalType:"address",name:"refundee",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"IncentiveCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"refund",type:"uint256"}],name:"IncentiveEnded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"RewardClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"}],name:"TokenStaked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"TokenUnstaked",type:"event"},{inputs:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"claimReward",outputs:[{internalType:"uint256",name:"reward",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"reward",type:"uint256"}],name:"createIncentive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"deposits",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint48",name:"numberOfStakes",type:"uint48"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"}],name:"endIncentive",outputs:[{internalType:"uint256",name:"refund",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"contract IUniswapV3Factory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRewardInfo",outputs:[{internalType:"uint256",name:"reward",type:"uint256"},{internalType:"uint160",name:"secondsInsideX128",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"incentives",outputs:[{internalType:"uint256",name:"totalRewardUnclaimed",type:"uint256"},{internalType:"uint160",name:"totalSecondsClaimedX128",type:"uint160"},{internalType:"uint96",name:"numberOfStakes",type:"uint96"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveStartLeadTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"nonfungiblePositionManager",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Minimal",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"rewards",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"stakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"stakes",outputs:[{internalType:"uint160",name:"secondsPerLiquidityInsideInitialX128",type:"uint160"},{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"transferDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"unstakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"withdrawToken",outputs:[],stateMutability:"nonpayable",type:"function"}],Gb=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct ISwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct ISwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];function Zb(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function Yb(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){Zb(o,r,i,a,s,"next",e)}function s(e){Zb(o,r,i,a,s,"throw",e)}a(void 0)}))}}function Kb(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Qb(e,t,n){return t&&Kb(e.prototype,t),n&&Kb(e,n),e}function Jb(){return Jb=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jb.apply(this,arguments)}function $b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ev(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return $b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$b(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var tv,nv,rv=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,o=Object.create(i.prototype),a=new I(r||[]);return o._invoke=function(e,t,n){var r=d;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===i)throw o;return O()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=C(a,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===d)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var u=c(e,t,n);if("normal"===u.type){if(r=n.done?h:f,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}(e,n,a),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={};function y(){}function A(){}function g(){}var b={};b[o]=function(){return this};var v=Object.getPrototypeOf,w=v&&v(v(P([])));w&&w!==n&&r.call(w,o)&&(b=w);var x=g.prototype=y.prototype=Object.create(b);function E(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(i,o,a,s){var u=c(e[i],e,o);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,s)}))}s(u.arg)}var i;this._invoke=function(e,r){function o(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(o,o):o()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=c(r,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var o=i.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function P(e){if(e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function n(){for(;++i<e.length;)if(r.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:O}}function O(){return{value:t,done:!0}}return A.prototype=x.constructor=g,g.constructor=A,A.displayName=u(g,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===A||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},e.awrap=function(e){return{__await:e}},E(T.prototype),T.prototype[a]=function(){return this},e.AsyncIterator=T,e.async=function(t,n,r,i,o){void 0===o&&(o=Promise);var a=new T(l(t,n,r,i),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},E(x),u(x,s,"Generator"),x[o]=function(){return this},x.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=P,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(S),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(r,i){return s.type="throw",s.arg=e,n.next=r,i&&(n.method="next",n.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(u&&l){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:P(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),iv="0x1F98431c8aD98523631AE4a59f267346ea31F984",ov="0x0000000000000000000000000000000000000000",av="0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";!function(e){e[e.LOWEST=100]="LOWEST",e[e.LOW=500]="LOW",e[e.MEDIUM=3e3]="MEDIUM",e[e.HIGH=1e4]="HIGH"}(nv||(nv={}));var sv=((tv={})[nv.LOWEST]=1,tv[nv.LOW]=10,tv[nv.MEDIUM]=60,tv[nv.HIGH]=200,tv),uv=jA.BigInt(-1),lv=jA.BigInt(0),cv=jA.BigInt(1),dv=jA.exponentiate(jA.BigInt(2),jA.BigInt(96)),fv=jA.exponentiate(dv,jA.BigInt(2));function pv(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=e.fee,o=e.initCodeHashManualOverride,a=n.sortsBefore(r)?[n,r]:[r,n],s=a[0],u=a[1];return oi(t,eh(["bytes"],[uo.encode(["address","address","uint24"],[s.address,u.address,i])]),null!=o?o:av)}var hv=function(){function e(){}return e.addDelta=function(e,t){return jA.lessThan(t,lv)?jA.subtract(e,jA.multiply(t,uv)):jA.add(e,t)},e}(),mv=function(){function e(){}return e.mulDivRoundingUp=function(e,t,n){var r=jA.multiply(e,t),i=jA.divide(r,n);return jA.notEqual(jA.remainder(r,n),lv)&&(i=jA.add(i,cv)),i},e}(),yv=jA.subtract(jA.exponentiate(jA.BigInt(2),jA.BigInt(160)),cv);function Av(e,t){var n=jA.multiply(e,t);return jA.bitwiseAnd(n,bb)}var gv=function(){function e(){}return e.getAmount0Delta=function(e,t,n,r){if(jA.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}var o=jA.leftShift(n,jA.BigInt(96)),a=jA.subtract(t,e);return r?mv.mulDivRoundingUp(mv.mulDivRoundingUp(o,a,t),cv,e):jA.divide(jA.divide(jA.multiply(o,a),t),e)},e.getAmount1Delta=function(e,t,n,r){if(jA.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}return r?mv.mulDivRoundingUp(n,jA.subtract(t,e),dv):jA.divide(jA.multiply(n,jA.subtract(t,e)),dv)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return jA.greaterThan(e,lv)||_A(!1),jA.greaterThan(t,lv)||_A(!1),r?this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!0)},e.getNextSqrtPriceFromOutput=function(e,t,n,r){return jA.greaterThan(e,lv)||_A(!1),jA.greaterThan(t,lv)||_A(!1),r?this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!1)},e.getNextSqrtPriceFromAmount0RoundingUp=function(e,t,n,r){if(jA.equal(n,lv))return e;var i=jA.leftShift(t,jA.BigInt(96));if(r){var o=Av(n,e);if(jA.equal(jA.divide(o,n),e)){var a=function(e,t){var n=jA.add(e,t);return jA.bitwiseAnd(n,bb)}(i,o);if(jA.greaterThanOrEqual(a,i))return mv.mulDivRoundingUp(i,e,a)}return mv.mulDivRoundingUp(i,cv,jA.add(jA.divide(i,e),n))}var s=Av(n,e);jA.equal(jA.divide(s,n),e)||_A(!1),jA.greaterThan(i,s)||_A(!1);var u=jA.subtract(i,s);return mv.mulDivRoundingUp(i,e,u)},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=jA.lessThanOrEqual(n,yv)?jA.divide(jA.leftShift(n,jA.BigInt(96)),t):jA.divide(jA.multiply(n,dv),t);return jA.add(e,i)}var o=mv.mulDivRoundingUp(n,dv,t);return jA.greaterThan(e,o)||_A(!1),jA.subtract(e,o)},e}(),bv=jA.exponentiate(jA.BigInt(10),jA.BigInt(6)),vv=function(){function e(){}return e.computeSwapStep=function(e,t,n,r,i){var o={},a=jA.greaterThanOrEqual(e,t),s=jA.greaterThanOrEqual(r,lv);if(s){var u=jA.divide(jA.multiply(r,jA.subtract(bv,jA.BigInt(i))),bv);o.amountIn=a?gv.getAmount0Delta(t,e,n,!0):gv.getAmount1Delta(e,t,n,!0),jA.greaterThanOrEqual(u,o.amountIn)?o.sqrtRatioNextX96=t:o.sqrtRatioNextX96=gv.getNextSqrtPriceFromInput(e,n,u,a)}else o.amountOut=a?gv.getAmount1Delta(t,e,n,!1):gv.getAmount0Delta(e,t,n,!1),jA.greaterThanOrEqual(jA.multiply(r,uv),o.amountOut)?o.sqrtRatioNextX96=t:o.sqrtRatioNextX96=gv.getNextSqrtPriceFromOutput(e,n,jA.multiply(r,uv),a);var l=jA.equal(t,o.sqrtRatioNextX96);return a?(o.amountIn=l&&s?o.amountIn:gv.getAmount0Delta(o.sqrtRatioNextX96,e,n,!0),o.amountOut=l&&!s?o.amountOut:gv.getAmount1Delta(o.sqrtRatioNextX96,e,n,!1)):(o.amountIn=l&&s?o.amountIn:gv.getAmount1Delta(e,o.sqrtRatioNextX96,n,!0),o.amountOut=l&&!s?o.amountOut:gv.getAmount0Delta(e,o.sqrtRatioNextX96,n,!1)),!s&&jA.greaterThan(o.amountOut,jA.multiply(r,uv))&&(o.amountOut=jA.multiply(r,uv)),s&&jA.notEqual(o.sqrtRatioNextX96,t)?o.feeAmount=jA.subtract(r,o.amountIn):o.feeAmount=mv.mulDivRoundingUp(o.amountIn,jA.BigInt(i),jA.subtract(bv,jA.BigInt(i))),[o.sqrtRatioNextX96,o.amountIn,o.amountOut,o.feeAmount]},e}(),wv=jA.BigInt(2),xv=[128,64,32,16,8,4,2,1].map((function(e){return[e,jA.exponentiate(wv,jA.BigInt(e))]}));function Ev(e){jA.greaterThan(e,lv)||_A(!1),jA.lessThanOrEqual(e,bb)||_A(!1);for(var t,n=0,r=ev(xv);!(t=r()).done;){var i=t.value,o=i[0],a=i[1];jA.greaterThanOrEqual(e,a)&&(e=jA.signedRightShift(e,jA.BigInt(o)),n+=o)}return n}function Tv(e,t){return jA.signedRightShift(jA.multiply(e,jA.BigInt(t)),jA.BigInt(128))}var Cv=jA.exponentiate(jA.BigInt(2),jA.BigInt(32)),kv=function(){function e(){}return e.getSqrtRatioAtTick=function(t){t>=e.MIN_TICK&&t<=e.MAX_TICK&&Number.isInteger(t)||_A(!1);var n=t<0?-1*t:t,r=0!=(1&n)?jA.BigInt("0xfffcb933bd6fad37aa2d162d1a594001"):jA.BigInt("0x100000000000000000000000000000000");return 0!=(2&n)&&(r=Tv(r,"0xfff97272373d413259a46990580e213a")),0!=(4&n)&&(r=Tv(r,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&n)&&(r=Tv(r,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&n)&&(r=Tv(r,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&n)&&(r=Tv(r,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&n)&&(r=Tv(r,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&n)&&(r=Tv(r,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&n)&&(r=Tv(r,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&n)&&(r=Tv(r,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&n)&&(r=Tv(r,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&n)&&(r=Tv(r,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&n)&&(r=Tv(r,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&n)&&(r=Tv(r,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&n)&&(r=Tv(r,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&n)&&(r=Tv(r,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&n)&&(r=Tv(r,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&n)&&(r=Tv(r,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&n)&&(r=Tv(r,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&n)&&(r=Tv(r,"0x48a170391f7dc42444e8fa2")),t>0&&(r=jA.divide(bb,r)),jA.greaterThan(jA.remainder(r,Cv),lv)?jA.add(jA.divide(r,Cv),cv):jA.divide(r,Cv)},e.getTickAtSqrtRatio=function(t){jA.greaterThanOrEqual(t,e.MIN_SQRT_RATIO)&&jA.lessThan(t,e.MAX_SQRT_RATIO)||_A(!1);var n,r=jA.leftShift(t,jA.BigInt(32)),i=Ev(r);n=jA.greaterThanOrEqual(jA.BigInt(i),jA.BigInt(128))?jA.signedRightShift(r,jA.BigInt(i-127)):jA.leftShift(r,jA.BigInt(127-i));for(var o=jA.leftShift(jA.subtract(jA.BigInt(i),jA.BigInt(128)),jA.BigInt(64)),a=0;a<14;a++){n=jA.signedRightShift(jA.multiply(n,n),jA.BigInt(127));var s=jA.signedRightShift(n,jA.BigInt(128));o=jA.bitwiseOr(o,jA.leftShift(s,jA.BigInt(63-a))),n=jA.signedRightShift(n,s)}var u=jA.multiply(o,jA.BigInt("255738958999603826347141")),l=jA.toNumber(jA.signedRightShift(jA.subtract(u,jA.BigInt("3402992956809132418596140100660247210")),jA.BigInt(128))),c=jA.toNumber(jA.signedRightShift(jA.add(u,jA.BigInt("291339464771989622907027621153398088495")),jA.BigInt(128)));return l===c?l:jA.lessThanOrEqual(e.getSqrtRatioAtTick(c),t)?c:l},e}();kv.MIN_TICK=-887272,kv.MAX_TICK=-kv.MIN_TICK,kv.MIN_SQRT_RATIO=jA.BigInt("4295128739"),kv.MAX_SQRT_RATIO=jA.BigInt("1461446703485210103287273052203988822378723970342");var Sv=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=Yb(rv.mark((function t(n){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var t=Yb(rv.mark((function t(n,r,i){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e}();function Iv(e,t){for(var n=0;n<e.length-1;n++)if(t(e[n],e[n+1])>0)return!1;return!0}function Pv(e,t){return e.index-t.index}Sv.ERROR_MESSAGE="No tick data provider was given";var Ov=function(){function e(){}return e.validateList=function(e,t){t>0||_A(!1),e.every((function(e){return e.index%t==0}))||_A(!1),jA.equal(e.reduce((function(e,t){var n=t.liquidityNet;return jA.add(e,n)}),lv),lv)||_A(!1),Iv(e,Pv)||_A(!1)},e.isBelowSmallest=function(e,t){return e.length>0||_A(!1),t<e[0].index},e.isAtOrAboveLargest=function(e,t){return e.length>0||_A(!1),t>=e[e.length-1].index},e.getTick=function(e,t){var n=e[this.binarySearch(e,t)];return n.index!==t&&_A(!1),n},e.binarySearch=function(e,t){this.isBelowSmallest(e,t)&&_A(!1);for(var n,r=0,i=e.length-1;;){if(e[n=Math.floor((r+i)/2)].index<=t&&(n===e.length-1||e[n+1].index>t))return n;e[n].index<t?r=n+1:i=n-1}},e.nextInitializedTick=function(t,n,r){return r?(e.isBelowSmallest(t,n)&&_A(!1),e.isAtOrAboveLargest(t,n)?t[t.length-1]:t[this.binarySearch(t,n)]):(this.isAtOrAboveLargest(t,n)&&_A(!1),this.isBelowSmallest(t,n)?t[0]:t[this.binarySearch(t,n)+1])},e.nextInitializedTickWithinOneWord=function(t,n,r,i){var o=Math.floor(n/i);if(r){var a=(o>>8<<8)*i;if(e.isBelowSmallest(t,n))return[a,!1];var s=e.nextInitializedTick(t,n,r).index,u=Math.max(a,s);return[u,u===s]}var l=(((o+1>>8)+1<<8)-1)*i;if(this.isAtOrAboveLargest(t,n))return[l,!1];var c=this.nextInitializedTick(t,n,r).index,d=Math.min(l,c);return[d,d===c]},e}();function Nv(e){var t=jA.BigInt(e).toString(16);return t.length%2!=0&&(t="0"+t),"0x"+t}function Rv(e,t){var n=e.input.wrapped,r=e.pools.reduce((function(e,t,n){var r=e.inputToken,i=e.path,o=e.types,a=t.token0.equals(r)?t.token1:t.token0;return 0===n?{inputToken:a,types:["address","uint24","address"],path:[r.address,t.fee,a.address]}:{inputToken:a,types:[].concat(o,["uint24","address"]),path:[].concat(i,[t.fee,a.address])}}),{inputToken:n,path:[],types:[]}),i=r.path,o=r.types;return t?$p(o.reverse(),i.reverse()):$p(o,i)}function Mv(e,t){var n=jA.leftShift(jA.BigInt(e),jA.BigInt(192)),r=jA.BigInt(t);return function(e){if(jA.greaterThanOrEqual(e,Bb)||_A(!1),jA.lessThan(e,Fb))return jA.BigInt(Math.floor(Math.sqrt(jA.toNumber(e))));var t,n;for(t=e,n=jA.add(jA.divide(e,zb),jb);jA.lessThan(n,t);)t=n,n=jA.divide(jA.add(jA.divide(e,n),n),zb);return t}(jA.divide(n,r))}function Lv(e,t,n){if(jA.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=jA.divide(jA.multiply(e,t),dv);return jA.divide(jA.multiply(jA.BigInt(n),i),jA.subtract(t,e))}function Dv(e,t,n){if(jA.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=jA.multiply(jA.multiply(jA.BigInt(n),e),t),o=jA.multiply(dv,jA.subtract(t,e));return jA.divide(i,o)}function Fv(e,t,n){if(jA.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}return jA.divide(jA.multiply(jA.BigInt(n),dv),jA.subtract(t,e))}function Bv(e,t,n,r,i,o){if(jA.greaterThan(t,n)){var a=[n,t];t=a[0],n=a[1]}var s=o?Dv:Lv;if(jA.lessThanOrEqual(e,t))return s(t,n,r);if(jA.lessThan(e,n)){var u=s(e,n,r),l=Fv(t,e,i);return jA.lessThan(u,l)?u:l}return Fv(t,n,i)}var jv=jA.exponentiate(jA.BigInt(2),jA.BigInt(128)),zv=function(){function e(){}return e.getTokensOwed=function(e,t,n,r,i){return[jA.divide(jA.multiply(Hv(r,e),n),jv),jA.divide(jA.multiply(Hv(i,t),n),jv)]},e}();function _v(e,t,n){var r=kv.getSqrtRatioAtTick(n),i=jA.multiply(r,r);return e.sortsBefore(t)?new Ob(e,t,fv,i):new Ob(e,t,i,fv)}var Uv=jA.exponentiate(jA.BigInt(2),jA.BigInt(256));function Hv(e,t){var n=jA.subtract(e,t);return jA.lessThan(n,lv)?jA.add(Uv,n):n}var Wv=function(){function e(){}return e.getFeeGrowthInside=function(e,t,n,r,i,o,a){var s,u,l,c;return i>=n?(s=e.feeGrowthOutside0X128,u=e.feeGrowthOutside1X128):(s=Hv(o,e.feeGrowthOutside0X128),u=Hv(a,e.feeGrowthOutside1X128)),i<r?(l=t.feeGrowthOutside0X128,c=t.feeGrowthOutside1X128):(l=Hv(o,t.feeGrowthOutside0X128),c=Hv(a,t.feeGrowthOutside1X128)),[Hv(Hv(o,s),l),Hv(Hv(a,u),c)]},e}(),Vv=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;t>=kv.MIN_TICK&&t<=kv.MAX_TICK||_A(!1),this.index=t,this.liquidityGross=jA.BigInt(n),this.liquidityNet=jA.BigInt(r)},qv=function(){function e(e,t){var n=e.map((function(e){return e instanceof Vv?e:new Vv(e)}));Ov.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=Yb(rv.mark((function e(t){return rv.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Ov.getTick(this.ticks,t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var e=Yb(rv.mark((function e(t,n,r){return rv.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Ov.nextInitializedTickWithinOneWord(this.ticks,t,n,r));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),e}(),Xv=new Sv,Gv=function(){function e(e,t,n,r,i,o,a){void 0===a&&(a=Xv),Number.isInteger(n)&&n<1e6||_A(!1);var s=kv.getSqrtRatioAtTick(o),u=kv.getSqrtRatioAtTick(o+1);jA.greaterThanOrEqual(jA.BigInt(r),s)&&jA.lessThanOrEqual(jA.BigInt(r),u)||_A(!1);var l=e.sortsBefore(t)?[e,t]:[t,e];this.token0=l[0],this.token1=l[1],this.fee=n,this.sqrtRatioX96=jA.BigInt(r),this.liquidity=jA.BigInt(i),this.tickCurrent=o,this.tickDataProvider=Array.isArray(a)?new qv(a,sv[n]):a}e.getAddress=function(e,t,n,r,i){return pv({factoryAddress:null!=i?i:iv,fee:n,tokenA:e,tokenB:t,initCodeHashManualOverride:r})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||_A(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=Yb(rv.mark((function t(n,r){var i,o,a,s,u,l,c;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.involvesToken(n.currency)||_A(!1),i=n.currency.equals(this.token0),t.next=4,this.swap(i,n.quotient,r);case 4:return o=t.sent,a=o.amountCalculated,s=o.sqrtRatioX96,u=o.liquidity,l=o.tickCurrent,c=i?this.token1:this.token0,t.abrupt("return",[kb.fromRawAmount(c,jA.multiply(a,uv)),new e(this.token0,this.token1,this.fee,s,u,l,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.getInputAmount=function(){var t=Yb(rv.mark((function t(n,r){var i,o,a,s,u,l,c;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.currency.isToken&&this.involvesToken(n.currency)||_A(!1),i=n.currency.equals(this.token1),t.next=4,this.swap(i,jA.multiply(n.quotient,uv),r);case 4:return o=t.sent,a=o.amountCalculated,s=o.sqrtRatioX96,u=o.liquidity,l=o.tickCurrent,c=i?this.token0:this.token1,t.abrupt("return",[kb.fromRawAmount(c,a),new e(this.token0,this.token1,this.fee,s,u,l,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.swap=function(){var e=Yb(rv.mark((function e(t,n,r){var i,o,a,s,u,l;return rv.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r||(r=t?jA.add(kv.MIN_SQRT_RATIO,cv):jA.subtract(kv.MAX_SQRT_RATIO,cv)),t?(jA.greaterThan(r,kv.MIN_SQRT_RATIO)||_A(!1),jA.lessThan(r,this.sqrtRatioX96)||_A(!1)):(jA.lessThan(r,kv.MAX_SQRT_RATIO)||_A(!1),jA.greaterThan(r,this.sqrtRatioX96)||_A(!1)),i=jA.greaterThanOrEqual(n,lv),o={amountSpecifiedRemaining:n,amountCalculated:lv,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!jA.notEqual(o.amountSpecifiedRemaining,lv)||o.sqrtPriceX96==r){e.next=35;break}return(a={}).sqrtPriceStartX96=o.sqrtPriceX96,e.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(o.tick,t,this.tickSpacing);case 9:if(s=e.sent,a.tickNext=s[0],a.initialized=s[1],a.tickNext<kv.MIN_TICK?a.tickNext=kv.MIN_TICK:a.tickNext>kv.MAX_TICK&&(a.tickNext=kv.MAX_TICK),a.sqrtPriceNextX96=kv.getSqrtRatioAtTick(a.tickNext),u=vv.computeSwapStep(o.sqrtPriceX96,(t?jA.lessThan(a.sqrtPriceNextX96,r):jA.greaterThan(a.sqrtPriceNextX96,r))?r:a.sqrtPriceNextX96,o.liquidity,o.amountSpecifiedRemaining,this.fee),o.sqrtPriceX96=u[0],a.amountIn=u[1],a.amountOut=u[2],a.feeAmount=u[3],i?(o.amountSpecifiedRemaining=jA.subtract(o.amountSpecifiedRemaining,jA.add(a.amountIn,a.feeAmount)),o.amountCalculated=jA.subtract(o.amountCalculated,a.amountOut)):(o.amountSpecifiedRemaining=jA.add(o.amountSpecifiedRemaining,a.amountOut),o.amountCalculated=jA.add(o.amountCalculated,jA.add(a.amountIn,a.feeAmount))),!jA.equal(o.sqrtPriceX96,a.sqrtPriceNextX96)){e.next=32;break}if(!a.initialized){e.next=29;break}return e.t0=jA,e.next=25,this.tickDataProvider.getTick(a.tickNext);case 25:e.t1=e.sent.liquidityNet,l=e.t0.BigInt.call(e.t0,e.t1),t&&(l=jA.multiply(l,uv)),o.liquidity=hv.addDelta(o.liquidity,l);case 29:o.tick=t?a.tickNext-1:a.tickNext,e.next=33;break;case 32:jA.notEqual(o.sqrtPriceX96,a.sqrtPriceStartX96)&&(o.tick=kv.getTickAtSqrtRatio(o.sqrtPriceX96));case 33:e.next=4;break;case 35:return e.abrupt("return",{amountCalculated:o.amountCalculated,sqrtRatioX96:o.sqrtPriceX96,liquidity:o.liquidity,tickCurrent:o.tick});case 36:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),Qb(e,[{key:"token0Price",get:function(){var e;return null!=(e=this._token0Price)?e:this._token0Price=new Ob(this.token0,this.token1,fv,jA.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function(){var e;return null!=(e=this._token1Price)?e:this._token1Price=new Ob(this.token1,this.token0,jA.multiply(this.sqrtRatioX96,this.sqrtRatioX96),fv)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"tickSpacing",get:function(){return sv[this.fee]}}]),e}(),Zv=function(){function e(e){var t=e.pool,n=e.liquidity,r=e.tickLower,i=e.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,r<i||_A(!1),r>=kv.MIN_TICK&&r%t.tickSpacing==0||_A(!1),i<=kv.MAX_TICK&&i%t.tickSpacing==0||_A(!1),this.pool=t,this.tickLower=r,this.tickUpper=i,this.liquidity=jA.BigInt(n)}var t=e.prototype;return t.ratiosAfterSlippage=function(e){var t=this.pool.token0Price.asFraction.multiply(new Pb(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=Mv(t.numerator,t.denominator);jA.lessThanOrEqual(r,kv.MIN_SQRT_RATIO)&&(r=jA.add(kv.MIN_SQRT_RATIO,jA.BigInt(1)));var i=Mv(n.numerator,n.denominator);return jA.greaterThanOrEqual(i,kv.MAX_SQRT_RATIO)&&(i=jA.subtract(kv.MAX_SQRT_RATIO,jA.BigInt(1))),{sqrtRatioX96Lower:r,sqrtRatioX96Upper:i}},t.mintAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,o=new Gv(this.pool.token0,this.pool.token1,this.pool.fee,i,0,kv.getTickAtSqrtRatio(i)),a=new Gv(this.pool.token0,this.pool.token1,this.pool.fee,r,0,kv.getTickAtSqrtRatio(r)),s=e.fromAmounts(Jb({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new e({pool:a,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new e({pool:o,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}},t.burnAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,o=new Gv(this.pool.token0,this.pool.token1,this.pool.fee,i,0,kv.getTickAtSqrtRatio(i)),a=new e({pool:new Gv(this.pool.token0,this.pool.token1,this.pool.fee,r,0,kv.getTickAtSqrtRatio(r)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,s=new e({pool:o,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:a.quotient,amount1:s.quotient}},e.fromAmounts=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,o=t.amount0,a=t.amount1,s=t.useFullPrecision,u=kv.getSqrtRatioAtTick(r),l=kv.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:Bv(n.sqrtRatioX96,u,l,o,a,s)})},e.fromAmount0=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,o=t.amount0,a=t.useFullPrecision;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:o,amount1:bb,useFullPrecision:a})},e.fromAmount1=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,o=t.amount1;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:bb,amount1:o,useFullPrecision:!0})},Qb(e,[{key:"token0PriceLower",get:function(){return _v(this.pool.token0,this.pool.token1,this.tickLower)}},{key:"token0PriceUpper",get:function(){return _v(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:"amount0",get:function(){return null===this._token0Amount&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=kb.fromRawAmount(this.pool.token0,gv.getAmount0Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=kb.fromRawAmount(this.pool.token0,gv.getAmount0Delta(this.pool.sqrtRatioX96,kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=kb.fromRawAmount(this.pool.token0,lv)),this._token0Amount}},{key:"amount1",get:function(){return null===this._token1Amount&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=kb.fromRawAmount(this.pool.token1,lv):this.pool.tickCurrent<this.tickUpper?this._token1Amount=kb.fromRawAmount(this.pool.token1,gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=kb.fromRawAmount(this.pool.token1,gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:"mintAmounts",get:function(){return null===this._mintAmounts?this.pool.tickCurrent<this.tickLower?{amount0:gv.getAmount0Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:lv}:this.pool.tickCurrent<this.tickUpper?{amount0:gv.getAmount0Delta(this.pool.sqrtRatioX96,kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:lv,amount1:gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),Yv=function(){function e(e,t,n){this._midPrice=null,e.length>0||_A(!1);var r=e[0].chainId,i=e.every((function(e){return e.chainId===r}));i||_A(!1);var o=t.wrapped;e[0].involvesToken(o)||_A(!1),e[e.length-1].involvesToken(n.wrapped)||_A(!1);for(var a,s=[o],u=ev(e.entries());!(a=u()).done;){var l=a.value,c=l[0],d=l[1],f=s[c];f.equals(d.token0)||f.equals(d.token1)||_A(!1);var p=f.equals(d.token0)?d.token1:d.token0;s.push(p)}this.pools=e,this.tokenPath=s,this.input=t,this.output=null!=n?n:s[s.length-1]}return Qb(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.nextInput,r=e.price;return n.equals(t.token0)?{nextInput:t.token1,price:r.multiply(t.token0Price)}:{nextInput:t.token0,price:r.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new Ob(this.input,this.output,e.denominator,e.numerator)}}]),e}();function Kv(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||_A(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||_A(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var Qv=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){var t=e.route;return r.wrapped.equals(t.input.wrapped)}))||_A(!1),t.every((function(e){var t=e.route;return i.wrapped.equals(t.output.wrapped)}))||_A(!1);for(var o,a=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),s=new Set,u=ev(t);!(o=u()).done;)for(var l,c=ev(o.value.route.pools);!(l=c()).done;){var d=l.value;s.add(Gv.getAddress(d.token0,d.token1,d.fee))}a!=s.size&&_A(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=Yb(rv.mark((function t(n,r){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,r,ub.EXACT_INPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.exactOut=function(){var t=Yb(rv.mark((function t(n,r){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,r,ub.EXACT_OUTPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=Yb(rv.mark((function t(n,r,i){var o,a,s,u,l,c,d,f,p,h,m;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=new Array(n.tokenPath.length),i!==ub.EXACT_INPUT){t.next=19;break}r.currency.equals(n.input)||_A(!1),o[0]=r.wrapped,u=0;case 5:if(!(u<n.tokenPath.length-1)){t.next=15;break}return l=n.pools[u],t.next=9,l.getOutputAmount(o[u]);case 9:c=t.sent,d=c[0],o[u+1]=d;case 12:u++,t.next=5;break;case 15:a=kb.fromFractionalAmount(n.input,r.numerator,r.denominator),s=kb.fromFractionalAmount(n.output,o[o.length-1].numerator,o[o.length-1].denominator),t.next=34;break;case 19:r.currency.equals(n.output)||_A(!1),o[o.length-1]=r.wrapped,f=n.tokenPath.length-1;case 22:if(!(f>0)){t.next=32;break}return p=n.pools[f-1],t.next=26,p.getInputAmount(o[f]);case 26:h=t.sent,m=h[0],o[f-1]=m;case 29:f--,t.next=22;break;case 32:a=kb.fromFractionalAmount(n.input,o[0].numerator,o[0].denominator),s=kb.fromFractionalAmount(n.output,r.numerator,r.denominator);case 34:return t.abrupt("return",new e({routes:[{inputAmount:a,outputAmount:s,route:n}],tradeType:i}));case 35:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=Yb(rv.mark((function t(n,r){var i,o,a,s,u,l,c,d,f,p,h,m,y,A,g,b,v;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],o=ev(n);case 2:if((a=o()).done){t.next=43;break}if(s=a.value,u=s.route,l=s.amount,c=new Array(u.tokenPath.length),d=void 0,f=void 0,r!==ub.EXACT_INPUT){t.next=25;break}l.currency.equals(u.input)||_A(!1),d=kb.fromFractionalAmount(u.input,l.numerator,l.denominator),c[0]=kb.fromFractionalAmount(u.input.wrapped,l.numerator,l.denominator),p=0;case 12:if(!(p<u.tokenPath.length-1)){t.next=22;break}return h=u.pools[p],t.next=16,h.getOutputAmount(c[p]);case 16:m=t.sent,y=m[0],c[p+1]=y;case 19:p++,t.next=12;break;case 22:f=kb.fromFractionalAmount(u.output,c[c.length-1].numerator,c[c.length-1].denominator),t.next=40;break;case 25:l.currency.equals(u.output)||_A(!1),f=kb.fromFractionalAmount(u.output,l.numerator,l.denominator),c[c.length-1]=kb.fromFractionalAmount(u.output.wrapped,l.numerator,l.denominator),A=u.tokenPath.length-1;case 29:if(!(A>0)){t.next=39;break}return g=u.pools[A-1],t.next=33,g.getInputAmount(c[A]);case 33:b=t.sent,v=b[0],c[A-1]=v;case 36:A--,t.next=29;break;case 39:d=kb.fromFractionalAmount(u.input,c[0].numerator,c[0].denominator);case 40:i.push({route:u,inputAmount:d,outputAmount:f});case 41:t.next=2;break;case 43:return t.abrupt("return",new e({routes:i,tradeType:r}));case 44:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(Jb({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(lv)&&_A(!1),this.tradeType===ub.EXACT_OUTPUT)return t;var n=new Tb(cv).add(e).invert().multiply(t.quotient).quotient;return kb.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(lv)&&_A(!1),this.tradeType===ub.EXACT_INPUT)return t;var n=new Tb(cv).add(e).multiply(t.quotient).quotient;return kb.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new Ob(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=Yb(rv.mark((function t(n,r,i,o,a,s,u){var l,c,d,f,p,h,m,y,A,g,b,v;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=(l=void 0===o?{}:o).maxNumResults,d=void 0===c?3:c,f=l.maxHops,p=void 0===f?3:f,void 0===a&&(a=[]),void 0===s&&(s=r),void 0===u&&(u=[]),n.length>0||_A(!1),p>0||_A(!1),r===s||a.length>0||_A(!1),h=s.wrapped,m=i.wrapped,y=0;case 10:if(!(y<n.length)){t.next=46;break}if((A=n[y]).token0.equals(h.currency)||A.token1.equals(h.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return g=void 0,t.prev=15,t.next=19,A.getOutputAmount(h);case 19:b=t.sent,g=b[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientInputAmountError){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!g.currency.isToken||!g.currency.equals(m)){t.next=39;break}return t.t1=Db,t.t2=u,t.next=33,e.fromRoute(new Yv([].concat(a,[A]),r.currency,i),r,ub.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=Kv,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return v=n.slice(0,y).concat(n.slice(y+1,n.length)),t.next=43,e.bestTradeExactIn(v,r,i,{maxNumResults:d,maxHops:p-1},[].concat(a,[A]),g,u);case 43:y++,t.next=10;break;case 46:return t.abrupt("return",u);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,r,i,o,a,s){return t.apply(this,arguments)}}(),e.bestTradeExactOut=function(){var t=Yb(rv.mark((function t(n,r,i,o,a,s,u){var l,c,d,f,p,h,m,y,A,g,b,v;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=(l=void 0===o?{}:o).maxNumResults,d=void 0===c?3:c,f=l.maxHops,p=void 0===f?3:f,void 0===a&&(a=[]),void 0===s&&(s=i),void 0===u&&(u=[]),n.length>0||_A(!1),p>0||_A(!1),i===s||a.length>0||_A(!1),h=s.wrapped,m=r.wrapped,y=0;case 10:if(!(y<n.length)){t.next=46;break}if((A=n[y]).token0.equals(h.currency)||A.token1.equals(h.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return g=void 0,t.prev=15,t.next=19,A.getInputAmount(h);case 19:b=t.sent,g=b[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientReservesError){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!g.currency.equals(m)){t.next=39;break}return t.t1=Db,t.t2=u,t.next=33,e.fromRoute(new Yv([A].concat(a),r,i.currency),i,ub.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=Kv,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return v=n.slice(0,y).concat(n.slice(y+1,n.length)),t.next=43,e.bestTradeExactOut(v,r,i,{maxNumResults:d,maxHops:p-1},[A].concat(a),g,u);case 43:y++,t.next=10;break;case 46:return t.abrupt("return",u);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,r,i,o,a,s){return t.apply(this,arguments)}}(),Qb(e,[{key:"route",get:function(){return 1!=this.swaps.length&&_A(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),kb.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),kb.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new Ob(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=kb.fromRawAmount(this.outputAmount.currency,0),n=ev(this.swaps);!(e=n()).done;){var r=e.value,i=r.route,o=r.inputAmount,a=i.midPrice;t=t.add(a.quote(o))}var s=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new Pb(s.numerator,s.denominator),this._priceImpact}}]),e}(),Jv=function(){function e(){}return e.encodeMulticall=function(t){return Array.isArray(t)||(t=[t]),1===t.length?t[0]:e.INTERFACE.encodeFunctionData("multicall",[t])},e}();Jv.INTERFACE=new ma(_b);var $v=function(){function e(){}return e.encodePermit=function(t,n){return"nonce"in n?e.INTERFACE.encodeFunctionData("selfPermitAllowed",[t.address,Nv(n.nonce),Nv(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData("selfPermit",[t.address,Nv(n.amount),Nv(n.deadline),n.v,n.r,n.s])},e}();$v.INTERFACE=new ma(Hb);var ew=function(){function e(){}return e.encodeFeeBips=function(e){return Nv(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=Nb(n),r){var i=this.encodeFeeBips(r.fee),o=Nb(r.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee",[Nv(t),n,i,o])}return e.INTERFACE.encodeFunctionData("unwrapWETH9",[Nv(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=Nb(r),i){var o=this.encodeFeeBips(i.fee),a=Nb(i.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee",[t.address,Nv(n),r,o,a])}return e.INTERFACE.encodeFunctionData("sweepToken",[t.address,Nv(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData("refundETH")},e}();ew.INTERFACE=new ma(Wb);var tw=Nv(jA.subtract(jA.exponentiate(jA.BigInt(2),jA.BigInt(128)),jA.BigInt(1)));function nw(e){return Object.keys(e).some((function(e){return"recipient"===e}))}var rw=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData("createAndInitializePoolIfNecessary",[t.token0.address,t.token1.address,t.fee,Nv(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:Nv(0)}},e.addCallParameters=function(t,n){jA.greaterThan(t.liquidity,lv)||_A(!1);var r=[],i=t.mintAmounts,o=i.amount0,a=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),u=Nv(s.amount0),l=Nv(s.amount1),c=Nv(n.deadline);if(nw(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push($v.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push($v.encodePermit(t.pool.token1,n.token1Permit)),nw(n)){var d=Nb(n.recipient);r.push(e.INTERFACE.encodeFunctionData("mint",[{token0:t.pool.token0.address,token1:t.pool.token1.address,fee:t.pool.fee,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0Desired:Nv(o),amount1Desired:Nv(a),amount0Min:u,amount1Min:l,recipient:d,deadline:c}]))}else r.push(e.INTERFACE.encodeFunctionData("increaseLiquidity",[{tokenId:Nv(n.tokenId),amount0Desired:Nv(o),amount1Desired:Nv(a),amount0Min:u,amount1Min:l,deadline:c}]));var f=Nv(0);if(n.useNative){var p=n.useNative.wrapped;t.pool.token0.equals(p)||t.pool.token1.equals(p)||_A(!1);var h=t.pool.token0.equals(p)?o:a;jA.greaterThan(h,lv)&&r.push(ew.encodeRefundETH()),f=Nv(h)}return{calldata:Jv.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=Nv(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,o=Nb(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData("collect",[{tokenId:r,recipient:i?ov:o,amount0Max:tw,amount1Max:tw}])),i){var a=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed0.quotient:t.expectedCurrencyOwed1.quotient,s=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.currency:t.expectedCurrencyOwed0.currency,u=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.quotient:t.expectedCurrencyOwed0.quotient;n.push(ew.encodeUnwrapWETH9(a,o)),n.push(ew.encodeSweepToken(s,u,o))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:Jv.encodeMulticall(n),value:Nv(0)}},e.removeCallParameters=function(t,n){var r=[],i=Nv(n.deadline),o=Nv(n.tokenId),a=new Zv({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});jA.greaterThan(a.liquidity,lv)||_A(!1);var s=a.burnAmountsWithSlippage(n.slippageTolerance),u=s.amount0,l=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData("permit",[Nb(n.permit.spender),o,Nv(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData("decreaseLiquidity",[{tokenId:o,liquidity:Nv(a.liquidity),amount0Min:Nv(u),amount1Min:Nv(l),deadline:i}]));var c=n.collectOptions,d=c.expectedCurrencyOwed0,f=c.expectedCurrencyOwed1,p=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(c,["expectedCurrencyOwed0","expectedCurrencyOwed1"]);return r.push.apply(r,e.encodeCollect(Jb({tokenId:Nv(n.tokenId),expectedCurrencyOwed0:d.add(kb.fromRawAmount(d.currency,u)),expectedCurrencyOwed1:f.add(kb.fromRawAmount(f.currency,l))},p))),n.liquidityPercentage.equalTo(cv)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData("burn",[o])):!0===n.burnToken&&_A(!1),{calldata:Jv.encodeMulticall(r),value:Nv(0)}},e.safeTransferFromParameters=function(t){var n=Nb(t.recipient),r=Nb(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256,bytes)",[r,n,Nv(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[r,n,Nv(t.tokenId)]),value:Nv(0)}},e}();rw.INTERFACE=new ma(Ub);var iw=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){void 0===r&&(r={});var i,o=1===e.pools.length,a=Nv(t.quotient),s=r.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(o){var u,l,c={tokenIn:e.tokenPath[0].address,tokenOut:e.tokenPath[1].address,fee:e.pools[0].fee,sqrtPriceLimitX96:Nv(null!=(u=null==(l=r)?void 0:l.sqrtPriceLimitX96)?u:0)},d=Jb({},c,n==ub.EXACT_INPUT?{amountIn:a}:{amount:a}),f=[c.tokenIn,c.tokenOut,c.fee,a,c.sqrtPriceLimitX96],p=n===ub.EXACT_INPUT?"quoteExactInputSingle":"quoteExactOutputSingle";i=s.encodeFunctionData(p,r.useQuoterV2?[d]:f)}else{var h;void 0!==(null==(h=r)?void 0:h.sqrtPriceLimitX96)&&_A(!1);var m=Rv(e,n===ub.EXACT_OUTPUT),y=n===ub.EXACT_INPUT?"quoteExactInput":"quoteExactOutput";i=s.encodeFunctionData(y,[m,a])}return{calldata:i,value:Nv(0)}},e}();iw.V1INTERFACE=new ma(Vb),iw.V2INTERFACE=new ma(qb);var ow=function(){function e(){}return e.encodeClaim=function(t,n){var r,i=[];i.push(e.INTERFACE.encodeFunctionData("unstakeToken",[this._encodeIncentiveKey(t),Nv(n.tokenId)]));var o=Nb(n.recipient),a=null!=(r=n.amount)?r:0;return i.push(e.INTERFACE.encodeFunctionData("claimReward",[t.rewardToken.address,o,Nv(a)])),i},e.collectRewards=function(t,n){t=Array.isArray(t)?t:[t];for(var r=[],i=0;i<t.length;i++){var o=t[i];(r=r.concat(this.encodeClaim(o,n))).push(e.INTERFACE.encodeFunctionData("stakeToken",[this._encodeIncentiveKey(o),Nv(n.tokenId)]))}return{calldata:Jv.encodeMulticall(r),value:Nv(0)}},e.withdrawToken=function(t,n){var r=[];t=Array.isArray(t)?t:[t];for(var i={tokenId:n.tokenId,recipient:n.recipient,amount:n.amount},o=0;o<t.length;o++){var a=t[o];r=r.concat(this.encodeClaim(a,i))}var s=Nb(n.owner);return r.push(e.INTERFACE.encodeFunctionData("withdrawToken",[Nv(n.tokenId),s,n.data?n.data:Nv(0)])),{calldata:Jv.encodeMulticall(r),value:Nv(0)}},e.encodeDeposit=function(t){var n;if((t=Array.isArray(t)?t:[t]).length>1){for(var r=[],i=0;i<t.length;i++){var o=t[i];r.push(this._encodeIncentiveKey(o))}n=uo.encode([e.INCENTIVE_KEY_ABI+"[]"],[r])}else n=uo.encode([e.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(t[0])]);return n},e._encodeIncentiveKey=function(e){var t=e.pool,n=t.token0,r=t.token1,i=t.fee,o=Nb(e.refundee);return{rewardToken:e.rewardToken.address,pool:Gv.getAddress(n,r,i),startTime:Nv(e.startTime),endTime:Nv(e.endTime),refundee:o}},e}();ow.INTERFACE=new ma(Xb),ow.INCENTIVE_KEY_ABI="tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)";var aw=function(){function e(){}return e.swapCallParameters=function(t,n){Array.isArray(t)||(t=[t]);var r=t[0],i=r.inputAmount.currency.wrapped,o=r.outputAmount.currency.wrapped;t.every((function(e){return e.inputAmount.currency.wrapped.equals(i)}))||_A(!1),t.every((function(e){return e.outputAmount.currency.wrapped.equals(o)}))||_A(!1);var a=[],s=kb.fromRawAmount(t[0].inputAmount.currency,0),u=kb.fromRawAmount(t[0].outputAmount.currency,0),l=t.reduce((function(e,t){return e.add(t.minimumAmountOut(n.slippageTolerance))}),u),c=r.inputAmount.currency.isNative&&r.tradeType===ub.EXACT_OUTPUT,d=r.inputAmount.currency.isNative,f=r.outputAmount.currency.isNative,p=f||!!n.fee,h=d?t.reduce((function(e,t){return e.add(t.maximumAmountIn(n.slippageTolerance))}),s):s;n.inputTokenPermit&&(r.inputAmount.currency.isToken||_A(!1),a.push($v.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var m,y=Nb(n.recipient),A=Nv(n.deadline),g=ev(t);!(m=g()).done;)for(var b,v=m.value,w=ev(v.swaps);!(b=w()).done;){var x=b.value,E=x.route,T=x.inputAmount,C=x.outputAmount,k=Nv(v.maximumAmountIn(n.slippageTolerance,T).quotient),S=Nv(v.minimumAmountOut(n.slippageTolerance,C).quotient);if(1===E.pools.length)if(v.tradeType===ub.EXACT_INPUT){var I,P={tokenIn:E.tokenPath[0].address,tokenOut:E.tokenPath[1].address,fee:E.pools[0].fee,recipient:p?ov:y,deadline:A,amountIn:k,amountOutMinimum:S,sqrtPriceLimitX96:Nv(null!=(I=n.sqrtPriceLimitX96)?I:0)};a.push(e.INTERFACE.encodeFunctionData("exactInputSingle",[P]))}else{var O,N={tokenIn:E.tokenPath[0].address,tokenOut:E.tokenPath[1].address,fee:E.pools[0].fee,recipient:p?ov:y,deadline:A,amountOut:S,amountInMaximum:k,sqrtPriceLimitX96:Nv(null!=(O=n.sqrtPriceLimitX96)?O:0)};a.push(e.INTERFACE.encodeFunctionData("exactOutputSingle",[N]))}else{void 0!==n.sqrtPriceLimitX96&&_A(!1);var R=Rv(E,v.tradeType===ub.EXACT_OUTPUT);if(v.tradeType===ub.EXACT_INPUT){var M={path:R,recipient:p?ov:y,deadline:A,amountIn:k,amountOutMinimum:S};a.push(e.INTERFACE.encodeFunctionData("exactInput",[M]))}else{var L={path:R,recipient:p?ov:y,deadline:A,amountOut:S,amountInMaximum:k};a.push(e.INTERFACE.encodeFunctionData("exactOutput",[L]))}}}return p&&(n.fee?f?a.push(ew.encodeUnwrapWETH9(l.quotient,y,n.fee)):a.push(ew.encodeSweepToken(r.outputAmount.currency.wrapped,l.quotient,y,n.fee)):a.push(ew.encodeUnwrapWETH9(l.quotient,y))),c&&a.push(ew.encodeRefundETH()),{calldata:Jv.encodeMulticall(a),value:Nv(h.quotient)}},e}();aw.INTERFACE=new ma(Gb);var sw,uw,lw=Object.freeze({__proto__:null,ADDRESS_ZERO:ov,FACTORY_ADDRESS:iv,get FeeAmount(){return nv},FullMath:mv,LiquidityMath:hv,Multicall:Jv,NoTickDataProvider:Sv,NonfungiblePositionManager:rw,POOL_INIT_CODE_HASH:av,Payments:ew,Pool:Gv,Position:Zv,PositionLibrary:zv,Route:Yv,SelfPermit:$v,SqrtPriceMath:gv,Staker:ow,SwapMath:vv,SwapQuoter:iw,SwapRouter:aw,TICK_SPACINGS:sv,Tick:Vv,TickLibrary:Wv,TickList:Ov,TickListDataProvider:qv,TickMath:kv,Trade:Qv,computePoolAddress:pv,encodeRouteToPath:Rv,encodeSqrtRatioX96:Mv,isSorted:Iv,maxLiquidityForAmounts:Bv,mostSignificantBit:Ev,nearestUsableTick:function(e,t){Number.isInteger(e)&&Number.isInteger(t)||_A(!1),t>0||_A(!1),e>=kv.MIN_TICK&&e<=kv.MAX_TICK||_A(!1);var n=Math.round(e/t)*t;return n<kv.MIN_TICK?n+t:n>kv.MAX_TICK?n-t:n},priceToClosestTick:function(e){var t=e.baseCurrency.sortsBefore(e.quoteCurrency),n=t?Mv(e.numerator,e.denominator):Mv(e.denominator,e.numerator),r=kv.getTickAtSqrtRatio(n),i=_v(e.baseCurrency,e.quoteCurrency,r+1);return t?e.lessThan(i)||r++:e.greaterThan(i)||r++,r},subIn256:Hv,tickToPrice:_v,toHex:Nv,tradeComparator:Kv}),cw={exports:{}},dw={},fw=Ue(ya);var pw,hw={_format:"hh-sol-artifact-1",contractName:"IApproveAndCall",sourceName:"contracts/interfaces/IApproveAndCall.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},mw=Ue(lw),yw={_format:"hh-sol-artifact-1",contractName:"IMulticallExtended",sourceName:"contracts/interfaces/IMulticallExtended.sol",abi:[{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function Aw(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function gw(e,t,n){return t&&Aw(e.prototype,t),n&&Aw(e,n),e}function bw(){return bw=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bw.apply(this,arguments)}function vw(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(pw||(pw={}));var ww,xw,Ew,Tw,Cw,kw,Sw,Iw=[pw.MAINNET,pw.OPTIMISM,pw.OPTIMISM_GOERLI,pw.ARBITRUM_ONE,pw.ARBITRUM_GOERLI,pw.POLYGON,pw.POLYGON_MUMBAI,pw.GOERLI,pw.SEPOLIA,pw.CELO_ALFAJORES,pw.CELO,pw.BNB,pw.AVALANCHE,pw.BASE,pw.BASE_GOERLI];!function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(ww||(ww={}));var Pw=[pw.MAINNET,pw.GOERLI];function Ow(e,t){return void 0===t&&(t=[]),Pw.concat(t).reduce((function(t,n){return t[n]=e,t}),{})}var Nw,Rw,Mw=Ow("0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[pw.OPTIMISM,pw.ARBITRUM_ONE,pw.POLYGON,pw.POLYGON_MUMBAI,pw.SEPOLIA]),Lw="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",Dw=Ow(Lw),Fw="0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",Bw=Ow(Fw),jw={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},zw=bw({},jw,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),_w=bw({},jw,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),Uw=jw,Hw=bw({},jw,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),Ww=jw,Vw={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"},qw=((xw={})[pw.MAINNET]=zw,xw[pw.OPTIMISM]=Uw,xw[pw.ARBITRUM_ONE]=Hw,xw[pw.POLYGON]=Ww,xw[pw.POLYGON_MUMBAI]=Ww,xw[pw.GOERLI]=_w,xw[pw.CELO]=Vw,xw[pw.CELO_ALFAJORES]=Vw,xw[pw.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},xw[pw.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},xw[pw.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},xw[pw.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},xw[pw.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},xw[pw.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},xw[pw.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},xw),Xw=bw({},Iw.reduce((function(e,t){return e[t]=qw[t].v3CoreFactoryAddress,e}),{})),Gw=bw({},Iw.reduce((function(e,t){var n=qw[t].v3MigratorAddress;return n&&(e[t]=n),e}),{})),Zw=bw({},Iw.reduce((function(e,t){return e[t]=qw[t].multicallAddress,e}),{})),Yw=Ow("0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F"),Kw=((Ew={})[pw.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",Ew),Qw=((Tw={})[pw.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",Tw),Jw=Ow("0x1a9C8182C09F50C8318d769245beA52c32BE35BC"),$w=((Cw={})[pw.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",Cw),ex=((kw={})[pw.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",kw),tx=bw({},Iw.reduce((function(e,t){return e[t]=qw[t].quoterAddress,e}),{})),nx=bw({},Iw.reduce((function(e,t){var n=qw[t].nonfungiblePositionManagerAddress;return n&&(e[t]=n),e}),{})),rx=bw({},Ow("0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e")),ix=((Sw={})[pw.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",Sw),ox=bw({},Iw.reduce((function(e,t){var n=qw[t].tickLensAddress;return n&&(e[t]=n),e}),{})),ax=Iw.reduce((function(e,t){var n=qw[t].v1MixedRouteQuoterAddress;return n&&(e[t]=n),e}),{});!function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(Nw||(Nw={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(Rw||(Rw={}));var sx,ux,lx=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),cx=YA(HA),dx=YA(VA),fx=((sx={})[Rw.ROUND_DOWN]=cx.ROUND_DOWN,sx[Rw.ROUND_HALF_UP]=cx.ROUND_HALF_UP,sx[Rw.ROUND_UP]=cx.ROUND_UP,sx),px=((ux={})[Rw.ROUND_DOWN]=0,ux[Rw.ROUND_HALF_UP]=1,ux[Rw.ROUND_UP]=3,ux),hx=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=Rw.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),cx.set({precision:e+1,rounding:fx[n]});var r=new cx(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=Rw.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),dx.DP=e,dx.RM=px[n],new dx(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},gw(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),mx=YA(VA),yx=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,lx)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}vw(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=Rw.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=Rw.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),mx.DP=this.currency.decimals,new mx(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},gw(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(hx),Ax=new hx(jA.BigInt(100));function gx(e){return new bx(e.numerator,e.denominator)}var bx=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}vw(t,e);var n=t.prototype;return n.add=function(t){return gx(e.prototype.add.call(this,t))},n.subtract=function(t){return gx(e.prototype.subtract.call(this,t))},n.multiply=function(t){return gx(e.prototype.multiply.call(this,t))},n.divide=function(t){return gx(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,Ax).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,Ax).toFixed(t,n,r)},t}(hx),vx=function(e){function t(){for(var t,n,r,i,o,a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],o=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),c=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=c[0],r=c[1],i=c[2],o=c[3]}return(t=e.call(this,o,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new hx(jA.exponentiate(jA.BigInt(10),jA.BigInt(n.decimals)),jA.exponentiate(jA.BigInt(10),jA.BigInt(r.decimals))),t}vw(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||_A(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||_A(!1);var n=e.prototype.multiply.call(this,t);return yx.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},gw(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(hx),wx=function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r},xx=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isNative=!0,t.isToken=!1,t}return vw(t,e),t}(wx);function Ex(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}var Tx=/^0x[0-9a-fA-F]{40}$/;var Cx,kx=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(Tx.test(e))return e;throw new Error(e+" is not a valid address.")}(n):Ex(n),s}vw(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},gw(t,[{key:"wrapped",get:function(){return this}}]),t}(wx),Sx=((Cx={})[1]=new kx(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),Cx[3]=new kx(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Cx[4]=new kx(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Cx[5]=new kx(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),Cx[42]=new kx(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),Cx[10]=new kx(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Cx[69]=new kx(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Cx[42161]=new kx(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),Cx[421611]=new kx(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),Cx),Ix=function(e){function t(t){return e.call(this,t,18,"ETH","Ether")||this}return vw(t,e),t.onChain=function(e){var n;return null!=(n=this._etherCache[e])?n:this._etherCache[e]=new t(e)},t.prototype.equals=function(e){return e.isNative&&e.chainId===this.chainId},gw(t,[{key:"wrapped",get:function(){var e=Sx[this.chainId];return e||_A(!1),e}}]),t}(xx);Ix._etherCache={};var Px=jA.BigInt(Number.MAX_SAFE_INTEGER),Ox=jA.BigInt(0),Nx=jA.BigInt(1),Rx=jA.BigInt(2);var Mx,Lx,Dx,Fx=Object.freeze({__proto__:null,ARGENT_WALLET_DETECTOR_ADDRESS:ex,CHAIN_TO_ADDRESSES_MAP:qw,get ChainId(){return pw},CurrencyAmount:yx,ENS_REGISTRAR_ADDRESSES:rx,Ether:Ix,Fraction:hx,GOVERNANCE_ALPHA_V0_ADDRESSES:Yw,GOVERNANCE_ALPHA_V1_ADDRESSES:Kw,GOVERNANCE_BRAVO_ADDRESSES:Qw,MERKLE_DISTRIBUTOR_ADDRESS:$w,MIXED_ROUTE_QUOTER_V1_ADDRESSES:ax,MULTICALL_ADDRESSES:Zw,MaxUint256:lx,NONFUNGIBLE_POSITION_MANAGER_ADDRESSES:nx,NativeCurrency:xx,get NativeCurrencyName(){return ww},Percent:bx,Price:vx,QUOTER_ADDRESSES:tx,get Rounding(){return Rw},SOCKS_CONTROLLER_ADDRESSES:ix,SUPPORTED_CHAINS:Iw,SWAP_ROUTER_02_ADDRESSES:function(e){return e==pw.BNB?qw[e].swapRouter02Address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"},TICK_LENS_ADDRESSES:ox,TIMELOCK_ADDRESSES:Jw,Token:kx,get TradeType(){return Nw},UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS:"0x8B799381ac40b838BBA4131ffB26197C432AFe78",UNI_ADDRESSES:Mw,V2_FACTORY_ADDRESS:Lw,V2_FACTORY_ADDRESSES:Dw,V2_ROUTER_ADDRESS:Fw,V2_ROUTER_ADDRESSES:Bw,V3_CORE_FACTORY_ADDRESSES:Xw,V3_MIGRATOR_ADDRESSES:Gw,WETH9:Sx,computePriceImpact:function(e,t,n){var r=e.quote(t),i=r.subtract(n).divide(r);return new bx(i.numerator,i.denominator)},sortedInsert:function(e,t,n,r){if(n>0||_A(!1),e.length<=n||_A(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var o=0,a=e.length;o<a;){var s=o+a>>>1;r(e[s],t)<=0?o=s+1:a=s}return e.splice(o,0,t),i?e.pop():null},sqrt:function(e){if(jA.greaterThanOrEqual(e,Ox)||_A(!1),jA.lessThan(e,Px))return jA.BigInt(Math.floor(Math.sqrt(jA.toNumber(e))));var t,n;for(t=e,n=jA.add(jA.divide(e,Rx),Nx);jA.lessThan(n,t);)t=n,n=jA.divide(jA.add(jA.divide(e,n),n),Rx);return t},validateAndParseAddress:Ex}),Bx=Ue(Fx),jx={_format:"hh-sol-artifact-1",contractName:"IPeripheryPaymentsWithFeeExtended",sourceName:"contracts/interfaces/IPeripheryPaymentsWithFeeExtended.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"pull",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"wrapETH",outputs:[],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},zx={_format:"hh-sol-artifact-1",contractName:"ISwapRouter02",sourceName:"contracts/interfaces/ISwapRouter02.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapExactTokensForTokens",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function _x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ux(e,t,n){return t&&_x(e.prototype,t),n&&_x(e,n),e}function Hx(){return Hx=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hx.apply(this,arguments)}function Wx(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(Mx||(Mx={})),Mx.MAINNET,Mx.OPTIMISM,Mx.OPTIMISM_GOERLI,Mx.ARBITRUM_ONE,Mx.ARBITRUM_GOERLI,Mx.POLYGON,Mx.POLYGON_MUMBAI,Mx.GOERLI,Mx.SEPOLIA,Mx.CELO_ALFAJORES,Mx.CELO,Mx.BNB,Mx.AVALANCHE,Mx.BASE,Mx.BASE_GOERLI,function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(Lx||(Lx={}));Mx.MAINNET,Mx.GOERLI;Mx.OPTIMISM,Mx.ARBITRUM_ONE,Mx.POLYGON,Mx.POLYGON_MUMBAI,Mx.SEPOLIA;var Vx,qx,Xx={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},Gx=Hx({},Xx,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),Zx=Hx({},Xx,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),Yx=Xx,Kx=Hx({},Xx,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),Qx=Xx,Jx={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(Dx={})[Mx.MAINNET]=Gx,Dx[Mx.OPTIMISM]=Yx,Dx[Mx.ARBITRUM_ONE]=Kx,Dx[Mx.POLYGON]=Qx,Dx[Mx.POLYGON_MUMBAI]=Qx,Dx[Mx.GOERLI]=Zx,Dx[Mx.CELO]=Jx,Dx[Mx.CELO_ALFAJORES]=Jx,Dx[Mx.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},Dx[Mx.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},Dx[Mx.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},Dx[Mx.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},Dx[Mx.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},Dx[Mx.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},Dx[Mx.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[Mx.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[Mx.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[Mx.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[Mx.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[Mx.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(Vx||(Vx={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(qx||(qx={}));var $x,eE,tE=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),nE=YA(HA),rE=YA(VA),iE=(($x={})[qx.ROUND_DOWN]=nE.ROUND_DOWN,$x[qx.ROUND_HALF_UP]=nE.ROUND_HALF_UP,$x[qx.ROUND_UP]=nE.ROUND_UP,$x),oE=((eE={})[qx.ROUND_DOWN]=0,eE[qx.ROUND_HALF_UP]=1,eE[qx.ROUND_UP]=3,eE),aE=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=qx.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),nE.set({precision:e+1,rounding:iE[n]});var r=new nE(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=qx.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),rE.DP=e,rE.RM=oE[n],new rE(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},Ux(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),sE=YA(VA),uE=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,tE)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}Wx(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=qx.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=qx.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),sE.DP=this.currency.decimals,new sE(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},Ux(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(aE),lE=new aE(jA.BigInt(100));function cE(e){return new dE(e.numerator,e.denominator)}var dE=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}Wx(t,e);var n=t.prototype;return n.add=function(t){return cE(e.prototype.add.call(this,t))},n.subtract=function(t){return cE(e.prototype.subtract.call(this,t))},n.multiply=function(t){return cE(e.prototype.multiply.call(this,t))},n.divide=function(t){return cE(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,lE).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,lE).toFixed(t,n,r)},t}(aE),fE=function(e){function t(){for(var t,n,r,i,o,a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],o=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),c=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=c[0],r=c[1],i=c[2],o=c[3]}return(t=e.call(this,o,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new aE(jA.exponentiate(jA.BigInt(10),jA.BigInt(n.decimals)),jA.exponentiate(jA.BigInt(10),jA.BigInt(r.decimals))),t}Wx(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||_A(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||_A(!1);var n=e.prototype.multiply.call(this,t);return uE.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},Ux(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(aE);function pE(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}var hE=/^0x[0-9a-fA-F]{40}$/;var mE,yE=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(hE.test(e))return e;throw new Error(e+" is not a valid address.")}(n):pE(n),s}Wx(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},Ux(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));function AE(e,t,n,r){if(n>0||_A(!1),e.length<=n||_A(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var o=0,a=e.length;o<a;){var s=o+a>>>1;r(e[s],t)<=0?o=s+1:a=s}return e.splice(o,0,t),i?e.pop():null}(mE={})[1]=new yE(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),mE[3]=new yE(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),mE[4]=new yE(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),mE[5]=new yE(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),mE[42]=new yE(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),mE[10]=new yE(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),mE[69]=new yE(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),mE[42161]=new yE(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),mE[421611]=new yE(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var gE=jA.BigInt(Number.MAX_SAFE_INTEGER),bE=jA.BigInt(0),vE=jA.BigInt(1),wE=jA.BigInt(2);function xE(e){if(jA.greaterThanOrEqual(e,bE)||_A(!1),jA.lessThan(e,gE))return jA.BigInt(Math.floor(Math.sqrt(jA.toNumber(e))));var t,n;for(t=e,n=jA.add(jA.divide(e,wE),vE);jA.lessThan(n,t);)t=n,n=jA.divide(jA.add(jA.divide(e,n),n),wE);return t}var EE="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",TE="0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",CE=jA.BigInt(1e3),kE=jA.BigInt(0),SE=jA.BigInt(1),IE=jA.BigInt(5),PE=jA.BigInt(997),OE=jA.BigInt(1e3);function NE(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function RE(e,t,n){return t&&NE(e.prototype,t),n&&NE(e,n),e}function ME(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function LE(e){return LE=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},LE(e)}function DE(e,t){return DE=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},DE(e,t)}function FE(e,t,n){return FE=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&DE(i,n.prototype),i},FE.apply(null,arguments)}function BE(e){var t="function"==typeof Map?new Map:void 0;return BE=function(e){if(null===e||!function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return FE(e,arguments,LE(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),DE(n,e)},BE(e)}function jE(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function zE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _E(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return zE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zE(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var UE="setPrototypeOf"in Object,HE=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,UE&&Object.setPrototypeOf(jE(n),(this instanceof t?this.constructor:void 0).prototype),n}return ME(t,e),t}(BE(Error)),WE=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,UE&&Object.setPrototypeOf(jE(n),(this instanceof t?this.constructor:void 0).prototype),n}return ME(t,e),t}(BE(Error)),VE=function(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=n.sortsBefore(r)?[n,r]:[r,n],o=i[1];return oi(t,eh(["bytes"],[$p(["address","address"],[i[0].address,o.address])]),TE)},qE=function(){function e(t,n){var r=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];this.liquidityToken=new yE(r[0].currency.chainId,e.getAddress(r[0].currency,r[1].currency),18,"UNI-V2","Uniswap V2"),this.tokenAmounts=r}e.getAddress=function(e,t){return VE({factoryAddress:EE,tokenA:e,tokenB:t})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||_A(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.reserveOf=function(e){return this.involvesToken(e)||_A(!1),e.equals(this.token0)?this.reserve0:this.reserve1},t.getOutputAmount=function(t){if(this.involvesToken(t.currency)||_A(!1),jA.equal(this.reserve0.quotient,kE)||jA.equal(this.reserve1.quotient,kE))throw new HE;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),i=jA.multiply(t.quotient,PE),o=jA.multiply(i,r.quotient),a=jA.add(jA.multiply(n.quotient,OE),i),s=uE.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,jA.divide(o,a));if(jA.equal(s.quotient,kE))throw new WE;return[s,new e(n.add(t),r.subtract(s))]},t.getInputAmount=function(t){if(this.involvesToken(t.currency)||_A(!1),jA.equal(this.reserve0.quotient,kE)||jA.equal(this.reserve1.quotient,kE)||jA.greaterThanOrEqual(t.quotient,this.reserveOf(t.currency).quotient))throw new HE;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),i=jA.multiply(jA.multiply(r.quotient,t.quotient),OE),o=jA.multiply(jA.subtract(n.quotient,t.quotient),PE),a=uE.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,jA.add(jA.divide(i,o),SE));return[a,new e(r.add(a),n.subtract(t))]},t.getLiquidityMinted=function(e,t,n){e.currency.equals(this.liquidityToken)||_A(!1);var r,i=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];if(i[0].currency.equals(this.token0)&&i[1].currency.equals(this.token1)||_A(!1),jA.equal(e.quotient,kE))r=jA.subtract(xE(jA.multiply(i[0].quotient,i[1].quotient)),CE);else{var o=jA.divide(jA.multiply(i[0].quotient,e.quotient),this.reserve0.quotient),a=jA.divide(jA.multiply(i[1].quotient,e.quotient),this.reserve1.quotient);r=jA.lessThanOrEqual(o,a)?o:a}if(!jA.greaterThan(r,kE))throw new WE;return uE.fromRawAmount(this.liquidityToken,r)},t.getLiquidityValue=function(e,t,n,r,i){var o;if(void 0===r&&(r=!1),this.involvesToken(e)||_A(!1),t.currency.equals(this.liquidityToken)||_A(!1),n.currency.equals(this.liquidityToken)||_A(!1),jA.lessThanOrEqual(n.quotient,t.quotient)||_A(!1),r){i||_A(!1);var a=jA.BigInt(i);if(jA.equal(a,kE))o=t;else{var s=xE(jA.multiply(this.reserve0.quotient,this.reserve1.quotient)),u=xE(a);if(jA.greaterThan(s,u)){var l=jA.multiply(t.quotient,jA.subtract(s,u)),c=jA.add(jA.multiply(s,IE),u),d=jA.divide(l,c);o=t.add(uE.fromRawAmount(this.liquidityToken,d))}else o=t}}else o=t;return uE.fromRawAmount(e,jA.divide(jA.multiply(n.quotient,this.reserveOf(e).quotient),o.quotient))},RE(e,[{key:"token0Price",get:function(){var e=this.tokenAmounts[1].divide(this.tokenAmounts[0]);return new fE(this.token0,this.token1,e.denominator,e.numerator)}},{key:"token1Price",get:function(){var e=this.tokenAmounts[0].divide(this.tokenAmounts[1]);return new fE(this.token1,this.token0,e.denominator,e.numerator)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"token0",get:function(){return this.tokenAmounts[0].currency}},{key:"token1",get:function(){return this.tokenAmounts[1].currency}},{key:"reserve0",get:function(){return this.tokenAmounts[0]}},{key:"reserve1",get:function(){return this.tokenAmounts[1]}}]),e}(),XE=function(){function e(e,t,n){this._midPrice=null,e.length>0||_A(!1);var r=e[0].chainId;e.every((function(e){return e.chainId===r}))||_A(!1);var i=t.wrapped;e[0].involvesToken(i)||_A(!1),void 0===n||e[e.length-1].involvesToken(n.wrapped)||_A(!1);for(var o,a=[i],s=_E(e.entries());!(o=s()).done;){var u=o.value,l=u[0],c=u[1],d=a[l];d.equals(c.token0)||d.equals(c.token1)||_A(!1);var f=d.equals(c.token0)?c.token1:c.token0;a.push(f)}this.pairs=e,this.path=a,this.input=t,this.output=n}return RE(e,[{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;for(var e,t=[],n=_E(this.pairs.entries());!(e=n()).done;){var r=e.value,i=r[0],o=r[1];t.push(this.path[i].equals(o.token0)?new fE(o.reserve0.currency,o.reserve1.currency,o.reserve0.quotient,o.reserve1.quotient):new fE(o.reserve1.currency,o.reserve0.currency,o.reserve1.quotient,o.reserve0.quotient))}var a=t.slice(1).reduce((function(e,t){return e.multiply(t)}),t[0]);return this._midPrice=new fE(this.input,this.output,a.denominator,a.numerator)}},{key:"chainId",get:function(){return this.pairs[0].chainId}}]),e}();function GE(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||_A(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||_A(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?0:e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}function ZE(e,t){var n=GE(e,t);return 0!==n?n:e.priceImpact.lessThan(t.priceImpact)?-1:e.priceImpact.greaterThan(t.priceImpact)?1:e.route.path.length-t.route.path.length}var YE=function(){function e(e,t,n){this.route=e,this.tradeType=n;var r=new Array(e.path.length);if(n===Vx.EXACT_INPUT){t.currency.equals(e.input)||_A(!1),r[0]=t.wrapped;for(var i=0;i<e.path.length-1;i++){var o=e.pairs[i].getOutputAmount(r[i])[0];r[i+1]=o}this.inputAmount=uE.fromFractionalAmount(e.input,t.numerator,t.denominator),this.outputAmount=uE.fromFractionalAmount(e.output,r[r.length-1].numerator,r[r.length-1].denominator)}else{t.currency.equals(e.output)||_A(!1),r[r.length-1]=t.wrapped;for(var a=e.path.length-1;a>0;a--){var s=e.pairs[a-1].getInputAmount(r[a])[0];r[a-1]=s}this.inputAmount=uE.fromFractionalAmount(e.input,r[0].numerator,r[0].denominator),this.outputAmount=uE.fromFractionalAmount(e.output,t.numerator,t.denominator)}this.executionPrice=new fE(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient),this.priceImpact=function(e,t,n){var r=e.quote(t),i=r.subtract(n).divide(r);return new dE(i.numerator,i.denominator)}(e.midPrice,this.inputAmount,this.outputAmount)}e.exactIn=function(t,n){return new e(t,n,Vx.EXACT_INPUT)},e.exactOut=function(t,n){return new e(t,n,Vx.EXACT_OUTPUT)};var t=e.prototype;return t.minimumAmountOut=function(e){if(e.lessThan(kE)&&_A(!1),this.tradeType===Vx.EXACT_OUTPUT)return this.outputAmount;var t=new aE(SE).add(e).invert().multiply(this.outputAmount.quotient).quotient;return uE.fromRawAmount(this.outputAmount.currency,t)},t.maximumAmountIn=function(e){if(e.lessThan(kE)&&_A(!1),this.tradeType===Vx.EXACT_INPUT)return this.inputAmount;var t=new aE(SE).add(e).multiply(this.inputAmount.quotient).quotient;return uE.fromRawAmount(this.inputAmount.currency,t)},e.bestTradeExactIn=function(t,n,r,i,o,a,s){var u=void 0===i?{}:i,l=u.maxNumResults,c=void 0===l?3:l,d=u.maxHops,f=void 0===d?3:d;void 0===o&&(o=[]),void 0===a&&(a=n),void 0===s&&(s=[]),t.length>0||_A(!1),f>0||_A(!1),n===a||o.length>0||_A(!1);for(var p=a.wrapped,h=r.wrapped,m=0;m<t.length;m++){var y=t[m];if((y.token0.equals(p.currency)||y.token1.equals(p.currency))&&(!y.reserve0.equalTo(kE)&&!y.reserve1.equalTo(kE))){var A=void 0;try{A=y.getOutputAmount(p)[0]}catch(e){if(e.isInsufficientInputAmountError)continue;throw e}if(A.currency.equals(h))AE(s,new e(new XE([].concat(o,[y]),n.currency,r),n,Vx.EXACT_INPUT),c,ZE);else if(f>1&&t.length>1){var g=t.slice(0,m).concat(t.slice(m+1,t.length));e.bestTradeExactIn(g,n,r,{maxNumResults:c,maxHops:f-1},[].concat(o,[y]),A,s)}}}return s},t.worstExecutionPrice=function(e){return new fE(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactOut=function(t,n,r,i,o,a,s){var u=void 0===i?{}:i,l=u.maxNumResults,c=void 0===l?3:l,d=u.maxHops,f=void 0===d?3:d;void 0===o&&(o=[]),void 0===a&&(a=r),void 0===s&&(s=[]),t.length>0||_A(!1),f>0||_A(!1),r===a||o.length>0||_A(!1);for(var p=a.wrapped,h=n.wrapped,m=0;m<t.length;m++){var y=t[m];if((y.token0.equals(p.currency)||y.token1.equals(p.currency))&&(!y.reserve0.equalTo(kE)&&!y.reserve1.equalTo(kE))){var A=void 0;try{A=y.getInputAmount(p)[0]}catch(e){if(e.isInsufficientReservesError)continue;throw e}if(A.currency.equals(h))AE(s,new e(new XE([y].concat(o),n,r.currency),r,Vx.EXACT_OUTPUT),c,ZE);else if(f>1&&t.length>1){var g=t.slice(0,m).concat(t.slice(m+1,t.length));e.bestTradeExactOut(g,n,r,{maxNumResults:c,maxHops:f-1},[y].concat(o),A,s)}}}return s},e}();function KE(e){return"0x"+e.quotient.toString(16)}var QE,JE="0x0",$E=function(){function e(){}return e.swapCallParameters=function(e,t){var n=e.inputAmount.currency.isNative,r=e.outputAmount.currency.isNative;n&&r&&_A(!1),!("ttl"in t)||t.ttl>0||_A(!1);var i,o,a,s=pE(t.recipient),u=KE(e.maximumAmountIn(t.allowedSlippage)),l=KE(e.minimumAmountOut(t.allowedSlippage)),c=e.route.path.map((function(e){return e.address})),d="ttl"in t?"0x"+(Math.floor((new Date).getTime()/1e3)+t.ttl).toString(16):"0x"+t.deadline.toString(16),f=Boolean(t.feeOnTransfer);switch(e.tradeType){case Vx.EXACT_INPUT:n?(i=f?"swapExactETHForTokensSupportingFeeOnTransferTokens":"swapExactETHForTokens",o=[l,c,s,d],a=u):r?(i=f?"swapExactTokensForETHSupportingFeeOnTransferTokens":"swapExactTokensForETH",o=[u,l,c,s,d],a=JE):(i=f?"swapExactTokensForTokensSupportingFeeOnTransferTokens":"swapExactTokensForTokens",o=[u,l,c,s,d],a=JE);break;case Vx.EXACT_OUTPUT:f&&_A(!1),n?(i="swapETHForExactTokens",o=[l,c,s,d],a=u):r?(i="swapTokensForExactETH",o=[l,u,c,s,d],a=JE):(i="swapTokensForExactTokens",o=[l,u,c,s,d],a=JE)}return{methodName:i,args:o,value:a}},e}(),eT=Ue(Object.freeze({__proto__:null,FACTORY_ADDRESS:EE,INIT_CODE_HASH:TE,InsufficientInputAmountError:WE,InsufficientReservesError:HE,MINIMUM_LIQUIDITY:CE,Pair:qE,Route:XE,Router:$E,Trade:YE,computePairAddress:VE,inputOutputComparator:GE,tradeComparator:ZE})),tT=Ue(nh);cw.exports=(QE||(QE=1,function(e){function t(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(e,"__esModule",{value:!0});var n,r=t(BA),i=fw,o=t(uw?sw:(uw=1,sw=function(e,t){if(!e)throw new Error("Invariant failed")})),a=hw,s=mw,u=yw,l=Bx,c=jx,d=zx,f=eT,p=tT,h="0x0000000000000000000000000000000000000001",m="0x0000000000000000000000000000000000000002",y=r.BigInt(0),A=r.BigInt(1);function g(e){return Object.keys(e).some((function(e){return"recipient"===e}))}(n=e.ApprovalTypes||(e.ApprovalTypes={}))[n.NOT_REQUIRED=0]="NOT_REQUIRED",n[n.MAX=1]="MAX",n[n.MAX_MINUS_ONE=2]="MAX_MINUS_ONE",n[n.ZERO_THEN_MAX=3]="ZERO_THEN_MAX",n[n.ZERO_THEN_MAX_MINUS_ONE=4]="ZERO_THEN_MAX_MINUS_ONE";var b=function(){function t(){}return t.encodeApproveMax=function(e){return t.INTERFACE.encodeFunctionData("approveMax",[e.address])},t.encodeApproveMaxMinusOne=function(e){return t.INTERFACE.encodeFunctionData("approveMaxMinusOne",[e.address])},t.encodeApproveZeroThenMax=function(e){return t.INTERFACE.encodeFunctionData("approveZeroThenMax",[e.address])},t.encodeApproveZeroThenMaxMinusOne=function(e){return t.INTERFACE.encodeFunctionData("approveZeroThenMaxMinusOne",[e.address])},t.encodeCallPositionManager=function(e){if(e.length>0||o(!1),1==e.length)return t.INTERFACE.encodeFunctionData("callPositionManager",e);var n=s.NonfungiblePositionManager.INTERFACE.encodeFunctionData("multicall",[e]);return t.INTERFACE.encodeFunctionData("callPositionManager",[n])},t.encodeAddLiquidity=function(e,n,i,o){var a=e.mintAmountsWithSlippage(o),u=a.amount0,l=a.amount1;return r.lessThan(n.amount0.quotient,u)&&(u=n.amount0.quotient),r.lessThan(n.amount1.quotient,l)&&(l=n.amount1.quotient),g(i)?t.INTERFACE.encodeFunctionData("mint",[{token0:e.pool.token0.address,token1:e.pool.token1.address,fee:e.pool.fee,tickLower:e.tickLower,tickUpper:e.tickUpper,amount0Min:s.toHex(u),amount1Min:s.toHex(l),recipient:i.recipient}]):t.INTERFACE.encodeFunctionData("increaseLiquidity",[{token0:e.pool.token0.address,token1:e.pool.token1.address,amount0Min:s.toHex(u),amount1Min:s.toHex(l),tokenId:s.toHex(i.tokenId)}])},t.encodeApprove=function(n,r){switch(r){case e.ApprovalTypes.MAX:return t.encodeApproveMax(n.wrapped);case e.ApprovalTypes.MAX_MINUS_ONE:return t.encodeApproveMaxMinusOne(n.wrapped);case e.ApprovalTypes.ZERO_THEN_MAX:return t.encodeApproveZeroThenMax(n.wrapped);case e.ApprovalTypes.ZERO_THEN_MAX_MINUS_ONE:return t.encodeApproveZeroThenMaxMinusOne(n.wrapped);default:throw"Error: invalid ApprovalType"}},t}();b.INTERFACE=new i.Interface(a.abi);var v=function(){function e(){}return e.encodeMulticall=function(t,n){if(void 0===n)return s.Multicall.encodeMulticall(t);if(Array.isArray(t)||(t=[t]),"string"==typeof n&&n.startsWith("0x")){var r=function(e){if(!e.match(/^0x[0-9a-fA-F]{64}$/))throw new Error(e+" is not valid bytes32.");return e.toLowerCase()}(n);return e.INTERFACE.encodeFunctionData("multicall(bytes32,bytes[])",[r,t])}var i=s.toHex(n);return e.INTERFACE.encodeFunctionData("multicall(uint256,bytes[])",[i,t])},e}();function w(e){return s.toHex(e.multiply(1e4).quotient)}v.INTERFACE=new i.Interface(u.abi);var x=function(){function e(){}return e.encodeUnwrapWETH9=function(t,n,r){if("string"==typeof n)return s.Payments.encodeUnwrapWETH9(t,n,r);if(r){var i=w(r.fee),o=l.validateAndParseAddress(r.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee(uint256,uint256,address)",[s.toHex(t),i,o])}return e.INTERFACE.encodeFunctionData("unwrapWETH9(uint256)",[s.toHex(t)])},e.encodeSweepToken=function(t,n,r,i){if("string"==typeof r)return s.Payments.encodeSweepToken(t,n,r,i);if(i){var o=w(i.fee),a=l.validateAndParseAddress(i.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee(address,uint256,uint256,address)",[t.address,s.toHex(n),o,a])}return e.INTERFACE.encodeFunctionData("sweepToken(address,uint256)",[t.address,s.toHex(n)])},e.encodePull=function(t,n){return e.INTERFACE.encodeFunctionData("pull",[t.address,s.toHex(n)])},e.encodeWrapETH=function(t){return e.INTERFACE.encodeFunctionData("wrapETH",[s.toHex(t)])},e}();function E(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function T(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){E(o,r,i,a,s,"next",e)}function s(e){E(o,r,i,a,s,"throw",e)}a(void 0)}))}}function C(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function k(e,t,n){return t&&C(e.prototype,t),n&&C(e,n),e}function S(){return(S=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function I(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return P(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?P(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}x.INTERFACE=new i.Interface(c.abi);var N,R=(function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=Object.create((t&&t.prototype instanceof d?t:d).prototype),o=new E(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=v(a,n);if(s){if(s===c)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=l(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===c)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}(e,n,o),i}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var c={};function d(){}function f(){}function p(){}var h={};s(h,i,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(T([])));y&&y!==t&&n.call(y,i)&&(h=y);var A=p.prototype=d.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var r;this._invoke=function(i,o){function a(){return new t((function(r,a){!function r(i,o,a,s){var u=l(e[i],e,o);if("throw"!==u.type){var c=u.arg,d=c.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(d).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(u.arg)}(i,o,r,a)}))}return r=r?r.then(a,a):a()}}function v(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,v(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function T(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:C}}function C(){return{value:void 0,done:!0}}return f.prototype=p,s(A,"constructor",p),s(p,"constructor",f),f.displayName=s(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,s(e,a,"GeneratorFunction")),e.prototype=Object.create(A),e},e.awrap=function(e){return{__await:e}},g(b.prototype),s(b.prototype,o,(function(){return this})),e.AsyncIterator=b,e.async=function(t,n,r,i,o){void 0===o&&(o=Promise);var a=new b(u(t,n,r,i),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(A),s(A,a,"Generator"),s(A,i,(function(){return this})),s(A,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=T,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),u=n.call(o,"finallyLoc");if(s&&u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,c):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),c},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;x(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(N={exports:{}}),N.exports),M=function(){function e(e,t,n){this._midPrice=null,e.length>0||o(!1);var r=e[0].chainId;e.every((function(e){return e.chainId===r}))||o(!1);var i=t.wrapped;e[0].involvesToken(i)||o(!1),e[e.length-1].involvesToken(n.wrapped)||o(!1);for(var a,s=[i],u=O(e.entries());!(a=u()).done;){var l=a.value,c=l[1],d=s[l[0]];d.equals(c.token0)||d.equals(c.token1)||o(!1);var f=d.equals(c.token0)?c.token1:c.token0;s.push(f)}this.pools=e,this.path=s,this.input=t,this.output=null!=n?n:s[s.length-1]}return k(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.price;return e.nextInput.equals(t.token0)?{nextInput:t.token1,price:n.multiply(t.token0Price)}:{nextInput:t.token0,price:n.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new l.Price(this.input,this.output,e.denominator,e.numerator)}}]),e}();function L(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||o(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||o(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.path.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.path.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var D,F=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){return r.wrapped.equals(e.route.input.wrapped)}))||o(!1),t.every((function(e){return i.wrapped.equals(e.route.output.wrapped)}))||o(!1);for(var a,u=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),c=new Set,d=O(t);!(a=d()).done;)for(var p,h=O(a.value.route.pools);!(p=h()).done;){var m=p.value;c.add(m instanceof s.Pool?s.Pool.getAddress(m.token0,m.token1,m.fee):f.Pair.getAddress(m.token0,m.token1))}u!=c.size&&o(!1),n!==l.TradeType.EXACT_INPUT&&o(!1),this.swaps=t,this.tradeType=n}e.fromRoute=function(){var t=T(R.mark((function t(n,r,i){var a,s,u,c,d;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=new Array(n.path.length),i!==l.TradeType.EXACT_INPUT&&o(!1),r.currency.equals(n.input)||o(!1),a[0]=r.wrapped,c=0;case 5:if(!(c<n.path.length-1)){t.next=15;break}return d=n.pools[c],t.next=9,d.getOutputAmount(a[c]);case 9:a[c+1]=t.sent[0];case 12:c++,t.next=5;break;case 15:return s=l.CurrencyAmount.fromFractionalAmount(n.input,r.numerator,r.denominator),u=l.CurrencyAmount.fromFractionalAmount(n.output,a[a.length-1].numerator,a[a.length-1].denominator),t.abrupt("return",new e({routes:[{inputAmount:s,outputAmount:u,route:n}],tradeType:i}));case 18:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=T(R.mark((function t(n,r){var i,a,s,u,c,d,f,p,h,m,y;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],r!==l.TradeType.EXACT_INPUT&&o(!1),a=O(n);case 3:if((s=a()).done){t.next=26;break}c=(u=s.value).route,d=u.amount,f=new Array(c.path.length),p=void 0,h=void 0,d.currency.equals(c.input)||o(!1),p=l.CurrencyAmount.fromFractionalAmount(c.input,d.numerator,d.denominator),f[0]=l.CurrencyAmount.fromFractionalAmount(c.input.wrapped,d.numerator,d.denominator),m=0;case 12:if(!(m<c.path.length-1)){t.next=22;break}return y=c.pools[m],t.next=16,y.getOutputAmount(f[m]);case 16:f[m+1]=t.sent[0];case 19:m++,t.next=12;break;case 22:h=l.CurrencyAmount.fromFractionalAmount(c.output,f[f.length-1].numerator,f[f.length-1].denominator),i.push({route:c,inputAmount:p,outputAmount:h});case 24:t.next=3;break;case 26:return t.abrupt("return",new e({routes:i,tradeType:r}));case 27:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(S({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){void 0===t&&(t=this.outputAmount),e.lessThan(y)&&o(!1);var n=new l.Fraction(A).add(e).invert().multiply(t.quotient).quotient;return l.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){return void 0===t&&(t=this.inputAmount),e.lessThan(y)&&o(!1),t},t.worstExecutionPrice=function(e){return new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=T(R.mark((function t(n,r,i,a,s,u,c){var d,p,h,m,A,g,b,v,w,x,E;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:h=void 0===(p=(d=void 0===a?{}:a).maxNumResults)?3:p,A=void 0===(m=d.maxHops)?3:m,void 0===s&&(s=[]),void 0===u&&(u=r),void 0===c&&(c=[]),n.length>0||o(!1),A>0||o(!1),r===u||s.length>0||o(!1),g=u.wrapped,b=i.wrapped,v=0;case 10:if(!(v<n.length)){t.next=49;break}if((w=n[v]).token0.equals(g.currency)||w.token1.equals(g.currency)){t.next=14;break}return t.abrupt("continue",46);case 14:if(!(w instanceof f.Pair)){t.next=17;break}if(!w.reserve0.equalTo(y)&&!w.reserve1.equalTo(y)){t.next=17;break}return t.abrupt("continue",46);case 17:return x=void 0,t.prev=18,t.next=22,w.getOutputAmount(g);case 22:x=t.sent[0],t.next=31;break;case 26:if(t.prev=26,t.t0=t.catch(18),!t.t0.isInsufficientInputAmountError){t.next=30;break}return t.abrupt("continue",46);case 30:throw t.t0;case 31:if(!x.currency.isToken||!x.currency.equals(b)){t.next=42;break}return t.t1=l.sortedInsert,t.t2=c,t.next=36,e.fromRoute(new M([].concat(s,[w]),r.currency,i),r,l.TradeType.EXACT_INPUT);case 36:t.t3=t.sent,t.t4=h,t.t5=L,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=46;break;case 42:if(!(A>1&&n.length>1)){t.next=46;break}return E=n.slice(0,v).concat(n.slice(v+1,n.length)),t.next=46,e.bestTradeExactIn(E,r,i,{maxNumResults:h,maxHops:A-1},[].concat(s,[w]),x,c);case 46:v++,t.next=10;break;case 49:return t.abrupt("return",c);case 50:case"end":return t.stop()}}),t,null,[[18,26]])})));return function(e,n,r,i,o,a,s){return t.apply(this,arguments)}}(),k(e,[{key:"route",get:function(){return 1!=this.swaps.length&&o(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=l.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=O(this.swaps);!(e=n()).done;){var r=e.value;t=t.add(r.route.midPrice.quote(r.inputAmount))}var i=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new l.Percent(i.numerator,i.denominator),this._priceImpact}}]),e}();(D=e.Protocol||(e.Protocol={})).V2="V2",D.V3="V3",D.MIXED="MIXED";var B=function(t){function n(n){var r;return(r=t.call(this,n.pairs,n.input,n.output)||this).protocol=e.Protocol.V2,r.pools=r.pairs,r}return I(n,t),n}(f.Route),j=function(t){function n(n){var r;return(r=t.call(this,n.pools,n.input,n.output)||this).protocol=e.Protocol.V3,r.path=n.tokenPath,r}return I(n,t),n}(s.Route),z=function(t){function n(n){var r;return(r=t.call(this,n.pools,n.input,n.output)||this).protocol=e.Protocol.MIXED,r}return I(n,t),n}(M),_=function(){function e(e){var t=e.v2Routes,n=e.v3Routes,r=e.tradeType,i=e.mixedRoutes;this.swaps=[],this.routes=[];for(var a,u=O(t);!(a=u()).done;){var l=a.value,c=l.inputAmount,d=l.outputAmount,p=new B(l.routev2);this.routes.push(p),this.swaps.push({route:p,inputAmount:c,outputAmount:d})}for(var h,m=O(n);!(h=m()).done;){var y=h.value,A=y.inputAmount,g=y.outputAmount,b=new j(y.routev3);this.routes.push(b),this.swaps.push({route:b,inputAmount:A,outputAmount:g})}if(i)for(var v,w=O(i);!(v=w()).done;){var x=v.value,E=x.inputAmount,T=x.outputAmount,C=new z(x.mixedRoute);this.routes.push(C),this.swaps.push({route:C,inputAmount:E,outputAmount:T})}this.tradeType=r;var k=this.swaps[0].inputAmount.currency,S=this.swaps[0].outputAmount.currency;this.swaps.every((function(e){return k.wrapped.equals(e.route.input.wrapped)}))||o(!1),this.swaps.every((function(e){return S.wrapped.equals(e.route.output.wrapped)}))||o(!1);for(var I,P=this.swaps.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),N=new Set,R=O(this.swaps);!(I=R()).done;)for(var M,L=O(I.value.route.pools);!(M=L()).done;){var D=M.value;if(D instanceof s.Pool)N.add(s.Pool.getAddress(D.token0,D.token1,D.fee));else{if(!(D instanceof f.Pair))throw new Error("Unexpected pool type in route when constructing trade object");N.add(f.Pair.getAddress(D.token0,D.token1))}}P!=N.size&&o(!1)}var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(y)&&o(!1),this.tradeType===l.TradeType.EXACT_OUTPUT)return t;var n=new l.Fraction(A).add(e).invert().multiply(t.quotient).quotient;return l.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(y)&&o(!1),this.tradeType===l.TradeType.EXACT_INPUT)return t;var n=new l.Fraction(A).add(e).multiply(t.quotient).quotient;return l.CurrencyAmount.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.fromRoutes=function(){var t=T(R.mark((function t(n,r,i,o){var a,u,l,c,d,p,h,m,y,A,g,b,v,w,x,E,T,C,k,S;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(a=[],u=[],l=[],c=O(n);!(d=c()).done;)m=new f.Trade(h=(p=d.value).routev2,p.amount,i),a.push({routev2:h,inputAmount:m.inputAmount,outputAmount:m.outputAmount});y=O(r);case 5:if((A=y()).done){t.next=14;break}return b=(g=A.value).routev3,v=g.amount,t.next=9,s.Trade.fromRoute(b,v,i);case 9:u.push({routev3:b,inputAmount:(w=t.sent).inputAmount,outputAmount:w.outputAmount});case 12:t.next=5;break;case 14:if(!o){t.next=25;break}x=O(o);case 16:if((E=x()).done){t.next=25;break}return C=(T=E.value).mixedRoute,k=T.amount,t.next=20,F.fromRoute(C,k,i);case 20:l.push({mixedRoute:C,inputAmount:(S=t.sent).inputAmount,outputAmount:S.outputAmount});case 23:t.next=16;break;case 25:return t.abrupt("return",new e({v2Routes:a,v3Routes:u,mixedRoutes:l,tradeType:i}));case 26:case"end":return t.stop()}}),t)})));return function(e,n,r,i){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=T(R.mark((function t(n,r,i){var o,a,u,l,c,d;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=[],a=[],u=[],!(n instanceof f.Route)){t.next=9;break}l=new f.Trade(n,r,i),o=[{routev2:n,inputAmount:l.inputAmount,outputAmount:l.outputAmount}],t.next=26;break;case 9:if(!(n instanceof s.Route)){t.next=17;break}return t.next=12,s.Trade.fromRoute(n,r,i);case 12:a=[{routev3:n,inputAmount:(c=t.sent).inputAmount,outputAmount:c.outputAmount}],t.next=26;break;case 17:if(!(n instanceof M)){t.next=25;break}return t.next=20,F.fromRoute(n,r,i);case 20:u=[{mixedRoute:n,inputAmount:(d=t.sent).inputAmount,outputAmount:d.outputAmount}],t.next=26;break;case 25:throw new Error("Invalid route type");case 26:return t.abrupt("return",new e({v2Routes:o,v3Routes:a,mixedRoutes:u,tradeType:i}));case 27:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),k(e,[{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=l.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=O(this.swaps);!(e=n()).done;){var r=e.value;t=t.add(r.route.midPrice.quote(r.inputAmount))}var i=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new l.Percent(i.numerator,i.denominator),this._priceImpact}}]),e}();function U(e){var t=e.pools.reduce((function(e,t,n){var r=e.inputToken,i=e.path,o=e.types,a=t.token0.equals(r)?t.token1:t.token0;return 0===n?{inputToken:a,types:["address","uint24","address"],path:[r.address,t instanceof s.Pool?t.fee:8388608,a.address]}:{inputToken:a,types:[].concat(o,["uint24","address"]),path:[].concat(i,[t instanceof s.Pool?t.fee:8388608,a.address])}}),{inputToken:e.input.wrapped,path:[],types:[]});return p.pack(t.types,t.path)}var H=function(e){for(var t=[],n=0,r=0;r<e.pools.length;)(e.pools[n]instanceof s.Pool&&e.pools[r]instanceof f.Pair||e.pools[n]instanceof f.Pair&&e.pools[r]instanceof s.Pool)&&(t.push(e.pools.slice(n,r)),n=r),++r===e.pools.length&&t.push(e.pools.slice(n,r));return t},W=function(e,t){return e.reduce((function(e,t){var n=e.inputToken;if(!t.involvesToken(n))throw new Error("PATH");return{inputToken:t.token0.equals(n)?t.token1:t.token0}}),{inputToken:t}).inputToken},V=r.BigInt(0),q=new l.Percent(r.BigInt(50),r.BigInt(100)),X=function(){function t(){}return t.encodeV2Swap=function(e,n,r,i){var o=s.toHex(e.maximumAmountIn(n.slippageTolerance).quotient),a=s.toHex(e.minimumAmountOut(n.slippageTolerance).quotient),u=e.route.path.map((function(e){return e.address})),c=r?m:void 0===n.recipient?h:l.validateAndParseAddress(n.recipient);return e.tradeType===l.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[o,i?0:a,u,c]):t.INTERFACE.encodeFunctionData("swapTokensForExactTokens",[a,o,u,c])},t.encodeV3Swap=function(e,n,r,i){for(var o,a=[],u=O(e.swaps);!(o=u()).done;){var c=o.value,d=c.route,f=c.outputAmount,p=s.toHex(e.maximumAmountIn(n.slippageTolerance,c.inputAmount).quotient),y=s.toHex(e.minimumAmountOut(n.slippageTolerance,f).quotient),A=1===d.pools.length,g=r?m:void 0===n.recipient?h:l.validateAndParseAddress(n.recipient);if(A)a.push(e.tradeType===l.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:d.tokenPath[0].address,tokenOut:d.tokenPath[1].address,fee:d.pools[0].fee,recipient:g,amountIn:p,amountOutMinimum:i?0:y,sqrtPriceLimitX96:0}]):t.INTERFACE.encodeFunctionData("exactOutputSingle",[{tokenIn:d.tokenPath[0].address,tokenOut:d.tokenPath[1].address,fee:d.pools[0].fee,recipient:g,amountOut:y,amountInMaximum:p,sqrtPriceLimitX96:0}]));else{var b=s.encodeRouteToPath(d,e.tradeType===l.TradeType.EXACT_OUTPUT);a.push(e.tradeType===l.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInput",[{path:b,recipient:g,amountIn:p,amountOutMinimum:i?0:y}]):t.INTERFACE.encodeFunctionData("exactOutput",[{path:b,recipient:g,amountOut:y,amountInMaximum:p}]))}}return a},t.encodeMixedRouteSwap=function(e,n,r,i){var a=[];e.tradeType!==l.TradeType.EXACT_INPUT&&o(!1);for(var u,c=O(e.swaps);!(u=c()).done;){var d=u.value,f=d.route,p=d.outputAmount,y=s.toHex(e.maximumAmountIn(n.slippageTolerance,d.inputAmount).quotient),A=s.toHex(e.minimumAmountOut(n.slippageTolerance,p).quotient),g=1===f.pools.length,b=r?m:void 0===n.recipient?h:l.validateAndParseAddress(n.recipient),v=function(e){return e.pools.every((function(e){return e instanceof s.Pool}))};if(g)if(v(f))a.push(t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:f.path[0].address,tokenOut:f.path[1].address,fee:f.pools[0].fee,recipient:b,amountIn:y,amountOutMinimum:i?0:A,sqrtPriceLimitX96:0}]));else{var w=f.path.map((function(e){return e.address}));a.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[y,i?0:A,w,b]))}else!function(){for(var e=H(f),n=function(t){return t===e.length-1},r=void 0,i=f.input.wrapped,o=0;o<e.length;o++){var s=e[o];r=W(s,i);var u=new M([].concat(s),s[0].token0.equals(i)?s[0].token0:s[0].token1,r),l=new z(u);if(i=r,v(l)){var c={path:U(l),recipient:n(o)?b:m,amountIn:0==o?y:0,amountOutMinimum:n(o)?A:0};a.push(t.INTERFACE.encodeFunctionData("exactInput",[c]))}else{var d=[0==o?y:0,n(o)?A:0,l.path.map((function(e){return e.address})),n(o)?b:m];a.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",d))}}}()}return a},t.encodeSwaps=function(n,r,i){if(n instanceof _){n.swaps.every((function(t){return t.route.protocol==e.Protocol.V3||t.route.protocol==e.Protocol.V2||t.route.protocol==e.Protocol.MIXED}))||o(!1);for(var a,u=[],c=O(n.swaps);!(a=c()).done;){var d=a.value,p=d.route,h=d.inputAmount,m=d.outputAmount;if(p.protocol==e.Protocol.V2)u.push(new f.Trade(p,n.tradeType==l.TradeType.EXACT_INPUT?h:m,n.tradeType));else if(p.protocol==e.Protocol.V3)u.push(s.Trade.createUncheckedTrade({route:p,inputAmount:h,outputAmount:m,tradeType:n.tradeType}));else{if(p.protocol!=e.Protocol.MIXED)throw new Error("UNSUPPORTED_TRADE_PROTOCOL");u.push(F.createUncheckedTrade({route:p,inputAmount:h,outputAmount:m,tradeType:n.tradeType}))}}n=u}Array.isArray(n)||(n=[n]);var y=n.reduce((function(e,t){return e+(t instanceof s.Trade||t instanceof F?t.swaps.length:1)}),0),A=n[0];n.every((function(e){return e.inputAmount.currency.equals(A.inputAmount.currency)}))||o(!1),n.every((function(e){return e.outputAmount.currency.equals(A.outputAmount.currency)}))||o(!1),n.every((function(e){return e.tradeType===A.tradeType}))||o(!1);var g=[],b=A.inputAmount.currency.isNative,v=A.outputAmount.currency.isNative,w=A.tradeType===l.TradeType.EXACT_INPUT&&y>2,x=v||!!r.fee||!!i||w;r.inputTokenPermit&&(A.inputAmount.currency.isToken||o(!1),g.push(s.SelfPermit.encodePermit(A.inputAmount.currency,r.inputTokenPermit)));for(var E,T=O(n);!(E=T()).done;){var C=E.value;if(C instanceof f.Trade)g.push(t.encodeV2Swap(C,r,x,w));else if(C instanceof s.Trade)for(var k,S=O(t.encodeV3Swap(C,r,x,w));!(k=S()).done;)g.push(k.value);else{if(!(C instanceof F))throw new Error("Unsupported trade object");for(var I,P=O(t.encodeMixedRouteSwap(C,r,x,w));!(I=P()).done;)g.push(I.value)}}var N=l.CurrencyAmount.fromRawAmount(A.inputAmount.currency,0),R=l.CurrencyAmount.fromRawAmount(A.outputAmount.currency,0),M=n.reduce((function(e,t){return e.add(t.minimumAmountOut(r.slippageTolerance))}),R),L=n.reduce((function(e,t){return e.add(t.outputAmount)}),R),D=n.reduce((function(e,t){return e.add(t.maximumAmountIn(r.slippageTolerance))}),N);return{calldatas:g,sampleTrade:A,routerMustCustody:x,inputIsNative:b,outputIsNative:v,totalAmountIn:D,minimumAmountOut:M,quoteAmountOut:L}},t.swapCallParameters=function(e,n){var r=t.encodeSwaps(e,n),i=r.calldatas,o=r.sampleTrade,a=r.inputIsNative,u=r.totalAmountIn,c=r.minimumAmountOut;return r.routerMustCustody&&i.push(r.outputIsNative?x.encodeUnwrapWETH9(c.quotient,n.recipient,n.fee):x.encodeSweepToken(o.outputAmount.currency.wrapped,c.quotient,n.recipient,n.fee)),a&&(o.tradeType===l.TradeType.EXACT_OUTPUT||t.riskOfPartialFill(e))&&i.push(s.Payments.encodeRefundETH()),{calldata:v.encodeMulticall(i,n.deadlineOrPreviousBlockhash),value:s.toHex(a?u.quotient:V)}},t.swapAndAddCallParameters=function(n,r,i,a,u,c){var d=t.encodeSwaps(n,r,!0),f=d.calldatas,p=d.inputIsNative,h=d.outputIsNative,m=d.sampleTrade,y=d.totalAmountIn,A=d.quoteAmountOut,g=d.minimumAmountOut;r.outputTokenPermit&&(A.currency.isToken||o(!1),f.push(s.SelfPermit.encodePermit(A.currency,r.outputTokenPermit)));var w=m.route.chainId,E=i.pool.token0.wrapped.address===y.currency.wrapped.address,T=t.getPositionAmounts(i,E),C=T.positionAmountIn,k=T.positionAmountOut,S=p?l.WETH9[w]:C.currency.wrapped,I=h?l.WETH9[w]:k.currency.wrapped,P=k.subtract(A.wrapped);P.greaterThan(l.CurrencyAmount.fromRawAmount(k.currency,0))&&f.push(h?x.encodeWrapETH(P.quotient):x.encodePull(I,P.quotient)),f.push(p?x.encodeWrapETH(C.quotient):x.encodePull(S,C.quotient)),u!==e.ApprovalTypes.NOT_REQUIRED&&f.push(b.encodeApprove(S,u)),c!==e.ApprovalTypes.NOT_REQUIRED&&f.push(b.encodeApprove(I,c));var O,N=s.Position.fromAmounts({pool:i.pool,tickLower:i.tickLower,tickUpper:i.tickUpper,amount0:E?i.amount0.quotient.toString():g.quotient.toString(),amount1:E?g.quotient.toString():i.amount1.quotient.toString(),useFullPrecision:!1});return f.push(b.encodeAddLiquidity(i,N,a,r.slippageTolerance)),f.push(p?x.encodeUnwrapWETH9(V):x.encodeSweepToken(S,V)),f.push(h?x.encodeUnwrapWETH9(V):x.encodeSweepToken(I,V)),O=p?y.wrapped.add(C.wrapped).quotient:h?P.quotient:V,{calldata:v.encodeMulticall(f,r.deadlineOrPreviousBlockhash),value:O.toString()}},t.riskOfPartialFill=function(e){return Array.isArray(e)?e.some((function(e){return t.v3TradeWithHighPriceImpact(e)})):t.v3TradeWithHighPriceImpact(e)},t.v3TradeWithHighPriceImpact=function(e){return!(e instanceof f.Trade)&&e.priceImpact.greaterThan(q)},t.getPositionAmounts=function(e,t){var n=e.mintAmounts,r=n.amount1,i=l.CurrencyAmount.fromRawAmount(e.pool.token0,n.amount0),o=l.CurrencyAmount.fromRawAmount(e.pool.token1,r),a=t?[i,o]:[o,i];return{positionAmountIn:a[0],positionAmountOut:a[1]}},t}();X.INTERFACE=new i.Interface(d.abi),e.ADDRESS_THIS=m,e.ApproveAndCall=b,e.MSG_SENDER=h,e.MixedRoute=z,e.MixedRouteSDK=M,e.MixedRouteTrade=F,e.MulticallExtended=v,e.ONE=A,e.PaymentsExtended=x,e.RouteV2=B,e.RouteV3=j,e.SwapRouter=X,e.Trade=_,e.V2_FEE_PATH_PLACEHOLDER=8388608,e.ZERO=y,e.encodeMixedRouteToPath=U,e.getOutputOfPools=W,e.isMint=g,e.partitionMixedRouteByProtocol=H,e.tradeComparator=L}(dw)),dw);var nT,rT=cw.exports;!function(e){e.INVALID_CONFIGURATION="INVALID_CONFIGURATION",e.INVALID_SLIPPAGE="INVALID_SLIPPAGE",e.INVALID_MAX_HOPS="INVALID_MAX_HOPS",e.INVALID_ADDRESS="INVALID_ADDRESS",e.DUPLICATE_ADDRESSES="DUPLICATE_ADDRESSES",e.CHAIN_NOT_SUPPORTED="CHAIN_NOT_SUPPORTED",e.NO_ROUTES_AVAILABLE="NO_ROUTES_AVAILABLE",e.PROVIDER_CALL_ERROR="PROVIDER_CALL_ERROR",e.APPROVE_ERROR="APPROVE_ERROR",e.ALREADY_APPROVED_ERROR="ALREADY_APPROVED_ERROR"}(nT||(nT={}));class iT extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}}class oT extends iT{constructor(e){super(e||"Invalid configuration",nT.INVALID_CONFIGURATION)}}class aT extends iT{constructor(e,t){super(`Chain with ID ${e} is not a supported chain in environment ${t}`,nT.CHAIN_NOT_SUPPORTED)}}class sT extends iT{constructor(e){super(e,nT.INVALID_SLIPPAGE)}}class uT extends iT{constructor(e){super(e,nT.INVALID_MAX_HOPS)}}class lT extends iT{constructor(e){super(e,nT.INVALID_ADDRESS)}}class cT extends iT{constructor(){super("token in and token out addresses must be different",nT.DUPLICATE_ADDRESSES)}}class dT extends iT{constructor(){super("no routes available",nT.NO_ROUTES_AVAILABLE)}}class fT extends iT{constructor(e){super(e,nT.PROVIDER_CALL_ERROR)}}class pT extends iT{constructor(e){super(e,nT.APPROVE_ERROR)}}const hT=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],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"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",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"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];class mT{static abi=hT;static createInterface(){return new ma(hT)}static connect(e,t){return new Jl(e,hT,t)}}const yT=[{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Call[]",name:"calls",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"uint256",name:"gasUsed",type:"uint256"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}],AT="0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a";class gT extends $l{constructor(...e){e.length>1?super(...e):super(yT,AT,e[0])}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=AT;static abi=yT;static createInterface(){return new ma(yT)}static connect(e,t){return new Jl(e,yT,t)}}const bT=[{inputs:[{internalType:"address",name:"_admin",type:"address"},{internalType:"address",name:"_uniRouter",type:"address"},{internalType:"address",name:"_wimx",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ContractPaused",type:"error"},{inputs:[],name:"DeadlinePassed",type:"error"},{inputs:[],name:"FailedToRefundNativeTokens",type:"error"},{inputs:[],name:"FailedToSendFees",type:"error"},{inputs:[],name:"FeeTooHigh",type:"error"},{inputs:[],name:"IncorrectRecipient",type:"error"},{inputs:[],name:"InputTokenNotWrapped",type:"error"},{inputs:[],name:"NativeTokenAmountMismatch",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feeToken",type:"address"},{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"swapParams",type:"tuple"}],name:"exactInputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"swapParams",type:"tuple"}],name:"exactInputWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"swapParams",type:"tuple"}],name:"exactOutputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"swapParams",type:"tuple"}],name:"exactOutputWithSecondaryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapNativeToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"erc20",type:"address"}],name:"withdrawFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],vT="0x60806040523480156200001157600080fd5b506040516200310b3803806200310b83398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b612f5580620001b66000396000f3fe60806040526004361061010c5760003560e01c806358e81a50116100955780638456cb59116100645780638456cb591461029957806391d14854146102ae578063a217fddf146102ce578063ac9650d8146102e3578063d547741f1461030357600080fd5b806358e81a501461023b5780635ae401dc1461024e5780635c975abb1461026e5780635ebca7991461028657600080fd5b80632f2ff15d116100dc5780632f2ff15d146101c057806336568abe146101e0578063383ebb0b146102005780633f4ba83a146102135780635640f6591461022857600080fd5b80620fa9fb1461011857806301ffc9a71461013a578063116944b21461016f578063248a9ca31461019057600080fd5b3661011357005b600080fd5b34801561012457600080fd5b5061013861013336600461270a565b610323565b005b34801561014657600080fd5b5061015a610155366004612743565b6103ef565b60405190151581526020015b60405180910390f35b61018261017d3660046128d4565b610426565b604051908152602001610166565b34801561019c57600080fd5b506101826101ab366004612929565b60009081526020819052604090206001015490565b3480156101cc57600080fd5b506101386101db366004612942565b6106ab565b3480156101ec57600080fd5b506101386101fb366004612942565b6106d0565b61018261020e366004612a2a565b610753565b34801561021f57600080fd5b50610138610ac2565b610182610236366004612a2a565b610b12565b6101826102493660046128d4565b610d90565b61026161025c366004612ad6565b6110c5565b6040516101669190612b71565b34801561027a57600080fd5b5060015460ff1661015a565b610138610294366004612929565b6110fa565b3480156102a557600080fd5b506101386112aa565b3480156102ba57600080fd5b5061015a6102c9366004612942565b6112f8565b3480156102da57600080fd5b50610182600081565b3480156102ef57600080fd5b506102616102fe366004612bd3565b611321565b34801561030f57600080fd5b5061013861031e366004612942565b611415565b61034d7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e982869336112f8565b610369576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d49190612c14565b90506103ea6001600160a01b038316848361143a565b505050565b60006001600160e01b03198216637965db0b60e01b148061042057506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061043460015460ff1690565b156104525760405163ab35696f60e01b815260040160405180910390fd5b60608201516001600160a01b0316331461047f5760405163519bdea760e01b815260040160405180910390fd5b4780156105bf57826080015181146104aa576040516342f7487960e11b815260040160405180910390fd5b60035483516001600160a01b039081169116146104da576040516324d0121760e01b815260040160405180910390fd5b61053a83608001518686808060200260200160405190810160405280939291908181526020016000905b828210156105305761052160408302860136819003810190612c2d565b81526020019060010190610504565b505050505061149d565b608084018190526001546040516304e45aaf60e01b81526101009091046001600160a01b0316916304e45aaf91610575908790600401612c84565b60206040518083038185885af1158015610593573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105b89190612c14565b91506106a3565b610624836000015184608001518787808060200260200160405190810160405280939291908181526020016000905b8282101561061a5761060b60408302860136819003810190612c2d565b815260200190600101906105ee565b50505050506114ef565b60808401526001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf9061065d908690600401612c84565b6020604051808303816000875af115801561067c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a09190612c14565b91505b509392505050565b6000828152602081905260409020600101546106c68161154c565b6103ea8383611559565b6001600160a01b03811633146107455760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61074f82826115dd565b5050565b600061076160015460ff1690565b1561077f5760405163ab35696f60e01b815260040160405180910390fd5b60208201516001600160a01b031633146107ac5760405163519bdea760e01b815260040160405180910390fd5b60006107bb8360000151611642565b905047801561096d576003546001600160a01b038381169116146107f2576040516324d0121760e01b815260040160405180910390fd5b83606001518114610816576040516342f7487960e11b815260040160405180910390fd5b60008061087986606001518989808060200260200160405190810160405280939291908181526020016000905b8282101561086f5761086060408302860136819003810190612c2d565b81526020019060010190610843565b5050505050611670565b606088018190526001546040516304dc09a360e11b81529294509092506000916101009091046001600160a01b0316906309b813469084906108bf908b90600401612d2a565b60206040518083038185885af11580156108dd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109029190612c14565b905061096181848b8b808060200260200160405190810160405280939291908181526020016000905b828210156109575761094860408302860136819003810190612c2d565b8152602001906001019061092b565b50505050506116c3565b95505050505050610abb565b6000806109d18487606001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156109c7576109b860408302860136819003810190612c2d565b8152602001906001019061099b565b50505050506117b7565b606088018190526001546040516304dc09a360e11b81529294509092506000916101009091046001600160a01b0316906309b8134690610a15908a90600401612d2a565b6020604051808303816000875af1158015610a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a589190612c14565b90506109618582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610aae57610a9f60408302860136819003810190612c2d565b81526020019060010190610a82565b5050505050611811565b50505b9392505050565b610aec7fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b5336112f8565b610b08576040516282b42960e81b815260040160405180910390fd5b610b1061186d565b565b6000610b2060015460ff1690565b15610b3e5760405163ab35696f60e01b815260040160405180910390fd5b60208201516001600160a01b03163314610b6b5760405163519bdea760e01b815260040160405180910390fd5b6000610b7a83600001516118bf565b9050478015610cb05783604001518114610ba7576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03838116911614610bd5576040516324d0121760e01b815260040160405180910390fd5b610c2b84604001518787808060200260200160405190810160405280939291908181526020016000905b8282101561053057610c1c60408302860136819003810190612c2d565b81526020019060010190610bff565b6040858101829052600154905163b858183f60e01b81526101009091046001600160a01b03169163b858183f91610c66908890600401612d2a565b60206040518083038185885af1158015610c84573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ca99190612c14565b9250610ab8565b610d078285604001518888808060200260200160405190810160405280939291908181526020016000905b8282101561061a57610cf860408302860136819003810190612c2d565b81526020019060010190610cdb565b604085810191909152600154905163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610d43908790600401612d2a565b6020604051808303816000875af1158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190612c14565b9695505050505050565b6000610d9e60015460ff1690565b15610dbc5760405163ab35696f60e01b815260040160405180910390fd5b60608201516001600160a01b03163314610de95760405163519bdea760e01b815260040160405180910390fd5b478015610f865760035483516001600160a01b03908116911614610e20576040516324d0121760e01b815260040160405180910390fd5b8260a001518114610e44576040516342f7487960e11b815260040160405180910390fd5b600080610e9d8560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561086f57610e8e60408302860136819003810190612c2d565b81526020019060010190610e71565b60a08701819052600154604051635023b4df60e01b81529294509092506000916101009091046001600160a01b031690635023b4df908490610ee3908a90600401612c84565b60206040518083038185885af1158015610f01573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f269190612c14565b9050610f7b81848a8a808060200260200160405190810160405280939291908181526020016000905b8282101561095757610f6c60408302860136819003810190612c2d565b81526020019060010190610f4f565b945050505050610abb565b600080610fe485600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b828210156109c757610fd560408302860136819003810190612c2d565b81526020019060010190610fb8565b60a08701819052600154604051635023b4df60e01b81529294509092506000916101009091046001600160a01b031690635023b4df90611028908990600401612c84565b6020604051808303816000875af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b9190612c14565b9050610f7b866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610aae576110b660408302860136819003810190612c2d565b81526020019060010190611099565b6060834211156110e85760405163387b2e5560e11b815260040160405180910390fd5b6110f28383611321565b949350505050565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611143573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111679190612c14565b9050818110156111ad5760405162461bcd60e51b8152602060048201526011602482015270092dce6eaccccd2c6d2cadce840ae929ab607b1b604482015260640161073c565b801561074f57600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b1580156111f957600080fd5b505af115801561120d573d6000803e3d6000fd5b50506040805160008082526020820192839052935033925084916112319190612d3d565b60006040518083038185875af1925050503d806000811461126e576040519150601f19603f3d011682016040523d82523d6000602084013e611273565b606091505b50509050806103ea5760405162461bcd60e51b815260206004820152600360248201526253544560e81b604482015260640161073c565b6112d47ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f6336112f8565b6112f0576040516282b42960e81b815260040160405180910390fd5b610b106118cb565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b0381111561133b5761133b6127b1565b60405190808252806020026020018201604052801561136e57816020015b60608152602001906001900390816113595790505b50905060005b8281101561140e576113de3085858481811061139257611392612d59565b90506020028101906113a49190612d6f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061190692505050565b8282815181106113f0576113f0612d59565b6020026020010181905250808061140690612dcb565b915050611374565b5092915050565b6000828152602081905260409020600101546114308161154c565b6103ea83836115dd565b6040516001600160a01b0383166024820152604481018290526103ea90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261192b565b60006114a882611a00565b506000806114b68585611a73565b90925090506114c58286612de4565b94506114d081611b9c565b6003546114e6906001600160a01b031686611cc6565b50929392505050565b60006114fa82611a00565b506000806115088585611a73565b90925090506115178286612de4565b94506115238682611dc3565b6115386001600160a01b038716333088611ecc565b6115428686611cc6565b5092949350505050565b6115568133611f0a565b50565b61156382826112f8565b61074f576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556115993390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115e782826112f8565b1561074f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080601483516116539190612de4565b9050600061166384836014611f63565b90506110f2816000612070565b600080600061167e84611a00565b9050600061168e82612710612df7565b905061169d86612710836120d5565b6003549093506116b6906001600160a01b031684611cc6565b85935050505b9250929050565b60008060006116d28685611a73565b915091506116df81611b9c565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561172f57600080fd5b505af1158015611743573d6000803e3d6000fd5b5050505060008287876117569190612de4565b6117609190612de4565b604051909150600090339083156108fc0290849084818181858888f193505050509050806117a1576040516382e4f46960e01b815260040160405180910390fd5b6117ab8489612df7565b98975050505050505050565b60008060006117c584611a00565b905060006117d582612710612df7565b90506117e486612710836120d5565b92506117f08784611cc6565b6118056001600160a01b038816333089611ecc565b50939590945092505050565b60008060006118208685611a73565b9150915061182e8782612115565b611858338361183d8989612de4565b6118479190612de4565b6001600160a01b038a16919061143a565b6118628287612df7565b979650505050505050565b61187561221c565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006104208282612070565b6118d3612265565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336118a2565b6060610abb8383604051806060016040528060278152602001612ef9602791396122ab565b6000611980826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123199092919063ffffffff16565b90508051600014806119a15750808060200190518101906119a19190612e0a565b6103ea5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161073c565b6000805b8251811015611a4a57828181518110611a1f57611a1f612d59565b60200260200101516020015182611a369190612df7565b915080611a4281612dcb565b915050611a04565b506103e8811115611a6e5760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611a9057611a906127b1565b604051908082528060200260200182016040528015611ad557816020015b6040805180820190915260008082526020820152815260200190600190039081611aae5790505b50905060005b8351811015611b94576000611b1a858381518110611afb57611afb612d59565b602002602001015160200151612710886123289092919063ffffffff16565b90506040518060400160405280868481518110611b3957611b39612d59565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611b6957611b69612d59565b6020908102919091010152611b7e8185612df7565b9350508080611b8c90612dcb565b915050611adb565b509250929050565b60005b815181101561074f576000828281518110611bbc57611bbc612d59565b6020026020010151600001516001600160a01b03166108fc848481518110611be657611be6612d59565b6020026020010151602001519081150290604051600060405180830381858888f19350505050905080611c2c5760405163647373e960e11b815260040160405180910390fd5b828281518110611c3e57611c3e612d59565b6020026020010151600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac35858581518110611c9057611c90612d59565b602002602001015160200151604051611cab91815260200190565b60405180910390a35080611cbe81612dcb565b915050611b9f565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d409190612c14565b101561074f5760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190612e0a565b60005b81518110156103ea57611e2933838381518110611de557611de5612d59565b602002602001015160000151848481518110611e0357611e03612d59565b602002602001015160200151866001600160a01b0316611ecc909392919063ffffffff16565b818181518110611e3b57611e3b612d59565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e858581518110611e9757611e97612d59565b602002602001015160200151604051611eb291815260200190565b60405180910390a480611ec481612dcb565b915050611dc6565b6040516001600160a01b0380851660248301528316604482015260648101829052611f049085906323b872dd60e01b90608401611466565b50505050565b611f1482826112f8565b61074f57611f21816123ca565b611f2c8360206123dc565b604051602001611f3d929190612e2c565b60408051601f198184030181529082905262461bcd60e51b825261073c91600401612ea1565b606081611f7181601f612df7565b1015611fb05760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161073c565b611fba8284612df7565b84511015611ffe5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161073c565b60608215801561201d5760405191506000825260208201604052612067565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561205657805183526020928301920161203e565b5050858452601f01601f1916604052505b50949350505050565b600061207d826014612df7565b835110156120c55760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b604482015260640161073c565b500160200151600160601b900490565b60006120e2848484612328565b9050600082806120f4576120f4612eb4565b8486091115610abb57600019811061210b57600080fd5b6001019392505050565b60005b81518110156103ea5761217982828151811061213657612136612d59565b60200260200101516000015183838151811061215457612154612d59565b602002602001015160200151856001600160a01b031661143a9092919063ffffffff16565b81818151811061218b5761218b612d59565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106121e7576121e7612d59565b60200260200101516020015160405161220291815260200190565b60405180910390a48061221481612dcb565b915050612118565b60015460ff16610b105760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161073c565b60015460ff1615610b105760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161073c565b6060600080856001600160a01b0316856040516122c89190612d3d565b600060405180830381855af49150503d8060008114612303576040519150601f19603f3d011682016040523d82523d6000602084013e612308565b606091505b5091509150610d8686838387612577565b60606110f284846000856125f0565b6000838302816000198587098281108382030391505080841161234a57600080fd5b8060000361235d57508290049050610abb565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60606104206001600160a01b03831660145b606060006123eb836002612eca565b6123f6906002612df7565b6001600160401b0381111561240d5761240d6127b1565b6040519080825280601f01601f191660200182016040528015612437576020820181803683370190505b509050600360fc1b8160008151811061245257612452612d59565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061248157612481612d59565b60200101906001600160f81b031916908160001a90535060006124a5846002612eca565b6124b0906001612df7565b90505b6001811115612528576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106124e4576124e4612d59565b1a60f81b8282815181106124fa576124fa612d59565b60200101906001600160f81b031916908160001a90535060049490941c9361252181612ee1565b90506124b3565b508315610abb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161073c565b606083156125e65782516000036125df576001600160a01b0385163b6125df5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161073c565b50816110f2565b6110f283836126c0565b6060824710156126515760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161073c565b600080866001600160a01b0316858760405161266d9190612d3d565b60006040518083038185875af1925050503d80600081146126aa576040519150601f19603f3d011682016040523d82523d6000602084013e6126af565b606091505b509150915061186287838387612577565b8151156126d05781518083602001fd5b8060405162461bcd60e51b815260040161073c9190612ea1565b6001600160a01b038116811461155657600080fd5b8035611a6e816126ea565b6000806040838503121561271d57600080fd5b8235612728816126ea565b91506020830135612738816126ea565b809150509250929050565b60006020828403121561275557600080fd5b81356001600160e01b031981168114610abb57600080fd5b60008083601f84011261277f57600080fd5b5081356001600160401b0381111561279657600080fd5b6020830191508360208260061b85010111156116bc57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156127e9576127e96127b1565b60405290565b604051608081016001600160401b03811182821017156127e9576127e96127b1565b604051601f8201601f191681016001600160401b0381118282101715612839576128396127b1565b604052919050565b600060e0828403121561285357600080fd5b61285b6127c7565b90508135612868816126ea565b81526020820135612878816126ea565b6020820152604082013562ffffff8116811461289357600080fd5b60408201526128a4606083016126ff565b60608201526080820135608082015260a082013560a08201526128c960c083016126ff565b60c082015292915050565b600080600061010084860312156128ea57600080fd5b83356001600160401b0381111561290057600080fd5b61290c8682870161276d565b909450925061292090508560208601612841565b90509250925092565b60006020828403121561293b57600080fd5b5035919050565b6000806040838503121561295557600080fd5b823591506020830135612738816126ea565b60006080828403121561297957600080fd5b6129816127ef565b905081356001600160401b038082111561299a57600080fd5b818401915084601f8301126129ae57600080fd5b81356020828211156129c2576129c26127b1565b6129d4601f8301601f19168201612811565b925081835286818386010111156129ea57600080fd5b81818501828501376000818385010152828552612a088187016126ff565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612a3f57600080fd5b83356001600160401b0380821115612a5657600080fd5b612a628783880161276d565b90955093506020860135915080821115612a7b57600080fd5b50612a8886828701612967565b9150509250925092565b60008083601f840112612aa457600080fd5b5081356001600160401b03811115612abb57600080fd5b6020830191508360208260051b85010111156116bc57600080fd5b600080600060408486031215612aeb57600080fd5b8335925060208401356001600160401b03811115612b0857600080fd5b612b1486828701612a92565b9497909650939450505050565b60005b83811015612b3c578181015183820152602001612b24565b50506000910152565b60008151808452612b5d816020860160208601612b21565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612bc657603f19888603018452612bb4858351612b45565b94509285019290850190600101612b98565b5092979650505050505050565b60008060208385031215612be657600080fd5b82356001600160401b03811115612bfc57600080fd5b612c0885828601612a92565b90969095509350505050565b600060208284031215612c2657600080fd5b5051919050565b600060408284031215612c3f57600080fd5b604051604081018181106001600160401b0382111715612c6157612c616127b1565b6040528235612c6f816126ea565b81526020928301359281019290925250919050565b60e08101610420828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b6000815160808452612cf86080850182612b45565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b602081526000610abb6020830184612ce3565b60008251612d4f818460208701612b21565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612d8657600080fd5b8301803591506001600160401b03821115612da057600080fd5b6020019150368190038213156116bc57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612ddd57612ddd612db5565b5060010190565b8181038181111561042057610420612db5565b8082018082111561042057610420612db5565b600060208284031215612e1c57600080fd5b81518015158114610abb57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612e64816017850160208801612b21565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612e95816028840160208801612b21565b01602801949350505050565b602081526000610abb6020830184612b45565b634e487b7160e01b600052601260045260246000fd5b808202811582820484141761042057610420612db5565b600081612ef057612ef0612db5565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eff696b5535ea5759815da07da267901ad15855b143752622fa478891337f65c64736f6c63430008130033";class wT extends $l{constructor(...e){e.length>1?super(...e):super(bT,vT,e[0])}deploy(e,t,n,r){return super.deploy(e,t,n,r||{})}getDeployTransaction(e,t,n,r){return super.getDeployTransaction(e,t,n,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=vT;static abi=bT;static createInterface(){return new ma(bT)}static connect(e,t){return new Jl(e,bT,t)}}const xT=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"CollectProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid1",type:"uint256"}],name:"Flash",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"observationCardinalityNextOld",type:"uint16"},{indexed:!1,internalType:"uint16",name:"observationCardinalityNextNew",type:"uint16"}],name:"IncreaseObservationCardinalityNext",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"feeProtocol0Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol0New",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1New",type:"uint8"}],name:"SetFeeProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"int256",name:"amount0",type:"int256"},{indexed:!1,internalType:"int256",name:"amount1",type:"int256"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Swap",type:"event"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"burn",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collect",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collectProtocol",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fee",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal0X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal1X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"flash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"}],name:"increaseObservationCardinalityNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"liquidity",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxLiquidityPerTick",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mint",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"observations",outputs:[{internalType:"uint32",name:"blockTimestamp",type:"uint32"},{internalType:"int56",name:"tickCumulative",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityCumulativeX128",type:"uint160"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32[]",name:"secondsAgos",type:"uint32[]"}],name:"observe",outputs:[{internalType:"int56[]",name:"tickCumulatives",type:"int56[]"},{internalType:"uint160[]",name:"secondsPerLiquidityCumulativeX128s",type:"uint160[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"positions",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFees",outputs:[{internalType:"uint128",name:"token0",type:"uint128"},{internalType:"uint128",name:"token1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint8",name:"feeProtocol0",type:"uint8"},{internalType:"uint8",name:"feeProtocol1",type:"uint8"}],name:"setFeeProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"slot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint16",name:"observationIndex",type:"uint16"},{internalType:"uint16",name:"observationCardinality",type:"uint16"},{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"},{internalType:"uint8",name:"feeProtocol",type:"uint8"},{internalType:"bool",name:"unlocked",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"snapshotCumulativesInside",outputs:[{internalType:"int56",name:"tickCumulativeInside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityInsideX128",type:"uint160"},{internalType:"uint32",name:"secondsInside",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"},{internalType:"bytes",name:"data",type:"bytes"}],name:"swap",outputs:[{internalType:"int256",name:"amount0",type:"int256"},{internalType:"int256",name:"amount1",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int16",name:"",type:"int16"}],name:"tickBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tickSpacing",outputs:[{internalType:"int24",name:"",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"",type:"int24"}],name:"ticks",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"},{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"},{internalType:"int56",name:"tickCumulativeOutside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityOutsideX128",type:"uint160"},{internalType:"uint32",name:"secondsOutside",type:"uint32"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"token0",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"token1",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],ET="0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a";class TT extends $l{constructor(...e){e.length>1?super(...e):super(xT,ET,e[0])}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=ET;static abi=xT;static createInterface(){return new ma(xT)}static connect(e,t){return new Jl(e,xT,t)}}const CT=2e6;async function kT(e,t,n){const r=TT.createInterface(),i=ST(t,r),o=[];return i&&n.forEach((e=>{e&&o.push({target:e,callData:i,gasLimit:Rn.from("1000000")})})),e.callStatic.multicall(o)}const ST=(e,t)=>{const n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},IT={"0xcdca1753":["uint256","uint160[]","uint32[]","uint256"],"0xc6a5026a":["uint256","uint160","uint32","uint256"],"0x2f80bb1d":["uint256","uint160[]","uint32[]","uint256"],"0xbd21704a":["uint256","uint160","uint32","uint256"]};const PT=lo("decimals()").substring(0,10);async function OT(e,t,n){if("native"===e)return n.decimals;try{const n=await t.call({to:e,data:PT});return parseInt(n,16)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new fT(`failed to get ERC20 decimals: ${t}`)}}function NT(e){if(e===gi)return!1;try{return ti(e),!0}catch(e){return!1}}const RT=e=>"native"===e||NT(e),MT=e=>new mg(e.chainId,e.address,e.decimals,e.symbol,e.name),LT=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:"erc20"}),DT=e=>{const t=MT(e.token);return ug.fromRawAmount(t,e.value.toString())},FT=(e,t)=>({value:e,token:t}),BT=e=>"erc20"===e.token.type,jT=e=>"native"===e.token.type,zT=e=>"native"===e.type,_T=(e,t)=>{if(BT(e)&&BT(t))return((e,t)=>{if(e.token.address!==t.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:e.value.add(t.value),token:e.token}})(e,t);if(jT(e)&&jT(t))return((e,t)=>({value:e.value.add(t.value),token:e.token}))(e,t);throw new Error("Token mismatch: token types must be the same")},UT=(e,t)=>{if(BT(e)&&BT(t))return((e,t)=>{if(e.token.address!==t.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:e.value.sub(t.value),token:e.token}})(e,t);if(jT(e)&&jT(t))return((e,t)=>({value:e.value.sub(t.value),token:e.token}))(e,t);throw new Error("Token mismatch: token types must be the same")},HT=e=>"native"===e.type?{address:"",chainId:e.chainId,decimals:e.decimals,symbol:e.symbol,name:e.name}:e,WT=e=>({token:HT(e.token),value:e.value});async function VT(e,t,n,r,i){const o=n.map((e=>iw.quoteCallParameters(e,DT(r),i,{useQuoterV2:!0}).calldata));let a;try{a=await async function(e,t,n,r){const i=new Array(t.length);for(const e in t)i[e]={target:n,callData:t[e],gasLimit:r?.gasRequired??CT};return e.callStatic.multicall(i)}(e,o,t)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new fT(`failed multicall: ${t}`)}const s=[];for(const e in a.returnData){const t=o[e].substring(0,10),u=IT[t];if(!u)throw new Error("No quoting function signature found");if("0x"!==a.returnData[e].returnData)try{const t=uo.decode(u,a.returnData[e].returnData);if(t){const o=t[0];if(!(o instanceof Rn))throw new Error("Expected BigNumber");const a=LT(n[e].input),u=LT(n[e].output);s.push({route:n[e],amountIn:i===GA.EXACT_INPUT?r:FT(o,a),amountOut:i===GA.EXACT_INPUT?FT(o,u):r,gasEstimate:Rn.from(t[3]),tradeType:i})}}catch{}}return s}function qT({factoryAddress:e,erc20Pair:t,fee:n,initCodeHashManualOverride:r}){return t=XT(t),oi(e,eh(["bytes"],[uo.encode(["address","address","uint24"],[t[0].address,t[1].address,n])]),r??"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54")}const XT=e=>{if(e[0].address.toLowerCase()>e[1].address.toLowerCase()){const t=e[0];e[0]=e[1],e[1]=t}return e},GT=[nv.LOWEST,nv.LOW,nv.MEDIUM,nv.HIGH],ZT=(e,t,n)=>{const r=((e,t)=>{const n=new Map,r=[];[...e,...t].forEach((e=>{n.set(e.address,e),r.push(e.address)}));const i=[...new Set([...r])],o=[];for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){const r=n.get(i[e]),a=n.get(i[t]);r&&a&&o.push([r,a])}return o})(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<GT.length;t++){const o=qT({factoryAddress:n,erc20Pair:r[e],fee:GT[t]});i.push({erc20Pair:r[e],fee:GT[t],poolAddress:o})}return i},KT="liquidity",QT="slot0";class JT{provider;routingTokens;routingContracts;constructor(e,t,n){this.provider=e,this.routingTokens=t,this.routingContracts=n}async findOptimalRoute(e,t,n,r=2){const[i,o]=this.determineERC20InAndERC20Out(n,e,t),a=gT.connect(this.routingContracts.multicallAddress,this.provider),s=[i,o],u=await(async(e,t,n,r)=>{const i=ZT(t,n,r),o=i.map((e=>e.poolAddress));let a,s;try{[a,s]=await Promise.all([kT(e,QT,o),kT(e,KT,o)])}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new fT(`failed multicall: ${t}`)}const u=a.returnData,l=s.returnData,c=TT.createInterface(),d=[];return i.forEach(((e,t)=>{const n="0x"===a.returnData[t].returnData,r="0x"===s.returnData[t].returnData;if(n||r)return;const i=c.decodeFunctionResult(QT,u[t].returnData),o=c.decodeFunctionResult(KT,l[t].returnData),f=i.sqrtPriceX96.isZero(),p=o[0].isZero();if(f||p)return;const h=new Gv(MT(e.erc20Pair[0]),MT(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),o.toString(),i.tick);d.push(h)})),d})(a,s,this.routingTokens,this.routingContracts.factoryAddress);if(0===u.length)throw new dT;const l=$T(i,o,u,r,[],[],i);if(0===l.length)throw new dT;return await this.getBestQuoteFromRoutes(a,l,e,n)}async getBestQuoteFromRoutes(e,t,n,r){const i=await VT(e,this.routingContracts.quoterAddress,t,n,r);if(0===i.length)throw new dT;if(r===GA.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(r===GA.EXACT_OUTPUT)return this.bestQuoteForAmountOut(i);throw new Error("Invalid trade type")}bestQuoteForAmountIn(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountOut.value.gt(t.amountOut.value)&&(t=e[n]);return t}bestQuoteForAmountOut(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountIn.value.lt(t.amountIn.value)&&(t=e[n]);return t}determineERC20InAndERC20Out(e,t,n){return e===GA.EXACT_INPUT?[t.token,n]:[n,t.token]}}const $T=(e,t,n,r,i=[],o=[],a=e)=>{const s=MT(e),u=MT(t),l=MT(a);for(const e of n){const c=e.involvesToken(s),d=i.find((t=>{return(n=e)===(r=t)||n.token0.equals(r.token0)&&n.token1.equals(r.token1)&&n.fee===r.fee;var n,r}));if(!c||d)continue;const f=e.token0.equals(s)?e.token1:e.token0;f.equals(u)?o.push(new Yv([...i,e],l,u)):r>1&&$T(LT(f),t,n,r-1,[...i,e],o,a)}return o},eC=async(e,t)=>{const n=await e.getFeeData().catch((()=>null));return n?(r=n).maxFeePerGas&&r.maxPriorityFeePerGas?FT(n.maxFeePerGas.add(n.maxPriorityFeePerGas),t):n.gasPrice?FT(n.gasPrice,t):null:null;var r},tC=(e,t)=>FT(t.mul(e.value),e.token),nC=async(e,t,n,r)=>{const i=await(async(e,t,n,r)=>{const i=mT.connect(n.token.address,e);let o;try{o=await i.allowance(t,r)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new pT(`failed to get allowance: ${t}`)}const a=n.value.sub(o);return!a.isNegative()&&!a.isZero()})(e,t,n,r);return i?((e,t,n)=>{if(e===n)throw new pT("owner and spender addresses are the same");return{data:mT.createInterface().encodeFunctionData("approve",[n,t.value]),to:t.token.address,value:0,from:e}})(t,n,r):null};const rC=async(e,t,n,r)=>{const i=await nC(e,t,n.amount,n.spender);if(!i)return null;const o=await async function(e,t,n,r){const i=mT.connect(r,e);return await i.estimateGas.approve(n,Ti,{from:t})}(e,t,n.spender,n.amount.token.address),a=r?tC(r,o):null;return{transaction:i,gasFeeEstimate:a?WT(a):null}},iC=e=>"native"===e.type;class oC{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){if(!iC(e.token))throw new Error(`cannot wrap non-native token: ${e.token.address}`);return FT(e.value,this.wrappedToken)}unwrapAmount(e){if(e.token.address.toLowerCase()!==this.wrappedToken.address.toLowerCase())throw new Error(`cannot unwrap non-wrapped token ${e.token.address}`);return FT(e.value,this.nativeToken)}maybeWrapToken(e){return iC(e)?this.wrappedToken:e}maybeWrapAmount(e){return FT(e.value,this.maybeWrapToken(e.token))}}const aC=e=>{if(1===e.toString().split(".").length)return new dg(e,100);const t=(e/100).toString().split("."),n=t[0]+t[1],r=10**t[1].length;return new dg(n,r)};const sC=(e,t,n,r)=>{const i=function(e){return e.tradeType===GA.EXACT_INPUT?e.amountOut:e.amountIn}(t),o=iC(r)?e.unwrapAmount(i):i,a=FT(function(e,t,n){const r=aC(n).add(1),i=(e===GA.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return Rn.from(i.toString())}(t.tradeType,o.value,n),r);return{quotedAmount:o,quotedAmountWithMaxSlippage:a}};const uC=Math.floor(Date.now()/1e3)+900;const lC=13473,cC={chainId:lC,address:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439",decimals:18,symbol:"WIMX",name:"Wrapped Immutable Testnet Token",type:"erc20"},dC="multicall(uint256,bytes[])";function fC(e,t,n,r,i,o,a,s,u,l){const{route:c}=r.swaps[0],d=1===c.pools.length,f=i.length>0;return d?f?function(e,t,n,r,i,o,a,s){const u=o.map((e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient}))),l=[];return t.tradeType===GA.EXACT_INPUT&&l.push(a.encodeFunctionData("exactInputSingleWithSecondaryFee",[u,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountIn:r,amountOutMinimum:i,sqrtPriceLimitX96:0}])),t.tradeType===GA.EXACT_OUTPUT&&l.push(a.encodeFunctionData("exactOutputSingleWithSecondaryFee",[u,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountInMaximum:r,amountOut:i,sqrtPriceLimitX96:0}])),zT(s)&&l.push(a.encodeFunctionData("unwrapNativeToken",[i])),l}(n,r,c,u,l,i,o,t):function(e,t,n,r,i,o,a,s,u){const l=[];return r.tradeType===GA.EXACT_INPUT&&l.push(s.encodeFunctionData("exactInputSingle",[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountIn:o,amountOutMinimum:a,sqrtPriceLimitX96:0}])),r.tradeType===GA.EXACT_OUTPUT&&l.push(s.encodeFunctionData("exactOutputSingle",[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountInMaximum:o,amountOut:a,sqrtPriceLimitX96:0}])),r.tradeType===GA.EXACT_OUTPUT&&zT(e)&&l.push(u.encodeFunctionData("refundETH")),zT(t)&&l.push(u.encodeFunctionData("unwrapWETH9(uint256)",[a])),l}(e,t,n,r,c,u,l,a,s):f?function(e,t,n,r,i,o,a,s){const u=Rv(n,t.tradeType===GA.EXACT_OUTPUT),l=o.map((e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient}))),c=[];return t.tradeType===GA.EXACT_INPUT&&c.push(a.encodeFunctionData("exactInputWithSecondaryFee",[l,{path:u,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===GA.EXACT_OUTPUT&&c.push(a.encodeFunctionData("exactOutputWithSecondaryFee",[l,{path:u,recipient:e,amountInMaximum:r,amountOut:i}])),zT(s)&&c.push(a.encodeFunctionData("unwrapNativeToken",[i])),c}(n,r,c,u,l,i,o,t):function(e,t,n,r,i,o,a,s,u){const l=Rv(i,r.tradeType===GA.EXACT_OUTPUT),c=[];return r.tradeType===GA.EXACT_INPUT&&c.push(s.encodeFunctionData("exactInput",[{path:l,recipient:n,amountIn:o,amountOutMinimum:a}])),r.tradeType===GA.EXACT_OUTPUT&&c.push(s.encodeFunctionData("exactOutput",[{path:l,recipient:n,amountInMaximum:o,amountOut:a}])),r.tradeType===GA.EXACT_OUTPUT&&zT(e)&&c.push(u.encodeFunctionData("refundETH")),zT(t)&&c.push(u.encodeFunctionData("unwrapWETH9(uint256)",[a])),c}(e,t,n,r,c,u,l,a,s)}function pC(e,t,n,r,i,o,a,s){const u=wT.createInterface(),l=fC(e,t,r,n,o,u,rT.SwapRouter.INTERFACE,rT.PaymentsExtended.INTERFACE,a,s);return u.encodeFunctionData(dC,[i.deadlineOrPreviousBlockhash,l])}function hC(e,t,n,r,i,o,a,s,u,l){const c=((e,t,n,r,i)=>zT(e)?0===i.length?n:r:t)(t,r,a,s,l),{calldata:d,maximumAmountIn:f}=function(e,t,n,r,i,o,a){const s=Qv.createUncheckedTrade({route:n.route,inputAmount:DT(n.amountIn),outputAmount:DT(n.amountOut),tradeType:n.tradeType}),u={slippageTolerance:aC(i),recipient:r,deadlineOrPreviousBlockhash:o},l=Nv(s.maximumAmountIn(u.slippageTolerance).quotient),c=Nv(s.minimumAmountOut(u.slippageTolerance).quotient);return{calldata:pC(e,t,s,r,u,a,l,c),maximumAmountIn:l}}(e,t,n,c,i,o,l),p=u?tC(u,n.gasEstimate):null,h=((e,t)=>"native"===e.type?t:"0x00")(e,f);return{transaction:{data:d,to:l.length>0?s:a,value:h,from:r},gasFeeEstimate:p?WT(p):null}}function mC(e,t,n,r){const i=((e,t,n,r)=>{if(e.tradeType===GA.EXACT_OUTPUT){const t=iC(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)})(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType}}const yC={[lC]:{chainId:lC,rpcUrl:"https://rpc.testnet.immutable.com",contracts:{[lC]:{multicall:"0x4DB567A44451b27C1fAd7f52e1cDf64b915d62f9",coreFactory:"0xb18c44b211065E69844FbA9AE146DA362104AfBf",quoterV2:"0x87854A7D4b9BaC3D37f4516A1Ac7F36fB5ad539f",peripheryRouter:"0x786ec643F231960D4C1A4E336990F8E7bF8f1277",secondaryFee:"0x1938B5B8313E1b64C2c577491Ef5441f9eD33204"}}[13473],commonRoutingTokens:[cC],nativeToken:{chainId:lC,decimals:18,symbol:"tIMX",name:"Immutable Testnet Token",type:"native"},wrappedNativeToken:cC}},AC={[Fe.SANDBOX]:yC,[Fe.PRODUCTION]:{}};class gC{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],function(e){let t=0;for(const n of e){if(!NT(n.recipient))throw new oT(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new oT(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new oT(`Invalid total secondary fee basis points: ${t}`)}(this.secondaryFees),r)return function(e){const t=["rpcURL","exchangeContracts","commonRoutingTokens","nativeToken"];for(const n of t)if(!e[n])throw new oT(`Missing override: ${n}`);Object.entries(e.exchangeContracts).forEach((([e,t])=>{if(!NT(t))throw new oT(`Invalid exchange contract address for ${e}`)}))}(r),this.chain={chainId:e,rpcUrl:r.rpcURL,contracts:r.exchangeContracts,commonRoutingTokens:r.commonRoutingTokens,nativeToken:r.nativeToken,wrappedNativeToken:r.wrappedNativeToken},void(this.secondaryFees=n||[]);const i=AC[t.environment][e];if(!i)throw new aT(e,t.environment);this.chain=i}}class bC{provider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;secondaryFeeContractAddress;routerContractAddress;constructor(e){const t=new gC(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new oC(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.peripheryRouter,this.secondaryFeeContractAddress=t.chain.contracts.secondaryFee,this.provider=new Uf(t.chain.rpcUrl),this.router=new JT(this.provider,t.chain.commonRoutingTokens,{multicallAddress:t.chain.contracts.multicall,factoryAddress:t.chain.contracts.coreFactory,quoterAddress:t.chain.contracts.quoterV2})}static validate(e,t,n,r,i){Wg(NT(i),new lT("invalid from address")),Wg(RT(e),new lT("invalid token in address")),Wg(RT(t),new lT("invalid token out address")),Wg(e.toLocaleLowerCase()!==t.toLocaleLowerCase(),new cT),Wg(n<=10,new uT("max hops must be less than or equal to 10")),Wg(n>=1,new uT("max hops must be greater than or equal to 1")),Wg(r<=50,new sT("slippage percent must be less than or equal to 50")),Wg(r>=0,new sT("slippage percent must be greater than or equal to 0"))}async getSecondaryFees(){if(0===this.secondaryFees.length)return[];const e=wT.connect(this.secondaryFeeContractAddress,this.provider);return await e.paused()?[]:this.secondaryFees}parseTokenLiteral(e,t){return"native"===e?this.nativeToken:{type:"erc20",address:e,chainId:this.chainId,decimals:t}}async getUnsignedSwapTx(e,t,n,r,i,o,a,s){bC.validate(t,n,o,i,e);const[u,l,c]=await Promise.all([OT(t,this.provider,this.nativeToken),OT(n,this.provider,this.nativeToken),this.getSecondaryFees()]),d=this.parseTokenLiteral(t,u),f=this.parseTokenLiteral(n,l),[p,h]=s===GA.EXACT_INPUT?[d,f]:[f,d],m=FT(r,p),y=new class{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=FT(Rn.from(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=_T(this.amount,e)}amountWithFeesApplied(){return _T(this.amount,this.total())}amountLessFees(){return UT(this.amount,this.total())}withAmounts(){return this.secondaryFees.map((e=>{const t=this.amount.value.mul(e.basisPoints).div(1e4);return{...e,amount:FT(t,this.amount.token)}}))}total(){let e=FT(Rn.from(0),this.amount.token);for(const t of this.secondaryFees){const n=this.amount.value.mul(t.basisPoints).div(1e4);e=_T(e,FT(n,this.amount.token))}return e}}(c,d),A=function(e,t,n,r){return n===GA.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}(m,y,s,this.nativeTokenService),[g,b]=await Promise.all([this.router.findOptimalRoute(A,this.nativeTokenService.maybeWrapToken(h),s,o),eC(this.provider,this.nativeToken)]),v=mC(g,m,y,this.nativeTokenService),w=hC(d,f,v,e,i,a,this.routerContractAddress,this.secondaryFeeContractAddress,b,c),{quotedAmount:x,quotedAmountWithMaxSlippage:E}=sC(this.nativeTokenService,v,i,h),T=((e,t,n,r,i)=>{const o=e===GA.EXACT_INPUT?t:n;return BT(o)?{spender:0===i.length?r.routerAddress:r.secondaryFeeAddress,amount:o}:null})(s,m,E,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.secondaryFeeContractAddress},c),C=T?await rC(this.provider,e,T,b):null,k=((e,t,n,r)=>({amount:WT(e),amountWithMaxSlippage:WT(t),slippage:n,fees:r.withAmounts().map((e=>({...e,amount:WT(e.amount)})))}))(x,E,i,y);return{quote:k,approval:C,swap:w}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=.1,o=2,a=uC){return await this.getUnsignedSwapTx(e,t,n,Rn.from(r),i,o,a,GA.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=.1,o=2,a=uC){return await this.getUnsignedSwapTx(e,t,n,Rn.from(r),i,o,a,GA.EXACT_OUTPUT)}}var vC={};const wC={erc1271:Object.freeze({__proto__:null,abi:[{type:"function",name:"isValidSignature",constant:!0,inputs:[{type:"bytes32"},{type:"bytes"}],outputs:[{type:"bytes4"}],payable:!1,stateMutability:"view"}],returns:{isValidSignatureBytes32:"0x1626ba7e"}}),factory:Object.freeze({__proto__:null,abi:[{type:"function",name:"deploy",constant:!1,inputs:[{type:"address"},{type:"bytes32"}],outputs:[],payable:!0,stateMutability:"payable"}]}),mainModule:Object.freeze({__proto__:null,abi:[{type:"function",name:"nonce",constant:!0,inputs:[],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"readNonce",constant:!0,inputs:[{type:"uint256"}],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"updateImplementation",constant:!1,inputs:[{type:"address"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"selfExecute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"execute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"},{type:"uint256"},{type:"bytes"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"createContract",inputs:[{type:"bytes"}],payable:!0,stateMutability:"payable"}]}),mainModuleUpgradable:Object.freeze({__proto__:null,abi:[{type:"function",name:"updateImageHash",constant:!0,inputs:[{type:"bytes32"}],outputs:[],payable:!1,stateMutability:"view"},{type:"function",name:"imageHash",constant:!0,inputs:[],outputs:[{type:"bytes32"}],payable:!1,stateMutability:"view"}]}),sequenceUtils:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_mainModule",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"bytes32",name:"_imageHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_threshold",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_signers",type:"bytes"}],name:"RequiredConfig",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"RequiredSigner",type:"event"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callBalanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callBlockNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_i",type:"uint256"}],name:"callBlockhash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"callChainId",outputs:[{internalType:"uint256",name:"id",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCode",outputs:[{internalType:"bytes",name:"code",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeHash",outputs:[{internalType:"bytes32",name:"codeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeSize",outputs:[{internalType:"uint256",name:"size",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callCoinbase",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callDifficulty",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLeft",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callOrigin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"knownImageHashes",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"lastImageHashUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastSignerUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastWalletUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"delegateCall",type:"bool"},{internalType:"bool",name:"revertOnError",type:"bool"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct IModuleCalls.Transaction[]",name:"_txs",type:"tuple[]"}],name:"multiCall",outputs:[{internalType:"bool[]",name:"_successes",type:"bool[]"},{internalType:"bytes[]",name:"_results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_threshold",type:"uint256"},{components:[{internalType:"uint256",name:"weight",type:"uint256"},{internalType:"address",name:"signer",type:"address"}],internalType:"struct RequireUtils.Member[]",name:"_members",type:"tuple[]"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishConfig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"uint256",name:"_sizeMembers",type:"uint256"},{internalType:"bytes",name:"_signature",type:"bytes"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishInitialSigners",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_nonce",type:"uint256"}],name:"requireMinNonce",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_expiration",type:"uint256"}],name:"requireNonExpired",outputs:[],stateMutability:"view",type:"function"}]}),requireFreshSigner:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"",type:"address"}],name:"requireFreshSigner",outputs:[],stateMutability:"nonpayable",type:"function"}]})};function xC(){return xC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xC.apply(this,arguments)}var EC;!function(e){e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.DISABLED=5]="DISABLED"}(EC||(EC={}));function TC(e,t){return function(...n){const r=Array.prototype.slice.call(n);return new Promise((async(n,i)=>{try{r.push(((e,t)=>e?i(e):n(t))),await e.apply(t,r)}catch(e){i(e)}}))}}new class{constructor(e){this.config=e,this.logLevel=void 0,this.configure(e)}configure(e){switch(this.config=xC({},this.config,e),this.config.logLevel){case"DEBUG":this.logLevel=EC.DEBUG;break;case"INFO":default:this.logLevel=EC.INFO;break;case"WARN":this.logLevel=EC.WARN;break;case"ERROR":this.logLevel=EC.ERROR;break;case"DISABLED":this.logLevel=EC.DISABLED}void 0===this.config.silence&&(this.config.silence=!1)}debug(e,...t){!0!==this.config.silence&&this.logLevel===EC.DEBUG&&console.log(e,...t)}info(e,...t){!0!==this.config.silence&&this.logLevel<=EC.INFO&&console.log(e,...t)}warn(e,...t){!0!==this.config.silence&&this.logLevel<=EC.WARN&&(console.warn(e,...t),this.config.onwarn&&this.config.onwarn(e,t))}error(e,...t){!0!==this.config.silence&&this.logLevel<=EC.ERROR&&(console.error(e,...t),this.config.onerror&&this.config.onerror(e,t))}}({logLevel:"INFO",silence:!0});const CC=(e=0,t=Number.MAX_SAFE_INTEGER)=>(e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e);function kC(){return kC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},kC.apply(this,arguments)}const SC=(e,t=!1)=>(((e,t=!1,n=!1)=>{if(!e)throw new Error("invalid network config: empty config");const r=[];if(Array.isArray(e)?r.push(...e):r.push(e),0===r.length){if(t)throw new Error("invalid network config: empty config");return!1}const i=r.map((e=>e.chainId)).sort(),o=i.filter(((e,t)=>i.indexOf(e)!==t));if(o.length>0){if(t)throw new Error(`invalid network config: duplicate chainIds ${o}`);return!1}r.forEach((e=>e.name=e.name.toLowerCase()));const a=r.map((e=>e.name)).sort(),s=a.filter(((e,t)=>a.indexOf(e)!==t));if(s.length>0){if(t)throw new Error(`invalid network config: duplicate network names ${s}`);return!1}let u=!1,l=!1;for(let e=0;e<r.length;e++){const i=r[e];if(!(i.rpcUrl&&""!==i.rpcUrl||i.provider)){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: rpcUrl or provider must be provided`);return!1}if(!n&&!i.relayer){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: relayer must be provided`);return!1}if(i.isDefaultChain){if(u){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: DefaultChain is already set by another config`);return!1}u=!0}if(i.isAuthChain){if(l&&t)throw new Error(`invalid network config for chainId ${i.chainId}: AuthChain is already set by another config`);l=!0}}if(!u){if(t)throw new Error("invalid network config: DefaultChain must be set");return!1}if(!l){if(t)throw new Error("invalid network config: AuthChain must be set");return!1}})(e,!0,t),e),IC=e=>SC(PC(e)),PC=e=>{if(!e)return[];const t=e.sort(((e,t)=>e.chainId===t.chainId?0:e.chainId<t.chainId?-1:1)),n=t.findIndex((e=>e.isDefaultChain));n>0&&t.splice(0,0,t.splice(n,1)[0]);const r=t.findIndex((e=>e.isAuthChain&&!0!==e.isDefaultChain));return r>0&&t.splice(1,0,t.splice(r,1)[0]),t},OC=(e,t)=>"string"==typeof e?(t=t||{},e.replace(/\$\{\s*([$#@\-\d\w]+)\s*\}/gim,(function(e,n){let r=t[n];return r="function"==typeof r?r():null==r?"":"object"==typeof r||"symbol"==typeof r?r.toString():r.valueOf(),r}))):"";let NC;!function(e){e[e.MAINNET=1]="MAINNET",e[e.ROPSTEN=3]="ROPSTEN",e[e.RINKEBY=4]="RINKEBY",e[e.GOERLI=5]="GOERLI",e[e.KOVAN=42]="KOVAN",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.POLYGON_ZKEVM=1101]="POLYGON_ZKEVM",e[e.BSC=56]="BSC",e[e.BSC_TESTNET=97]="BSC_TESTNET",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_TESTNET=69]="OPTIMISM_TESTNET",e[e.ARBITRUM=42161]="ARBITRUM",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.ARBITRUM_NOVA=42170]="ARBITRUM_NOVA",e[e.AVALANCHE=43114]="AVALANCHE",e[e.AVALANCHE_TESTNET=43113]="AVALANCHE_TESTNET",e[e.FANTOM=250]="FANTOM",e[e.FANTOM_TESTNET=4002]="FANTOM_TESTNET",e[e.GNOSIS=100]="GNOSIS",e[e.AURORA=1313161554]="AURORA",e[e.AURORA_TESTNET=1313161556]="AURORA_TESTNET",e[e.BASE_GOERLI=84531]="BASE_GOERLI"}(NC||(NC={}));const RC=e=>OC("https://${network}-indexer.sequence.app",{network:e}),MC=e=>OC("https://${network}-relayer.sequence.app",{network:e}),LC=e=>OC("https://nodes.sequence.app/${network}",{network:e}),DC={[NC.MAINNET]:{chainId:NC.MAINNET,name:"mainnet",title:"Ethereum",blockExplorer:{name:"Etherscan",rootUrl:"https://etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[NC.ROPSTEN]:{chainId:NC.ROPSTEN,name:"ropsten",title:"Ropsten",testnet:!0,blockExplorer:{name:"Etherscan (Ropsten)",rootUrl:"https://ropsten.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[NC.RINKEBY]:{chainId:NC.RINKEBY,name:"rinkeby",title:"Rinkeby",testnet:!0,blockExplorer:{name:"Etherscan (Rinkeby)",rootUrl:"https://rinkeby.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",disabled:!0},[NC.GOERLI]:{chainId:NC.GOERLI,name:"goerli",title:"Goerli",testnet:!0,blockExplorer:{name:"Etherscan (Goerli)",rootUrl:"https://goerli.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[NC.KOVAN]:{chainId:NC.KOVAN,name:"kovan",title:"Kovan",testnet:!0,blockExplorer:{name:"Etherscan (Kovan)",rootUrl:"https://kovan.etherscan.io/"}},[NC.POLYGON]:{chainId:NC.POLYGON,name:"polygon",title:"Polygon",blockExplorer:{name:"Polygonscan",rootUrl:"https://polygonscan.com/"}},[NC.POLYGON_MUMBAI]:{chainId:NC.POLYGON_MUMBAI,name:"mumbai",title:"Polygon Mumbai",testnet:!0,blockExplorer:{name:"Polygonscan (Mumbai)",rootUrl:"https://mumbai.polygonscan.com/"}},[NC.POLYGON_ZKEVM]:{chainId:NC.POLYGON_ZKEVM,name:"polygon-zkevm",title:"Polygon zkEVM",blockExplorer:{name:"Polygonscan (zkEVM)",rootUrl:"https://zkevm.polygonscan.com/"}},[NC.BSC]:{chainId:NC.BSC,name:"bsc",title:"BNB Smart Chain",blockExplorer:{name:"BSCScan",rootUrl:"https://bscscan.com/"}},[NC.BSC_TESTNET]:{chainId:NC.BSC_TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",testnet:!0,blockExplorer:{name:"BSCScan (Testnet)",rootUrl:"https://testnet.bscscan.com/"}},[NC.OPTIMISM]:{chainId:NC.OPTIMISM,name:"optimism",title:"Optimism",blockExplorer:{name:"Etherscan (Optimism)",rootUrl:"https://optimistic.etherscan.io/"}},[NC.OPTIMISM_TESTNET]:{chainId:NC.OPTIMISM_TESTNET,name:"optimism-testnet",title:"Optimistic Kovan",testnet:!0,blockExplorer:{name:"Etherscan (Optimism Testnet)",rootUrl:"https://kovan-optimistic.etherscan.io/"}},[NC.ARBITRUM]:{chainId:NC.ARBITRUM,name:"arbitrum",title:"Arbitrum One",blockExplorer:{name:"Arbiscan",rootUrl:"https://arbiscan.io/"}},[NC.ARBITRUM_GOERLI]:{chainId:NC.ARBITRUM_GOERLI,name:"arbitrum-goerli",title:"Arbitrum Goerli",testnet:!0,blockExplorer:{name:"Arbiscan (Testnet)",rootUrl:"https://testnet.arbiscan.io/"}},[NC.ARBITRUM_NOVA]:{chainId:NC.ARBITRUM_NOVA,name:"arbitrum-nova",title:"Arbitrum Nova",blockExplorer:{name:"Nova Explorer",rootUrl:"https://nova-explorer.arbitrum.io/"}},[NC.AVALANCHE]:{chainId:NC.AVALANCHE,name:"avalanche",title:"Avalanche",blockExplorer:{name:"Snowtrace",rootUrl:"https://snowtrace.io/"}},[NC.AVALANCHE_TESTNET]:{chainId:NC.AVALANCHE_TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",testnet:!0,blockExplorer:{name:"Snowtrace (Testnet)",rootUrl:"https://testnet.snowtrace.io/"}},[NC.FANTOM]:{chainId:NC.FANTOM,name:"fantom",title:"Fantom",blockExplorer:{name:"FTMScan",rootUrl:"https://ftmscan.com/"}},[NC.FANTOM_TESTNET]:{chainId:NC.FANTOM_TESTNET,name:"fantom-testnet",title:"Fantom Testnet",testnet:!0,blockExplorer:{name:"FTMScan (Testnet)",rootUrl:"https://testnet.ftmscan.com/"}},[NC.GNOSIS]:{chainId:NC.GNOSIS,name:"gnosis",title:"Gnosis Chain",blockExplorer:{name:"Gnosis Chain Explorer",rootUrl:"https://blockscout.com/xdai/mainnet/"}},[NC.AURORA]:{chainId:NC.AURORA,name:"aurora",title:"Aurora",blockExplorer:{name:"Aurora Explorer",rootUrl:"https://aurorascan.dev/"}},[NC.AURORA_TESTNET]:{chainId:NC.AURORA_TESTNET,name:"aurora-testnet",title:"Aurora Testnet",blockExplorer:{name:"Aurora Explorer (Testnet)",rootUrl:"https://testnet.aurorascan.dev/"}},[NC.BASE_GOERLI]:{chainId:NC.BASE_GOERLI,name:"base-goerli",title:"Base Goerli",blockExplorer:{name:"Base Goerli Explorer",rootUrl:"https://goerli.basescan.org/"}}};IC([kC({},DC[NC.MAINNET],{rpcUrl:LC("mainnet"),relayer:{url:MC("mainnet")},indexerUrl:RC("mainnet")}),kC({},DC[NC.POLYGON],{rpcUrl:LC("polygon"),relayer:{url:MC("polygon")},indexerUrl:RC("polygon"),isDefaultChain:!0,isAuthChain:!0}),kC({},DC[NC.BSC],{rpcUrl:LC("bsc"),indexerUrl:RC("bsc"),relayer:{url:MC("bsc")}}),kC({},DC[NC.AVALANCHE],{rpcUrl:LC("avalanche"),indexerUrl:RC("avalanche"),relayer:{url:MC("avalanche")}}),kC({},DC[NC.ARBITRUM],{rpcUrl:LC("arbitrum"),indexerUrl:RC("arbitrum"),relayer:{url:MC("arbitrum")}}),kC({},DC[NC.ARBITRUM_NOVA],{rpcUrl:LC("arbitrum-nova"),indexerUrl:RC("arbitrum-nova"),relayer:{url:MC("arbitrum-nova")}}),kC({},DC[NC.OPTIMISM],{rpcUrl:LC("optimism"),indexerUrl:RC("optimism"),relayer:{url:MC("optimism")}}),kC({},DC[NC.POLYGON_ZKEVM],{rpcUrl:LC("polygon-zkevm"),indexerUrl:RC("polygon-zkevm"),relayer:{url:MC("polygon-zkevm")}}),kC({},DC[NC.GNOSIS],{rpcUrl:LC("gnosis"),indexerUrl:RC("gnosis"),relayer:{url:MC("gnosis")}})]),IC([kC({},DC[NC.RINKEBY],{rpcUrl:LC("rinkeby"),relayer:{url:MC("rinkeby")},indexerUrl:RC("rinkeby")}),kC({},DC[NC.GOERLI],{rpcUrl:LC("goerli"),relayer:{url:MC("goerli")},indexerUrl:RC("goerli")}),kC({},DC[NC.POLYGON_MUMBAI],{rpcUrl:LC("mumbai"),relayer:{url:MC("mumbai")},indexerUrl:RC("mumbai"),isDefaultChain:!0,isAuthChain:!0}),kC({},DC[NC.BSC_TESTNET],{rpcUrl:LC("bsc-testnet"),relayer:{url:MC("bsc-testnet")},indexerUrl:RC("bsc-testnet")}),kC({},DC[NC.ARBITRUM_GOERLI],{rpcUrl:LC("arbitrum-goerli"),relayer:{url:MC("arbitrum-goerli")},indexerUrl:RC("arbitrum-goerli")}),kC({},DC[NC.BASE_GOERLI],{rpcUrl:LC("base-goerli"),relayer:{url:MC("base-goerli")},indexerUrl:RC("base-goerli")})]);const FC="2.0";function BC(){return BC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},BC.apply(this,arguments)}let jC;function zC(e,t){return e.reduce((function(e,n,r){return t(n,r)?e[0].push(n):e[1].push(n),e}),[[],[]])}!function(e){e.ethCall="eth_call",e.ethGetBalance="eth_getBalance",e.ethGetCode="eth_getCode"}(jC||(jC={}));const _C={batchSize:50,timeWindow:50,contract:"0xd130B43062D875a4B7aF3f8fc036Bc6e9D3E1B3E",verbose:!1};class UC{constructor(e){var t=this;if(this.batchableJsonRpcMethods=[jC.ethCall,jC.ethGetCode,jC.ethGetBalance],this.multicallInterface=new ma(wC.sequenceUtils.abi),this.options=void 0,this.timeout=void 0,this.queue=[],this.scheduleExecution=()=>{this.queue.length>0&&(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.run,this.options.timeWindow))},this.handle=(e,t,n)=>this.batchableJsonRpcMethods.find((e=>e===t.method))?(this.queue.push({request:t,callback:n,next:e}),this.options.verbose&&console.log("Scheduling call",t.method),void this.scheduleExecution()):(this.options.verbose&&console.log("Forwarded call",t.method),e(t,n)),this.run=async function(){t.options.verbose&&console.log("Processing multicall");const e=Math.min(t.options.batchSize,t.queue.length);if(0===e)return;if(1===e)return t.forward(t.queue[0]),t.queue=[],void(t.options.verbose&&console.log("Skip multicall, single item"));t.options.verbose&&console.log("Resolving",e);var n=t.queue.slice(0,e);t.queue=e===t.queue.length?[]:t.queue.slice(e),t.options.verbose&&console.log("Updated queue",t.queue.length),0!==t.queue.length&&t.scheduleExecution();const r=n[0].next;let i;var[n,o]=zC(n,(e=>{try{if(e.next!==r)return!1;switch(e.request.method){case jC.ethCall:if(e.request.params[0].from||e.request.params[0].gasPrice||e.request.params[0].value)return!1;case jC.ethGetBalance:case jC.ethGetCode:const t=function(e){if(void 0===e)return"latest";switch(e){case"earliest":case"latest":case"pending":return e}return Rn.from(e)}(e.request.params[1]);if(void 0===i&&(i=t),!function(e,t){return e===t||(Rn.isBigNumber(e)?!!Rn.isBigNumber(t)&&e.eq(t):!Rn.isBigNumber(t)&&e===t)}(t,i))return!1}return!0}catch(e){return!1}}));if(0!==o.length&&(t.options.verbose&&console.log("Forwarding incompatible calls",o.length),t.forward(o),0===n.length))return;let a=n.map((e=>{try{switch(e.request.method){case jC.ethCall:return{delegateCall:!1,revertOnError:!1,target:e.request.params[0].to,data:e.request.params[0].data,gasLimit:e.request.params[0].gas?e.request.params[0].gas:0,value:0};case jC.ethGetCode:return{delegateCall:!1,revertOnError:!1,target:t.options.contract,gasLimit:0,value:0,data:t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("callCode"),[e.request.params[0]])};case jC.ethGetBalance:return{delegateCall:!1,revertOnError:!1,target:t.options.contract,gasLimit:0,value:0,data:t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("callBalanceOf"),[e.request.params[0]])};default:return null}}catch(e){return null}}));var[n,o]=zC(n,((e,t)=>void 0!==a[t]));if(a=a.filter((e=>e)),0!==o.length&&(t.options.verbose&&console.log("Forwarding calls on error",o.length),t.forward(o),0===n.length))return;let s;try{s=t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("multiCall"),[a])}catch(e){return void t.forward(n)}const u=CC(),l=await async function(e,t){try{return await e}catch(e){return t instanceof Function?t(e):t}}(TC(r)({id:u,jsonrpc:FC,method:jC.ethCall,params:[{to:t.options.contract,value:0,data:s},Rn.isBigNumber(i)?i.toNumber():i]}),(e=>({jsonrpc:FC,id:u,result:void 0,error:e})));if(l.error)return t.forward(n);let c;try{c=t.multicallInterface.decodeFunctionResult(t.multicallInterface.getFunction("multiCall"),l.result)}catch(e){return void t.forward(n)}t.options.verbose&&console.log("Got response for",n.length),n.forEach(((e,n)=>{if(c[0][n])switch(e.request.method){case jC.ethCall:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:c[1][n]});break;case jC.ethGetCode:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:uo.decode(["bytes"],c[1][n])[0]});break;case jC.ethGetBalance:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:uo.decode(["uint256"],c[1][n])[0]})}else t.forward(e)}))},this.options=e?BC({},UC.DefaultOptions,e):UC.DefaultOptions,this.options.batchSize<=0)throw new Error(`Invalid batch size of ${this.options.batchSize}`)}forward(e){Array.isArray(e)?e.forEach((e=>e.next(e.request,e.callback))):e.next(e.request,e.callback)}static isMulticall(e){return e&&void 0!==e.handle&&void 0!==e.conf&&UC.isMulticallOptions(e.options)}static isMulticallOptions(e){return void 0!==e&&void 0!==e.batchSize&&void 0!==e.timeWindow&&void 0!==e.contract}}UC.DefaultOptions=BC({},_C);const HC=["getNetwork","getBlockNumber","getGasPrice","getTransactionCount","getStorageAt","sendTransaction","estimateGas","getBlock","getTransaction","getTransactionReceipt","getLogs","emit","litenerCount","addListener","removeListener","waitForTransaction","detectNetwork","getBlockWithTransactions"];var WC=Object.freeze({__proto__:null,ProxyMethods:HC,MulticallProvider:class extends If{constructor(e,t){var n;super(e.getNetwork()),n=this,this.provider=e,this.multicall=void 0,this.listenerCount=this.provider.listenerCount,this.getResolver=async function(e){const t=n.provider;if(t.getResolver){const r=await t.getResolver(await e);return r?new Cf(n,r.address,r.name):null}return t.getResolver(await e)},this.next=async function(e,t){try{switch(e.method){case jC.ethCall:n.callback(e,t,await n.provider.call(e.params[0],e.params[1]));break;case jC.ethGetCode:n.callback(e,t,await n.provider.getCode(e.params[0],e.params[1]));break;case jC.ethGetBalance:n.callback(e,t,await n.provider.getBalance(e.params[0],e.params[1]))}}catch(r){n.callback(e,t,void 0,r)}},this.multicall=UC.isMulticall(t)?t:new UC(t),HC.forEach((t=>{void 0!==e[t]&&(this[t]=(...n)=>e[t](...n))}))}callback(e,t,n,r){t(r,{jsonrpc:FC,id:e.id,result:n,error:r})}async call(e,t){return this.rpcCall(jC.ethCall,e,t)}async getCode(e,t){return this.rpcCall(jC.ethGetCode,e,t)}async getBalance(e,t){return this.rpcCall(jC.ethGetBalance,e,t)}async rpcCall(e,...t){const n=CC();return(await TC(this.multicall.handle)(this.next,{jsonrpc:FC,id:n,method:e,params:t})).result}},MulticallExternalProvider:class{constructor(e,t){if(this.provider=e,this.multicall=void 0,this.multicall=UC.isMulticall(t)?t:new UC(t),e.send){const t=async function(t,n){e.send(t,n)};this.send=(e,n)=>{this.multicall.handle(t,e,n)}}if(e.sendAsync){const t=async function(t,n){e.sendAsync(t,n)};this.sendAsync=(e,n)=>{this.multicall.handle(t,e,n)}}}get isMetaMask(){return this.provider.isMetaMask}get isStatus(){return this.provider.isStatus}},multicallMiddleware:e=>t=>{const n=UC.isMulticall(e)?e:new UC(e);return(e,r)=>n.handle(t,e,r)}}),VC=Ue(Object.freeze({__proto__:null,Multicall:UC,providers:WC})),qC=Ue(mh),XC={},GC=Ue(ai),ZC=Ue(ho),YC=Ue(ic),KC=Ue(Cn),QC=Ue(sa),JC=Ue(Lc),$C=Ue(yd),ek=Ue(_r),tk=Ue(nn),nk=Ue(cc),rk=Ue(_c),ik=Ue(ur),ok=Ue(Yr),ak=Ue(gl),sk=Ue(to),uk=Ue(Fl),lk=Ue(ch),ck=Ue(xd),dk=Ue(_d);!function(e){var t=ze&&ze.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=ze&&ze.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=ze&&ze.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,"__esModule",{value:!0}),e.formatBytes32String=e.Utf8ErrorFuncs=e.toUtf8String=e.toUtf8CodePoints=e.toUtf8Bytes=e._toEscapedUtf8String=e.nameprep=e.hexDataSlice=e.hexDataLength=e.hexZeroPad=e.hexValue=e.hexStripZeros=e.hexConcat=e.isHexString=e.hexlify=e.base64=e.base58=e.TransactionDescription=e.LogDescription=e.Interface=e.SigningKey=e.HDNode=e.defaultPath=e.isBytesLike=e.isBytes=e.zeroPad=e.stripZeros=e.concat=e.arrayify=e.shallowCopy=e.resolveProperties=e.getStatic=e.defineReadOnly=e.deepCopy=e.checkProperties=e.poll=e.fetchJson=e._fetchData=e.RLP=e.Logger=e.checkResultErrors=e.FormatTypes=e.ParamType=e.FunctionFragment=e.EventFragment=e.ErrorFragment=e.ConstructorFragment=e.Fragment=e.defaultAbiCoder=e.AbiCoder=void 0,e.Indexed=e.Utf8ErrorReason=e.UnicodeNormalizationForm=e.SupportedAlgorithm=e.mnemonicToSeed=e.isValidMnemonic=e.entropyToMnemonic=e.mnemonicToEntropy=e.getAccountPath=e.verifyTypedData=e.verifyMessage=e.recoverPublicKey=e.computePublicKey=e.recoverAddress=e.computeAddress=e.getJsonWalletAddress=e.TransactionTypes=e.serializeTransaction=e.parseTransaction=e.accessListify=e.joinSignature=e.splitSignature=e.soliditySha256=e.solidityKeccak256=e.solidityPack=e.shuffled=e.randomBytes=e.sha512=e.sha256=e.ripemd160=e.keccak256=e.computeHmac=e.commify=e.parseUnits=e.formatUnits=e.parseEther=e.formatEther=e.isAddress=e.getCreate2Address=e.getContractAddress=e.getIcapAddress=e.getAddress=e._TypedDataEncoder=e.id=e.isValidName=e.namehash=e.hashMessage=e.dnsEncode=e.parseBytes32String=void 0;var i=fw;Object.defineProperty(e,"AbiCoder",{enumerable:!0,get:function(){return i.AbiCoder}}),Object.defineProperty(e,"checkResultErrors",{enumerable:!0,get:function(){return i.checkResultErrors}}),Object.defineProperty(e,"ConstructorFragment",{enumerable:!0,get:function(){return i.ConstructorFragment}}),Object.defineProperty(e,"defaultAbiCoder",{enumerable:!0,get:function(){return i.defaultAbiCoder}}),Object.defineProperty(e,"ErrorFragment",{enumerable:!0,get:function(){return i.ErrorFragment}}),Object.defineProperty(e,"EventFragment",{enumerable:!0,get:function(){return i.EventFragment}}),Object.defineProperty(e,"FormatTypes",{enumerable:!0,get:function(){return i.FormatTypes}}),Object.defineProperty(e,"Fragment",{enumerable:!0,get:function(){return i.Fragment}}),Object.defineProperty(e,"FunctionFragment",{enumerable:!0,get:function(){return i.FunctionFragment}}),Object.defineProperty(e,"Indexed",{enumerable:!0,get:function(){return i.Indexed}}),Object.defineProperty(e,"Interface",{enumerable:!0,get:function(){return i.Interface}}),Object.defineProperty(e,"LogDescription",{enumerable:!0,get:function(){return i.LogDescription}}),Object.defineProperty(e,"ParamType",{enumerable:!0,get:function(){return i.ParamType}}),Object.defineProperty(e,"TransactionDescription",{enumerable:!0,get:function(){return i.TransactionDescription}});var o=GC;Object.defineProperty(e,"getAddress",{enumerable:!0,get:function(){return o.getAddress}}),Object.defineProperty(e,"getCreate2Address",{enumerable:!0,get:function(){return o.getCreate2Address}}),Object.defineProperty(e,"getContractAddress",{enumerable:!0,get:function(){return o.getContractAddress}}),Object.defineProperty(e,"getIcapAddress",{enumerable:!0,get:function(){return o.getIcapAddress}}),Object.defineProperty(e,"isAddress",{enumerable:!0,get:function(){return o.isAddress}});var a=r(ZC);e.base64=a;var s=YC;Object.defineProperty(e,"base58",{enumerable:!0,get:function(){return s.Base58}});var u=KC;Object.defineProperty(e,"arrayify",{enumerable:!0,get:function(){return u.arrayify}}),Object.defineProperty(e,"concat",{enumerable:!0,get:function(){return u.concat}}),Object.defineProperty(e,"hexConcat",{enumerable:!0,get:function(){return u.hexConcat}}),Object.defineProperty(e,"hexDataSlice",{enumerable:!0,get:function(){return u.hexDataSlice}}),Object.defineProperty(e,"hexDataLength",{enumerable:!0,get:function(){return u.hexDataLength}}),Object.defineProperty(e,"hexlify",{enumerable:!0,get:function(){return u.hexlify}}),Object.defineProperty(e,"hexStripZeros",{enumerable:!0,get:function(){return u.hexStripZeros}}),Object.defineProperty(e,"hexValue",{enumerable:!0,get:function(){return u.hexValue}}),Object.defineProperty(e,"hexZeroPad",{enumerable:!0,get:function(){return u.hexZeroPad}}),Object.defineProperty(e,"isBytes",{enumerable:!0,get:function(){return u.isBytes}}),Object.defineProperty(e,"isBytesLike",{enumerable:!0,get:function(){return u.isBytesLike}}),Object.defineProperty(e,"isHexString",{enumerable:!0,get:function(){return u.isHexString}}),Object.defineProperty(e,"joinSignature",{enumerable:!0,get:function(){return u.joinSignature}}),Object.defineProperty(e,"zeroPad",{enumerable:!0,get:function(){return u.zeroPad}}),Object.defineProperty(e,"splitSignature",{enumerable:!0,get:function(){return u.splitSignature}}),Object.defineProperty(e,"stripZeros",{enumerable:!0,get:function(){return u.stripZeros}});var l=QC;Object.defineProperty(e,"_TypedDataEncoder",{enumerable:!0,get:function(){return l._TypedDataEncoder}}),Object.defineProperty(e,"dnsEncode",{enumerable:!0,get:function(){return l.dnsEncode}}),Object.defineProperty(e,"hashMessage",{enumerable:!0,get:function(){return l.hashMessage}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return l.id}}),Object.defineProperty(e,"isValidName",{enumerable:!0,get:function(){return l.isValidName}}),Object.defineProperty(e,"namehash",{enumerable:!0,get:function(){return l.namehash}});var c=JC;Object.defineProperty(e,"defaultPath",{enumerable:!0,get:function(){return c.defaultPath}}),Object.defineProperty(e,"entropyToMnemonic",{enumerable:!0,get:function(){return c.entropyToMnemonic}}),Object.defineProperty(e,"getAccountPath",{enumerable:!0,get:function(){return c.getAccountPath}}),Object.defineProperty(e,"HDNode",{enumerable:!0,get:function(){return c.HDNode}}),Object.defineProperty(e,"isValidMnemonic",{enumerable:!0,get:function(){return c.isValidMnemonic}}),Object.defineProperty(e,"mnemonicToEntropy",{enumerable:!0,get:function(){return c.mnemonicToEntropy}}),Object.defineProperty(e,"mnemonicToSeed",{enumerable:!0,get:function(){return c.mnemonicToSeed}});var d=$C;Object.defineProperty(e,"getJsonWalletAddress",{enumerable:!0,get:function(){return d.getJsonWalletAddress}});var f=ek;Object.defineProperty(e,"keccak256",{enumerable:!0,get:function(){return f.keccak256}});var p=tk;Object.defineProperty(e,"Logger",{enumerable:!0,get:function(){return p.Logger}});var h=nk;Object.defineProperty(e,"computeHmac",{enumerable:!0,get:function(){return h.computeHmac}}),Object.defineProperty(e,"ripemd160",{enumerable:!0,get:function(){return h.ripemd160}}),Object.defineProperty(e,"sha256",{enumerable:!0,get:function(){return h.sha256}}),Object.defineProperty(e,"sha512",{enumerable:!0,get:function(){return h.sha512}});var m=tT;Object.defineProperty(e,"solidityKeccak256",{enumerable:!0,get:function(){return m.keccak256}}),Object.defineProperty(e,"solidityPack",{enumerable:!0,get:function(){return m.pack}}),Object.defineProperty(e,"soliditySha256",{enumerable:!0,get:function(){return m.sha256}});var y=rk;Object.defineProperty(e,"randomBytes",{enumerable:!0,get:function(){return y.randomBytes}}),Object.defineProperty(e,"shuffled",{enumerable:!0,get:function(){return y.shuffled}});var A=ik;Object.defineProperty(e,"checkProperties",{enumerable:!0,get:function(){return A.checkProperties}}),Object.defineProperty(e,"deepCopy",{enumerable:!0,get:function(){return A.deepCopy}}),Object.defineProperty(e,"defineReadOnly",{enumerable:!0,get:function(){return A.defineReadOnly}}),Object.defineProperty(e,"getStatic",{enumerable:!0,get:function(){return A.getStatic}}),Object.defineProperty(e,"resolveProperties",{enumerable:!0,get:function(){return A.resolveProperties}}),Object.defineProperty(e,"shallowCopy",{enumerable:!0,get:function(){return A.shallowCopy}});var g=r(ok);e.RLP=g;var b=ak;Object.defineProperty(e,"computePublicKey",{enumerable:!0,get:function(){return b.computePublicKey}}),Object.defineProperty(e,"recoverPublicKey",{enumerable:!0,get:function(){return b.recoverPublicKey}}),Object.defineProperty(e,"SigningKey",{enumerable:!0,get:function(){return b.SigningKey}});var v=sk;Object.defineProperty(e,"formatBytes32String",{enumerable:!0,get:function(){return v.formatBytes32String}}),Object.defineProperty(e,"nameprep",{enumerable:!0,get:function(){return v.nameprep}}),Object.defineProperty(e,"parseBytes32String",{enumerable:!0,get:function(){return v.parseBytes32String}}),Object.defineProperty(e,"_toEscapedUtf8String",{enumerable:!0,get:function(){return v._toEscapedUtf8String}}),Object.defineProperty(e,"toUtf8Bytes",{enumerable:!0,get:function(){return v.toUtf8Bytes}}),Object.defineProperty(e,"toUtf8CodePoints",{enumerable:!0,get:function(){return v.toUtf8CodePoints}}),Object.defineProperty(e,"toUtf8String",{enumerable:!0,get:function(){return v.toUtf8String}}),Object.defineProperty(e,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return v.Utf8ErrorFuncs}});var w=uk;Object.defineProperty(e,"accessListify",{enumerable:!0,get:function(){return w.accessListify}}),Object.defineProperty(e,"computeAddress",{enumerable:!0,get:function(){return w.computeAddress}}),Object.defineProperty(e,"parseTransaction",{enumerable:!0,get:function(){return w.parse}}),Object.defineProperty(e,"recoverAddress",{enumerable:!0,get:function(){return w.recoverAddress}}),Object.defineProperty(e,"serializeTransaction",{enumerable:!0,get:function(){return w.serialize}}),Object.defineProperty(e,"TransactionTypes",{enumerable:!0,get:function(){return w.TransactionTypes}});var x=lk;Object.defineProperty(e,"commify",{enumerable:!0,get:function(){return x.commify}}),Object.defineProperty(e,"formatEther",{enumerable:!0,get:function(){return x.formatEther}}),Object.defineProperty(e,"parseEther",{enumerable:!0,get:function(){return x.parseEther}}),Object.defineProperty(e,"formatUnits",{enumerable:!0,get:function(){return x.formatUnits}}),Object.defineProperty(e,"parseUnits",{enumerable:!0,get:function(){return x.parseUnits}});var E=ck;Object.defineProperty(e,"verifyMessage",{enumerable:!0,get:function(){return E.verifyMessage}}),Object.defineProperty(e,"verifyTypedData",{enumerable:!0,get:function(){return E.verifyTypedData}});var T=dk;Object.defineProperty(e,"_fetchData",{enumerable:!0,get:function(){return T._fetchData}}),Object.defineProperty(e,"fetchJson",{enumerable:!0,get:function(){return T.fetchJson}}),Object.defineProperty(e,"poll",{enumerable:!0,get:function(){return T.poll}});var C=nk;Object.defineProperty(e,"SupportedAlgorithm",{enumerable:!0,get:function(){return C.SupportedAlgorithm}});var k=sk;Object.defineProperty(e,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return k.UnicodeNormalizationForm}}),Object.defineProperty(e,"Utf8ErrorReason",{enumerable:!0,get:function(){return k.Utf8ErrorReason}})}(XC);var fk={};Object.defineProperty(fk,"__esModule",{value:!0}),fk.DomainRegistryABI=void 0;fk.DomainRegistryABI=[{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"DomainAlreadyRegistered",type:"error"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"maxIndex",type:"uint256"},{internalType:"uint256",name:"suppliedIndex",type:"uint256"}],name:"DomainIndexOutOfRange",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"domain",type:"string"},{indexed:!1,internalType:"bytes4",name:"tag",type:"bytes4"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"DomainRegistered",type:"event"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getDomain",outputs:[{internalType:"string",name:"domain",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getDomains",outputs:[{internalType:"string[]",name:"domains",type:"string[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getNumberOfDomains",outputs:[{internalType:"uint256",name:"totalDomains",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"setDomain",outputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}];var pk={};Object.defineProperty(pk,"__esModule",{value:!0}),pk.SeaportABIv14=void 0;pk.SeaportABIv14=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"EtherTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientEtherSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"advancedOrder",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"advancedOrders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"order",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"order",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"contractName",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"validated",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var hk={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DOMAIN_REGISTRY_ADDRESS=e.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS=e.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS=e.KNOWN_CONDUIT_KEYS_TO_CONDUIT=e.NO_CONDUIT=e.ONE_HUNDRED_PERCENT_BP=e.MAX_INT=e.BasicOrderRouteType=e.Side=e.ItemType=e.OrderType=e.EIP_712_BULK_ORDER_TYPE=e.EIP_712_ORDER_TYPE=e.OPENSEA_CONDUIT_ADDRESS=e.OPENSEA_CONDUIT_KEY=e.SEAPORT_CONTRACT_VERSION_V1_5=e.SEAPORT_CONTRACT_VERSION_V1_4=e.SEAPORT_CONTRACT_NAME=void 0;const t=qC;var n,r,i,o;e.SEAPORT_CONTRACT_NAME="Seaport",e.SEAPORT_CONTRACT_VERSION_V1_4="1.4",e.SEAPORT_CONTRACT_VERSION_V1_5="1.5",e.OPENSEA_CONDUIT_KEY="0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",e.OPENSEA_CONDUIT_ADDRESS="0x1e0049783f008a0085193e00003d00cd54003c71",e.EIP_712_ORDER_TYPE={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"}]},e.EIP_712_BULK_ORDER_TYPE={BulkOrder:[{name:"tree",type:"OrderComponents[2][2][2][2][2][2][2]"}],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"}]},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"}(n||(e.OrderType=n={})),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"}(r||(e.ItemType=r={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(i||(e.Side=i={})),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"}(o||(e.BasicOrderRouteType=o={})),e.MAX_INT=t.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),e.ONE_HUNDRED_PERCENT_BP=1e4,e.NO_CONDUIT="0x0000000000000000000000000000000000000000000000000000000000000000",e.KNOWN_CONDUIT_KEYS_TO_CONDUIT={[e.OPENSEA_CONDUIT_KEY]:e.OPENSEA_CONDUIT_ADDRESS},e.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS="0x00000000000001ad428e4906aE43D8F9852d0dD6",e.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS="0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",e.DOMAIN_REGISTRY_ADDRESS="0x000000000DaD0DE04D2B2D4a5A74581EBA94124A"}(hk);var mk={},yk={};Object.defineProperty(yk,"__esModule",{value:!0}),yk.ERC20ABI=void 0;yk.ERC20ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var Ak={};Object.defineProperty(Ak,"__esModule",{value:!0}),Ak.ERC721ABI=void 0;Ak.ERC721ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];var gk,bk={},vk={};function wk(){if(gk)return vk;gk=1,Object.defineProperty(vk,"__esModule",{value:!0}),vk.getItemToCriteriaMap=vk.generateCriteriaResolvers=void 0;const e=hk,t=Tk();vk.generateCriteriaResolvers=({orders:n,offerCriterias:r=[[]],considerationCriterias:i=[[]]})=>{const o=n.flatMap(((n,r)=>n.parameters.offer.map(((t,n)=>({orderIndex:r,item:t,index:n,side:e.Side.OFFER}))).filter((({item:e})=>(0,t.isCriteriaItem)(e.itemType))))),a=n.flatMap(((n,r)=>n.parameters.consideration.map(((t,n)=>({orderIndex:r,item:t,index:n,side:e.Side.CONSIDERATION}))).filter((({item:e})=>(0,t.isCriteriaItem)(e.itemType))))),s=(e,t)=>e.map((({orderIndex:e,item:n,index:r,side:i})=>{const o=n.identifierOrCriteria||"0",a=t[e][r];return{orderIndex:e,index:r,side:i,identifier:a.identifier,criteriaProof:"0"===o?[]:a.proof}}));return[...s(o,r),...s(a,i)]};return vk.getItemToCriteriaMap=(e,n)=>{const r=[...n];return e.reduce(((e,n)=>((0,t.isCriteriaItem)(n.itemType)&&e.set(n,r.shift()),e)),new Map)},vk}var xk,Ek={};function Tk(){return xk||(xk=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getMaximumSizeForOrder=e.getSummedTokenAndIdentifierAmounts=e.getPresentItemAmount=e.isCriteriaItem=e.isErc1155Item=e.isErc721Item=e.isErc20Item=e.isNativeCurrencyItem=e.isCurrencyItem=void 0;const t=qC,n=hk,r=wk(),i=Ek;e.isCurrencyItem=({itemType:e})=>[n.ItemType.NATIVE,n.ItemType.ERC20].includes(e);e.isNativeCurrencyItem=({itemType:e})=>e===n.ItemType.NATIVE;e.isErc20Item=e=>e===n.ItemType.ERC20;e.isErc721Item=e=>[n.ItemType.ERC721,n.ItemType.ERC721_WITH_CRITERIA].includes(e);e.isErc1155Item=e=>[n.ItemType.ERC1155,n.ItemType.ERC1155_WITH_CRITERIA].includes(e);e.isCriteriaItem=e=>[n.ItemType.ERC721_WITH_CRITERIA,n.ItemType.ERC1155_WITH_CRITERIA].includes(e);e.getPresentItemAmount=({startAmount:e,endAmount:n,timeBasedItemParams:r})=>{const i=t.BigNumber.from(e),o=t.BigNumber.from(n);if(!r)return i.gt(o)?i:o;const{isConsiderationItem:a,currentBlockTimestamp:s,ascendingAmountTimestampBuffer:u,startTime:l,endTime:c}=r,d=t.BigNumber.from(c).sub(l),f=o.gt(e),p=t.BigNumber.from(f?s+u:s);if(p.lt(l))return i;const h=(p.gt(c)?t.BigNumber.from(c):p).sub(l),m=d.sub(h);return i.mul(m).add(o.mul(h)).add(a?d.sub(1):0).div(d)};e.getSummedTokenAndIdentifierAmounts=({items:n,criterias:i,timeBasedItemParams:o})=>{const a=(0,r.getItemToCriteriaMap)(n,i),s=n.reduce(((n,r)=>{var i,s,u,l;const c=null!==(s=null===(i=a.get(r))||void 0===i?void 0:i.identifier)&&void 0!==s?s:r.identifierOrCriteria;return Object.assign(Object.assign({},n),{[r.token]:Object.assign(Object.assign({},n[r.token]),{[c]:(null!==(l=null===(u=n[r.token])||void 0===u?void 0:u[c])&&void 0!==l?l:t.BigNumber.from(0)).add((0,e.getPresentItemAmount)({startAmount:r.startAmount,endAmount:r.endAmount,timeBasedItemParams:o}))})})}),{});return s};e.getMaximumSizeForOrder=({parameters:{offer:e,consideration:t}})=>{const n=[...e,...t].flatMap((({startAmount:e,endAmount:t})=>[e,t]));return(0,i.findGcd)(n)}}(bk)),bk}!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.findGcd=e.gcd=void 0;const t=qC;e.gcd=(n,r)=>{const i=t.BigNumber.from(n),o=t.BigNumber.from(r);return i.eq(0)?o:(0,e.gcd)(o.mod(n),i)};e.findGcd=n=>{let r=t.BigNumber.from(n[0]);for(let t=1;t<n.length;t++)if(r=(0,e.gcd)(n[t],r),r.eq(1))return r;return r}}(Ek);var Ck={};!function(e){var t=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.getTagFromDomain=e.getTransactionMethods=e.executeAllActions=void 0;const n=XC;e.executeAllActions=e=>t(void 0,void 0,void 0,(function*(){for(let t=0;t<e.length-1;t++){const n=e[t];if("approval"===n.type){const e=yield n.transactionMethods.transact();yield e.wait()}}const t=e[e.length-1];switch(t.type){case"create":return t.createOrder();case"createBulk":return t.createBulkOrders();default:return t.transactionMethods.transact()}}));e.getTransactionMethods=(n,r,i,o)=>{const a=i[i.length-1];let s;(e=>{const t=["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","type","accessList","customData","ccipReadEnabled","value","blockTag","CallOverrides"];return void 0===e||Object.keys(e).every((e=>t.includes(e)))})(a)&&(s=a,i.pop());const u=a=>t(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},s),a),u=yield n.populateTransaction[r](...i,t);if(o){const t=(0,e.getTagFromDomain)(o);u.data=u.data+t}return u}));return{callStatic:e=>{const t=Object.assign(Object.assign({},s),e);return n.callStatic[r](...i,t)},estimateGas:e=>{const t=Object.assign(Object.assign({},s),e);return n.estimateGas[r](...i,t)},transact:e=>t(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},s),e),r=yield u(t);return n.signer.sendTransaction(r)})),buildTransaction:u}};e.getTagFromDomain=e=>(0,n.keccak256)((0,n.toUtf8Bytes)(e)).slice(2,10)}(Ck);var kk=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(mk,"__esModule",{value:!0}),mk.getApprovalActions=mk.approvedItemAmount=void 0;const Sk=qC,Ik=yk,Pk=Ak,Ok=hk,Nk=Tk(),Rk=Ck;mk.approvedItemAmount=(e,t,n,r)=>kk(void 0,void 0,void 0,(function*(){if((0,Nk.isErc721Item)(t.itemType)||(0,Nk.isErc1155Item)(t.itemType)){return new Sk.Contract(t.token,Pk.ERC721ABI,r).isApprovedForAll(e,n).then((e=>e?Ok.MAX_INT:Sk.BigNumber.from(0)))}if(t.itemType===Ok.ItemType.ERC20){return new Sk.Contract(t.token,Ik.ERC20ABI,r).allowance(e,n)}return Ok.MAX_INT})),mk.getApprovalActions=function(e,t,n){return e.filter(((t,n)=>n===e.length-1||e[n+1].token!==t.token)).map((({token:e,operator:r,itemType:i,identifierOrCriteria:o,requiredApprovedAmount:a})=>{const s=(0,Nk.isErc1155Item)(i);if((0,Nk.isErc721Item)(i)||s){const a=new Sk.Contract(e,Pk.ERC721ABI,n);return{type:"approval",token:e,identifierOrCriteria:o,itemType:i,operator:r,transactionMethods:(0,Rk.getTransactionMethods)(a.connect(n),t&&!s?"approve":"setApprovalForAll",[r,!(t&&!s)||o])}}{const s=new Sk.Contract(e,Ik.ERC20ABI,n);return{type:"approval",token:e,identifierOrCriteria:o,itemType:i,transactionMethods:(0,Rk.getTransactionMethods)(s.connect(n),"approve",[r,t?a:Ok.MAX_INT]),operator:r}}}))};var Mk={},Lk={},Dk={};Object.defineProperty(Dk,"__esModule",{value:!0}),Dk.ERC1155ABI=void 0;Dk.ERC1155ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"owners",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"balances",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];var Fk=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(Lk,"__esModule",{value:!0}),Lk.balanceOf=void 0;const Bk=qC,jk=Dk,zk=yk,_k=Ak,Uk=hk,Hk=Tk();Lk.balanceOf=(e,t,n,r)=>Fk(void 0,void 0,void 0,(function*(){if((0,Hk.isErc721Item)(t.itemType)){const i=new Bk.Contract(t.token,_k.ERC721ABI,n);return t.itemType===Uk.ItemType.ERC721_WITH_CRITERIA?r?i.ownerOf(r.identifier).then((t=>Bk.BigNumber.from(Number(t.toLowerCase()===e.toLowerCase())))):i.balanceOf(e):i.ownerOf(t.identifierOrCriteria).then((t=>Bk.BigNumber.from(Number(t.toLowerCase()===e.toLowerCase()))))}if((0,Hk.isErc1155Item)(t.itemType)){const i=new Bk.Contract(t.token,jk.ERC1155ABI,n);if(t.itemType===Uk.ItemType.ERC1155_WITH_CRITERIA){if(!r){const e=Bk.BigNumber.from(t.startAmount),n=Bk.BigNumber.from(t.endAmount);return e.gt(n)?e:n}return i.balanceOf(e,r.identifier)}return i.balanceOf(e,t.identifierOrCriteria)}if((0,Hk.isErc20Item)(t.itemType)){return new Bk.Contract(t.token,zk.ERC20ABI,n).balanceOf(e)}return n.getBalance(e)})),function(e){var t=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.validateStandardFulfillBalancesAndApprovals=e.validateBasicFulfillBalancesAndApprovals=e.validateOfferBalancesAndApprovals=e.getInsufficientBalanceAndApprovalAmounts=e.getBalancesAndApprovals=void 0;const n=qC,r=hk,i=mk,o=Lk,a=wk(),s=Tk(),u=(e,t,n)=>{const r=e.find((({token:e,identifierOrCriteria:r})=>t.toLowerCase()===e.toLowerCase()&&r.toLowerCase()===n.toLowerCase()));if(!r)throw new Error("Balances and approvals didn't contain all tokens and identifiers");return r};e.getBalancesAndApprovals=({owner:e,items:u,criterias:l,operator:c,multicallProvider:d})=>t(void 0,void 0,void 0,(function*(){const f=(0,a.getItemToCriteriaMap)(u,l);return Promise.all(u.map((a=>t(void 0,void 0,void 0,(function*(){var t,u;let l=Promise.resolve(n.BigNumber.from(0));return l=(0,s.isErc721Item)(a.itemType)||(0,s.isErc1155Item)(a.itemType)||(0,s.isErc20Item)(a.itemType)?(0,i.approvedItemAmount)(e,a,c,d):Promise.resolve(r.MAX_INT),{token:a.token,identifierOrCriteria:null!==(u=null===(t=f.get(a))||void 0===t?void 0:t.identifier)&&void 0!==u?u:a.identifierOrCriteria,balance:yield(0,o.balanceOf)(e,a,d,f.get(a)),approvedAmount:yield l,itemType:a.itemType}})))))}));e.getInsufficientBalanceAndApprovalAmounts=({balancesAndApprovals:e,tokenAndIdentifierAmounts:t,operator:n})=>{const r=[...Object.entries(t).map((([e,t])=>Object.entries(t).map((([t,n])=>[e,t,n]))))].flat(),i=t=>r.filter((([n,r,i])=>u(e,n,r)[t].lt(i))).map((([n,r,i])=>{const o=u(e,n,r);return{token:n,identifierOrCriteria:r,requiredAmount:i,amountHave:o[t],itemType:o.itemType}})),[o,a]=[i("balance"),i("approvedAmount").map((e=>({token:e.token,identifierOrCriteria:e.identifierOrCriteria,approvedAmount:e.amountHave,requiredApprovedAmount:e.requiredAmount,itemType:e.itemType,operator:n})))];return{insufficientBalances:o,insufficientApprovals:a}};e.validateOfferBalancesAndApprovals=({offer:t,criterias:n,balancesAndApprovals:r,timeBasedItemParams:i,throwOnInsufficientBalances:o=!0,throwOnInsufficientApprovals:a,operator:u})=>{const{insufficientBalances:l,insufficientApprovals:c}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:r,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:t,criterias:n,timeBasedItemParams:i?Object.assign(Object.assign({},i),{isConsiderationItem:!1}):void 0}),operator:u});if(o&&l.length>0)throw new Error("The offerer does not have the amount needed to create or fulfill.");if(a&&c.length>0)throw new Error("The offerer does not have the sufficient approvals.");return c};e.validateBasicFulfillBalancesAndApprovals=({offer:t,consideration:n,offererBalancesAndApprovals:r,fulfillerBalancesAndApprovals:i,timeBasedItemParams:o,offererOperator:a,fulfillerOperator:u})=>{(0,e.validateOfferBalancesAndApprovals)({offer:t,criterias:[],balancesAndApprovals:r,timeBasedItemParams:o,throwOnInsufficientApprovals:!0,operator:a});const l=n.filter((e=>e.itemType!==t[0].itemType)),{insufficientBalances:c,insufficientApprovals:d}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:i,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:l,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},o),{isConsiderationItem:!0})}),operator:u});if(c.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return d};e.validateStandardFulfillBalancesAndApprovals=({offer:t,consideration:n,offerCriteria:r,considerationCriteria:i,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:a,timeBasedItemParams:u,offererOperator:c,fulfillerOperator:d})=>{(0,e.validateOfferBalancesAndApprovals)({offer:t,criterias:r,balancesAndApprovals:o,timeBasedItemParams:u,throwOnInsufficientApprovals:!0,operator:c});const f=l({items:t,criterias:r,balancesAndApprovals:a,timeBasedItemParams:u}),{insufficientBalances:p,insufficientApprovals:h}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:f,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:n,criterias:i,timeBasedItemParams:Object.assign(Object.assign({},u),{isConsiderationItem:!0})}),operator:d});if(p.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return h};const l=({items:e,criterias:t,timeBasedItemParams:n,balancesAndApprovals:r})=>{const i=(0,s.getSummedTokenAndIdentifierAmounts)({items:e,criterias:t,timeBasedItemParams:Object.assign(Object.assign({},n),{isConsiderationItem:!1})}),o=r.map((e=>Object.assign({},e)));return Object.entries(i).forEach((([e,t])=>Object.entries(t).forEach((([t,n])=>{const r=u(o,e,t),i=o.indexOf(r);o[i].balance=o[i].balance.add(n)})))),o}}(Mk);var Wk={},Vk={},qk={},Xk={},Gk={exports:{}};var Zk,Yk={exports:{}},Kk=Ue(Object.freeze({__proto__:null,default:{}}));function Qk(){return Zk||(Zk=1,function(e,t){var n;e.exports=(n=n||function(e,t){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==ze&&ze.crypto&&(n=ze.crypto),!n)try{n=Kk}catch(e){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),o={},a=o.lib={},s=a.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},u=a.WordArray=s.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var o=0;o<i;o++){var a=n[o>>>2]>>>24-o%4*8&255;t[r+o>>>2]|=a<<24-(r+o)%4*8}else for(var s=0;s<i;s+=4)t[r+s>>>2]=n[s>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new u.init(t,e)}}),l=o.enc={},c=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new u.init(n,t/2)}},d=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new u.init(n,t)}},f=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},p=a.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,o=r.sigBytes,a=this.blockSize,s=o/(4*a),l=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,c=e.min(4*l,o);if(l){for(var d=0;d<l;d+=a)this._doProcessBlock(i,d);n=i.splice(0,l),r.sigBytes-=c}return new u.init(n,c)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});a.Hasher=p.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new h.HMAC.init(e,n).finalize(t)}}});var h=o.algo={};return o}(Math),n)}(Yk)),Yk.exports}!function(e,t){var n;e.exports=(n=Qk(),function(e){var t=n,r=t.lib,i=r.WordArray,o=r.Hasher,a=t.algo,s=[],u=[];!function(){function t(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var r=2,i=0;i<64;)t(r)&&(i<8&&(s[i]=n(e.pow(r,.5))),u[i]=n(e.pow(r,1/3)),i++),r++}();var l=[],c=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],c=n[5],d=n[6],f=n[7],p=0;p<64;p++){if(p<16)l[p]=0|e[t+p];else{var h=l[p-15],m=(h<<25|h>>>7)^(h<<14|h>>>18)^h>>>3,y=l[p-2],A=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;l[p]=m+l[p-7]+A+l[p-16]}var g=r&i^r&o^i&o,b=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),v=f+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&c^~s&d)+u[p]+l[p];f=d,d=c,c=s,s=a+v|0,a=o,o=i,i=r,r=v+(b+g)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+d|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(c),t.HmacSHA256=o._createHmacHelper(c)}(Math),n.SHA256)}(Gk);var Jk=Gk.exports,$k={exports:{}};!function(e,t){e.exports=function(){function e(e,t){var n=t?"└":"├";return n+=e?"─ ":"──┐"}function t(e,t){var n=[];for(var r in e)e.hasOwnProperty(r)&&(t&&"function"==typeof e[r]||n.push(r));return n}function n(r,i,o,a,s,u,l){var c,d,f="",p=0,h=a.slice(0);if(h.push([i,o])&&a.length>0&&(a.forEach((function(e,t){t>0&&(f+=(e[1]?" ":"│")+" "),d||e[0]!==i||(d=!0)})),f+=e(r,o)+r,s&&("object"!=typeof i||i instanceof Date)&&(f+=": "+i),d&&(f+=" (circular ref.)"),l(f)),!d&&"object"==typeof i){var m=t(i,u);m.forEach((function(e){c=++p===m.length,n(e,i[e],c,h,s,u,l)}))}}var r={asLines:function(e,t,r,i){n(".",e,!1,[],t,"function"!=typeof r&&r,i||r)},asTree:function(e,t,r){var i="";return n(".",e,!1,[],t,r,(function(e){i+=e+"\n"})),i}};return r}()}($k);var eS,tS=$k.exports,nS={},rS={exports:{}},iS={exports:{}};function oS(){return eS||(eS=1,function(e,t){var n;e.exports=(n=Qk(),function(e){var t=n,r=t.lib,i=r.Base,o=r.WordArray,a=t.x64={};a.Word=i.extend({init:function(e,t){this.high=e,this.low=t}}),a.WordArray=i.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var e=this.words,t=e.length,n=[],r=0;r<t;r++){var i=e[r];n.push(i.high),n.push(i.low)}return o.create(n,this.sigBytes)},clone:function(){for(var e=i.clone.call(this),t=e.words=this.words.slice(0),n=t.length,r=0;r<n;r++)t[r]=t[r].clone();return e}})}(),n)}(iS)),iS.exports}var aS,sS={exports:{}};function uS(){return aS||(aS=1,function(e,t){var n;e.exports=(n=Qk(),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var n=e.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)};r.prototype=e}}(),n.lib.WordArray)}(sS)),sS.exports}var lS,cS={exports:{}};function dS(){return lS||(lS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib.WordArray,r=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=2){var o=t[i>>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i<n;i++)r[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},r.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],o=0;o<n;o+=2){var a=i(t[o>>>2]>>>16-o%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var n=e.length,r=[],o=0;o<n;o++)r[o>>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(r,2*n)}}}(),n.enc.Utf16)}(cS)),cS.exports}var fS,pS={exports:{}};function hS(){return fS||(fS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib.WordArray;function r(e,n,r){for(var i=[],o=0,a=0;a<n;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;i[o>>>2]|=s<<24-o%4*8,o++}return t.create(i,o)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],o=0;o<n;o+=3)for(var a=(t[o>>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<n;s++)i.push(r.charAt(a>>>6*(3-s)&63));var u=r.charAt(64);if(u)for(;i.length%4;)i.push(u);return i.join("")},parse:function(e){var t=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<n.length;o++)i[n.charCodeAt(o)]=o}var a=n.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(t=s)}return r(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),n.enc.Base64)}(pS)),pS.exports}var mS,yS={exports:{}};function AS(){return mS||(mS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib.WordArray;function r(e,n,r){for(var i=[],o=0,a=0;a<n;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;i[o>>>2]|=s<<24-o%4*8,o++}return t.create(i,o)}e.enc.Base64url={stringify:function(e,t){void 0===t&&(t=!0);var n=e.words,r=e.sigBytes,i=t?this._safe_map:this._map;e.clamp();for(var o=[],a=0;a<r;a+=3)for(var s=(n[a>>>2]>>>24-a%4*8&255)<<16|(n[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|n[a+2>>>2]>>>24-(a+2)%4*8&255,u=0;u<4&&a+.75*u<r;u++)o.push(i.charAt(s>>>6*(3-u)&63));var l=i.charAt(64);if(l)for(;o.length%4;)o.push(l);return o.join("")},parse:function(e,t){void 0===t&&(t=!0);var n=e.length,i=t?this._safe_map:this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var a=0;a<i.length;a++)o[i.charCodeAt(a)]=a}var s=i.charAt(64);if(s){var u=e.indexOf(s);-1!==u&&(n=u)}return r(e,n,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),n.enc.Base64url)}(yS)),yS.exports}var gS,bS={exports:{}};function vS(){return gS||(gS=1,function(e,t){var n;e.exports=(n=Qk(),function(e){var t=n,r=t.lib,i=r.WordArray,o=r.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var u=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_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 o=this._hash.words,a=e[t+0],u=e[t+1],p=e[t+2],h=e[t+3],m=e[t+4],y=e[t+5],A=e[t+6],g=e[t+7],b=e[t+8],v=e[t+9],w=e[t+10],x=e[t+11],E=e[t+12],T=e[t+13],C=e[t+14],k=e[t+15],S=o[0],I=o[1],P=o[2],O=o[3];S=l(S,I,P,O,a,7,s[0]),O=l(O,S,I,P,u,12,s[1]),P=l(P,O,S,I,p,17,s[2]),I=l(I,P,O,S,h,22,s[3]),S=l(S,I,P,O,m,7,s[4]),O=l(O,S,I,P,y,12,s[5]),P=l(P,O,S,I,A,17,s[6]),I=l(I,P,O,S,g,22,s[7]),S=l(S,I,P,O,b,7,s[8]),O=l(O,S,I,P,v,12,s[9]),P=l(P,O,S,I,w,17,s[10]),I=l(I,P,O,S,x,22,s[11]),S=l(S,I,P,O,E,7,s[12]),O=l(O,S,I,P,T,12,s[13]),P=l(P,O,S,I,C,17,s[14]),S=c(S,I=l(I,P,O,S,k,22,s[15]),P,O,u,5,s[16]),O=c(O,S,I,P,A,9,s[17]),P=c(P,O,S,I,x,14,s[18]),I=c(I,P,O,S,a,20,s[19]),S=c(S,I,P,O,y,5,s[20]),O=c(O,S,I,P,w,9,s[21]),P=c(P,O,S,I,k,14,s[22]),I=c(I,P,O,S,m,20,s[23]),S=c(S,I,P,O,v,5,s[24]),O=c(O,S,I,P,C,9,s[25]),P=c(P,O,S,I,h,14,s[26]),I=c(I,P,O,S,b,20,s[27]),S=c(S,I,P,O,T,5,s[28]),O=c(O,S,I,P,p,9,s[29]),P=c(P,O,S,I,g,14,s[30]),S=d(S,I=c(I,P,O,S,E,20,s[31]),P,O,y,4,s[32]),O=d(O,S,I,P,b,11,s[33]),P=d(P,O,S,I,x,16,s[34]),I=d(I,P,O,S,C,23,s[35]),S=d(S,I,P,O,u,4,s[36]),O=d(O,S,I,P,m,11,s[37]),P=d(P,O,S,I,g,16,s[38]),I=d(I,P,O,S,w,23,s[39]),S=d(S,I,P,O,T,4,s[40]),O=d(O,S,I,P,a,11,s[41]),P=d(P,O,S,I,h,16,s[42]),I=d(I,P,O,S,A,23,s[43]),S=d(S,I,P,O,v,4,s[44]),O=d(O,S,I,P,E,11,s[45]),P=d(P,O,S,I,k,16,s[46]),S=f(S,I=d(I,P,O,S,p,23,s[47]),P,O,a,6,s[48]),O=f(O,S,I,P,g,10,s[49]),P=f(P,O,S,I,C,15,s[50]),I=f(I,P,O,S,y,21,s[51]),S=f(S,I,P,O,E,6,s[52]),O=f(O,S,I,P,h,10,s[53]),P=f(P,O,S,I,w,15,s[54]),I=f(I,P,O,S,u,21,s[55]),S=f(S,I,P,O,b,6,s[56]),O=f(O,S,I,P,k,10,s[57]),P=f(P,O,S,I,A,15,s[58]),I=f(I,P,O,S,T,21,s[59]),S=f(S,I,P,O,m,6,s[60]),O=f(O,S,I,P,x,10,s[61]),P=f(P,O,S,I,p,15,s[62]),I=f(I,P,O,S,v,21,s[63]),o[0]=o[0]+S|0,o[1]=o[1]+I|0,o[2]=o[2]+P|0,o[3]=o[3]+O|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var o=e.floor(r/4294967296),a=r;n[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,u=s.words,l=0;l<4;l++){var c=u[l];u[l]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,n,r,i,o,a){var s=e+(t&n|~t&r)+i+a;return(s<<o|s>>>32-o)+t}function c(e,t,n,r,i,o,a){var s=e+(t&r|n&~r)+i+a;return(s<<o|s>>>32-o)+t}function d(e,t,n,r,i,o,a){var s=e+(t^n^r)+i+a;return(s<<o|s>>>32-o)+t}function f(e,t,n,r,i,o,a){var s=e+(n^(t|~r))+i+a;return(s<<o|s>>>32-o)+t}t.MD5=o._createHelper(u),t.HmacMD5=o._createHmacHelper(u)}(Math),n.MD5)}(bS)),bS.exports}var wS,xS={exports:{}};function ES(){return wS||(wS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib,r=t.WordArray,i=t.Hasher,o=e.algo,a=[],s=o.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],s=n[3],u=n[4],l=0;l<80;l++){if(l<16)a[l]=0|e[t+l];else{var c=a[l-3]^a[l-8]^a[l-14]^a[l-16];a[l]=c<<1|c>>>31}var d=(r<<5|r>>>27)+u+a[l];d+=l<20?1518500249+(i&o|~i&s):l<40?1859775393+(i^o^s):l<60?(i&o|i&s|o&s)-1894007588:(i^o^s)-899497514,u=s,s=o,o=i<<30|i>>>2,i=r,r=d}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+u|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(r+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA1=i._createHelper(s),e.HmacSHA1=i._createHmacHelper(s)}(),n.SHA1)}(xS)),xS.exports}var TS,CS={exports:{}};var kS,SS={exports:{}};function IS(){return kS||(kS=1,function(e,t){var n;e.exports=(n=Qk(),oS(),function(){var e=n,t=e.lib.Hasher,r=e.x64,i=r.Word,o=r.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var u=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=s()}();var c=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],c=n[5],d=n[6],f=n[7],p=r.high,h=r.low,m=i.high,y=i.low,A=o.high,g=o.low,b=a.high,v=a.low,w=s.high,x=s.low,E=c.high,T=c.low,C=d.high,k=d.low,S=f.high,I=f.low,P=p,O=h,N=m,R=y,M=A,L=g,D=b,F=v,B=w,j=x,z=E,_=T,U=C,H=k,W=S,V=I,q=0;q<80;q++){var X,G,Z=l[q];if(q<16)G=Z.high=0|e[t+2*q],X=Z.low=0|e[t+2*q+1];else{var Y=l[q-15],K=Y.high,Q=Y.low,J=(K>>>1|Q<<31)^(K>>>8|Q<<24)^K>>>7,$=(Q>>>1|K<<31)^(Q>>>8|K<<24)^(Q>>>7|K<<25),ee=l[q-2],te=ee.high,ne=ee.low,re=(te>>>19|ne<<13)^(te<<3|ne>>>29)^te>>>6,ie=(ne>>>19|te<<13)^(ne<<3|te>>>29)^(ne>>>6|te<<26),oe=l[q-7],ae=oe.high,se=oe.low,ue=l[q-16],le=ue.high,ce=ue.low;G=(G=(G=J+ae+((X=$+se)>>>0<$>>>0?1:0))+re+((X+=ie)>>>0<ie>>>0?1:0))+le+((X+=ce)>>>0<ce>>>0?1:0),Z.high=G,Z.low=X}var de,fe=B&z^~B&U,pe=j&_^~j&H,he=P&N^P&M^N&M,me=O&R^O&L^R&L,ye=(P>>>28|O<<4)^(P<<30|O>>>2)^(P<<25|O>>>7),Ae=(O>>>28|P<<4)^(O<<30|P>>>2)^(O<<25|P>>>7),ge=(B>>>14|j<<18)^(B>>>18|j<<14)^(B<<23|j>>>9),be=(j>>>14|B<<18)^(j>>>18|B<<14)^(j<<23|B>>>9),ve=u[q],we=ve.high,xe=ve.low,Ee=W+ge+((de=V+be)>>>0<V>>>0?1:0),Te=Ae+me;W=U,V=H,U=z,H=_,z=B,_=j,B=D+(Ee=(Ee=(Ee=Ee+fe+((de+=pe)>>>0<pe>>>0?1:0))+we+((de+=xe)>>>0<xe>>>0?1:0))+G+((de+=X)>>>0<X>>>0?1:0))+((j=F+de|0)>>>0<F>>>0?1:0)|0,D=M,F=L,M=N,L=R,N=P,R=O,P=Ee+(ye+he+(Te>>>0<Ae>>>0?1:0))+((O=de+Te|0)>>>0<de>>>0?1:0)|0}h=r.low=h+O,r.high=p+P+(h>>>0<O>>>0?1:0),y=i.low=y+R,i.high=m+N+(y>>>0<R>>>0?1:0),g=o.low=g+L,o.high=A+M+(g>>>0<L>>>0?1:0),v=a.low=v+F,a.high=b+D+(v>>>0<F>>>0?1:0),x=s.low=x+j,s.high=w+B+(x>>>0<j>>>0?1:0),T=c.low=T+_,c.high=E+z+(T>>>0<_>>>0?1:0),k=d.low=k+H,d.high=C+U+(k>>>0<H>>>0?1:0),I=f.low=I+V,f.high=S+W+(I>>>0<V>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(r+128>>>10<<5)]=Math.floor(n/4294967296),t[31+(r+128>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(c),e.HmacSHA512=t._createHmacHelper(c)}(),n.SHA512)}(SS)),SS.exports}var PS,OS={exports:{}};var NS,RS={exports:{}};function MS(){return NS||(NS=1,function(e,t){var n;e.exports=(n=Qk(),oS(),function(e){var t=n,r=t.lib,i=r.WordArray,o=r.Hasher,a=t.x64.Word,s=t.algo,u=[],l=[],c=[];!function(){for(var e=1,t=0,n=0;n<24;n++){u[e+5*t]=(n+1)*(n+2)/2%64;var r=(2*e+3*t)%5;e=t%5,t=r}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,d=0,f=0;f<7;f++){if(1&i){var p=(1<<f)-1;p<32?d^=1<<p:s^=1<<p-32}128&i?i=i<<1^113:i<<=1}c[o]=a.create(s,d)}}();var d=[];!function(){for(var e=0;e<25;e++)d[e]=a.create()}();var f=s.SHA3=o.extend({cfg:o.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var n=this._state,r=this.blockSize/2,i=0;i<r;i++){var o=e[t+2*i],a=e[t+2*i+1];o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(I=n[i]).high^=a,I.low^=o}for(var s=0;s<24;s++){for(var f=0;f<5;f++){for(var p=0,h=0,m=0;m<5;m++)p^=(I=n[f+5*m]).high,h^=I.low;var y=d[f];y.high=p,y.low=h}for(f=0;f<5;f++){var A=d[(f+4)%5],g=d[(f+1)%5],b=g.high,v=g.low;for(p=A.high^(b<<1|v>>>31),h=A.low^(v<<1|b>>>31),m=0;m<5;m++)(I=n[f+5*m]).high^=p,I.low^=h}for(var w=1;w<25;w++){var x=(I=n[w]).high,E=I.low,T=u[w];T<32?(p=x<<T|E>>>32-T,h=E<<T|x>>>32-T):(p=E<<T-32|x>>>64-T,h=x<<T-32|E>>>64-T);var C=d[l[w]];C.high=p,C.low=h}var k=d[0],S=n[0];for(k.high=S.high,k.low=S.low,f=0;f<5;f++)for(m=0;m<5;m++){var I=n[w=f+5*m],P=d[w],O=d[(f+1)%5+5*m],N=d[(f+2)%5+5*m];I.high=P.high^~O.high&N.high,I.low=P.low^~O.low&N.low}I=n[0];var R=c[s];I.high^=R.high,I.low^=R.low}},_doFinalize:function(){var t=this._data,n=t.words;this._nDataBytes;var r=8*t.sigBytes,o=32*this.blockSize;n[r>>>5]|=1<<24-r%32,n[(e.ceil((r+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,u=s/8,l=[],c=0;c<u;c++){var d=a[c],f=d.high,p=d.low;f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),l.push(p),l.push(f)}return new i.init(l,s)},clone:function(){for(var e=o.clone.call(this),t=e._state=this._state.slice(0),n=0;n<25;n++)t[n]=t[n].clone();return e}});t.SHA3=o._createHelper(f),t.HmacSHA3=o._createHmacHelper(f)}(Math),n.SHA3)}(RS)),RS.exports}var LS,DS={exports:{}};var FS,BS={exports:{}};function jS(){return FS||(FS=1,function(e,t){var n;e.exports=(n=Qk(),void function(){var e=n,t=e.lib.Base,r=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=r.parse(t));var n=e.blockSize,i=4*n;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),a=this._iKey=t.clone(),s=o.words,u=a.words,l=0;l<n;l++)s[l]^=1549556828,u[l]^=909522486;o.sigBytes=a.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}())}(BS)),BS.exports}var zS,_S={exports:{}};var US,HS={exports:{}};function WS(){return US||(US=1,function(e,t){var n;e.exports=(n=Qk(),ES(),jS(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,o=e.algo,a=o.MD5,s=o.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:a,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n,r=this.cfg,o=r.hasher.create(),a=i.create(),s=a.words,u=r.keySize,l=r.iterations;s.length<u;){n&&o.update(n),n=o.update(e).finalize(t),o.reset();for(var c=1;c<l;c++)n=o.finalize(n),o.reset();a.concat(n)}return a.sigBytes=4*u,a}});e.EvpKDF=function(e,t,n){return s.create(n).compute(e,t)}}(),n.EvpKDF)}(HS)),HS.exports}var VS,qS={exports:{}};function XS(){return VS||(VS=1,function(e,t){var n;e.exports=(n=Qk(),WS(),void(n.lib.Cipher||function(e){var t=n,r=t.lib,i=r.Base,o=r.WordArray,a=r.BufferedBlockAlgorithm,s=t.enc;s.Utf8;var u=s.Base64,l=t.algo.EvpKDF,c=r.Cipher=a.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?b:A}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()});r.StreamCipher=c.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var d=t.mode={},f=r.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=d.CBC=function(){var t=f.extend();function n(t,n,r){var i,o=this._iv;o?(i=o,this._iv=e):i=this._prevBlock;for(var a=0;a<r;a++)t[n+a]^=i[a]}return t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,o=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=o}}),t}(),h=(t.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,r=n-e.sigBytes%n,i=r<<24|r<<16|r<<8|r,a=[],s=0;s<r;s+=4)a.push(i);var u=o.create(a,r);e.concat(u)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};r.BlockCipher=c.extend({cfg:c.cfg.extend({mode:p,padding:h}),reset:function(){var e;c.reset.call(this);var t=this.cfg,n=t.iv,r=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=r.createEncryptor:(e=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(r,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var m=r.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;return(n?o.create([1398893684,1701076831]).concat(n).concat(t):t).toString(u)},parse:function(e){var t,n=u.parse(e),r=n.words;return 1398893684==r[0]&&1701076831==r[1]&&(t=o.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),m.create({ciphertext:n,salt:t})}},A=r.SerializableCipher=i.extend({cfg:i.extend({format:y}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),o=i.finalize(t),a=i.cfg;return m.create({ciphertext:o,key:n,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=(t.kdf={}).OpenSSL={execute:function(e,t,n,r,i){if(r||(r=o.random(8)),i)a=l.create({keySize:t+n,hasher:i}).compute(e,r);else var a=l.create({keySize:t+n}).compute(e,r);var s=o.create(a.words.slice(t),4*n);return a.sigBytes=4*t,m.create({key:a,iv:s,salt:r})}},b=r.PasswordBasedCipher=A.extend({cfg:A.cfg.extend({kdf:g}),encrypt:function(e,t,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize,r.salt,r.hasher);r.iv=i.iv;var o=A.encrypt.call(this,e,t,i.key,r);return o.mixIn(i),o},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt,r.hasher);return r.iv=i.iv,A.decrypt.call(this,e,t,i.key,r)}})}()))}(qS)),qS.exports}var GS,ZS={exports:{}};function YS(){return GS||(GS=1,function(e,t){var n;e.exports=(n=Qk(),XS(),n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,n,r){var i,o=this._iv;o?(i=o.slice(0),this._iv=void 0):i=this._prevBlock,r.encryptBlock(i,0);for(var a=0;a<n;a++)e[t+a]^=i[a]}return e.Encryptor=e.extend({processBlock:function(e,n){var r=this._cipher,i=r.blockSize;t.call(this,e,n,i,r),this._prevBlock=e.slice(n,n+i)}}),e.Decryptor=e.extend({processBlock:function(e,n){var r=this._cipher,i=r.blockSize,o=e.slice(n,n+i);t.call(this,e,n,i,r),this._prevBlock=o}}),e}(),n.mode.CFB)}(ZS)),ZS.exports}var KS,QS={exports:{}};function JS(){return KS||(KS=1,function(e,t){var n,r,i;e.exports=(i=Qk(),XS(),i.mode.CTR=(n=i.lib.BlockCipherMode.extend(),r=n.Encryptor=n.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=this._iv,o=this._counter;i&&(o=this._counter=i.slice(0),this._iv=void 0);var a=o.slice(0);n.encryptBlock(a,0),o[r-1]=o[r-1]+1|0;for(var s=0;s<r;s++)e[t+s]^=a[s]}}),n.Decryptor=r,n),i.mode.CTR)}(QS)),QS.exports}var $S,eI={exports:{}};function tI(){return $S||($S=1,function(e,t){var n;e.exports=(n=Qk(),XS(),
18
+ /*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */!function(e){!function(t){var n,r=1e9,i={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},o=!0,a="[DecimalError] ",s=a+"Invalid argument: ",u=a+"Exponent out of range: ",l=Math.floor,c=Math.pow,d=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,f=1e7,p=7,h=9007199254740991,m=l(h/p),y={};function A(e,t){var n,r,i,a,s,u,l,c,d=e.constructor,h=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),o?S(t,h):t;if(l=e.d,c=t.d,s=e.e,i=t.e,l=l.slice(),a=s-i){for(a<0?(r=l,a=-a,u=c.length):(r=c,i=s,u=l.length),a>(u=(s=Math.ceil(h/p))>u?s+1:u+1)&&(a=u,r.length=1),r.reverse();a--;)r.push(0);r.reverse()}for((u=l.length)-(a=c.length)<0&&(a=u,r=c,c=l,l=r),n=0;a;)n=(l[--a]=l[a]+c[a]+n)/f|0,l[a]%=f;for(n&&(l.unshift(n),++i),u=l.length;0==l[--u];)l.pop();return t.d=l,t.e=i,o?S(t,h):t}function g(e,t,n){if(e!==~~e||e<t||e>n)throw Error(s+e)}function b(e){var t,n,r,i=e.length-1,o="",a=e[0];if(i>0){for(o+=a,t=1;t<i;t++)r=e[t]+"",(n=p-r.length)&&(o+=T(n)),o+=r;a=e[t],(n=p-(r=a+"").length)&&(o+=T(n))}else if(0===a)return"0";for(;a%10==0;)a/=10;return o+a}y.absoluteValue=y.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e},y.comparedTo=y.cmp=function(e){var t,n,r,i,o=this;if(e=new o.constructor(e),o.s!==e.s)return o.s||-e.s;if(o.e!==e.e)return o.e>e.e^o.s<0?1:-1;for(t=0,n=(r=o.d.length)<(i=e.d.length)?r:i;t<n;++t)if(o.d[t]!==e.d[t])return o.d[t]>e.d[t]^o.s<0?1:-1;return r===i?0:r>i^o.s<0?1:-1},y.decimalPlaces=y.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t])for(;t%10==0;t/=10)n--;return n<0?0:n},y.dividedBy=y.div=function(e){return v(this,new this.constructor(e))},y.dividedToIntegerBy=y.idiv=function(e){var t=this.constructor;return S(v(this,new t(e),0,1),t.precision)},y.equals=y.eq=function(e){return!this.cmp(e)},y.exponent=function(){return x(this)},y.greaterThan=y.gt=function(e){return this.cmp(e)>0},y.greaterThanOrEqualTo=y.gte=function(e){return this.cmp(e)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return 0===this.s},y.lessThan=y.lt=function(e){return this.cmp(e)<0},y.lessThanOrEqualTo=y.lte=function(e){return this.cmp(e)<1},y.logarithm=y.log=function(e){var t,r=this,i=r.constructor,s=i.precision,u=s+5;if(void 0===e)e=new i(10);else if((e=new i(e)).s<1||e.eq(n))throw Error(a+"NaN");if(r.s<1)throw Error(a+(r.s?"NaN":"-Infinity"));return r.eq(n)?new i(0):(o=!1,t=v(C(r,u),C(e,u),u),o=!0,S(t,s))},y.minus=y.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?I(t,e):A(t,(e.s=-e.s,e))},y.modulo=y.mod=function(e){var t,n=this,r=n.constructor,i=r.precision;if(!(e=new r(e)).s)throw Error(a+"NaN");return n.s?(o=!1,t=v(n,e,0,1).times(e),o=!0,n.minus(t)):S(new r(n),i)},y.naturalExponential=y.exp=function(){return w(this)},y.naturalLogarithm=y.ln=function(){return C(this)},y.negated=y.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},y.plus=y.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?A(t,e):I(t,(e.s=-e.s,e))},y.precision=y.sd=function(e){var t,n,r,i=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(s+e);if(t=x(i)+1,n=(r=i.d.length-1)*p+1,r=i.d[r]){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},y.squareRoot=y.sqrt=function(){var e,t,n,r,i,s,u,c=this,d=c.constructor;if(c.s<1){if(!c.s)return new d(0);throw Error(a+"NaN")}for(e=x(c),o=!1,0==(i=Math.sqrt(+c))||i==1/0?(((t=b(c.d)).length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=l((e+1)/2)-(e<0||e%2),r=new d(t=i==1/0?"5e"+e:(t=i.toExponential()).slice(0,t.indexOf("e")+1)+e)):r=new d(i.toString()),i=u=(n=d.precision)+3;;)if(r=(s=r).plus(v(c,s,u+2)).times(.5),b(s.d).slice(0,u)===(t=b(r.d)).slice(0,u)){if(t=t.slice(u-3,u+1),i==u&&"4999"==t){if(S(s,n+1,0),s.times(s).eq(c)){r=s;break}}else if("9999"!=t)break;u+=4}return o=!0,S(r,n)},y.times=y.mul=function(e){var t,n,r,i,a,s,u,l,c,d=this,p=d.constructor,h=d.d,m=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,(l=h.length)<(c=m.length)&&(a=h,h=m,m=a,s=l,l=c,c=s),a=[],r=s=l+c;r--;)a.push(0);for(r=c;--r>=0;){for(t=0,i=l+r;i>r;)u=a[i]+m[r]*h[i-r-1]+t,a[i--]=u%f|0,t=u/f|0;a[i]=(a[i]+t)%f|0}for(;!a[--s];)a.pop();return t?++n:a.shift(),e.d=a,e.e=n,o?S(e,p.precision):e},y.toDecimalPlaces=y.todp=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(g(e,0,r),void 0===t?t=i.rounding:g(t,0,8),S(n,e+x(n)+1,t))},y.toExponential=function(e,t){var n,i=this,o=i.constructor;return void 0===e?n=P(i,!0):(g(e,0,r),void 0===t?t=o.rounding:g(t,0,8),n=P(i=S(new o(i),e+1,t),!0,e+1)),n},y.toFixed=function(e,t){var n,i,o=this,a=o.constructor;return void 0===e?P(o):(g(e,0,r),void 0===t?t=a.rounding:g(t,0,8),n=P((i=S(new a(o),e+x(o)+1,t)).abs(),!1,e+x(i)+1),o.isneg()&&!o.isZero()?"-"+n:n)},y.toInteger=y.toint=function(){var e=this,t=e.constructor;return S(new t(e),x(e)+1,t.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(e){var t,r,i,s,u,c,d=this,f=d.constructor,m=+(e=new f(e));if(!e.s)return new f(n);if(!(d=new f(d)).s){if(e.s<1)throw Error(a+"Infinity");return d}if(d.eq(n))return d;if(i=f.precision,e.eq(n))return S(d,i);if(c=(t=e.e)>=(r=e.d.length-1),u=d.s,c){if((r=m<0?-m:m)<=h){for(s=new f(n),t=Math.ceil(i/p+4),o=!1;r%2&&O((s=s.times(d)).d,t),0!==(r=l(r/2));)O((d=d.times(d)).d,t);return o=!0,e.s<0?new f(n).div(s):S(s,i)}}else if(u<0)throw Error(a+"NaN");return u=u<0&&1&e.d[Math.max(t,r)]?-1:1,d.s=1,o=!1,s=e.times(C(d,i+12)),o=!0,(s=w(s)).s=u,s},y.toPrecision=function(e,t){var n,i,o=this,a=o.constructor;return void 0===e?i=P(o,(n=x(o))<=a.toExpNeg||n>=a.toExpPos):(g(e,1,r),void 0===t?t=a.rounding:g(t,0,8),i=P(o=S(new a(o),e,t),e<=(n=x(o))||n<=a.toExpNeg,e)),i},y.toSignificantDigits=y.tosd=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(g(e,1,r),void 0===t?t=n.rounding:g(t,0,8)),S(new n(this),e,t)},y.toString=y.valueOf=y.val=y.toJSON=function(){var e=this,t=x(e),n=e.constructor;return P(e,t<=n.toExpNeg||t>=n.toExpPos)};var v=function(){function e(e,t){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%f|0,r=n/f|0;return r&&e.unshift(r),e}function t(e,t,n,r){var i,o;if(n!=r)o=n>r?1:-1;else for(i=o=0;i<n;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=e[n]<t[n]?1:0,e[n]=r*f+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,o,s){var u,l,c,d,h,m,y,A,g,b,v,w,E,T,C,k,I,P,O=r.constructor,N=r.s==i.s?1:-1,R=r.d,M=i.d;if(!r.s)return new O(r);if(!i.s)throw Error(a+"Division by zero");for(l=r.e-i.e,I=M.length,C=R.length,A=(y=new O(N)).d=[],c=0;M[c]==(R[c]||0);)++c;if(M[c]>(R[c]||0)&&--l,(w=null==o?o=O.precision:s?o+(x(r)-x(i))+1:o)<0)return new O(0);if(w=w/p+2|0,c=0,1==I)for(d=0,M=M[0],w++;(c<C||d)&&w--;c++)E=d*f+(R[c]||0),A[c]=E/M|0,d=E%M|0;else{for((d=f/(M[0]+1)|0)>1&&(M=e(M,d),R=e(R,d),I=M.length,C=R.length),T=I,b=(g=R.slice(0,I)).length;b<I;)g[b++]=0;(P=M.slice()).unshift(0),k=M[0],M[1]>=f/2&&++k;do{d=0,(u=t(M,g,I,b))<0?(v=g[0],I!=b&&(v=v*f+(g[1]||0)),(d=v/k|0)>1?(d>=f&&(d=f-1),1==(u=t(h=e(M,d),g,m=h.length,b=g.length))&&(d--,n(h,I<m?P:M,m))):(0==d&&(u=d=1),h=M.slice()),(m=h.length)<b&&h.unshift(0),n(g,h,b),-1==u&&(u=t(M,g,I,b=g.length))<1&&(d++,n(g,I<b?P:M,b)),b=g.length):0===u&&(d++,g=[0]),A[c++]=d,u&&g[0]?g[b++]=R[T]||0:(g=[R[T]],b=1)}while((T++<C||void 0!==g[0])&&w--)}return A[0]||A.shift(),y.e=l,S(y,s?o+x(y)+1:o)}}();function w(e,t){var r,i,a,s,l,d=0,f=0,p=e.constructor,h=p.precision;if(x(e)>16)throw Error(u+x(e));if(!e.s)return new p(n);for(null==t?(o=!1,l=h):l=t,s=new p(.03125);e.abs().gte(.1);)e=e.times(s),f+=5;for(l+=Math.log(c(2,f))/Math.LN10*2+5|0,r=i=a=new p(n),p.precision=l;;){if(i=S(i.times(e),l),r=r.times(++d),b((s=a.plus(v(i,r,l))).d).slice(0,l)===b(a.d).slice(0,l)){for(;f--;)a=S(a.times(a),l);return p.precision=h,null==t?(o=!0,S(a,h)):a}a=s}}function x(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function E(e,t,n){if(t>e.LN10.sd())throw o=!0,n&&(e.precision=n),Error(a+"LN10 precision limit exceeded");return S(new e(e.LN10),t)}function T(e){for(var t="";e--;)t+="0";return t}function C(e,t){var r,i,s,u,l,c,d,f,p,h=1,m=e,y=m.d,A=m.constructor,g=A.precision;if(m.s<1)throw Error(a+(m.s?"NaN":"-Infinity"));if(m.eq(n))return new A(0);if(null==t?(o=!1,f=g):f=t,m.eq(10))return null==t&&(o=!0),E(A,f);if(f+=10,A.precision=f,i=(r=b(y)).charAt(0),u=x(m),!(Math.abs(u)<15e14))return d=E(A,f+2,g).times(u+""),m=C(new A(i+"."+r.slice(1)),f-10).plus(d),A.precision=g,null==t?(o=!0,S(m,g)):m;for(;i<7&&1!=i||1==i&&r.charAt(1)>3;)i=(r=b((m=m.times(e)).d)).charAt(0),h++;for(u=x(m),i>1?(m=new A("0."+r),u++):m=new A(i+"."+r.slice(1)),c=l=m=v(m.minus(n),m.plus(n),f),p=S(m.times(m),f),s=3;;){if(l=S(l.times(p),f),b((d=c.plus(v(l,new A(s),f))).d).slice(0,f)===b(c.d).slice(0,f))return c=c.times(2),0!==u&&(c=c.plus(E(A,f+2,g).times(u+""))),c=v(c,new A(h),f),A.precision=g,null==t?(o=!0,S(c,g)):c;c=d,s+=2}}function k(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);)++r;for(i=t.length;48===t.charCodeAt(i-1);)--i;if(t=t.slice(r,i)){if(i-=r,n=n-r-1,e.e=l(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=p;r<i;)e.d.push(+t.slice(r,r+=p));t=t.slice(r),r=p-t.length}else r-=i;for(;r--;)t+="0";if(e.d.push(+t),o&&(e.e>m||e.e<-m))throw Error(u+n)}else e.s=0,e.e=0,e.d=[0];return e}function S(e,t,n){var r,i,a,s,d,h,y,A,g=e.d;for(s=1,a=g[0];a>=10;a/=10)s++;if((r=t-s)<0)r+=p,i=t,y=g[A=0];else{if((A=Math.ceil((r+1)/p))>=(a=g.length))return e;for(y=a=g[A],s=1;a>=10;a/=10)s++;i=(r%=p)-p+s}if(void 0!==n&&(d=y/(a=c(10,s-i-1))%10|0,h=t<0||void 0!==g[A+1]||y%a,h=n<4?(d||h)&&(0==n||n==(e.s<0?3:2)):d>5||5==d&&(4==n||h||6==n&&(r>0?i>0?y/c(10,s-i):0:g[A-1])%10&1||n==(e.s<0?8:7))),t<1||!g[0])return h?(a=x(e),g.length=1,t=t-a-1,g[0]=c(10,(p-t%p)%p),e.e=l(-t/p)||0):(g.length=1,g[0]=e.e=e.s=0),e;if(0==r?(g.length=A,a=1,A--):(g.length=A+1,a=c(10,p-r),g[A]=i>0?(y/c(10,s-i)%c(10,i)|0)*a:0),h)for(;;){if(0==A){(g[0]+=a)==f&&(g[0]=1,++e.e);break}if(g[A]+=a,g[A]!=f)break;g[A--]=0,a=1}for(r=g.length;0===g[--r];)g.pop();if(o&&(e.e>m||e.e<-m))throw Error(u+x(e));return e}function I(e,t){var n,r,i,a,s,u,l,c,d,h,m=e.constructor,y=m.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new m(e),o?S(t,y):t;if(l=e.d,h=t.d,r=t.e,c=e.e,l=l.slice(),s=c-r){for((d=s<0)?(n=l,s=-s,u=h.length):(n=h,r=c,u=l.length),s>(i=Math.max(Math.ceil(y/p),u)+2)&&(s=i,n.length=1),n.reverse(),i=s;i--;)n.push(0);n.reverse()}else{for((d=(i=l.length)<(u=h.length))&&(u=i),i=0;i<u;i++)if(l[i]!=h[i]){d=l[i]<h[i];break}s=0}for(d&&(n=l,l=h,h=n,t.s=-t.s),u=l.length,i=h.length-u;i>0;--i)l[u++]=0;for(i=h.length;i>s;){if(l[--i]<h[i]){for(a=i;a&&0===l[--a];)l[a]=f-1;--l[a],l[i]+=f}l[i]-=h[i]}for(;0===l[--u];)l.pop();for(;0===l[0];l.shift())--r;return l[0]?(t.d=l,t.e=r,o?S(t,y):t):new m(0)}function P(e,t,n){var r,i=x(e),o=b(e.d),a=o.length;return t?(n&&(r=n-a)>0?o=o.charAt(0)+"."+o.slice(1)+T(r):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+T(-i-1)+o,n&&(r=n-a)>0&&(o+=T(r))):i>=a?(o+=T(i+1-a),n&&(r=n-i-1)>0&&(o=o+"."+T(r))):((r=i+1)<a&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-a)>0&&(i+1===a&&(o+="."),o+=T(r))),e.s<0?"-"+o:o}function O(e,t){if(e.length>t)return e.length=t,!0}function N(e){if(!e||"object"!=typeof e)throw Error(a+"Object expected");var t,n,i,o=["precision",1,r,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<o.length;t+=3)if(void 0!==(i=e[n=o[t]])){if(!(l(i)===i&&i>=o[t+1]&&i<=o[t+2]))throw Error(s+n+": "+i);this[n]=i}if(void 0!==(i=e[n="LN10"])){if(i!=Math.LN10)throw Error(s+n+": "+i);this[n]=new this(i)}return this}i=function e(t){var n,r,i;function o(e){var t=this;if(!(t instanceof o))return new o(e);if(t.constructor=o,e instanceof o)return t.s=e.s,t.e=e.e,void(t.d=(e=e.d)?e.slice():e);if("number"==typeof e){if(0*e!=0)throw Error(s+e);if(e>0)t.s=1;else{if(!(e<0))return t.s=0,t.e=0,void(t.d=[0]);e=-e,t.s=-1}return e===~~e&&e<1e7?(t.e=0,void(t.d=[e])):k(t,e.toString())}if("string"!=typeof e)throw Error(s+e);if(45===e.charCodeAt(0)?(e=e.slice(1),t.s=-1):t.s=1,!d.test(e))throw Error(s+e);k(t,e)}if(o.prototype=y,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.clone=e,o.config=o.set=N,void 0===t&&(t={}),t)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n<i.length;)t.hasOwnProperty(r=i[n++])||(t[r]=this[r]);return o.config(t),o}(i),i.default=i.Decimal=i,n=new i(1),e.exports?e.exports=i:(t||(t="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),t.Decimal=i)}(ze)}(UA);var HA=_e(UA.exports),WA={exports:{}};!function(e){!function(t){var n,r=1e6,i=1e6,o="[big.js] ",a=o+"Invalid ",s=a+"decimal places",u=a+"rounding mode",l=o+"Division by zero",c={},d=void 0,f=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function p(e,t,n,r){var i=e.c,o=e.e+t+1;if(o<i.length){if(1===n)r=i[o]>=5;else if(2===n)r=i[o]>5||5==i[o]&&(r||o<0||i[o+1]!==d||1&i[o-1]);else if(3===n)r=r||!!i[0];else if(r=!1,0!==n)throw Error(u);if(o<1)i.length=1,r?(e.e=-t,i[0]=1):i[0]=e.e=0;else{if(i.length=o--,r)for(;++i[o]>9;)i[o]=0,o--||(++e.e,i.unshift(1));for(o=i.length;!i[--o];)i.pop()}}else if(n<0||n>3||n!==~~n)throw Error(u);return e}function h(e,t,n,i){var o,u,l=e.constructor,c=!e.c[0];if(n!==d){if(n!==~~n||n<(3==t)||n>r)throw Error(3==t?a+"precision":s);for(n=i-(e=new l(e)).e,e.c.length>++i&&p(e,n,l.RM),2==t&&(i=e.e+n+1);e.c.length<i;)e.c.push(0)}if(o=e.e,n=(u=e.c.join("")).length,2!=t&&(1==t||3==t&&i<=o||o<=l.NE||o>=l.PE))u=u.charAt(0)+(n>1?"."+u.slice(1):"")+(o<0?"e":"e+")+o;else if(o<0){for(;++o;)u="0"+u;u="0."+u}else if(o>0)if(++o>n)for(o-=n;o--;)u+="0";else o<n&&(u=u.slice(0,o)+"."+u.slice(o));else n>1&&(u=u.charAt(0)+"."+u.slice(1));return e.s<0&&(!c||4==t)?"-"+u:u}c.abs=function(){var e=new this.constructor(this);return e.s=1,e},c.cmp=function(e){var t,n=this,r=n.c,i=(e=new n.constructor(e)).c,o=n.s,a=e.s,s=n.e,u=e.e;if(!r[0]||!i[0])return r[0]?o:i[0]?-a:0;if(o!=a)return o;if(t=o<0,s!=u)return s>u^t?1:-1;for(a=(s=r.length)<(u=i.length)?s:u,o=-1;++o<a;)if(r[o]!=i[o])return r[o]>i[o]^t?1:-1;return s==u?0:s>u^t?1:-1},c.div=function(e){var t=this,n=t.constructor,i=t.c,o=(e=new n(e)).c,a=t.s==e.s?1:-1,u=n.DP;if(u!==~~u||u<0||u>r)throw Error(s);if(!o[0])throw Error(l);if(!i[0])return new n(0*a);var c,f,h,m,y,A=o.slice(),g=c=o.length,b=i.length,v=i.slice(0,c),w=v.length,x=e,E=x.c=[],T=0,C=u+(x.e=t.e-e.e)+1;for(x.s=a,a=C<0?0:C,A.unshift(0);w++<c;)v.push(0);do{for(h=0;h<10;h++){if(c!=(w=v.length))m=c>w?1:-1;else for(y=-1,m=0;++y<c;)if(o[y]!=v[y]){m=o[y]>v[y]?1:-1;break}if(!(m<0))break;for(f=w==c?o:A;w;){if(v[--w]<f[w]){for(y=w;y&&!v[--y];)v[y]=9;--v[y],v[w]+=10}v[w]-=f[w]}for(;!v[0];)v.shift()}E[T++]=m?h:++h,v[0]&&m?v[w]=i[g]||0:v=[i[g]]}while((g++<b||v[0]!==d)&&a--);return E[0]||1==T||(E.shift(),x.e--),T>C&&p(x,u,n.RM,v[0]!==d),x},c.eq=function(e){return!this.cmp(e)},c.gt=function(e){return this.cmp(e)>0},c.gte=function(e){return this.cmp(e)>-1},c.lt=function(e){return this.cmp(e)<0},c.lte=function(e){return this.cmp(e)<1},c.minus=c.sub=function(e){var t,n,r,i,o=this,a=o.constructor,s=o.s,u=(e=new a(e)).s;if(s!=u)return e.s=-u,o.plus(e);var l=o.c.slice(),c=o.e,d=e.c,f=e.e;if(!l[0]||!d[0])return d[0]?(e.s=-u,e):new a(l[0]?o:0);if(s=c-f){for((i=s<0)?(s=-s,r=l):(f=c,r=d),r.reverse(),u=s;u--;)r.push(0);r.reverse()}else for(n=((i=l.length<d.length)?l:d).length,s=u=0;u<n;u++)if(l[u]!=d[u]){i=l[u]<d[u];break}if(i&&(r=l,l=d,d=r,e.s=-e.s),(u=(n=d.length)-(t=l.length))>0)for(;u--;)l[t++]=0;for(u=t;n>s;){if(l[--n]<d[n]){for(t=n;t&&!l[--t];)l[t]=9;--l[t],l[n]+=10}l[n]-=d[n]}for(;0===l[--u];)l.pop();for(;0===l[0];)l.shift(),--f;return l[0]||(e.s=1,l=[f=0]),e.c=l,e.e=f,e},c.mod=function(e){var t,n=this,r=n.constructor,i=n.s,o=(e=new r(e)).s;if(!e.c[0])throw Error(l);return n.s=e.s=1,t=1==e.cmp(n),n.s=i,e.s=o,t?new r(n):(i=r.DP,o=r.RM,r.DP=r.RM=0,n=n.div(e),r.DP=i,r.RM=o,this.minus(n.times(e)))},c.plus=c.add=function(e){var t,n=this,r=n.constructor,i=n.s,o=(e=new r(e)).s;if(i!=o)return e.s=-o,n.minus(e);var a=n.e,s=n.c,u=e.e,l=e.c;if(!s[0]||!l[0])return l[0]?e:new r(s[0]?n:0*i);if(s=s.slice(),i=a-u){for(i>0?(u=a,t=l):(i=-i,t=s),t.reverse();i--;)t.push(0);t.reverse()}for(s.length-l.length<0&&(t=l,l=s,s=t),i=l.length,o=0;i;s[i]%=10)o=(s[--i]=s[i]+l[i]+o)/10|0;for(o&&(s.unshift(o),++u),i=s.length;0===s[--i];)s.pop();return e.c=s,e.e=u,e},c.pow=function(e){var t=this,n=new t.constructor(1),r=n,o=e<0;if(e!==~~e||e<-1e6||e>i)throw Error(a+"exponent");for(o&&(e=-e);1&e&&(r=r.times(t)),e>>=1;)t=t.times(t);return o?n.div(r):r},c.round=function(e,t){var n=this.constructor;if(e===d)e=0;else if(e!==~~e||e<-r||e>r)throw Error(s);return p(new n(this),e,t===d?n.RM:t)},c.sqrt=function(){var e,t,n,r=this,i=r.constructor,a=r.s,s=r.e,u=new i(.5);if(!r.c[0])return new i(r);if(a<0)throw Error(o+"No square root");0===(a=Math.sqrt(r+""))||a===1/0?((t=r.c.join("")).length+s&1||(t+="0"),s=((s+1)/2|0)-(s<0||1&s),e=new i(((a=Math.sqrt(t))==1/0?"1e":(a=a.toExponential()).slice(0,a.indexOf("e")+1))+s)):e=new i(a),s=e.e+(i.DP+=4);do{n=e,e=u.times(n.plus(r.div(n)))}while(n.c.slice(0,s).join("")!==e.c.slice(0,s).join(""));return p(e,i.DP-=4,i.RM)},c.times=c.mul=function(e){var t,n=this,r=n.constructor,i=n.c,o=(e=new r(e)).c,a=i.length,s=o.length,u=n.e,l=e.e;if(e.s=n.s==e.s?1:-1,!i[0]||!o[0])return new r(0*e.s);for(e.e=u+l,a<s&&(t=i,i=o,o=t,l=a,a=s,s=l),t=new Array(l=a+s);l--;)t[l]=0;for(u=s;u--;){for(s=0,l=a+u;l>u;)s=t[l]+o[u]*i[l-u-1]+s,t[l--]=s%10,s=s/10|0;t[l]=(t[l]+s)%10}for(s?++e.e:t.shift(),u=t.length;!t[--u];)t.pop();return e.c=t,e},c.toExponential=function(e){return h(this,1,e,e)},c.toFixed=function(e){return h(this,2,e,this.e+e)},c.toPrecision=function(e){return h(this,3,e,e-1)},c.toString=function(){return h(this)},c.valueOf=c.toJSON=function(){return h(this,4)},n=function e(){function t(n){var r=this;if(!(r instanceof t))return n===d?e():new t(n);n instanceof t?(r.s=n.s,r.e=n.e,r.c=n.c.slice()):function(e,t){var n,r,i;if(0===t&&1/t<0)t="-0";else if(!f.test(t+=""))throw Error(a+"number");e.s="-"==t.charAt(0)?(t=t.slice(1),-1):1,(n=t.indexOf("."))>-1&&(t=t.replace(".",""));(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length);for(i=t.length,r=0;r<i&&"0"==t.charAt(r);)++r;if(r==i)e.c=[e.e=0];else{for(;i>0&&"0"==t.charAt(--i););for(e.e=n-r-1,e.c=[],n=0;r<=i;)e.c[n++]=+t.charAt(r++)}}(r,n),r.constructor=t}return t.prototype=c,t.DP=20,t.RM=1,t.NE=-7,t.PE=21,t.version="5.2.2",t}(),n.default=n.Big=n,e.exports?e.exports=n:t.Big=n}(ze)}(WA);var VA=_e(WA.exports),qA={exports:{}};!function(e){e.exports&&(e.exports=function(e){return e.prototype.toFormat=function(e,t,n){if(!this.e&&0!==this.e)return this.toString();var r,i,o,a,s,u,l,c,d,f,p,h,m,y,A,g=this.format||{},b=this.constructor.format||{};if(e!=s?"object"==typeof e?(n=e,e=s):t!=s?"object"==typeof t?(n=t,t=s):"object"!=typeof n&&(n={}):n={}:n={},c=(r=this.toFixed(e,t).split("."))[0],d=r[1],u=(l=this.s<0?c.slice(1):c).length,(f=n.decimalSeparator)==s&&(f=g.decimalSeparator)==s&&(f=b.decimalSeparator)==s&&(f="."),(p=n.groupSeparator)==s&&(p=g.groupSeparator)==s&&(p=b.groupSeparator),p&&((h=n.groupSize)==s&&(h=g.groupSize)==s&&(h=b.groupSize)==s&&(h=0),(m=n.secondaryGroupSize)==s&&(m=g.secondaryGroupSize)==s&&(m=b.secondaryGroupSize)==s&&(m=0),m?(i=+m,u-=o=+h):(i=+h,o=+m),i>0&&u>0)){for(a=u%i||i,c=l.substr(0,a);a<u;a+=i)c+=p+l.substr(a,i);o>0&&(c+=p+l.slice(a)),this.s<0&&(c="-"+c)}return d?((y=n.fractionGroupSeparator)==s&&(y=g.fractionGroupSeparator)==s&&(y=b.fractionGroupSeparator),y&&((A=n.fractionGroupSize)==s&&(A=g.fractionGroupSize)==s&&(A=b.fractionGroupSize)==s&&(A=0),(A=+A)&&(d=d.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+y))),c+f+d):c},e.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:"",fractionGroupSize:0},e})}(qA);var XA,GA,ZA,YA=_e(qA.exports);!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.BNB=56]="BNB"}(XA||(XA={})),function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(GA||(GA={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(ZA||(ZA={}));var KA,QA,JA=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function $A(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function eg(e,t,n){return t&&$A(e.prototype,t),n&&$A(e,n),e}function tg(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var ng=YA(HA),rg=YA(VA),ig=((KA={})[ZA.ROUND_DOWN]=ng.ROUND_DOWN,KA[ZA.ROUND_HALF_UP]=ng.ROUND_HALF_UP,KA[ZA.ROUND_UP]=ng.ROUND_UP,KA),og=((QA={})[ZA.ROUND_DOWN]=0,QA[ZA.ROUND_HALF_UP]=1,QA[ZA.ROUND_UP]=3,QA),ag=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=ZA.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),ng.set({precision:e+1,rounding:ig[n]});var r=new ng(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=ZA.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),rg.DP=e,rg.RM=og[n],new rg(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},eg(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),sg=YA(VA),ug=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,JA)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}tg(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=ZA.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=ZA.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),sg.DP=this.currency.decimals,new sg(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},eg(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(ag),lg=new ag(jA.BigInt(100));function cg(e){return new dg(e.numerator,e.denominator)}var dg=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}tg(t,e);var n=t.prototype;return n.add=function(t){return cg(e.prototype.add.call(this,t))},n.subtract=function(t){return cg(e.prototype.subtract.call(this,t))},n.multiply=function(t){return cg(e.prototype.multiply.call(this,t))},n.divide=function(t){return cg(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,lg).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,lg).toFixed(t,n,r)},t}(ag);var fg=/^0x[0-9a-fA-F]{40}$/;var pg,hg,mg=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(fg.test(e))return e;throw new Error(e+" is not a valid address.")}(n):function(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}(n),s}tg(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},eg(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));(pg={})[1]=new mg(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),pg[3]=new mg(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),pg[4]=new mg(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),pg[5]=new mg(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),pg[42]=new mg(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),pg[10]=new mg(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),pg[69]=new mg(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),pg[42161]=new mg(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),pg[421611]=new mg(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),hg="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};var yg=hg;function Ag(e,t){var n={seen:[],stylize:bg};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),Eg(t)?n.showHidden=t:t&&function(e,t){if(!t||!Ig(t))return e;var n=Object.keys(t),r=n.length;for(;r--;)e[n[r]]=t[n[r]]}(n,t),kg(n.showHidden)&&(n.showHidden=!1),kg(n.depth)&&(n.depth=2),kg(n.colors)&&(n.colors=!1),kg(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=gg),vg(n,e,n.depth)}function gg(e,t){var n=Ag.styles[t];return n?"["+Ag.colors[n][0]+"m"+e+"["+Ag.colors[n][1]+"m":e}function bg(e,t){return e}function vg(e,t,n){if(e.customInspect&&t&&Ng(t.inspect)&&t.inspect!==Ag&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return Cg(r)||(r=vg(e,r,n)),r}var i=function(e,t){if(kg(t))return e.stylize("undefined","undefined");if(Cg(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(r=t,"number"==typeof r)return e.stylize(""+t,"number");var r;if(Eg(t))return e.stylize(""+t,"boolean");if(Tg(t))return e.stylize("null","null")}(e,t);if(i)return i;var o=Object.keys(t),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Og(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return wg(t);if(0===o.length){if(Ng(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Sg(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Pg(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Og(t))return wg(t)}var u,l="",c=!1,d=["{","}"];(function(e){return Array.isArray(e)}(t)&&(c=!0,d=["[","]"]),Ng(t))&&(l=" [Function"+(t.name?": "+t.name:"")+"]");return Sg(t)&&(l=" "+RegExp.prototype.toString.call(t)),Pg(t)&&(l=" "+Date.prototype.toUTCString.call(t)),Og(t)&&(l=" "+wg(t)),0!==o.length||c&&0!=t.length?n<0?Sg(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),u=c?function(e,t,n,r,i){for(var o=[],a=0,s=t.length;a<s;++a)Lg(t,String(a))?o.push(xg(e,t,n,r,String(a),!0)):o.push("");return i.forEach((function(i){i.match(/^\d+$/)||o.push(xg(e,t,n,r,i,!0))})),o}(e,t,n,a,o):o.map((function(r){return xg(e,t,n,a,r,c)})),e.seen.pop(),function(e,t,n){var r=e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(r>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,l,d)):d[0]+l+d[1]}function wg(e){return"["+Error.prototype.toString.call(e)+"]"}function xg(e,t,n,r,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),Lg(r,i)||(a="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=Tg(n)?vg(e,u.value,null):vg(e,u.value,n-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),kg(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function Eg(e){return"boolean"==typeof e}function Tg(e){return null===e}function Cg(e){return"string"==typeof e}function kg(e){return void 0===e}function Sg(e){return Ig(e)&&"[object RegExp]"===Mg(e)}function Ig(e){return"object"==typeof e&&null!==e}function Pg(e){return Ig(e)&&"[object Date]"===Mg(e)}function Og(e){return Ig(e)&&("[object Error]"===Mg(e)||e instanceof Error)}function Ng(e){return"function"==typeof e}function Rg(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function Mg(e){return Object.prototype.toString.call(e)}function Lg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Dg(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0}Ag.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Ag.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Fg,Bg=Object.prototype.hasOwnProperty,jg=Object.keys||function(e){var t=[];for(var n in e)Bg.call(e,n)&&t.push(n);return t},zg=Array.prototype.slice;function _g(){return void 0!==Fg?Fg:Fg="foo"===function(){}.name}function Ug(e){return Object.prototype.toString.call(e)}function Hg(e){return!Ut(e)&&("function"==typeof We.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function Wg(e,t){e||Jg(e,!0,t,"==",$g)}var Vg,qg,Xg,Gg=/\s*function\s+([^\(\s]*)\s*/;function Zg(e){if(Ng(e)){if(_g())return e.name;var t=e.toString().match(Gg);return t&&t[1]}}function Yg(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return Kg(Qg(e.actual),128)+" "+e.operator+" "+Kg(Qg(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||Jg;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=Zg(t),o=r.indexOf("\n"+i);if(o>=0){var a=r.indexOf("\n",o+1);r=r.substring(a+1)}this.stack=r}}}function Kg(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function Qg(e){if(_g()||!Ng(e))return Ag(e);var t=Zg(e);return"[Function"+(t?": "+t:"")+"]"}function Jg(e,t,n,r,i){throw new Yg({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function $g(e,t){e||Jg(e,!0,t,"==",$g)}function eb(e,t,n,r){if(e===t)return!0;if(Ut(e)&&Ut(t))return 0===Dg(e,t);if(Pg(e)&&Pg(t))return e.getTime()===t.getTime();if(Sg(e)&&Sg(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(Hg(e)&&Hg(t)&&Ug(e)===Ug(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===Dg(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(Ut(e)!==Ut(t))return!1;var i=(r=r||{actual:[],expected:[]}).actual.indexOf(e);return-1!==i&&i===r.expected.indexOf(t)||(r.actual.push(e),r.expected.push(t),function(e,t,n,r){if(null==e||null==t)return!1;if(Rg(e)||Rg(t))return e===t;if(n&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=tb(e),o=tb(t);if(i&&!o||!i&&o)return!1;if(i)return eb(e=zg.call(e),t=zg.call(t),n);var a,s,u=jg(e),l=jg(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),s=u.length-1;s>=0;s--)if(u[s]!==l[s])return!1;for(s=u.length-1;s>=0;s--)if(!eb(e[a=u[s]],t[a],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function tb(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function nb(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function rb(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&Jg(i,n,"Missing expected exception"+r);var o="string"==typeof r,a=!e&&i&&!n;if((!e&&Og(i)&&o&&nb(i,n)||a)&&Jg(i,n,"Got unwanted exception"+r),e&&i&&n&&!nb(i,n)||!e&&i)throw i}function ib(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ob(e,t,n){return t&&ib(e.prototype,t),n&&ib(e,n),e}function ab(){return ab=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ab.apply(this,arguments)}function sb(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}Wg.AssertionError=Yg,yg(Yg,Error),Wg.fail=Jg,Wg.ok=$g,Wg.equal=function e(t,n,r){t!=n&&Jg(t,n,r,"==",e)},Wg.notEqual=function e(t,n,r){t==n&&Jg(t,n,r,"!=",e)},Wg.deepEqual=function e(t,n,r){eb(t,n,!1)||Jg(t,n,r,"deepEqual",e)},Wg.deepStrictEqual=function e(t,n,r){eb(t,n,!0)||Jg(t,n,r,"deepStrictEqual",e)},Wg.notDeepEqual=function e(t,n,r){eb(t,n,!1)&&Jg(t,n,r,"notDeepEqual",e)},Wg.notDeepStrictEqual=function e(t,n,r){eb(t,n,!0)&&Jg(t,n,r,"notDeepStrictEqual",e)},Wg.strictEqual=function e(t,n,r){t!==n&&Jg(t,n,r,"===",e)},Wg.notStrictEqual=function e(t,n,r){t===n&&Jg(t,n,r,"!==",e)},Wg.throws=function(e,t,n){rb(!0,e,t,n)},Wg.doesNotThrow=function(e,t,n){rb(!1,e,t,n)},Wg.ifError=function(e){if(e)throw e},function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(Vg||(Vg={})),Vg.MAINNET,Vg.OPTIMISM,Vg.OPTIMISM_GOERLI,Vg.ARBITRUM_ONE,Vg.ARBITRUM_GOERLI,Vg.POLYGON,Vg.POLYGON_MUMBAI,Vg.GOERLI,Vg.SEPOLIA,Vg.CELO_ALFAJORES,Vg.CELO,Vg.BNB,Vg.AVALANCHE,Vg.BASE,Vg.BASE_GOERLI,function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(qg||(qg={}));Vg.MAINNET,Vg.GOERLI;Vg.OPTIMISM,Vg.ARBITRUM_ONE,Vg.POLYGON,Vg.POLYGON_MUMBAI,Vg.SEPOLIA;var ub,lb,cb={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},db=ab({},cb,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),fb=ab({},cb,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),pb=cb,hb=ab({},cb,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),mb=cb,yb={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(Xg={})[Vg.MAINNET]=db,Xg[Vg.OPTIMISM]=pb,Xg[Vg.ARBITRUM_ONE]=hb,Xg[Vg.POLYGON]=mb,Xg[Vg.POLYGON_MUMBAI]=mb,Xg[Vg.GOERLI]=fb,Xg[Vg.CELO]=yb,Xg[Vg.CELO_ALFAJORES]=yb,Xg[Vg.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},Xg[Vg.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},Xg[Vg.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},Xg[Vg.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},Xg[Vg.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},Xg[Vg.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},Xg[Vg.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[Vg.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[Vg.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[Vg.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[Vg.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[Vg.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(ub||(ub={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(lb||(lb={}));var Ab,gb,bb=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),vb=YA(HA),wb=YA(VA),xb=((Ab={})[lb.ROUND_DOWN]=vb.ROUND_DOWN,Ab[lb.ROUND_HALF_UP]=vb.ROUND_HALF_UP,Ab[lb.ROUND_UP]=vb.ROUND_UP,Ab),Eb=((gb={})[lb.ROUND_DOWN]=0,gb[lb.ROUND_HALF_UP]=1,gb[lb.ROUND_UP]=3,gb),Tb=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=lb.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),vb.set({precision:e+1,rounding:xb[n]});var r=new vb(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=lb.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),wb.DP=e,wb.RM=Eb[n],new wb(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},ob(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),Cb=YA(VA),kb=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,bb)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}sb(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=lb.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=lb.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),Cb.DP=this.currency.decimals,new Cb(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},ob(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(Tb),Sb=new Tb(jA.BigInt(100));function Ib(e){return new Pb(e.numerator,e.denominator)}var Pb=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}sb(t,e);var n=t.prototype;return n.add=function(t){return Ib(e.prototype.add.call(this,t))},n.subtract=function(t){return Ib(e.prototype.subtract.call(this,t))},n.multiply=function(t){return Ib(e.prototype.multiply.call(this,t))},n.divide=function(t){return Ib(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,Sb).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,Sb).toFixed(t,n,r)},t}(Tb),Ob=function(e){function t(){for(var t,n,r,i,o,a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],o=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),c=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=c[0],r=c[1],i=c[2],o=c[3]}return(t=e.call(this,o,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new Tb(jA.exponentiate(jA.BigInt(10),jA.BigInt(n.decimals)),jA.exponentiate(jA.BigInt(10),jA.BigInt(r.decimals))),t}sb(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||_A(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||_A(!1);var n=e.prototype.multiply.call(this,t);return kb.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},ob(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(Tb);function Nb(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}var Rb=/^0x[0-9a-fA-F]{40}$/;var Mb,Lb=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(Rb.test(e))return e;throw new Error(e+" is not a valid address.")}(n):Nb(n),s}sb(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},ob(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));function Db(e,t,n,r){if(n>0||_A(!1),e.length<=n||_A(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var o=0,a=e.length;o<a;){var s=o+a>>>1;r(e[s],t)<=0?o=s+1:a=s}return e.splice(o,0,t),i?e.pop():null}(Mb={})[1]=new Lb(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),Mb[3]=new Lb(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Mb[4]=new Lb(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Mb[5]=new Lb(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),Mb[42]=new Lb(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),Mb[10]=new Lb(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Mb[69]=new Lb(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Mb[42161]=new Lb(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),Mb[421611]=new Lb(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var Fb=jA.BigInt(Number.MAX_SAFE_INTEGER),Bb=jA.BigInt(0),jb=jA.BigInt(1),zb=jA.BigInt(2);var _b=[{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],Ub=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"},{internalType:"address",name:"_tokenDescriptor_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"DecreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"IncreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Max",type:"uint128"},{internalType:"uint128",name:"amount1Max",type:"uint128"}],internalType:"struct INonfungiblePositionManager.CollectParams",name:"params",type:"tuple"}],name:"collect",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"createAndInitializePoolIfNecessary",outputs:[{internalType:"address",name:"pool",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.DecreaseLiquidityParams",name:"params",type:"tuple"}],name:"decreaseLiquidity",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"positions",outputs:[{internalType:"uint96",name:"nonce",type:"uint96"},{internalType:"address",name:"operator",type:"address"},{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount0Owed",type:"uint256"},{internalType:"uint256",name:"amount1Owed",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3MintCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],Hb=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"}],Wb=[{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"}],Vb=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],qb=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactInputSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactOutputSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],Xb=[{inputs:[{internalType:"contract IUniswapV3Factory",name:"_factory",type:"address"},{internalType:"contract INonfungiblePositionManager",name:"_nonfungiblePositionManager",type:"address"},{internalType:"uint256",name:"_maxIncentiveStartLeadTime",type:"uint256"},{internalType:"uint256",name:"_maxIncentiveDuration",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"DepositTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{indexed:!0,internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{indexed:!1,internalType:"uint256",name:"startTime",type:"uint256"},{indexed:!1,internalType:"uint256",name:"endTime",type:"uint256"},{indexed:!1,internalType:"address",name:"refundee",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"IncentiveCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"refund",type:"uint256"}],name:"IncentiveEnded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"RewardClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"}],name:"TokenStaked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"TokenUnstaked",type:"event"},{inputs:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"claimReward",outputs:[{internalType:"uint256",name:"reward",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"reward",type:"uint256"}],name:"createIncentive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"deposits",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint48",name:"numberOfStakes",type:"uint48"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"}],name:"endIncentive",outputs:[{internalType:"uint256",name:"refund",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"contract IUniswapV3Factory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRewardInfo",outputs:[{internalType:"uint256",name:"reward",type:"uint256"},{internalType:"uint160",name:"secondsInsideX128",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"incentives",outputs:[{internalType:"uint256",name:"totalRewardUnclaimed",type:"uint256"},{internalType:"uint160",name:"totalSecondsClaimedX128",type:"uint160"},{internalType:"uint96",name:"numberOfStakes",type:"uint96"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveStartLeadTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"nonfungiblePositionManager",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Minimal",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"rewards",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"stakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"stakes",outputs:[{internalType:"uint160",name:"secondsPerLiquidityInsideInitialX128",type:"uint160"},{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"transferDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"unstakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"withdrawToken",outputs:[],stateMutability:"nonpayable",type:"function"}],Gb=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct ISwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct ISwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];function Zb(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function Yb(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){Zb(o,r,i,a,s,"next",e)}function s(e){Zb(o,r,i,a,s,"throw",e)}a(void 0)}))}}function Kb(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Qb(e,t,n){return t&&Kb(e.prototype,t),n&&Kb(e,n),e}function Jb(){return Jb=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Jb.apply(this,arguments)}function $b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ev(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return $b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$b(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var tv,nv,rv=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var i=t&&t.prototype instanceof y?t:y,o=Object.create(i.prototype),a=new I(r||[]);return o._invoke=function(e,t,n){var r=d;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===i)throw o;return O()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=C(a,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===d)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var u=c(e,t,n);if("normal"===u.type){if(r=n.done?h:f,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}(e,n,a),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=l;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={};function y(){}function A(){}function g(){}var b={};b[o]=function(){return this};var v=Object.getPrototypeOf,w=v&&v(v(P([])));w&&w!==n&&r.call(w,o)&&(b=w);var x=g.prototype=y.prototype=Object.create(b);function E(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(i,o,a,s){var u=c(e[i],e,o);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,s)}))}s(u.arg)}var i;this._invoke=function(e,r){function o(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(o,o):o()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=c(r,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,m;var o=i.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function S(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function P(e){if(e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function n(){for(;++i<e.length;)if(r.call(e,i))return n.value=e[i],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:O}}function O(){return{value:t,done:!0}}return A.prototype=x.constructor=g,g.constructor=A,A.displayName=u(g,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===A||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,u(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},e.awrap=function(e){return{__await:e}},E(T.prototype),T.prototype[a]=function(){return this},e.AsyncIterator=T,e.async=function(t,n,r,i,o){void 0===o&&(o=Promise);var a=new T(l(t,n,r,i),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},E(x),u(x,s,"Generator"),x[o]=function(){return this},x.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=P,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(S),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function i(r,i){return s.type="throw",s.arg=e,n.next=r,i&&(n.method="next",n.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(u&&l){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),S(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:P(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}})),iv="0x1F98431c8aD98523631AE4a59f267346ea31F984",ov="0x0000000000000000000000000000000000000000",av="0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";!function(e){e[e.LOWEST=100]="LOWEST",e[e.LOW=500]="LOW",e[e.MEDIUM=3e3]="MEDIUM",e[e.HIGH=1e4]="HIGH"}(nv||(nv={}));var sv=((tv={})[nv.LOWEST]=1,tv[nv.LOW]=10,tv[nv.MEDIUM]=60,tv[nv.HIGH]=200,tv),uv=jA.BigInt(-1),lv=jA.BigInt(0),cv=jA.BigInt(1),dv=jA.exponentiate(jA.BigInt(2),jA.BigInt(96)),fv=jA.exponentiate(dv,jA.BigInt(2));function pv(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=e.fee,o=e.initCodeHashManualOverride,a=n.sortsBefore(r)?[n,r]:[r,n],s=a[0],u=a[1];return oi(t,eh(["bytes"],[uo.encode(["address","address","uint24"],[s.address,u.address,i])]),null!=o?o:av)}var hv=function(){function e(){}return e.addDelta=function(e,t){return jA.lessThan(t,lv)?jA.subtract(e,jA.multiply(t,uv)):jA.add(e,t)},e}(),mv=function(){function e(){}return e.mulDivRoundingUp=function(e,t,n){var r=jA.multiply(e,t),i=jA.divide(r,n);return jA.notEqual(jA.remainder(r,n),lv)&&(i=jA.add(i,cv)),i},e}(),yv=jA.subtract(jA.exponentiate(jA.BigInt(2),jA.BigInt(160)),cv);function Av(e,t){var n=jA.multiply(e,t);return jA.bitwiseAnd(n,bb)}var gv=function(){function e(){}return e.getAmount0Delta=function(e,t,n,r){if(jA.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}var o=jA.leftShift(n,jA.BigInt(96)),a=jA.subtract(t,e);return r?mv.mulDivRoundingUp(mv.mulDivRoundingUp(o,a,t),cv,e):jA.divide(jA.divide(jA.multiply(o,a),t),e)},e.getAmount1Delta=function(e,t,n,r){if(jA.greaterThan(e,t)){var i=[t,e];e=i[0],t=i[1]}return r?mv.mulDivRoundingUp(n,jA.subtract(t,e),dv):jA.divide(jA.multiply(n,jA.subtract(t,e)),dv)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return jA.greaterThan(e,lv)||_A(!1),jA.greaterThan(t,lv)||_A(!1),r?this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!0)},e.getNextSqrtPriceFromOutput=function(e,t,n,r){return jA.greaterThan(e,lv)||_A(!1),jA.greaterThan(t,lv)||_A(!1),r?this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!1)},e.getNextSqrtPriceFromAmount0RoundingUp=function(e,t,n,r){if(jA.equal(n,lv))return e;var i=jA.leftShift(t,jA.BigInt(96));if(r){var o=Av(n,e);if(jA.equal(jA.divide(o,n),e)){var a=function(e,t){var n=jA.add(e,t);return jA.bitwiseAnd(n,bb)}(i,o);if(jA.greaterThanOrEqual(a,i))return mv.mulDivRoundingUp(i,e,a)}return mv.mulDivRoundingUp(i,cv,jA.add(jA.divide(i,e),n))}var s=Av(n,e);jA.equal(jA.divide(s,n),e)||_A(!1),jA.greaterThan(i,s)||_A(!1);var u=jA.subtract(i,s);return mv.mulDivRoundingUp(i,e,u)},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,r){if(r){var i=jA.lessThanOrEqual(n,yv)?jA.divide(jA.leftShift(n,jA.BigInt(96)),t):jA.divide(jA.multiply(n,dv),t);return jA.add(e,i)}var o=mv.mulDivRoundingUp(n,dv,t);return jA.greaterThan(e,o)||_A(!1),jA.subtract(e,o)},e}(),bv=jA.exponentiate(jA.BigInt(10),jA.BigInt(6)),vv=function(){function e(){}return e.computeSwapStep=function(e,t,n,r,i){var o={},a=jA.greaterThanOrEqual(e,t),s=jA.greaterThanOrEqual(r,lv);if(s){var u=jA.divide(jA.multiply(r,jA.subtract(bv,jA.BigInt(i))),bv);o.amountIn=a?gv.getAmount0Delta(t,e,n,!0):gv.getAmount1Delta(e,t,n,!0),jA.greaterThanOrEqual(u,o.amountIn)?o.sqrtRatioNextX96=t:o.sqrtRatioNextX96=gv.getNextSqrtPriceFromInput(e,n,u,a)}else o.amountOut=a?gv.getAmount1Delta(t,e,n,!1):gv.getAmount0Delta(e,t,n,!1),jA.greaterThanOrEqual(jA.multiply(r,uv),o.amountOut)?o.sqrtRatioNextX96=t:o.sqrtRatioNextX96=gv.getNextSqrtPriceFromOutput(e,n,jA.multiply(r,uv),a);var l=jA.equal(t,o.sqrtRatioNextX96);return a?(o.amountIn=l&&s?o.amountIn:gv.getAmount0Delta(o.sqrtRatioNextX96,e,n,!0),o.amountOut=l&&!s?o.amountOut:gv.getAmount1Delta(o.sqrtRatioNextX96,e,n,!1)):(o.amountIn=l&&s?o.amountIn:gv.getAmount1Delta(e,o.sqrtRatioNextX96,n,!0),o.amountOut=l&&!s?o.amountOut:gv.getAmount0Delta(e,o.sqrtRatioNextX96,n,!1)),!s&&jA.greaterThan(o.amountOut,jA.multiply(r,uv))&&(o.amountOut=jA.multiply(r,uv)),s&&jA.notEqual(o.sqrtRatioNextX96,t)?o.feeAmount=jA.subtract(r,o.amountIn):o.feeAmount=mv.mulDivRoundingUp(o.amountIn,jA.BigInt(i),jA.subtract(bv,jA.BigInt(i))),[o.sqrtRatioNextX96,o.amountIn,o.amountOut,o.feeAmount]},e}(),wv=jA.BigInt(2),xv=[128,64,32,16,8,4,2,1].map((function(e){return[e,jA.exponentiate(wv,jA.BigInt(e))]}));function Ev(e){jA.greaterThan(e,lv)||_A(!1),jA.lessThanOrEqual(e,bb)||_A(!1);for(var t,n=0,r=ev(xv);!(t=r()).done;){var i=t.value,o=i[0],a=i[1];jA.greaterThanOrEqual(e,a)&&(e=jA.signedRightShift(e,jA.BigInt(o)),n+=o)}return n}function Tv(e,t){return jA.signedRightShift(jA.multiply(e,jA.BigInt(t)),jA.BigInt(128))}var Cv=jA.exponentiate(jA.BigInt(2),jA.BigInt(32)),kv=function(){function e(){}return e.getSqrtRatioAtTick=function(t){t>=e.MIN_TICK&&t<=e.MAX_TICK&&Number.isInteger(t)||_A(!1);var n=t<0?-1*t:t,r=0!=(1&n)?jA.BigInt("0xfffcb933bd6fad37aa2d162d1a594001"):jA.BigInt("0x100000000000000000000000000000000");return 0!=(2&n)&&(r=Tv(r,"0xfff97272373d413259a46990580e213a")),0!=(4&n)&&(r=Tv(r,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&n)&&(r=Tv(r,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&n)&&(r=Tv(r,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&n)&&(r=Tv(r,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&n)&&(r=Tv(r,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&n)&&(r=Tv(r,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&n)&&(r=Tv(r,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&n)&&(r=Tv(r,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&n)&&(r=Tv(r,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&n)&&(r=Tv(r,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&n)&&(r=Tv(r,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&n)&&(r=Tv(r,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&n)&&(r=Tv(r,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&n)&&(r=Tv(r,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&n)&&(r=Tv(r,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&n)&&(r=Tv(r,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&n)&&(r=Tv(r,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&n)&&(r=Tv(r,"0x48a170391f7dc42444e8fa2")),t>0&&(r=jA.divide(bb,r)),jA.greaterThan(jA.remainder(r,Cv),lv)?jA.add(jA.divide(r,Cv),cv):jA.divide(r,Cv)},e.getTickAtSqrtRatio=function(t){jA.greaterThanOrEqual(t,e.MIN_SQRT_RATIO)&&jA.lessThan(t,e.MAX_SQRT_RATIO)||_A(!1);var n,r=jA.leftShift(t,jA.BigInt(32)),i=Ev(r);n=jA.greaterThanOrEqual(jA.BigInt(i),jA.BigInt(128))?jA.signedRightShift(r,jA.BigInt(i-127)):jA.leftShift(r,jA.BigInt(127-i));for(var o=jA.leftShift(jA.subtract(jA.BigInt(i),jA.BigInt(128)),jA.BigInt(64)),a=0;a<14;a++){n=jA.signedRightShift(jA.multiply(n,n),jA.BigInt(127));var s=jA.signedRightShift(n,jA.BigInt(128));o=jA.bitwiseOr(o,jA.leftShift(s,jA.BigInt(63-a))),n=jA.signedRightShift(n,s)}var u=jA.multiply(o,jA.BigInt("255738958999603826347141")),l=jA.toNumber(jA.signedRightShift(jA.subtract(u,jA.BigInt("3402992956809132418596140100660247210")),jA.BigInt(128))),c=jA.toNumber(jA.signedRightShift(jA.add(u,jA.BigInt("291339464771989622907027621153398088495")),jA.BigInt(128)));return l===c?l:jA.lessThanOrEqual(e.getSqrtRatioAtTick(c),t)?c:l},e}();kv.MIN_TICK=-887272,kv.MAX_TICK=-kv.MIN_TICK,kv.MIN_SQRT_RATIO=jA.BigInt("4295128739"),kv.MAX_SQRT_RATIO=jA.BigInt("1461446703485210103287273052203988822378723970342");var Sv=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=Yb(rv.mark((function t(n){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var t=Yb(rv.mark((function t(n,r,i){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e}();function Iv(e,t){for(var n=0;n<e.length-1;n++)if(t(e[n],e[n+1])>0)return!1;return!0}function Pv(e,t){return e.index-t.index}Sv.ERROR_MESSAGE="No tick data provider was given";var Ov=function(){function e(){}return e.validateList=function(e,t){t>0||_A(!1),e.every((function(e){return e.index%t==0}))||_A(!1),jA.equal(e.reduce((function(e,t){var n=t.liquidityNet;return jA.add(e,n)}),lv),lv)||_A(!1),Iv(e,Pv)||_A(!1)},e.isBelowSmallest=function(e,t){return e.length>0||_A(!1),t<e[0].index},e.isAtOrAboveLargest=function(e,t){return e.length>0||_A(!1),t>=e[e.length-1].index},e.getTick=function(e,t){var n=e[this.binarySearch(e,t)];return n.index!==t&&_A(!1),n},e.binarySearch=function(e,t){this.isBelowSmallest(e,t)&&_A(!1);for(var n,r=0,i=e.length-1;;){if(e[n=Math.floor((r+i)/2)].index<=t&&(n===e.length-1||e[n+1].index>t))return n;e[n].index<t?r=n+1:i=n-1}},e.nextInitializedTick=function(t,n,r){return r?(e.isBelowSmallest(t,n)&&_A(!1),e.isAtOrAboveLargest(t,n)?t[t.length-1]:t[this.binarySearch(t,n)]):(this.isAtOrAboveLargest(t,n)&&_A(!1),this.isBelowSmallest(t,n)?t[0]:t[this.binarySearch(t,n)+1])},e.nextInitializedTickWithinOneWord=function(t,n,r,i){var o=Math.floor(n/i);if(r){var a=(o>>8<<8)*i;if(e.isBelowSmallest(t,n))return[a,!1];var s=e.nextInitializedTick(t,n,r).index,u=Math.max(a,s);return[u,u===s]}var l=(((o+1>>8)+1<<8)-1)*i;if(this.isAtOrAboveLargest(t,n))return[l,!1];var c=this.nextInitializedTick(t,n,r).index,d=Math.min(l,c);return[d,d===c]},e}();function Nv(e){var t=jA.BigInt(e).toString(16);return t.length%2!=0&&(t="0"+t),"0x"+t}function Rv(e,t){var n=e.input.wrapped,r=e.pools.reduce((function(e,t,n){var r=e.inputToken,i=e.path,o=e.types,a=t.token0.equals(r)?t.token1:t.token0;return 0===n?{inputToken:a,types:["address","uint24","address"],path:[r.address,t.fee,a.address]}:{inputToken:a,types:[].concat(o,["uint24","address"]),path:[].concat(i,[t.fee,a.address])}}),{inputToken:n,path:[],types:[]}),i=r.path,o=r.types;return t?$p(o.reverse(),i.reverse()):$p(o,i)}function Mv(e,t){var n=jA.leftShift(jA.BigInt(e),jA.BigInt(192)),r=jA.BigInt(t);return function(e){if(jA.greaterThanOrEqual(e,Bb)||_A(!1),jA.lessThan(e,Fb))return jA.BigInt(Math.floor(Math.sqrt(jA.toNumber(e))));var t,n;for(t=e,n=jA.add(jA.divide(e,zb),jb);jA.lessThan(n,t);)t=n,n=jA.divide(jA.add(jA.divide(e,n),n),zb);return t}(jA.divide(n,r))}function Lv(e,t,n){if(jA.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=jA.divide(jA.multiply(e,t),dv);return jA.divide(jA.multiply(jA.BigInt(n),i),jA.subtract(t,e))}function Dv(e,t,n){if(jA.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}var i=jA.multiply(jA.multiply(jA.BigInt(n),e),t),o=jA.multiply(dv,jA.subtract(t,e));return jA.divide(i,o)}function Fv(e,t,n){if(jA.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}return jA.divide(jA.multiply(jA.BigInt(n),dv),jA.subtract(t,e))}function Bv(e,t,n,r,i,o){if(jA.greaterThan(t,n)){var a=[n,t];t=a[0],n=a[1]}var s=o?Dv:Lv;if(jA.lessThanOrEqual(e,t))return s(t,n,r);if(jA.lessThan(e,n)){var u=s(e,n,r),l=Fv(t,e,i);return jA.lessThan(u,l)?u:l}return Fv(t,n,i)}var jv=jA.exponentiate(jA.BigInt(2),jA.BigInt(128)),zv=function(){function e(){}return e.getTokensOwed=function(e,t,n,r,i){return[jA.divide(jA.multiply(Hv(r,e),n),jv),jA.divide(jA.multiply(Hv(i,t),n),jv)]},e}();function _v(e,t,n){var r=kv.getSqrtRatioAtTick(n),i=jA.multiply(r,r);return e.sortsBefore(t)?new Ob(e,t,fv,i):new Ob(e,t,i,fv)}var Uv=jA.exponentiate(jA.BigInt(2),jA.BigInt(256));function Hv(e,t){var n=jA.subtract(e,t);return jA.lessThan(n,lv)?jA.add(Uv,n):n}var Wv=function(){function e(){}return e.getFeeGrowthInside=function(e,t,n,r,i,o,a){var s,u,l,c;return i>=n?(s=e.feeGrowthOutside0X128,u=e.feeGrowthOutside1X128):(s=Hv(o,e.feeGrowthOutside0X128),u=Hv(a,e.feeGrowthOutside1X128)),i<r?(l=t.feeGrowthOutside0X128,c=t.feeGrowthOutside1X128):(l=Hv(o,t.feeGrowthOutside0X128),c=Hv(a,t.feeGrowthOutside1X128)),[Hv(Hv(o,s),l),Hv(Hv(a,u),c)]},e}(),Vv=function(e){var t=e.index,n=e.liquidityGross,r=e.liquidityNet;t>=kv.MIN_TICK&&t<=kv.MAX_TICK||_A(!1),this.index=t,this.liquidityGross=jA.BigInt(n),this.liquidityNet=jA.BigInt(r)},qv=function(){function e(e,t){var n=e.map((function(e){return e instanceof Vv?e:new Vv(e)}));Ov.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=Yb(rv.mark((function e(t){return rv.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Ov.getTick(this.ticks,t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var e=Yb(rv.mark((function e(t,n,r){return rv.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Ov.nextInitializedTickWithinOneWord(this.ticks,t,n,r));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),e}(),Xv=new Sv,Gv=function(){function e(e,t,n,r,i,o,a){void 0===a&&(a=Xv),Number.isInteger(n)&&n<1e6||_A(!1);var s=kv.getSqrtRatioAtTick(o),u=kv.getSqrtRatioAtTick(o+1);jA.greaterThanOrEqual(jA.BigInt(r),s)&&jA.lessThanOrEqual(jA.BigInt(r),u)||_A(!1);var l=e.sortsBefore(t)?[e,t]:[t,e];this.token0=l[0],this.token1=l[1],this.fee=n,this.sqrtRatioX96=jA.BigInt(r),this.liquidity=jA.BigInt(i),this.tickCurrent=o,this.tickDataProvider=Array.isArray(a)?new qv(a,sv[n]):a}e.getAddress=function(e,t,n,r,i){return pv({factoryAddress:null!=i?i:iv,fee:n,tokenA:e,tokenB:t,initCodeHashManualOverride:r})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||_A(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=Yb(rv.mark((function t(n,r){var i,o,a,s,u,l,c;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.involvesToken(n.currency)||_A(!1),i=n.currency.equals(this.token0),t.next=4,this.swap(i,n.quotient,r);case 4:return o=t.sent,a=o.amountCalculated,s=o.sqrtRatioX96,u=o.liquidity,l=o.tickCurrent,c=i?this.token1:this.token0,t.abrupt("return",[kb.fromRawAmount(c,jA.multiply(a,uv)),new e(this.token0,this.token1,this.fee,s,u,l,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.getInputAmount=function(){var t=Yb(rv.mark((function t(n,r){var i,o,a,s,u,l,c;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.currency.isToken&&this.involvesToken(n.currency)||_A(!1),i=n.currency.equals(this.token1),t.next=4,this.swap(i,jA.multiply(n.quotient,uv),r);case 4:return o=t.sent,a=o.amountCalculated,s=o.sqrtRatioX96,u=o.liquidity,l=o.tickCurrent,c=i?this.token0:this.token1,t.abrupt("return",[kb.fromRawAmount(c,a),new e(this.token0,this.token1,this.fee,s,u,l,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.swap=function(){var e=Yb(rv.mark((function e(t,n,r){var i,o,a,s,u,l;return rv.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r||(r=t?jA.add(kv.MIN_SQRT_RATIO,cv):jA.subtract(kv.MAX_SQRT_RATIO,cv)),t?(jA.greaterThan(r,kv.MIN_SQRT_RATIO)||_A(!1),jA.lessThan(r,this.sqrtRatioX96)||_A(!1)):(jA.lessThan(r,kv.MAX_SQRT_RATIO)||_A(!1),jA.greaterThan(r,this.sqrtRatioX96)||_A(!1)),i=jA.greaterThanOrEqual(n,lv),o={amountSpecifiedRemaining:n,amountCalculated:lv,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!jA.notEqual(o.amountSpecifiedRemaining,lv)||o.sqrtPriceX96==r){e.next=35;break}return(a={}).sqrtPriceStartX96=o.sqrtPriceX96,e.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(o.tick,t,this.tickSpacing);case 9:if(s=e.sent,a.tickNext=s[0],a.initialized=s[1],a.tickNext<kv.MIN_TICK?a.tickNext=kv.MIN_TICK:a.tickNext>kv.MAX_TICK&&(a.tickNext=kv.MAX_TICK),a.sqrtPriceNextX96=kv.getSqrtRatioAtTick(a.tickNext),u=vv.computeSwapStep(o.sqrtPriceX96,(t?jA.lessThan(a.sqrtPriceNextX96,r):jA.greaterThan(a.sqrtPriceNextX96,r))?r:a.sqrtPriceNextX96,o.liquidity,o.amountSpecifiedRemaining,this.fee),o.sqrtPriceX96=u[0],a.amountIn=u[1],a.amountOut=u[2],a.feeAmount=u[3],i?(o.amountSpecifiedRemaining=jA.subtract(o.amountSpecifiedRemaining,jA.add(a.amountIn,a.feeAmount)),o.amountCalculated=jA.subtract(o.amountCalculated,a.amountOut)):(o.amountSpecifiedRemaining=jA.add(o.amountSpecifiedRemaining,a.amountOut),o.amountCalculated=jA.add(o.amountCalculated,jA.add(a.amountIn,a.feeAmount))),!jA.equal(o.sqrtPriceX96,a.sqrtPriceNextX96)){e.next=32;break}if(!a.initialized){e.next=29;break}return e.t0=jA,e.next=25,this.tickDataProvider.getTick(a.tickNext);case 25:e.t1=e.sent.liquidityNet,l=e.t0.BigInt.call(e.t0,e.t1),t&&(l=jA.multiply(l,uv)),o.liquidity=hv.addDelta(o.liquidity,l);case 29:o.tick=t?a.tickNext-1:a.tickNext,e.next=33;break;case 32:jA.notEqual(o.sqrtPriceX96,a.sqrtPriceStartX96)&&(o.tick=kv.getTickAtSqrtRatio(o.sqrtPriceX96));case 33:e.next=4;break;case 35:return e.abrupt("return",{amountCalculated:o.amountCalculated,sqrtRatioX96:o.sqrtPriceX96,liquidity:o.liquidity,tickCurrent:o.tick});case 36:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),Qb(e,[{key:"token0Price",get:function(){var e;return null!=(e=this._token0Price)?e:this._token0Price=new Ob(this.token0,this.token1,fv,jA.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function(){var e;return null!=(e=this._token1Price)?e:this._token1Price=new Ob(this.token1,this.token0,jA.multiply(this.sqrtRatioX96,this.sqrtRatioX96),fv)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"tickSpacing",get:function(){return sv[this.fee]}}]),e}(),Zv=function(){function e(e){var t=e.pool,n=e.liquidity,r=e.tickLower,i=e.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,r<i||_A(!1),r>=kv.MIN_TICK&&r%t.tickSpacing==0||_A(!1),i<=kv.MAX_TICK&&i%t.tickSpacing==0||_A(!1),this.pool=t,this.tickLower=r,this.tickUpper=i,this.liquidity=jA.BigInt(n)}var t=e.prototype;return t.ratiosAfterSlippage=function(e){var t=this.pool.token0Price.asFraction.multiply(new Pb(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=Mv(t.numerator,t.denominator);jA.lessThanOrEqual(r,kv.MIN_SQRT_RATIO)&&(r=jA.add(kv.MIN_SQRT_RATIO,jA.BigInt(1)));var i=Mv(n.numerator,n.denominator);return jA.greaterThanOrEqual(i,kv.MAX_SQRT_RATIO)&&(i=jA.subtract(kv.MAX_SQRT_RATIO,jA.BigInt(1))),{sqrtRatioX96Lower:r,sqrtRatioX96Upper:i}},t.mintAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,o=new Gv(this.pool.token0,this.pool.token1,this.pool.fee,i,0,kv.getTickAtSqrtRatio(i)),a=new Gv(this.pool.token0,this.pool.token1,this.pool.fee,r,0,kv.getTickAtSqrtRatio(r)),s=e.fromAmounts(Jb({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new e({pool:a,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new e({pool:o,liquidity:s.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}},t.burnAmountsWithSlippage=function(t){var n=this.ratiosAfterSlippage(t),r=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,o=new Gv(this.pool.token0,this.pool.token1,this.pool.fee,i,0,kv.getTickAtSqrtRatio(i)),a=new e({pool:new Gv(this.pool.token0,this.pool.token1,this.pool.fee,r,0,kv.getTickAtSqrtRatio(r)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,s=new e({pool:o,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:a.quotient,amount1:s.quotient}},e.fromAmounts=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,o=t.amount0,a=t.amount1,s=t.useFullPrecision,u=kv.getSqrtRatioAtTick(r),l=kv.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:r,tickUpper:i,liquidity:Bv(n.sqrtRatioX96,u,l,o,a,s)})},e.fromAmount0=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,o=t.amount0,a=t.useFullPrecision;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:o,amount1:bb,useFullPrecision:a})},e.fromAmount1=function(t){var n=t.pool,r=t.tickLower,i=t.tickUpper,o=t.amount1;return e.fromAmounts({pool:n,tickLower:r,tickUpper:i,amount0:bb,amount1:o,useFullPrecision:!0})},Qb(e,[{key:"token0PriceLower",get:function(){return _v(this.pool.token0,this.pool.token1,this.tickLower)}},{key:"token0PriceUpper",get:function(){return _v(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:"amount0",get:function(){return null===this._token0Amount&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=kb.fromRawAmount(this.pool.token0,gv.getAmount0Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=kb.fromRawAmount(this.pool.token0,gv.getAmount0Delta(this.pool.sqrtRatioX96,kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=kb.fromRawAmount(this.pool.token0,lv)),this._token0Amount}},{key:"amount1",get:function(){return null===this._token1Amount&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=kb.fromRawAmount(this.pool.token1,lv):this.pool.tickCurrent<this.tickUpper?this._token1Amount=kb.fromRawAmount(this.pool.token1,gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=kb.fromRawAmount(this.pool.token1,gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:"mintAmounts",get:function(){return null===this._mintAmounts?this.pool.tickCurrent<this.tickLower?{amount0:gv.getAmount0Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:lv}:this.pool.tickCurrent<this.tickUpper?{amount0:gv.getAmount0Delta(this.pool.sqrtRatioX96,kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:lv,amount1:gv.getAmount1Delta(kv.getSqrtRatioAtTick(this.tickLower),kv.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),e}(),Yv=function(){function e(e,t,n){this._midPrice=null,e.length>0||_A(!1);var r=e[0].chainId,i=e.every((function(e){return e.chainId===r}));i||_A(!1);var o=t.wrapped;e[0].involvesToken(o)||_A(!1),e[e.length-1].involvesToken(n.wrapped)||_A(!1);for(var a,s=[o],u=ev(e.entries());!(a=u()).done;){var l=a.value,c=l[0],d=l[1],f=s[c];f.equals(d.token0)||f.equals(d.token1)||_A(!1);var p=f.equals(d.token0)?d.token1:d.token0;s.push(p)}this.pools=e,this.tokenPath=s,this.input=t,this.output=null!=n?n:s[s.length-1]}return Qb(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.nextInput,r=e.price;return n.equals(t.token0)?{nextInput:t.token1,price:r.multiply(t.token0Price)}:{nextInput:t.token0,price:r.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new Ob(this.input,this.output,e.denominator,e.numerator)}}]),e}();function Kv(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||_A(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||_A(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var Qv=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){var t=e.route;return r.wrapped.equals(t.input.wrapped)}))||_A(!1),t.every((function(e){var t=e.route;return i.wrapped.equals(t.output.wrapped)}))||_A(!1);for(var o,a=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),s=new Set,u=ev(t);!(o=u()).done;)for(var l,c=ev(o.value.route.pools);!(l=c()).done;){var d=l.value;s.add(Gv.getAddress(d.token0,d.token1,d.fee))}a!=s.size&&_A(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=Yb(rv.mark((function t(n,r){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,r,ub.EXACT_INPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.exactOut=function(){var t=Yb(rv.mark((function t(n,r){return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,r,ub.EXACT_OUTPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=Yb(rv.mark((function t(n,r,i){var o,a,s,u,l,c,d,f,p,h,m;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=new Array(n.tokenPath.length),i!==ub.EXACT_INPUT){t.next=19;break}r.currency.equals(n.input)||_A(!1),o[0]=r.wrapped,u=0;case 5:if(!(u<n.tokenPath.length-1)){t.next=15;break}return l=n.pools[u],t.next=9,l.getOutputAmount(o[u]);case 9:c=t.sent,d=c[0],o[u+1]=d;case 12:u++,t.next=5;break;case 15:a=kb.fromFractionalAmount(n.input,r.numerator,r.denominator),s=kb.fromFractionalAmount(n.output,o[o.length-1].numerator,o[o.length-1].denominator),t.next=34;break;case 19:r.currency.equals(n.output)||_A(!1),o[o.length-1]=r.wrapped,f=n.tokenPath.length-1;case 22:if(!(f>0)){t.next=32;break}return p=n.pools[f-1],t.next=26,p.getInputAmount(o[f]);case 26:h=t.sent,m=h[0],o[f-1]=m;case 29:f--,t.next=22;break;case 32:a=kb.fromFractionalAmount(n.input,o[0].numerator,o[0].denominator),s=kb.fromFractionalAmount(n.output,r.numerator,r.denominator);case 34:return t.abrupt("return",new e({routes:[{inputAmount:a,outputAmount:s,route:n}],tradeType:i}));case 35:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=Yb(rv.mark((function t(n,r){var i,o,a,s,u,l,c,d,f,p,h,m,y,A,g,b,v;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],o=ev(n);case 2:if((a=o()).done){t.next=43;break}if(s=a.value,u=s.route,l=s.amount,c=new Array(u.tokenPath.length),d=void 0,f=void 0,r!==ub.EXACT_INPUT){t.next=25;break}l.currency.equals(u.input)||_A(!1),d=kb.fromFractionalAmount(u.input,l.numerator,l.denominator),c[0]=kb.fromFractionalAmount(u.input.wrapped,l.numerator,l.denominator),p=0;case 12:if(!(p<u.tokenPath.length-1)){t.next=22;break}return h=u.pools[p],t.next=16,h.getOutputAmount(c[p]);case 16:m=t.sent,y=m[0],c[p+1]=y;case 19:p++,t.next=12;break;case 22:f=kb.fromFractionalAmount(u.output,c[c.length-1].numerator,c[c.length-1].denominator),t.next=40;break;case 25:l.currency.equals(u.output)||_A(!1),f=kb.fromFractionalAmount(u.output,l.numerator,l.denominator),c[c.length-1]=kb.fromFractionalAmount(u.output.wrapped,l.numerator,l.denominator),A=u.tokenPath.length-1;case 29:if(!(A>0)){t.next=39;break}return g=u.pools[A-1],t.next=33,g.getInputAmount(c[A]);case 33:b=t.sent,v=b[0],c[A-1]=v;case 36:A--,t.next=29;break;case 39:d=kb.fromFractionalAmount(u.input,c[0].numerator,c[0].denominator);case 40:i.push({route:u,inputAmount:d,outputAmount:f});case 41:t.next=2;break;case 43:return t.abrupt("return",new e({routes:i,tradeType:r}));case 44:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(Jb({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(lv)&&_A(!1),this.tradeType===ub.EXACT_OUTPUT)return t;var n=new Tb(cv).add(e).invert().multiply(t.quotient).quotient;return kb.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(lv)&&_A(!1),this.tradeType===ub.EXACT_INPUT)return t;var n=new Tb(cv).add(e).multiply(t.quotient).quotient;return kb.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new Ob(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=Yb(rv.mark((function t(n,r,i,o,a,s,u){var l,c,d,f,p,h,m,y,A,g,b,v;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=(l=void 0===o?{}:o).maxNumResults,d=void 0===c?3:c,f=l.maxHops,p=void 0===f?3:f,void 0===a&&(a=[]),void 0===s&&(s=r),void 0===u&&(u=[]),n.length>0||_A(!1),p>0||_A(!1),r===s||a.length>0||_A(!1),h=s.wrapped,m=i.wrapped,y=0;case 10:if(!(y<n.length)){t.next=46;break}if((A=n[y]).token0.equals(h.currency)||A.token1.equals(h.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return g=void 0,t.prev=15,t.next=19,A.getOutputAmount(h);case 19:b=t.sent,g=b[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientInputAmountError){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!g.currency.isToken||!g.currency.equals(m)){t.next=39;break}return t.t1=Db,t.t2=u,t.next=33,e.fromRoute(new Yv([].concat(a,[A]),r.currency,i),r,ub.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=Kv,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return v=n.slice(0,y).concat(n.slice(y+1,n.length)),t.next=43,e.bestTradeExactIn(v,r,i,{maxNumResults:d,maxHops:p-1},[].concat(a,[A]),g,u);case 43:y++,t.next=10;break;case 46:return t.abrupt("return",u);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,r,i,o,a,s){return t.apply(this,arguments)}}(),e.bestTradeExactOut=function(){var t=Yb(rv.mark((function t(n,r,i,o,a,s,u){var l,c,d,f,p,h,m,y,A,g,b,v;return rv.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=(l=void 0===o?{}:o).maxNumResults,d=void 0===c?3:c,f=l.maxHops,p=void 0===f?3:f,void 0===a&&(a=[]),void 0===s&&(s=i),void 0===u&&(u=[]),n.length>0||_A(!1),p>0||_A(!1),i===s||a.length>0||_A(!1),h=s.wrapped,m=r.wrapped,y=0;case 10:if(!(y<n.length)){t.next=46;break}if((A=n[y]).token0.equals(h.currency)||A.token1.equals(h.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return g=void 0,t.prev=15,t.next=19,A.getInputAmount(h);case 19:b=t.sent,g=b[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!t.t0.isInsufficientReservesError){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!g.currency.equals(m)){t.next=39;break}return t.t1=Db,t.t2=u,t.next=33,e.fromRoute(new Yv([A].concat(a),r,i.currency),i,ub.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=d,t.t5=Kv,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(p>1&&n.length>1)){t.next=43;break}return v=n.slice(0,y).concat(n.slice(y+1,n.length)),t.next=43,e.bestTradeExactOut(v,r,i,{maxNumResults:d,maxHops:p-1},[A].concat(a),g,u);case 43:y++,t.next=10;break;case 46:return t.abrupt("return",u);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,r,i,o,a,s){return t.apply(this,arguments)}}(),Qb(e,[{key:"route",get:function(){return 1!=this.swaps.length&&_A(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),kb.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),kb.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new Ob(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=kb.fromRawAmount(this.outputAmount.currency,0),n=ev(this.swaps);!(e=n()).done;){var r=e.value,i=r.route,o=r.inputAmount,a=i.midPrice;t=t.add(a.quote(o))}var s=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new Pb(s.numerator,s.denominator),this._priceImpact}}]),e}(),Jv=function(){function e(){}return e.encodeMulticall=function(t){return Array.isArray(t)||(t=[t]),1===t.length?t[0]:e.INTERFACE.encodeFunctionData("multicall",[t])},e}();Jv.INTERFACE=new ma(_b);var $v=function(){function e(){}return e.encodePermit=function(t,n){return"nonce"in n?e.INTERFACE.encodeFunctionData("selfPermitAllowed",[t.address,Nv(n.nonce),Nv(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData("selfPermit",[t.address,Nv(n.amount),Nv(n.deadline),n.v,n.r,n.s])},e}();$v.INTERFACE=new ma(Hb);var ew=function(){function e(){}return e.encodeFeeBips=function(e){return Nv(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,r){if(n=Nb(n),r){var i=this.encodeFeeBips(r.fee),o=Nb(r.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee",[Nv(t),n,i,o])}return e.INTERFACE.encodeFunctionData("unwrapWETH9",[Nv(t),n])},e.encodeSweepToken=function(t,n,r,i){if(r=Nb(r),i){var o=this.encodeFeeBips(i.fee),a=Nb(i.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee",[t.address,Nv(n),r,o,a])}return e.INTERFACE.encodeFunctionData("sweepToken",[t.address,Nv(n),r])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData("refundETH")},e}();ew.INTERFACE=new ma(Wb);var tw=Nv(jA.subtract(jA.exponentiate(jA.BigInt(2),jA.BigInt(128)),jA.BigInt(1)));function nw(e){return Object.keys(e).some((function(e){return"recipient"===e}))}var rw=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData("createAndInitializePoolIfNecessary",[t.token0.address,t.token1.address,t.fee,Nv(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:Nv(0)}},e.addCallParameters=function(t,n){jA.greaterThan(t.liquidity,lv)||_A(!1);var r=[],i=t.mintAmounts,o=i.amount0,a=i.amount1,s=t.mintAmountsWithSlippage(n.slippageTolerance),u=Nv(s.amount0),l=Nv(s.amount1),c=Nv(n.deadline);if(nw(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push($v.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push($v.encodePermit(t.pool.token1,n.token1Permit)),nw(n)){var d=Nb(n.recipient);r.push(e.INTERFACE.encodeFunctionData("mint",[{token0:t.pool.token0.address,token1:t.pool.token1.address,fee:t.pool.fee,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0Desired:Nv(o),amount1Desired:Nv(a),amount0Min:u,amount1Min:l,recipient:d,deadline:c}]))}else r.push(e.INTERFACE.encodeFunctionData("increaseLiquidity",[{tokenId:Nv(n.tokenId),amount0Desired:Nv(o),amount1Desired:Nv(a),amount0Min:u,amount1Min:l,deadline:c}]));var f=Nv(0);if(n.useNative){var p=n.useNative.wrapped;t.pool.token0.equals(p)||t.pool.token1.equals(p)||_A(!1);var h=t.pool.token0.equals(p)?o:a;jA.greaterThan(h,lv)&&r.push(ew.encodeRefundETH()),f=Nv(h)}return{calldata:Jv.encodeMulticall(r),value:f}},e.encodeCollect=function(t){var n=[],r=Nv(t.tokenId),i=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,o=Nb(t.recipient);if(n.push(e.INTERFACE.encodeFunctionData("collect",[{tokenId:r,recipient:i?ov:o,amount0Max:tw,amount1Max:tw}])),i){var a=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed0.quotient:t.expectedCurrencyOwed1.quotient,s=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.currency:t.expectedCurrencyOwed0.currency,u=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.quotient:t.expectedCurrencyOwed0.quotient;n.push(ew.encodeUnwrapWETH9(a,o)),n.push(ew.encodeSweepToken(s,u,o))}return n},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:Jv.encodeMulticall(n),value:Nv(0)}},e.removeCallParameters=function(t,n){var r=[],i=Nv(n.deadline),o=Nv(n.tokenId),a=new Zv({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});jA.greaterThan(a.liquidity,lv)||_A(!1);var s=a.burnAmountsWithSlippage(n.slippageTolerance),u=s.amount0,l=s.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData("permit",[Nb(n.permit.spender),o,Nv(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData("decreaseLiquidity",[{tokenId:o,liquidity:Nv(a.liquidity),amount0Min:Nv(u),amount1Min:Nv(l),deadline:i}]));var c=n.collectOptions,d=c.expectedCurrencyOwed0,f=c.expectedCurrencyOwed1,p=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(c,["expectedCurrencyOwed0","expectedCurrencyOwed1"]);return r.push.apply(r,e.encodeCollect(Jb({tokenId:Nv(n.tokenId),expectedCurrencyOwed0:d.add(kb.fromRawAmount(d.currency,u)),expectedCurrencyOwed1:f.add(kb.fromRawAmount(f.currency,l))},p))),n.liquidityPercentage.equalTo(cv)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData("burn",[o])):!0===n.burnToken&&_A(!1),{calldata:Jv.encodeMulticall(r),value:Nv(0)}},e.safeTransferFromParameters=function(t){var n=Nb(t.recipient),r=Nb(t.sender);return{calldata:t.data?e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256,bytes)",[r,n,Nv(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[r,n,Nv(t.tokenId)]),value:Nv(0)}},e}();rw.INTERFACE=new ma(Ub);var iw=function(){function e(){}return e.quoteCallParameters=function(e,t,n,r){void 0===r&&(r={});var i,o=1===e.pools.length,a=Nv(t.quotient),s=r.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(o){var u,l,c={tokenIn:e.tokenPath[0].address,tokenOut:e.tokenPath[1].address,fee:e.pools[0].fee,sqrtPriceLimitX96:Nv(null!=(u=null==(l=r)?void 0:l.sqrtPriceLimitX96)?u:0)},d=Jb({},c,n==ub.EXACT_INPUT?{amountIn:a}:{amount:a}),f=[c.tokenIn,c.tokenOut,c.fee,a,c.sqrtPriceLimitX96],p=n===ub.EXACT_INPUT?"quoteExactInputSingle":"quoteExactOutputSingle";i=s.encodeFunctionData(p,r.useQuoterV2?[d]:f)}else{var h;void 0!==(null==(h=r)?void 0:h.sqrtPriceLimitX96)&&_A(!1);var m=Rv(e,n===ub.EXACT_OUTPUT),y=n===ub.EXACT_INPUT?"quoteExactInput":"quoteExactOutput";i=s.encodeFunctionData(y,[m,a])}return{calldata:i,value:Nv(0)}},e}();iw.V1INTERFACE=new ma(Vb),iw.V2INTERFACE=new ma(qb);var ow=function(){function e(){}return e.encodeClaim=function(t,n){var r,i=[];i.push(e.INTERFACE.encodeFunctionData("unstakeToken",[this._encodeIncentiveKey(t),Nv(n.tokenId)]));var o=Nb(n.recipient),a=null!=(r=n.amount)?r:0;return i.push(e.INTERFACE.encodeFunctionData("claimReward",[t.rewardToken.address,o,Nv(a)])),i},e.collectRewards=function(t,n){t=Array.isArray(t)?t:[t];for(var r=[],i=0;i<t.length;i++){var o=t[i];(r=r.concat(this.encodeClaim(o,n))).push(e.INTERFACE.encodeFunctionData("stakeToken",[this._encodeIncentiveKey(o),Nv(n.tokenId)]))}return{calldata:Jv.encodeMulticall(r),value:Nv(0)}},e.withdrawToken=function(t,n){var r=[];t=Array.isArray(t)?t:[t];for(var i={tokenId:n.tokenId,recipient:n.recipient,amount:n.amount},o=0;o<t.length;o++){var a=t[o];r=r.concat(this.encodeClaim(a,i))}var s=Nb(n.owner);return r.push(e.INTERFACE.encodeFunctionData("withdrawToken",[Nv(n.tokenId),s,n.data?n.data:Nv(0)])),{calldata:Jv.encodeMulticall(r),value:Nv(0)}},e.encodeDeposit=function(t){var n;if((t=Array.isArray(t)?t:[t]).length>1){for(var r=[],i=0;i<t.length;i++){var o=t[i];r.push(this._encodeIncentiveKey(o))}n=uo.encode([e.INCENTIVE_KEY_ABI+"[]"],[r])}else n=uo.encode([e.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(t[0])]);return n},e._encodeIncentiveKey=function(e){var t=e.pool,n=t.token0,r=t.token1,i=t.fee,o=Nb(e.refundee);return{rewardToken:e.rewardToken.address,pool:Gv.getAddress(n,r,i),startTime:Nv(e.startTime),endTime:Nv(e.endTime),refundee:o}},e}();ow.INTERFACE=new ma(Xb),ow.INCENTIVE_KEY_ABI="tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)";var aw=function(){function e(){}return e.swapCallParameters=function(t,n){Array.isArray(t)||(t=[t]);var r=t[0],i=r.inputAmount.currency.wrapped,o=r.outputAmount.currency.wrapped;t.every((function(e){return e.inputAmount.currency.wrapped.equals(i)}))||_A(!1),t.every((function(e){return e.outputAmount.currency.wrapped.equals(o)}))||_A(!1);var a=[],s=kb.fromRawAmount(t[0].inputAmount.currency,0),u=kb.fromRawAmount(t[0].outputAmount.currency,0),l=t.reduce((function(e,t){return e.add(t.minimumAmountOut(n.slippageTolerance))}),u),c=r.inputAmount.currency.isNative&&r.tradeType===ub.EXACT_OUTPUT,d=r.inputAmount.currency.isNative,f=r.outputAmount.currency.isNative,p=f||!!n.fee,h=d?t.reduce((function(e,t){return e.add(t.maximumAmountIn(n.slippageTolerance))}),s):s;n.inputTokenPermit&&(r.inputAmount.currency.isToken||_A(!1),a.push($v.encodePermit(r.inputAmount.currency,n.inputTokenPermit)));for(var m,y=Nb(n.recipient),A=Nv(n.deadline),g=ev(t);!(m=g()).done;)for(var b,v=m.value,w=ev(v.swaps);!(b=w()).done;){var x=b.value,E=x.route,T=x.inputAmount,C=x.outputAmount,k=Nv(v.maximumAmountIn(n.slippageTolerance,T).quotient),S=Nv(v.minimumAmountOut(n.slippageTolerance,C).quotient);if(1===E.pools.length)if(v.tradeType===ub.EXACT_INPUT){var I,P={tokenIn:E.tokenPath[0].address,tokenOut:E.tokenPath[1].address,fee:E.pools[0].fee,recipient:p?ov:y,deadline:A,amountIn:k,amountOutMinimum:S,sqrtPriceLimitX96:Nv(null!=(I=n.sqrtPriceLimitX96)?I:0)};a.push(e.INTERFACE.encodeFunctionData("exactInputSingle",[P]))}else{var O,N={tokenIn:E.tokenPath[0].address,tokenOut:E.tokenPath[1].address,fee:E.pools[0].fee,recipient:p?ov:y,deadline:A,amountOut:S,amountInMaximum:k,sqrtPriceLimitX96:Nv(null!=(O=n.sqrtPriceLimitX96)?O:0)};a.push(e.INTERFACE.encodeFunctionData("exactOutputSingle",[N]))}else{void 0!==n.sqrtPriceLimitX96&&_A(!1);var R=Rv(E,v.tradeType===ub.EXACT_OUTPUT);if(v.tradeType===ub.EXACT_INPUT){var M={path:R,recipient:p?ov:y,deadline:A,amountIn:k,amountOutMinimum:S};a.push(e.INTERFACE.encodeFunctionData("exactInput",[M]))}else{var L={path:R,recipient:p?ov:y,deadline:A,amountOut:S,amountInMaximum:k};a.push(e.INTERFACE.encodeFunctionData("exactOutput",[L]))}}}return p&&(n.fee?f?a.push(ew.encodeUnwrapWETH9(l.quotient,y,n.fee)):a.push(ew.encodeSweepToken(r.outputAmount.currency.wrapped,l.quotient,y,n.fee)):a.push(ew.encodeUnwrapWETH9(l.quotient,y))),c&&a.push(ew.encodeRefundETH()),{calldata:Jv.encodeMulticall(a),value:Nv(h.quotient)}},e}();aw.INTERFACE=new ma(Gb);var sw,uw,lw=Object.freeze({__proto__:null,ADDRESS_ZERO:ov,FACTORY_ADDRESS:iv,get FeeAmount(){return nv},FullMath:mv,LiquidityMath:hv,Multicall:Jv,NoTickDataProvider:Sv,NonfungiblePositionManager:rw,POOL_INIT_CODE_HASH:av,Payments:ew,Pool:Gv,Position:Zv,PositionLibrary:zv,Route:Yv,SelfPermit:$v,SqrtPriceMath:gv,Staker:ow,SwapMath:vv,SwapQuoter:iw,SwapRouter:aw,TICK_SPACINGS:sv,Tick:Vv,TickLibrary:Wv,TickList:Ov,TickListDataProvider:qv,TickMath:kv,Trade:Qv,computePoolAddress:pv,encodeRouteToPath:Rv,encodeSqrtRatioX96:Mv,isSorted:Iv,maxLiquidityForAmounts:Bv,mostSignificantBit:Ev,nearestUsableTick:function(e,t){Number.isInteger(e)&&Number.isInteger(t)||_A(!1),t>0||_A(!1),e>=kv.MIN_TICK&&e<=kv.MAX_TICK||_A(!1);var n=Math.round(e/t)*t;return n<kv.MIN_TICK?n+t:n>kv.MAX_TICK?n-t:n},priceToClosestTick:function(e){var t=e.baseCurrency.sortsBefore(e.quoteCurrency),n=t?Mv(e.numerator,e.denominator):Mv(e.denominator,e.numerator),r=kv.getTickAtSqrtRatio(n),i=_v(e.baseCurrency,e.quoteCurrency,r+1);return t?e.lessThan(i)||r++:e.greaterThan(i)||r++,r},subIn256:Hv,tickToPrice:_v,toHex:Nv,tradeComparator:Kv}),cw={exports:{}},dw={},fw=Ue(ya);var pw,hw={_format:"hh-sol-artifact-1",contractName:"IApproveAndCall",sourceName:"contracts/interfaces/IApproveAndCall.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},mw=Ue(lw),yw={_format:"hh-sol-artifact-1",contractName:"IMulticallExtended",sourceName:"contracts/interfaces/IMulticallExtended.sol",abi:[{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function Aw(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function gw(e,t,n){return t&&Aw(e.prototype,t),n&&Aw(e,n),e}function bw(){return bw=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bw.apply(this,arguments)}function vw(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(pw||(pw={}));var ww,xw,Ew,Tw,Cw,kw,Sw,Iw=[pw.MAINNET,pw.OPTIMISM,pw.OPTIMISM_GOERLI,pw.ARBITRUM_ONE,pw.ARBITRUM_GOERLI,pw.POLYGON,pw.POLYGON_MUMBAI,pw.GOERLI,pw.SEPOLIA,pw.CELO_ALFAJORES,pw.CELO,pw.BNB,pw.AVALANCHE,pw.BASE,pw.BASE_GOERLI];!function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(ww||(ww={}));var Pw=[pw.MAINNET,pw.GOERLI];function Ow(e,t){return void 0===t&&(t=[]),Pw.concat(t).reduce((function(t,n){return t[n]=e,t}),{})}var Nw,Rw,Mw=Ow("0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[pw.OPTIMISM,pw.ARBITRUM_ONE,pw.POLYGON,pw.POLYGON_MUMBAI,pw.SEPOLIA]),Lw="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",Dw=Ow(Lw),Fw="0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",Bw=Ow(Fw),jw={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},zw=bw({},jw,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),_w=bw({},jw,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),Uw=jw,Hw=bw({},jw,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),Ww=jw,Vw={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"},qw=((xw={})[pw.MAINNET]=zw,xw[pw.OPTIMISM]=Uw,xw[pw.ARBITRUM_ONE]=Hw,xw[pw.POLYGON]=Ww,xw[pw.POLYGON_MUMBAI]=Ww,xw[pw.GOERLI]=_w,xw[pw.CELO]=Vw,xw[pw.CELO_ALFAJORES]=Vw,xw[pw.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},xw[pw.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},xw[pw.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},xw[pw.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},xw[pw.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},xw[pw.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},xw[pw.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},xw),Xw=bw({},Iw.reduce((function(e,t){return e[t]=qw[t].v3CoreFactoryAddress,e}),{})),Gw=bw({},Iw.reduce((function(e,t){var n=qw[t].v3MigratorAddress;return n&&(e[t]=n),e}),{})),Zw=bw({},Iw.reduce((function(e,t){return e[t]=qw[t].multicallAddress,e}),{})),Yw=Ow("0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F"),Kw=((Ew={})[pw.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",Ew),Qw=((Tw={})[pw.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",Tw),Jw=Ow("0x1a9C8182C09F50C8318d769245beA52c32BE35BC"),$w=((Cw={})[pw.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",Cw),ex=((kw={})[pw.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",kw),tx=bw({},Iw.reduce((function(e,t){return e[t]=qw[t].quoterAddress,e}),{})),nx=bw({},Iw.reduce((function(e,t){var n=qw[t].nonfungiblePositionManagerAddress;return n&&(e[t]=n),e}),{})),rx=bw({},Ow("0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e")),ix=((Sw={})[pw.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",Sw),ox=bw({},Iw.reduce((function(e,t){var n=qw[t].tickLensAddress;return n&&(e[t]=n),e}),{})),ax=Iw.reduce((function(e,t){var n=qw[t].v1MixedRouteQuoterAddress;return n&&(e[t]=n),e}),{});!function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(Nw||(Nw={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(Rw||(Rw={}));var sx,ux,lx=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),cx=YA(HA),dx=YA(VA),fx=((sx={})[Rw.ROUND_DOWN]=cx.ROUND_DOWN,sx[Rw.ROUND_HALF_UP]=cx.ROUND_HALF_UP,sx[Rw.ROUND_UP]=cx.ROUND_UP,sx),px=((ux={})[Rw.ROUND_DOWN]=0,ux[Rw.ROUND_HALF_UP]=1,ux[Rw.ROUND_UP]=3,ux),hx=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=Rw.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),cx.set({precision:e+1,rounding:fx[n]});var r=new cx(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=Rw.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),dx.DP=e,dx.RM=px[n],new dx(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},gw(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),mx=YA(VA),yx=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,lx)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}vw(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=Rw.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=Rw.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),mx.DP=this.currency.decimals,new mx(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},gw(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(hx),Ax=new hx(jA.BigInt(100));function gx(e){return new bx(e.numerator,e.denominator)}var bx=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}vw(t,e);var n=t.prototype;return n.add=function(t){return gx(e.prototype.add.call(this,t))},n.subtract=function(t){return gx(e.prototype.subtract.call(this,t))},n.multiply=function(t){return gx(e.prototype.multiply.call(this,t))},n.divide=function(t){return gx(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,Ax).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,Ax).toFixed(t,n,r)},t}(hx),vx=function(e){function t(){for(var t,n,r,i,o,a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],o=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),c=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=c[0],r=c[1],i=c[2],o=c[3]}return(t=e.call(this,o,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new hx(jA.exponentiate(jA.BigInt(10),jA.BigInt(n.decimals)),jA.exponentiate(jA.BigInt(10),jA.BigInt(r.decimals))),t}vw(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||_A(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||_A(!1);var n=e.prototype.multiply.call(this,t);return yx.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},gw(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(hx),wx=function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r},xx=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isNative=!0,t.isToken=!1,t}return vw(t,e),t}(wx);function Ex(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}var Tx=/^0x[0-9a-fA-F]{40}$/;var Cx,kx=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(Tx.test(e))return e;throw new Error(e+" is not a valid address.")}(n):Ex(n),s}vw(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},gw(t,[{key:"wrapped",get:function(){return this}}]),t}(wx),Sx=((Cx={})[1]=new kx(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),Cx[3]=new kx(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Cx[4]=new kx(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),Cx[5]=new kx(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),Cx[42]=new kx(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),Cx[10]=new kx(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Cx[69]=new kx(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),Cx[42161]=new kx(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),Cx[421611]=new kx(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),Cx),Ix=function(e){function t(t){return e.call(this,t,18,"ETH","Ether")||this}return vw(t,e),t.onChain=function(e){var n;return null!=(n=this._etherCache[e])?n:this._etherCache[e]=new t(e)},t.prototype.equals=function(e){return e.isNative&&e.chainId===this.chainId},gw(t,[{key:"wrapped",get:function(){var e=Sx[this.chainId];return e||_A(!1),e}}]),t}(xx);Ix._etherCache={};var Px=jA.BigInt(Number.MAX_SAFE_INTEGER),Ox=jA.BigInt(0),Nx=jA.BigInt(1),Rx=jA.BigInt(2);var Mx,Lx,Dx,Fx=Object.freeze({__proto__:null,ARGENT_WALLET_DETECTOR_ADDRESS:ex,CHAIN_TO_ADDRESSES_MAP:qw,get ChainId(){return pw},CurrencyAmount:yx,ENS_REGISTRAR_ADDRESSES:rx,Ether:Ix,Fraction:hx,GOVERNANCE_ALPHA_V0_ADDRESSES:Yw,GOVERNANCE_ALPHA_V1_ADDRESSES:Kw,GOVERNANCE_BRAVO_ADDRESSES:Qw,MERKLE_DISTRIBUTOR_ADDRESS:$w,MIXED_ROUTE_QUOTER_V1_ADDRESSES:ax,MULTICALL_ADDRESSES:Zw,MaxUint256:lx,NONFUNGIBLE_POSITION_MANAGER_ADDRESSES:nx,NativeCurrency:xx,get NativeCurrencyName(){return ww},Percent:bx,Price:vx,QUOTER_ADDRESSES:tx,get Rounding(){return Rw},SOCKS_CONTROLLER_ADDRESSES:ix,SUPPORTED_CHAINS:Iw,SWAP_ROUTER_02_ADDRESSES:function(e){return e==pw.BNB?qw[e].swapRouter02Address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"},TICK_LENS_ADDRESSES:ox,TIMELOCK_ADDRESSES:Jw,Token:kx,get TradeType(){return Nw},UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS:"0x8B799381ac40b838BBA4131ffB26197C432AFe78",UNI_ADDRESSES:Mw,V2_FACTORY_ADDRESS:Lw,V2_FACTORY_ADDRESSES:Dw,V2_ROUTER_ADDRESS:Fw,V2_ROUTER_ADDRESSES:Bw,V3_CORE_FACTORY_ADDRESSES:Xw,V3_MIGRATOR_ADDRESSES:Gw,WETH9:Sx,computePriceImpact:function(e,t,n){var r=e.quote(t),i=r.subtract(n).divide(r);return new bx(i.numerator,i.denominator)},sortedInsert:function(e,t,n,r){if(n>0||_A(!1),e.length<=n||_A(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var o=0,a=e.length;o<a;){var s=o+a>>>1;r(e[s],t)<=0?o=s+1:a=s}return e.splice(o,0,t),i?e.pop():null},sqrt:function(e){if(jA.greaterThanOrEqual(e,Ox)||_A(!1),jA.lessThan(e,Px))return jA.BigInt(Math.floor(Math.sqrt(jA.toNumber(e))));var t,n;for(t=e,n=jA.add(jA.divide(e,Rx),Nx);jA.lessThan(n,t);)t=n,n=jA.divide(jA.add(jA.divide(e,n),n),Rx);return t},validateAndParseAddress:Ex}),Bx=Ue(Fx),jx={_format:"hh-sol-artifact-1",contractName:"IPeripheryPaymentsWithFeeExtended",sourceName:"contracts/interfaces/IPeripheryPaymentsWithFeeExtended.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"pull",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"wrapETH",outputs:[],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},zx={_format:"hh-sol-artifact-1",contractName:"ISwapRouter02",sourceName:"contracts/interfaces/ISwapRouter02.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapExactTokensForTokens",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function _x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ux(e,t,n){return t&&_x(e.prototype,t),n&&_x(e,n),e}function Hx(){return Hx=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hx.apply(this,arguments)}function Wx(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}!function(e){e[e.MAINNET=1]="MAINNET",e[e.GOERLI=5]="GOERLI",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.CELO=42220]="CELO",e[e.CELO_ALFAJORES=44787]="CELO_ALFAJORES",e[e.GNOSIS=100]="GNOSIS",e[e.MOONBEAM=1284]="MOONBEAM",e[e.BNB=56]="BNB",e[e.AVALANCHE=43114]="AVALANCHE",e[e.BASE_GOERLI=84531]="BASE_GOERLI",e[e.BASE=8453]="BASE"}(Mx||(Mx={})),Mx.MAINNET,Mx.OPTIMISM,Mx.OPTIMISM_GOERLI,Mx.ARBITRUM_ONE,Mx.ARBITRUM_GOERLI,Mx.POLYGON,Mx.POLYGON_MUMBAI,Mx.GOERLI,Mx.SEPOLIA,Mx.CELO_ALFAJORES,Mx.CELO,Mx.BNB,Mx.AVALANCHE,Mx.BASE,Mx.BASE_GOERLI,function(e){e.ETHER="ETH",e.MATIC="MATIC",e.CELO="CELO",e.GNOSIS="XDAI",e.MOONBEAM="GLMR",e.BNB="BNB",e.AVAX="AVAX"}(Lx||(Lx={}));Mx.MAINNET,Mx.GOERLI;Mx.OPTIMISM,Mx.ARBITRUM_ONE,Mx.POLYGON,Mx.POLYGON_MUMBAI,Mx.SEPOLIA;var Vx,qx,Xx={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},Gx=Hx({},Xx,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),Zx=Hx({},Xx,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),Yx=Xx,Kx=Hx({},Xx,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),Qx=Xx,Jx={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(Dx={})[Mx.MAINNET]=Gx,Dx[Mx.OPTIMISM]=Yx,Dx[Mx.ARBITRUM_ONE]=Kx,Dx[Mx.POLYGON]=Qx,Dx[Mx.POLYGON_MUMBAI]=Qx,Dx[Mx.GOERLI]=Zx,Dx[Mx.CELO]=Jx,Dx[Mx.CELO_ALFAJORES]=Jx,Dx[Mx.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},Dx[Mx.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},Dx[Mx.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},Dx[Mx.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},Dx[Mx.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},Dx[Mx.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},Dx[Mx.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[Mx.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[Mx.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[Mx.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[Mx.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[Mx.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(e){e[e.EXACT_INPUT=0]="EXACT_INPUT",e[e.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(Vx||(Vx={})),function(e){e[e.ROUND_DOWN=0]="ROUND_DOWN",e[e.ROUND_HALF_UP=1]="ROUND_HALF_UP",e[e.ROUND_UP=2]="ROUND_UP"}(qx||(qx={}));var $x,eE,tE=jA.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),nE=YA(HA),rE=YA(VA),iE=(($x={})[qx.ROUND_DOWN]=nE.ROUND_DOWN,$x[qx.ROUND_HALF_UP]=nE.ROUND_HALF_UP,$x[qx.ROUND_UP]=nE.ROUND_UP,$x),oE=((eE={})[qx.ROUND_DOWN]=0,eE[qx.ROUND_HALF_UP]=1,eE[qx.ROUND_UP]=3,eE),aE=function(){function e(e,t){void 0===t&&(t=jA.BigInt(1)),this.numerator=jA.BigInt(e),this.denominator=jA.BigInt(t)}e.tryParseFraction=function(t){if(t instanceof jA||"number"==typeof t||"string"==typeof t)return new e(t);if("numerator"in t&&"denominator"in t)return t;throw new Error("Could not parse fraction")};var t=e.prototype;return t.invert=function(){return new e(this.denominator,this.numerator)},t.add=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.add(this.numerator,n.numerator),this.denominator):new e(jA.add(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.subtract=function(t){var n=e.tryParseFraction(t);return jA.equal(this.denominator,n.denominator)?new e(jA.subtract(this.numerator,n.numerator),this.denominator):new e(jA.subtract(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator)),jA.multiply(this.denominator,n.denominator))},t.lessThan=function(t){var n=e.tryParseFraction(t);return jA.lessThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.equalTo=function(t){var n=e.tryParseFraction(t);return jA.equal(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.greaterThan=function(t){var n=e.tryParseFraction(t);return jA.greaterThan(jA.multiply(this.numerator,n.denominator),jA.multiply(n.numerator,this.denominator))},t.multiply=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.numerator),jA.multiply(this.denominator,n.denominator))},t.divide=function(t){var n=e.tryParseFraction(t);return new e(jA.multiply(this.numerator,n.denominator),jA.multiply(this.denominator,n.numerator))},t.toSignificant=function(e,t,n){void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=qx.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>0||_A(!1),nE.set({precision:e+1,rounding:iE[n]});var r=new nE(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)},t.toFixed=function(e,t,n){return void 0===t&&(t={groupSeparator:""}),void 0===n&&(n=qx.ROUND_HALF_UP),Number.isInteger(e)||_A(!1),e>=0||_A(!1),rE.DP=e,rE.RM=oE[n],new rE(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)},Ux(e,[{key:"quotient",get:function(){return jA.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(jA.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}]),e}(),sE=YA(VA),uE=function(e){function t(t,n,r){var i;return i=e.call(this,n,r)||this,jA.lessThanOrEqual(i.quotient,tE)||_A(!1),i.currency=t,i.decimalScale=jA.exponentiate(jA.BigInt(10),jA.BigInt(t.decimals)),i}Wx(t,e),t.fromRawAmount=function(e,n){return new t(e,n)},t.fromFractionalAmount=function(e,n,r){return new t(e,n,r)};var n=t.prototype;return n.add=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.add.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.subtract=function(n){this.currency.equals(n.currency)||_A(!1);var r=e.prototype.subtract.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.multiply=function(n){var r=e.prototype.multiply.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.divide=function(n){var r=e.prototype.divide.call(this,n);return t.fromFractionalAmount(this.currency,r.numerator,r.denominator)},n.toSignificant=function(t,n,r){return void 0===t&&(t=6),void 0===r&&(r=qx.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=this.currency.decimals),void 0===r&&(r=qx.ROUND_DOWN),t<=this.currency.decimals||_A(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(t,n,r)},n.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),sE.DP=this.currency.decimals,new sE(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},Ux(t,[{key:"wrapped",get:function(){return this.currency.isToken?this:t.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),t}(aE),lE=new aE(jA.BigInt(100));function cE(e){return new dE(e.numerator,e.denominator)}var dE=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).isPercent=!0,t}Wx(t,e);var n=t.prototype;return n.add=function(t){return cE(e.prototype.add.call(this,t))},n.subtract=function(t){return cE(e.prototype.subtract.call(this,t))},n.multiply=function(t){return cE(e.prototype.multiply.call(this,t))},n.divide=function(t){return cE(e.prototype.divide.call(this,t))},n.toSignificant=function(t,n,r){return void 0===t&&(t=5),e.prototype.multiply.call(this,lE).toSignificant(t,n,r)},n.toFixed=function(t,n,r){return void 0===t&&(t=2),e.prototype.multiply.call(this,lE).toFixed(t,n,r)},t}(aE),fE=function(e){function t(){for(var t,n,r,i,o,a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(4===s.length)n=s[0],r=s[1],i=s[2],o=s[3];else{var l=s[0].quoteAmount.divide(s[0].baseAmount),c=[s[0].baseAmount.currency,s[0].quoteAmount.currency,l.denominator,l.numerator];n=c[0],r=c[1],i=c[2],o=c[3]}return(t=e.call(this,o,i)||this).baseCurrency=n,t.quoteCurrency=r,t.scalar=new aE(jA.exponentiate(jA.BigInt(10),jA.BigInt(n.decimals)),jA.exponentiate(jA.BigInt(10),jA.BigInt(r.decimals))),t}Wx(t,e);var n=t.prototype;return n.invert=function(){return new t(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){this.quoteCurrency.equals(n.baseCurrency)||_A(!1);var r=e.prototype.multiply.call(this,n);return new t(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(t){t.currency.equals(this.baseCurrency)||_A(!1);var n=e.prototype.multiply.call(this,t);return uE.fromFractionalAmount(this.quoteCurrency,n.numerator,n.denominator)},n.toSignificant=function(e,t,n){return void 0===e&&(e=6),this.adjustedForDecimals.toSignificant(e,t,n)},n.toFixed=function(e,t,n){return void 0===e&&(e=4),this.adjustedForDecimals.toFixed(e,t,n)},Ux(t,[{key:"adjustedForDecimals",get:function(){return e.prototype.multiply.call(this,this.scalar)}}]),t}(aE);function pE(e){try{return ti(e)}catch(t){throw new Error(e+" is not a valid address.")}}var hE=/^0x[0-9a-fA-F]{40}$/;var mE,yE=function(e){function t(t,n,r,i,o,a){var s;return(s=e.call(this,t,r,i,o)||this).isNative=!1,s.isToken=!0,s.address=a?function(e){if(hE.test(e))return e;throw new Error(e+" is not a valid address.")}(n):pE(n),s}Wx(t,e);var n=t.prototype;return n.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},n.sortsBefore=function(e){return this.chainId!==e.chainId&&_A(!1),this.address.toLowerCase()===e.address.toLowerCase()&&_A(!1),this.address.toLowerCase()<e.address.toLowerCase()},Ux(t,[{key:"wrapped",get:function(){return this}}]),t}((function(e,t,n,r){Number.isSafeInteger(e)||_A(!1),t>=0&&t<255&&Number.isInteger(t)||_A(!1),this.chainId=e,this.decimals=t,this.symbol=n,this.name=r}));function AE(e,t,n,r){if(n>0||_A(!1),e.length<=n||_A(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&r(e[e.length-1],t)<=0)return t;for(var o=0,a=e.length;o<a;){var s=o+a>>>1;r(e[s],t)<=0?o=s+1:a=s}return e.splice(o,0,t),i?e.pop():null}(mE={})[1]=new yE(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),mE[3]=new yE(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),mE[4]=new yE(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),mE[5]=new yE(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),mE[42]=new yE(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),mE[10]=new yE(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),mE[69]=new yE(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),mE[42161]=new yE(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),mE[421611]=new yE(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var gE=jA.BigInt(Number.MAX_SAFE_INTEGER),bE=jA.BigInt(0),vE=jA.BigInt(1),wE=jA.BigInt(2);function xE(e){if(jA.greaterThanOrEqual(e,bE)||_A(!1),jA.lessThan(e,gE))return jA.BigInt(Math.floor(Math.sqrt(jA.toNumber(e))));var t,n;for(t=e,n=jA.add(jA.divide(e,wE),vE);jA.lessThan(n,t);)t=n,n=jA.divide(jA.add(jA.divide(e,n),n),wE);return t}var EE="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",TE="0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",CE=jA.BigInt(1e3),kE=jA.BigInt(0),SE=jA.BigInt(1),IE=jA.BigInt(5),PE=jA.BigInt(997),OE=jA.BigInt(1e3);function NE(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function RE(e,t,n){return t&&NE(e.prototype,t),n&&NE(e,n),e}function ME(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function LE(e){return LE=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},LE(e)}function DE(e,t){return DE=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},DE(e,t)}function FE(e,t,n){return FE=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&DE(i,n.prototype),i},FE.apply(null,arguments)}function BE(e){var t="function"==typeof Map?new Map:void 0;return BE=function(e){if(null===e||!function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return FE(e,arguments,LE(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),DE(n,e)},BE(e)}function jE(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function zE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _E(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return zE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zE(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}var UE="setPrototypeOf"in Object,HE=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,UE&&Object.setPrototypeOf(jE(n),(this instanceof t?this.constructor:void 0).prototype),n}return ME(t,e),t}(BE(Error)),WE=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,UE&&Object.setPrototypeOf(jE(n),(this instanceof t?this.constructor:void 0).prototype),n}return ME(t,e),t}(BE(Error)),VE=function(e){var t=e.factoryAddress,n=e.tokenA,r=e.tokenB,i=n.sortsBefore(r)?[n,r]:[r,n],o=i[1];return oi(t,eh(["bytes"],[$p(["address","address"],[i[0].address,o.address])]),TE)},qE=function(){function e(t,n){var r=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];this.liquidityToken=new yE(r[0].currency.chainId,e.getAddress(r[0].currency,r[1].currency),18,"UNI-V2","Uniswap V2"),this.tokenAmounts=r}e.getAddress=function(e,t){return VE({factoryAddress:EE,tokenA:e,tokenB:t})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||_A(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.reserveOf=function(e){return this.involvesToken(e)||_A(!1),e.equals(this.token0)?this.reserve0:this.reserve1},t.getOutputAmount=function(t){if(this.involvesToken(t.currency)||_A(!1),jA.equal(this.reserve0.quotient,kE)||jA.equal(this.reserve1.quotient,kE))throw new HE;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),i=jA.multiply(t.quotient,PE),o=jA.multiply(i,r.quotient),a=jA.add(jA.multiply(n.quotient,OE),i),s=uE.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,jA.divide(o,a));if(jA.equal(s.quotient,kE))throw new WE;return[s,new e(n.add(t),r.subtract(s))]},t.getInputAmount=function(t){if(this.involvesToken(t.currency)||_A(!1),jA.equal(this.reserve0.quotient,kE)||jA.equal(this.reserve1.quotient,kE)||jA.greaterThanOrEqual(t.quotient,this.reserveOf(t.currency).quotient))throw new HE;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),i=jA.multiply(jA.multiply(r.quotient,t.quotient),OE),o=jA.multiply(jA.subtract(n.quotient,t.quotient),PE),a=uE.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,jA.add(jA.divide(i,o),SE));return[a,new e(r.add(a),n.subtract(t))]},t.getLiquidityMinted=function(e,t,n){e.currency.equals(this.liquidityToken)||_A(!1);var r,i=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];if(i[0].currency.equals(this.token0)&&i[1].currency.equals(this.token1)||_A(!1),jA.equal(e.quotient,kE))r=jA.subtract(xE(jA.multiply(i[0].quotient,i[1].quotient)),CE);else{var o=jA.divide(jA.multiply(i[0].quotient,e.quotient),this.reserve0.quotient),a=jA.divide(jA.multiply(i[1].quotient,e.quotient),this.reserve1.quotient);r=jA.lessThanOrEqual(o,a)?o:a}if(!jA.greaterThan(r,kE))throw new WE;return uE.fromRawAmount(this.liquidityToken,r)},t.getLiquidityValue=function(e,t,n,r,i){var o;if(void 0===r&&(r=!1),this.involvesToken(e)||_A(!1),t.currency.equals(this.liquidityToken)||_A(!1),n.currency.equals(this.liquidityToken)||_A(!1),jA.lessThanOrEqual(n.quotient,t.quotient)||_A(!1),r){i||_A(!1);var a=jA.BigInt(i);if(jA.equal(a,kE))o=t;else{var s=xE(jA.multiply(this.reserve0.quotient,this.reserve1.quotient)),u=xE(a);if(jA.greaterThan(s,u)){var l=jA.multiply(t.quotient,jA.subtract(s,u)),c=jA.add(jA.multiply(s,IE),u),d=jA.divide(l,c);o=t.add(uE.fromRawAmount(this.liquidityToken,d))}else o=t}}else o=t;return uE.fromRawAmount(e,jA.divide(jA.multiply(n.quotient,this.reserveOf(e).quotient),o.quotient))},RE(e,[{key:"token0Price",get:function(){var e=this.tokenAmounts[1].divide(this.tokenAmounts[0]);return new fE(this.token0,this.token1,e.denominator,e.numerator)}},{key:"token1Price",get:function(){var e=this.tokenAmounts[0].divide(this.tokenAmounts[1]);return new fE(this.token1,this.token0,e.denominator,e.numerator)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"token0",get:function(){return this.tokenAmounts[0].currency}},{key:"token1",get:function(){return this.tokenAmounts[1].currency}},{key:"reserve0",get:function(){return this.tokenAmounts[0]}},{key:"reserve1",get:function(){return this.tokenAmounts[1]}}]),e}(),XE=function(){function e(e,t,n){this._midPrice=null,e.length>0||_A(!1);var r=e[0].chainId;e.every((function(e){return e.chainId===r}))||_A(!1);var i=t.wrapped;e[0].involvesToken(i)||_A(!1),void 0===n||e[e.length-1].involvesToken(n.wrapped)||_A(!1);for(var o,a=[i],s=_E(e.entries());!(o=s()).done;){var u=o.value,l=u[0],c=u[1],d=a[l];d.equals(c.token0)||d.equals(c.token1)||_A(!1);var f=d.equals(c.token0)?c.token1:c.token0;a.push(f)}this.pairs=e,this.path=a,this.input=t,this.output=n}return RE(e,[{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;for(var e,t=[],n=_E(this.pairs.entries());!(e=n()).done;){var r=e.value,i=r[0],o=r[1];t.push(this.path[i].equals(o.token0)?new fE(o.reserve0.currency,o.reserve1.currency,o.reserve0.quotient,o.reserve1.quotient):new fE(o.reserve1.currency,o.reserve0.currency,o.reserve1.quotient,o.reserve0.quotient))}var a=t.slice(1).reduce((function(e,t){return e.multiply(t)}),t[0]);return this._midPrice=new fE(this.input,this.output,a.denominator,a.numerator)}},{key:"chainId",get:function(){return this.pairs[0].chainId}}]),e}();function GE(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||_A(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||_A(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?0:e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}function ZE(e,t){var n=GE(e,t);return 0!==n?n:e.priceImpact.lessThan(t.priceImpact)?-1:e.priceImpact.greaterThan(t.priceImpact)?1:e.route.path.length-t.route.path.length}var YE=function(){function e(e,t,n){this.route=e,this.tradeType=n;var r=new Array(e.path.length);if(n===Vx.EXACT_INPUT){t.currency.equals(e.input)||_A(!1),r[0]=t.wrapped;for(var i=0;i<e.path.length-1;i++){var o=e.pairs[i].getOutputAmount(r[i])[0];r[i+1]=o}this.inputAmount=uE.fromFractionalAmount(e.input,t.numerator,t.denominator),this.outputAmount=uE.fromFractionalAmount(e.output,r[r.length-1].numerator,r[r.length-1].denominator)}else{t.currency.equals(e.output)||_A(!1),r[r.length-1]=t.wrapped;for(var a=e.path.length-1;a>0;a--){var s=e.pairs[a-1].getInputAmount(r[a])[0];r[a-1]=s}this.inputAmount=uE.fromFractionalAmount(e.input,r[0].numerator,r[0].denominator),this.outputAmount=uE.fromFractionalAmount(e.output,t.numerator,t.denominator)}this.executionPrice=new fE(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient),this.priceImpact=function(e,t,n){var r=e.quote(t),i=r.subtract(n).divide(r);return new dE(i.numerator,i.denominator)}(e.midPrice,this.inputAmount,this.outputAmount)}e.exactIn=function(t,n){return new e(t,n,Vx.EXACT_INPUT)},e.exactOut=function(t,n){return new e(t,n,Vx.EXACT_OUTPUT)};var t=e.prototype;return t.minimumAmountOut=function(e){if(e.lessThan(kE)&&_A(!1),this.tradeType===Vx.EXACT_OUTPUT)return this.outputAmount;var t=new aE(SE).add(e).invert().multiply(this.outputAmount.quotient).quotient;return uE.fromRawAmount(this.outputAmount.currency,t)},t.maximumAmountIn=function(e){if(e.lessThan(kE)&&_A(!1),this.tradeType===Vx.EXACT_INPUT)return this.inputAmount;var t=new aE(SE).add(e).multiply(this.inputAmount.quotient).quotient;return uE.fromRawAmount(this.inputAmount.currency,t)},e.bestTradeExactIn=function(t,n,r,i,o,a,s){var u=void 0===i?{}:i,l=u.maxNumResults,c=void 0===l?3:l,d=u.maxHops,f=void 0===d?3:d;void 0===o&&(o=[]),void 0===a&&(a=n),void 0===s&&(s=[]),t.length>0||_A(!1),f>0||_A(!1),n===a||o.length>0||_A(!1);for(var p=a.wrapped,h=r.wrapped,m=0;m<t.length;m++){var y=t[m];if((y.token0.equals(p.currency)||y.token1.equals(p.currency))&&(!y.reserve0.equalTo(kE)&&!y.reserve1.equalTo(kE))){var A=void 0;try{A=y.getOutputAmount(p)[0]}catch(e){if(e.isInsufficientInputAmountError)continue;throw e}if(A.currency.equals(h))AE(s,new e(new XE([].concat(o,[y]),n.currency,r),n,Vx.EXACT_INPUT),c,ZE);else if(f>1&&t.length>1){var g=t.slice(0,m).concat(t.slice(m+1,t.length));e.bestTradeExactIn(g,n,r,{maxNumResults:c,maxHops:f-1},[].concat(o,[y]),A,s)}}}return s},t.worstExecutionPrice=function(e){return new fE(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactOut=function(t,n,r,i,o,a,s){var u=void 0===i?{}:i,l=u.maxNumResults,c=void 0===l?3:l,d=u.maxHops,f=void 0===d?3:d;void 0===o&&(o=[]),void 0===a&&(a=r),void 0===s&&(s=[]),t.length>0||_A(!1),f>0||_A(!1),r===a||o.length>0||_A(!1);for(var p=a.wrapped,h=n.wrapped,m=0;m<t.length;m++){var y=t[m];if((y.token0.equals(p.currency)||y.token1.equals(p.currency))&&(!y.reserve0.equalTo(kE)&&!y.reserve1.equalTo(kE))){var A=void 0;try{A=y.getInputAmount(p)[0]}catch(e){if(e.isInsufficientReservesError)continue;throw e}if(A.currency.equals(h))AE(s,new e(new XE([y].concat(o),n,r.currency),r,Vx.EXACT_OUTPUT),c,ZE);else if(f>1&&t.length>1){var g=t.slice(0,m).concat(t.slice(m+1,t.length));e.bestTradeExactOut(g,n,r,{maxNumResults:c,maxHops:f-1},[y].concat(o),A,s)}}}return s},e}();function KE(e){return"0x"+e.quotient.toString(16)}var QE,JE="0x0",$E=function(){function e(){}return e.swapCallParameters=function(e,t){var n=e.inputAmount.currency.isNative,r=e.outputAmount.currency.isNative;n&&r&&_A(!1),!("ttl"in t)||t.ttl>0||_A(!1);var i,o,a,s=pE(t.recipient),u=KE(e.maximumAmountIn(t.allowedSlippage)),l=KE(e.minimumAmountOut(t.allowedSlippage)),c=e.route.path.map((function(e){return e.address})),d="ttl"in t?"0x"+(Math.floor((new Date).getTime()/1e3)+t.ttl).toString(16):"0x"+t.deadline.toString(16),f=Boolean(t.feeOnTransfer);switch(e.tradeType){case Vx.EXACT_INPUT:n?(i=f?"swapExactETHForTokensSupportingFeeOnTransferTokens":"swapExactETHForTokens",o=[l,c,s,d],a=u):r?(i=f?"swapExactTokensForETHSupportingFeeOnTransferTokens":"swapExactTokensForETH",o=[u,l,c,s,d],a=JE):(i=f?"swapExactTokensForTokensSupportingFeeOnTransferTokens":"swapExactTokensForTokens",o=[u,l,c,s,d],a=JE);break;case Vx.EXACT_OUTPUT:f&&_A(!1),n?(i="swapETHForExactTokens",o=[l,c,s,d],a=u):r?(i="swapTokensForExactETH",o=[l,u,c,s,d],a=JE):(i="swapTokensForExactTokens",o=[l,u,c,s,d],a=JE)}return{methodName:i,args:o,value:a}},e}(),eT=Ue(Object.freeze({__proto__:null,FACTORY_ADDRESS:EE,INIT_CODE_HASH:TE,InsufficientInputAmountError:WE,InsufficientReservesError:HE,MINIMUM_LIQUIDITY:CE,Pair:qE,Route:XE,Router:$E,Trade:YE,computePairAddress:VE,inputOutputComparator:GE,tradeComparator:ZE})),tT=Ue(nh);cw.exports=(QE||(QE=1,function(e){function t(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(e,"__esModule",{value:!0});var n,r=t(BA),i=fw,o=t(uw?sw:(uw=1,sw=function(e,t){if(!e)throw new Error("Invariant failed")})),a=hw,s=mw,u=yw,l=Bx,c=jx,d=zx,f=eT,p=tT,h="0x0000000000000000000000000000000000000001",m="0x0000000000000000000000000000000000000002",y=r.BigInt(0),A=r.BigInt(1);function g(e){return Object.keys(e).some((function(e){return"recipient"===e}))}(n=e.ApprovalTypes||(e.ApprovalTypes={}))[n.NOT_REQUIRED=0]="NOT_REQUIRED",n[n.MAX=1]="MAX",n[n.MAX_MINUS_ONE=2]="MAX_MINUS_ONE",n[n.ZERO_THEN_MAX=3]="ZERO_THEN_MAX",n[n.ZERO_THEN_MAX_MINUS_ONE=4]="ZERO_THEN_MAX_MINUS_ONE";var b=function(){function t(){}return t.encodeApproveMax=function(e){return t.INTERFACE.encodeFunctionData("approveMax",[e.address])},t.encodeApproveMaxMinusOne=function(e){return t.INTERFACE.encodeFunctionData("approveMaxMinusOne",[e.address])},t.encodeApproveZeroThenMax=function(e){return t.INTERFACE.encodeFunctionData("approveZeroThenMax",[e.address])},t.encodeApproveZeroThenMaxMinusOne=function(e){return t.INTERFACE.encodeFunctionData("approveZeroThenMaxMinusOne",[e.address])},t.encodeCallPositionManager=function(e){if(e.length>0||o(!1),1==e.length)return t.INTERFACE.encodeFunctionData("callPositionManager",e);var n=s.NonfungiblePositionManager.INTERFACE.encodeFunctionData("multicall",[e]);return t.INTERFACE.encodeFunctionData("callPositionManager",[n])},t.encodeAddLiquidity=function(e,n,i,o){var a=e.mintAmountsWithSlippage(o),u=a.amount0,l=a.amount1;return r.lessThan(n.amount0.quotient,u)&&(u=n.amount0.quotient),r.lessThan(n.amount1.quotient,l)&&(l=n.amount1.quotient),g(i)?t.INTERFACE.encodeFunctionData("mint",[{token0:e.pool.token0.address,token1:e.pool.token1.address,fee:e.pool.fee,tickLower:e.tickLower,tickUpper:e.tickUpper,amount0Min:s.toHex(u),amount1Min:s.toHex(l),recipient:i.recipient}]):t.INTERFACE.encodeFunctionData("increaseLiquidity",[{token0:e.pool.token0.address,token1:e.pool.token1.address,amount0Min:s.toHex(u),amount1Min:s.toHex(l),tokenId:s.toHex(i.tokenId)}])},t.encodeApprove=function(n,r){switch(r){case e.ApprovalTypes.MAX:return t.encodeApproveMax(n.wrapped);case e.ApprovalTypes.MAX_MINUS_ONE:return t.encodeApproveMaxMinusOne(n.wrapped);case e.ApprovalTypes.ZERO_THEN_MAX:return t.encodeApproveZeroThenMax(n.wrapped);case e.ApprovalTypes.ZERO_THEN_MAX_MINUS_ONE:return t.encodeApproveZeroThenMaxMinusOne(n.wrapped);default:throw"Error: invalid ApprovalType"}},t}();b.INTERFACE=new i.Interface(a.abi);var v=function(){function e(){}return e.encodeMulticall=function(t,n){if(void 0===n)return s.Multicall.encodeMulticall(t);if(Array.isArray(t)||(t=[t]),"string"==typeof n&&n.startsWith("0x")){var r=function(e){if(!e.match(/^0x[0-9a-fA-F]{64}$/))throw new Error(e+" is not valid bytes32.");return e.toLowerCase()}(n);return e.INTERFACE.encodeFunctionData("multicall(bytes32,bytes[])",[r,t])}var i=s.toHex(n);return e.INTERFACE.encodeFunctionData("multicall(uint256,bytes[])",[i,t])},e}();function w(e){return s.toHex(e.multiply(1e4).quotient)}v.INTERFACE=new i.Interface(u.abi);var x=function(){function e(){}return e.encodeUnwrapWETH9=function(t,n,r){if("string"==typeof n)return s.Payments.encodeUnwrapWETH9(t,n,r);if(r){var i=w(r.fee),o=l.validateAndParseAddress(r.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee(uint256,uint256,address)",[s.toHex(t),i,o])}return e.INTERFACE.encodeFunctionData("unwrapWETH9(uint256)",[s.toHex(t)])},e.encodeSweepToken=function(t,n,r,i){if("string"==typeof r)return s.Payments.encodeSweepToken(t,n,r,i);if(i){var o=w(i.fee),a=l.validateAndParseAddress(i.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee(address,uint256,uint256,address)",[t.address,s.toHex(n),o,a])}return e.INTERFACE.encodeFunctionData("sweepToken(address,uint256)",[t.address,s.toHex(n)])},e.encodePull=function(t,n){return e.INTERFACE.encodeFunctionData("pull",[t.address,s.toHex(n)])},e.encodeWrapETH=function(t){return e.INTERFACE.encodeFunctionData("wrapETH",[s.toHex(t)])},e}();function E(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function T(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){E(o,r,i,a,s,"next",e)}function s(e){E(o,r,i,a,s,"throw",e)}a(void 0)}))}}function C(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function k(e,t,n){return t&&C(e.prototype,t),n&&C(e,n),e}function S(){return(S=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function I(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return P(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?P(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}x.INTERFACE=new i.Interface(c.abi);var N,R=(function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=Object.create((t&&t.prototype instanceof d?t:d).prototype),o=new E(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=v(a,n);if(s){if(s===c)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=l(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===c)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}(e,n,o),i}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var c={};function d(){}function f(){}function p(){}var h={};s(h,i,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(T([])));y&&y!==t&&n.call(y,i)&&(h=y);var A=p.prototype=d.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var r;this._invoke=function(i,o){function a(){return new t((function(r,a){!function r(i,o,a,s){var u=l(e[i],e,o);if("throw"!==u.type){var c=u.arg,d=c.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(d).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(u.arg)}(i,o,r,a)}))}return r=r?r.then(a,a):a()}}function v(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,v(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function T(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:C}}function C(){return{value:void 0,done:!0}}return f.prototype=p,s(A,"constructor",p),s(p,"constructor",f),f.displayName=s(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,s(e,a,"GeneratorFunction")),e.prototype=Object.create(A),e},e.awrap=function(e){return{__await:e}},g(b.prototype),s(b.prototype,o,(function(){return this})),e.AsyncIterator=b,e.async=function(t,n,r,i,o){void 0===o&&(o=Promise);var a=new b(u(t,n,r,i),o);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(A),s(A,a,"Generator"),s(A,i,(function(){return this})),s(A,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=T,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),u=n.call(o,"finallyLoc");if(s&&u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,c):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),c},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;x(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(N={exports:{}}),N.exports),M=function(){function e(e,t,n){this._midPrice=null,e.length>0||o(!1);var r=e[0].chainId;e.every((function(e){return e.chainId===r}))||o(!1);var i=t.wrapped;e[0].involvesToken(i)||o(!1),e[e.length-1].involvesToken(n.wrapped)||o(!1);for(var a,s=[i],u=O(e.entries());!(a=u()).done;){var l=a.value,c=l[1],d=s[l[0]];d.equals(c.token0)||d.equals(c.token1)||o(!1);var f=d.equals(c.token0)?c.token1:c.token0;s.push(f)}this.pools=e,this.path=s,this.input=t,this.output=null!=n?n:s[s.length-1]}return k(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.price;return e.nextInput.equals(t.token0)?{nextInput:t.token1,price:n.multiply(t.token0Price)}:{nextInput:t.token0,price:n.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new l.Price(this.input,this.output,e.denominator,e.numerator)}}]),e}();function L(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||o(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||o(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.path.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.path.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var D,F=function(){function e(e){var t=e.routes,n=e.tradeType,r=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){return r.wrapped.equals(e.route.input.wrapped)}))||o(!1),t.every((function(e){return i.wrapped.equals(e.route.output.wrapped)}))||o(!1);for(var a,u=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),c=new Set,d=O(t);!(a=d()).done;)for(var p,h=O(a.value.route.pools);!(p=h()).done;){var m=p.value;c.add(m instanceof s.Pool?s.Pool.getAddress(m.token0,m.token1,m.fee):f.Pair.getAddress(m.token0,m.token1))}u!=c.size&&o(!1),n!==l.TradeType.EXACT_INPUT&&o(!1),this.swaps=t,this.tradeType=n}e.fromRoute=function(){var t=T(R.mark((function t(n,r,i){var a,s,u,c,d;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=new Array(n.path.length),i!==l.TradeType.EXACT_INPUT&&o(!1),r.currency.equals(n.input)||o(!1),a[0]=r.wrapped,c=0;case 5:if(!(c<n.path.length-1)){t.next=15;break}return d=n.pools[c],t.next=9,d.getOutputAmount(a[c]);case 9:a[c+1]=t.sent[0];case 12:c++,t.next=5;break;case 15:return s=l.CurrencyAmount.fromFractionalAmount(n.input,r.numerator,r.denominator),u=l.CurrencyAmount.fromFractionalAmount(n.output,a[a.length-1].numerator,a[a.length-1].denominator),t.abrupt("return",new e({routes:[{inputAmount:s,outputAmount:u,route:n}],tradeType:i}));case 18:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=T(R.mark((function t(n,r){var i,a,s,u,c,d,f,p,h,m,y;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=[],r!==l.TradeType.EXACT_INPUT&&o(!1),a=O(n);case 3:if((s=a()).done){t.next=26;break}c=(u=s.value).route,d=u.amount,f=new Array(c.path.length),p=void 0,h=void 0,d.currency.equals(c.input)||o(!1),p=l.CurrencyAmount.fromFractionalAmount(c.input,d.numerator,d.denominator),f[0]=l.CurrencyAmount.fromFractionalAmount(c.input.wrapped,d.numerator,d.denominator),m=0;case 12:if(!(m<c.path.length-1)){t.next=22;break}return y=c.pools[m],t.next=16,y.getOutputAmount(f[m]);case 16:f[m+1]=t.sent[0];case 19:m++,t.next=12;break;case 22:h=l.CurrencyAmount.fromFractionalAmount(c.output,f[f.length-1].numerator,f[f.length-1].denominator),i.push({route:c,inputAmount:p,outputAmount:h});case 24:t.next=3;break;case 26:return t.abrupt("return",new e({routes:i,tradeType:r}));case 27:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(S({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){void 0===t&&(t=this.outputAmount),e.lessThan(y)&&o(!1);var n=new l.Fraction(A).add(e).invert().multiply(t.quotient).quotient;return l.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){return void 0===t&&(t=this.inputAmount),e.lessThan(y)&&o(!1),t},t.worstExecutionPrice=function(e){return new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=T(R.mark((function t(n,r,i,a,s,u,c){var d,p,h,m,A,g,b,v,w,x,E;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:h=void 0===(p=(d=void 0===a?{}:a).maxNumResults)?3:p,A=void 0===(m=d.maxHops)?3:m,void 0===s&&(s=[]),void 0===u&&(u=r),void 0===c&&(c=[]),n.length>0||o(!1),A>0||o(!1),r===u||s.length>0||o(!1),g=u.wrapped,b=i.wrapped,v=0;case 10:if(!(v<n.length)){t.next=49;break}if((w=n[v]).token0.equals(g.currency)||w.token1.equals(g.currency)){t.next=14;break}return t.abrupt("continue",46);case 14:if(!(w instanceof f.Pair)){t.next=17;break}if(!w.reserve0.equalTo(y)&&!w.reserve1.equalTo(y)){t.next=17;break}return t.abrupt("continue",46);case 17:return x=void 0,t.prev=18,t.next=22,w.getOutputAmount(g);case 22:x=t.sent[0],t.next=31;break;case 26:if(t.prev=26,t.t0=t.catch(18),!t.t0.isInsufficientInputAmountError){t.next=30;break}return t.abrupt("continue",46);case 30:throw t.t0;case 31:if(!x.currency.isToken||!x.currency.equals(b)){t.next=42;break}return t.t1=l.sortedInsert,t.t2=c,t.next=36,e.fromRoute(new M([].concat(s,[w]),r.currency,i),r,l.TradeType.EXACT_INPUT);case 36:t.t3=t.sent,t.t4=h,t.t5=L,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=46;break;case 42:if(!(A>1&&n.length>1)){t.next=46;break}return E=n.slice(0,v).concat(n.slice(v+1,n.length)),t.next=46,e.bestTradeExactIn(E,r,i,{maxNumResults:h,maxHops:A-1},[].concat(s,[w]),x,c);case 46:v++,t.next=10;break;case 49:return t.abrupt("return",c);case 50:case"end":return t.stop()}}),t,null,[[18,26]])})));return function(e,n,r,i,o,a,s){return t.apply(this,arguments)}}(),k(e,[{key:"route",get:function(){return 1!=this.swaps.length&&o(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=l.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=O(this.swaps);!(e=n()).done;){var r=e.value;t=t.add(r.route.midPrice.quote(r.inputAmount))}var i=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new l.Percent(i.numerator,i.denominator),this._priceImpact}}]),e}();(D=e.Protocol||(e.Protocol={})).V2="V2",D.V3="V3",D.MIXED="MIXED";var B=function(t){function n(n){var r;return(r=t.call(this,n.pairs,n.input,n.output)||this).protocol=e.Protocol.V2,r.pools=r.pairs,r}return I(n,t),n}(f.Route),j=function(t){function n(n){var r;return(r=t.call(this,n.pools,n.input,n.output)||this).protocol=e.Protocol.V3,r.path=n.tokenPath,r}return I(n,t),n}(s.Route),z=function(t){function n(n){var r;return(r=t.call(this,n.pools,n.input,n.output)||this).protocol=e.Protocol.MIXED,r}return I(n,t),n}(M),_=function(){function e(e){var t=e.v2Routes,n=e.v3Routes,r=e.tradeType,i=e.mixedRoutes;this.swaps=[],this.routes=[];for(var a,u=O(t);!(a=u()).done;){var l=a.value,c=l.inputAmount,d=l.outputAmount,p=new B(l.routev2);this.routes.push(p),this.swaps.push({route:p,inputAmount:c,outputAmount:d})}for(var h,m=O(n);!(h=m()).done;){var y=h.value,A=y.inputAmount,g=y.outputAmount,b=new j(y.routev3);this.routes.push(b),this.swaps.push({route:b,inputAmount:A,outputAmount:g})}if(i)for(var v,w=O(i);!(v=w()).done;){var x=v.value,E=x.inputAmount,T=x.outputAmount,C=new z(x.mixedRoute);this.routes.push(C),this.swaps.push({route:C,inputAmount:E,outputAmount:T})}this.tradeType=r;var k=this.swaps[0].inputAmount.currency,S=this.swaps[0].outputAmount.currency;this.swaps.every((function(e){return k.wrapped.equals(e.route.input.wrapped)}))||o(!1),this.swaps.every((function(e){return S.wrapped.equals(e.route.output.wrapped)}))||o(!1);for(var I,P=this.swaps.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),N=new Set,R=O(this.swaps);!(I=R()).done;)for(var M,L=O(I.value.route.pools);!(M=L()).done;){var D=M.value;if(D instanceof s.Pool)N.add(s.Pool.getAddress(D.token0,D.token1,D.fee));else{if(!(D instanceof f.Pair))throw new Error("Unexpected pool type in route when constructing trade object");N.add(f.Pair.getAddress(D.token0,D.token1))}}P!=N.size&&o(!1)}var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(y)&&o(!1),this.tradeType===l.TradeType.EXACT_OUTPUT)return t;var n=new l.Fraction(A).add(e).invert().multiply(t.quotient).quotient;return l.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(y)&&o(!1),this.tradeType===l.TradeType.EXACT_INPUT)return t;var n=new l.Fraction(A).add(e).multiply(t.quotient).quotient;return l.CurrencyAmount.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.fromRoutes=function(){var t=T(R.mark((function t(n,r,i,o){var a,u,l,c,d,p,h,m,y,A,g,b,v,w,x,E,T,C,k,S;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(a=[],u=[],l=[],c=O(n);!(d=c()).done;)m=new f.Trade(h=(p=d.value).routev2,p.amount,i),a.push({routev2:h,inputAmount:m.inputAmount,outputAmount:m.outputAmount});y=O(r);case 5:if((A=y()).done){t.next=14;break}return b=(g=A.value).routev3,v=g.amount,t.next=9,s.Trade.fromRoute(b,v,i);case 9:u.push({routev3:b,inputAmount:(w=t.sent).inputAmount,outputAmount:w.outputAmount});case 12:t.next=5;break;case 14:if(!o){t.next=25;break}x=O(o);case 16:if((E=x()).done){t.next=25;break}return C=(T=E.value).mixedRoute,k=T.amount,t.next=20,F.fromRoute(C,k,i);case 20:l.push({mixedRoute:C,inputAmount:(S=t.sent).inputAmount,outputAmount:S.outputAmount});case 23:t.next=16;break;case 25:return t.abrupt("return",new e({v2Routes:a,v3Routes:u,mixedRoutes:l,tradeType:i}));case 26:case"end":return t.stop()}}),t)})));return function(e,n,r,i){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=T(R.mark((function t(n,r,i){var o,a,u,l,c,d;return R.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=[],a=[],u=[],!(n instanceof f.Route)){t.next=9;break}l=new f.Trade(n,r,i),o=[{routev2:n,inputAmount:l.inputAmount,outputAmount:l.outputAmount}],t.next=26;break;case 9:if(!(n instanceof s.Route)){t.next=17;break}return t.next=12,s.Trade.fromRoute(n,r,i);case 12:a=[{routev3:n,inputAmount:(c=t.sent).inputAmount,outputAmount:c.outputAmount}],t.next=26;break;case 17:if(!(n instanceof M)){t.next=25;break}return t.next=20,F.fromRoute(n,r,i);case 20:u=[{mixedRoute:n,inputAmount:(d=t.sent).inputAmount,outputAmount:d.outputAmount}],t.next=26;break;case 25:throw new Error("Invalid route type");case 26:return t.abrupt("return",new e({v2Routes:o,v3Routes:a,mixedRoutes:u,tradeType:i}));case 27:case"end":return t.stop()}}),t)})));return function(e,n,r){return t.apply(this,arguments)}}(),k(e,[{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),l.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new l.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=l.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=O(this.swaps);!(e=n()).done;){var r=e.value;t=t.add(r.route.midPrice.quote(r.inputAmount))}var i=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new l.Percent(i.numerator,i.denominator),this._priceImpact}}]),e}();function U(e){var t=e.pools.reduce((function(e,t,n){var r=e.inputToken,i=e.path,o=e.types,a=t.token0.equals(r)?t.token1:t.token0;return 0===n?{inputToken:a,types:["address","uint24","address"],path:[r.address,t instanceof s.Pool?t.fee:8388608,a.address]}:{inputToken:a,types:[].concat(o,["uint24","address"]),path:[].concat(i,[t instanceof s.Pool?t.fee:8388608,a.address])}}),{inputToken:e.input.wrapped,path:[],types:[]});return p.pack(t.types,t.path)}var H=function(e){for(var t=[],n=0,r=0;r<e.pools.length;)(e.pools[n]instanceof s.Pool&&e.pools[r]instanceof f.Pair||e.pools[n]instanceof f.Pair&&e.pools[r]instanceof s.Pool)&&(t.push(e.pools.slice(n,r)),n=r),++r===e.pools.length&&t.push(e.pools.slice(n,r));return t},W=function(e,t){return e.reduce((function(e,t){var n=e.inputToken;if(!t.involvesToken(n))throw new Error("PATH");return{inputToken:t.token0.equals(n)?t.token1:t.token0}}),{inputToken:t}).inputToken},V=r.BigInt(0),q=new l.Percent(r.BigInt(50),r.BigInt(100)),X=function(){function t(){}return t.encodeV2Swap=function(e,n,r,i){var o=s.toHex(e.maximumAmountIn(n.slippageTolerance).quotient),a=s.toHex(e.minimumAmountOut(n.slippageTolerance).quotient),u=e.route.path.map((function(e){return e.address})),c=r?m:void 0===n.recipient?h:l.validateAndParseAddress(n.recipient);return e.tradeType===l.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[o,i?0:a,u,c]):t.INTERFACE.encodeFunctionData("swapTokensForExactTokens",[a,o,u,c])},t.encodeV3Swap=function(e,n,r,i){for(var o,a=[],u=O(e.swaps);!(o=u()).done;){var c=o.value,d=c.route,f=c.outputAmount,p=s.toHex(e.maximumAmountIn(n.slippageTolerance,c.inputAmount).quotient),y=s.toHex(e.minimumAmountOut(n.slippageTolerance,f).quotient),A=1===d.pools.length,g=r?m:void 0===n.recipient?h:l.validateAndParseAddress(n.recipient);if(A)a.push(e.tradeType===l.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:d.tokenPath[0].address,tokenOut:d.tokenPath[1].address,fee:d.pools[0].fee,recipient:g,amountIn:p,amountOutMinimum:i?0:y,sqrtPriceLimitX96:0}]):t.INTERFACE.encodeFunctionData("exactOutputSingle",[{tokenIn:d.tokenPath[0].address,tokenOut:d.tokenPath[1].address,fee:d.pools[0].fee,recipient:g,amountOut:y,amountInMaximum:p,sqrtPriceLimitX96:0}]));else{var b=s.encodeRouteToPath(d,e.tradeType===l.TradeType.EXACT_OUTPUT);a.push(e.tradeType===l.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInput",[{path:b,recipient:g,amountIn:p,amountOutMinimum:i?0:y}]):t.INTERFACE.encodeFunctionData("exactOutput",[{path:b,recipient:g,amountOut:y,amountInMaximum:p}]))}}return a},t.encodeMixedRouteSwap=function(e,n,r,i){var a=[];e.tradeType!==l.TradeType.EXACT_INPUT&&o(!1);for(var u,c=O(e.swaps);!(u=c()).done;){var d=u.value,f=d.route,p=d.outputAmount,y=s.toHex(e.maximumAmountIn(n.slippageTolerance,d.inputAmount).quotient),A=s.toHex(e.minimumAmountOut(n.slippageTolerance,p).quotient),g=1===f.pools.length,b=r?m:void 0===n.recipient?h:l.validateAndParseAddress(n.recipient),v=function(e){return e.pools.every((function(e){return e instanceof s.Pool}))};if(g)if(v(f))a.push(t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:f.path[0].address,tokenOut:f.path[1].address,fee:f.pools[0].fee,recipient:b,amountIn:y,amountOutMinimum:i?0:A,sqrtPriceLimitX96:0}]));else{var w=f.path.map((function(e){return e.address}));a.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[y,i?0:A,w,b]))}else!function(){for(var e=H(f),n=function(t){return t===e.length-1},r=void 0,i=f.input.wrapped,o=0;o<e.length;o++){var s=e[o];r=W(s,i);var u=new M([].concat(s),s[0].token0.equals(i)?s[0].token0:s[0].token1,r),l=new z(u);if(i=r,v(l)){var c={path:U(l),recipient:n(o)?b:m,amountIn:0==o?y:0,amountOutMinimum:n(o)?A:0};a.push(t.INTERFACE.encodeFunctionData("exactInput",[c]))}else{var d=[0==o?y:0,n(o)?A:0,l.path.map((function(e){return e.address})),n(o)?b:m];a.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",d))}}}()}return a},t.encodeSwaps=function(n,r,i){if(n instanceof _){n.swaps.every((function(t){return t.route.protocol==e.Protocol.V3||t.route.protocol==e.Protocol.V2||t.route.protocol==e.Protocol.MIXED}))||o(!1);for(var a,u=[],c=O(n.swaps);!(a=c()).done;){var d=a.value,p=d.route,h=d.inputAmount,m=d.outputAmount;if(p.protocol==e.Protocol.V2)u.push(new f.Trade(p,n.tradeType==l.TradeType.EXACT_INPUT?h:m,n.tradeType));else if(p.protocol==e.Protocol.V3)u.push(s.Trade.createUncheckedTrade({route:p,inputAmount:h,outputAmount:m,tradeType:n.tradeType}));else{if(p.protocol!=e.Protocol.MIXED)throw new Error("UNSUPPORTED_TRADE_PROTOCOL");u.push(F.createUncheckedTrade({route:p,inputAmount:h,outputAmount:m,tradeType:n.tradeType}))}}n=u}Array.isArray(n)||(n=[n]);var y=n.reduce((function(e,t){return e+(t instanceof s.Trade||t instanceof F?t.swaps.length:1)}),0),A=n[0];n.every((function(e){return e.inputAmount.currency.equals(A.inputAmount.currency)}))||o(!1),n.every((function(e){return e.outputAmount.currency.equals(A.outputAmount.currency)}))||o(!1),n.every((function(e){return e.tradeType===A.tradeType}))||o(!1);var g=[],b=A.inputAmount.currency.isNative,v=A.outputAmount.currency.isNative,w=A.tradeType===l.TradeType.EXACT_INPUT&&y>2,x=v||!!r.fee||!!i||w;r.inputTokenPermit&&(A.inputAmount.currency.isToken||o(!1),g.push(s.SelfPermit.encodePermit(A.inputAmount.currency,r.inputTokenPermit)));for(var E,T=O(n);!(E=T()).done;){var C=E.value;if(C instanceof f.Trade)g.push(t.encodeV2Swap(C,r,x,w));else if(C instanceof s.Trade)for(var k,S=O(t.encodeV3Swap(C,r,x,w));!(k=S()).done;)g.push(k.value);else{if(!(C instanceof F))throw new Error("Unsupported trade object");for(var I,P=O(t.encodeMixedRouteSwap(C,r,x,w));!(I=P()).done;)g.push(I.value)}}var N=l.CurrencyAmount.fromRawAmount(A.inputAmount.currency,0),R=l.CurrencyAmount.fromRawAmount(A.outputAmount.currency,0),M=n.reduce((function(e,t){return e.add(t.minimumAmountOut(r.slippageTolerance))}),R),L=n.reduce((function(e,t){return e.add(t.outputAmount)}),R),D=n.reduce((function(e,t){return e.add(t.maximumAmountIn(r.slippageTolerance))}),N);return{calldatas:g,sampleTrade:A,routerMustCustody:x,inputIsNative:b,outputIsNative:v,totalAmountIn:D,minimumAmountOut:M,quoteAmountOut:L}},t.swapCallParameters=function(e,n){var r=t.encodeSwaps(e,n),i=r.calldatas,o=r.sampleTrade,a=r.inputIsNative,u=r.totalAmountIn,c=r.minimumAmountOut;return r.routerMustCustody&&i.push(r.outputIsNative?x.encodeUnwrapWETH9(c.quotient,n.recipient,n.fee):x.encodeSweepToken(o.outputAmount.currency.wrapped,c.quotient,n.recipient,n.fee)),a&&(o.tradeType===l.TradeType.EXACT_OUTPUT||t.riskOfPartialFill(e))&&i.push(s.Payments.encodeRefundETH()),{calldata:v.encodeMulticall(i,n.deadlineOrPreviousBlockhash),value:s.toHex(a?u.quotient:V)}},t.swapAndAddCallParameters=function(n,r,i,a,u,c){var d=t.encodeSwaps(n,r,!0),f=d.calldatas,p=d.inputIsNative,h=d.outputIsNative,m=d.sampleTrade,y=d.totalAmountIn,A=d.quoteAmountOut,g=d.minimumAmountOut;r.outputTokenPermit&&(A.currency.isToken||o(!1),f.push(s.SelfPermit.encodePermit(A.currency,r.outputTokenPermit)));var w=m.route.chainId,E=i.pool.token0.wrapped.address===y.currency.wrapped.address,T=t.getPositionAmounts(i,E),C=T.positionAmountIn,k=T.positionAmountOut,S=p?l.WETH9[w]:C.currency.wrapped,I=h?l.WETH9[w]:k.currency.wrapped,P=k.subtract(A.wrapped);P.greaterThan(l.CurrencyAmount.fromRawAmount(k.currency,0))&&f.push(h?x.encodeWrapETH(P.quotient):x.encodePull(I,P.quotient)),f.push(p?x.encodeWrapETH(C.quotient):x.encodePull(S,C.quotient)),u!==e.ApprovalTypes.NOT_REQUIRED&&f.push(b.encodeApprove(S,u)),c!==e.ApprovalTypes.NOT_REQUIRED&&f.push(b.encodeApprove(I,c));var O,N=s.Position.fromAmounts({pool:i.pool,tickLower:i.tickLower,tickUpper:i.tickUpper,amount0:E?i.amount0.quotient.toString():g.quotient.toString(),amount1:E?g.quotient.toString():i.amount1.quotient.toString(),useFullPrecision:!1});return f.push(b.encodeAddLiquidity(i,N,a,r.slippageTolerance)),f.push(p?x.encodeUnwrapWETH9(V):x.encodeSweepToken(S,V)),f.push(h?x.encodeUnwrapWETH9(V):x.encodeSweepToken(I,V)),O=p?y.wrapped.add(C.wrapped).quotient:h?P.quotient:V,{calldata:v.encodeMulticall(f,r.deadlineOrPreviousBlockhash),value:O.toString()}},t.riskOfPartialFill=function(e){return Array.isArray(e)?e.some((function(e){return t.v3TradeWithHighPriceImpact(e)})):t.v3TradeWithHighPriceImpact(e)},t.v3TradeWithHighPriceImpact=function(e){return!(e instanceof f.Trade)&&e.priceImpact.greaterThan(q)},t.getPositionAmounts=function(e,t){var n=e.mintAmounts,r=n.amount1,i=l.CurrencyAmount.fromRawAmount(e.pool.token0,n.amount0),o=l.CurrencyAmount.fromRawAmount(e.pool.token1,r),a=t?[i,o]:[o,i];return{positionAmountIn:a[0],positionAmountOut:a[1]}},t}();X.INTERFACE=new i.Interface(d.abi),e.ADDRESS_THIS=m,e.ApproveAndCall=b,e.MSG_SENDER=h,e.MixedRoute=z,e.MixedRouteSDK=M,e.MixedRouteTrade=F,e.MulticallExtended=v,e.ONE=A,e.PaymentsExtended=x,e.RouteV2=B,e.RouteV3=j,e.SwapRouter=X,e.Trade=_,e.V2_FEE_PATH_PLACEHOLDER=8388608,e.ZERO=y,e.encodeMixedRouteToPath=U,e.getOutputOfPools=W,e.isMint=g,e.partitionMixedRouteByProtocol=H,e.tradeComparator=L}(dw)),dw);var nT,rT=cw.exports;!function(e){e.INVALID_CONFIGURATION="INVALID_CONFIGURATION",e.INVALID_SLIPPAGE="INVALID_SLIPPAGE",e.INVALID_MAX_HOPS="INVALID_MAX_HOPS",e.INVALID_ADDRESS="INVALID_ADDRESS",e.DUPLICATE_ADDRESSES="DUPLICATE_ADDRESSES",e.CHAIN_NOT_SUPPORTED="CHAIN_NOT_SUPPORTED",e.NO_ROUTES_AVAILABLE="NO_ROUTES_AVAILABLE",e.PROVIDER_CALL_ERROR="PROVIDER_CALL_ERROR",e.APPROVE_ERROR="APPROVE_ERROR",e.ALREADY_APPROVED_ERROR="ALREADY_APPROVED_ERROR"}(nT||(nT={}));class iT extends Error{message;code;constructor(e,t){super(e),this.message=e,this.code=t}}class oT extends iT{constructor(e){super(e||"Invalid configuration",nT.INVALID_CONFIGURATION)}}class aT extends iT{constructor(e,t){super(`Chain with ID ${e} is not a supported chain in environment ${t}`,nT.CHAIN_NOT_SUPPORTED)}}class sT extends iT{constructor(e){super(e,nT.INVALID_SLIPPAGE)}}class uT extends iT{constructor(e){super(e,nT.INVALID_MAX_HOPS)}}class lT extends iT{constructor(e){super(e,nT.INVALID_ADDRESS)}}class cT extends iT{constructor(){super("token in and token out addresses must be different",nT.DUPLICATE_ADDRESSES)}}class dT extends iT{constructor(){super("no routes available",nT.NO_ROUTES_AVAILABLE)}}class fT extends iT{constructor(e){super(e,nT.PROVIDER_CALL_ERROR)}}class pT extends iT{constructor(e){super(e,nT.APPROVE_ERROR)}}const hT=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],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"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",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"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];class mT{static abi=hT;static createInterface(){return new ma(hT)}static connect(e,t){return new Jl(e,hT,t)}}const yT=[{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Call[]",name:"calls",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"uint256",name:"gasUsed",type:"uint256"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}],AT="0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a";class gT extends $l{constructor(...e){e.length>1?super(...e):super(yT,AT,e[0])}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=AT;static abi=yT;static createInterface(){return new ma(yT)}static connect(e,t){return new Jl(e,yT,t)}}const bT=[{inputs:[{internalType:"address",name:"_admin",type:"address"},{internalType:"address",name:"_uniRouter",type:"address"},{internalType:"address",name:"_wimx",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ContractPaused",type:"error"},{inputs:[],name:"DeadlinePassed",type:"error"},{inputs:[],name:"FailedToRefundNativeTokens",type:"error"},{inputs:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"FailedToSendFees",type:"error"},{inputs:[{internalType:"uint256",name:"required",type:"uint256"},{internalType:"uint256",name:"actual",type:"uint256"}],name:"FailedToUnwrapNativeTokens",type:"error"},{inputs:[],name:"FailedToWithdrawNativeTokens",type:"error"},{inputs:[],name:"FeeTooHigh",type:"error"},{inputs:[],name:"IncorrectRecipient",type:"error"},{inputs:[],name:"InputTokenNotWrapped",type:"error"},{inputs:[],name:"NativeTokenAmountMismatch",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feeToken",type:"address"},{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"swapParams",type:"tuple"}],name:"exactInputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"swapParams",type:"tuple"}],name:"exactInputWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"swapParams",type:"tuple"}],name:"exactOutputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct ISecondaryFee.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"swapParams",type:"tuple"}],name:"exactOutputWithSecondaryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapNativeToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"erc20",type:"address"}],name:"withdrawFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"withdrawFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],vT="0x60806040523480156200001157600080fd5b50604051620031e1380380620031e183398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b61302b80620001b66000396000f3fe6080604052600436106101175760003560e01c806358e81a50116100a05780638456cb59116100645780638456cb59146102c457806391d14854146102d9578063a217fddf146102f9578063ac9650d81461030e578063d547741f1461032e57600080fd5b806358e81a50146102465780635ae401dc146102595780635c975abb146102795780635ebca7991461029157806368742da6146102a457600080fd5b80632f2ff15d116100e75780632f2ff15d146101cb57806336568abe146101eb578063383ebb0b1461020b5780633f4ba83a1461021e5780635640f6591461023357600080fd5b80620fa9fb1461012357806301ffc9a714610145578063116944b21461017a578063248a9ca31461019b57600080fd5b3661011e57005b600080fd5b34801561012f57600080fd5b5061014361013e3660046127c3565b61034e565b005b34801561015157600080fd5b506101656101603660046127fc565b61041a565b60405190151581526020015b60405180910390f35b61018d61018836600461298d565b610451565b604051908152602001610171565b3480156101a757600080fd5b5061018d6101b63660046129e2565b60009081526020819052604090206001015490565b3480156101d757600080fd5b506101436101e63660046129fb565b6106d3565b3480156101f757600080fd5b506101436102063660046129fb565b6106f8565b61018d610219366004612ae3565b61077b565b34801561022a57600080fd5b50610143610ae7565b61018d610241366004612ae3565b610b37565b61018d61025436600461298d565b610db2565b61026c610267366004612b8f565b6110e4565b6040516101719190612c2a565b34801561028557600080fd5b5060015460ff16610165565b61014361029f3660046129e2565b611119565b3480156102b057600080fd5b506101436102bf366004612c8c565b611266565b3480156102d057600080fd5b506101436112e1565b3480156102e557600080fd5b506101656102f43660046129fb565b61132f565b34801561030557600080fd5b5061018d600081565b34801561031a57600080fd5b5061026c610329366004612ca9565b611358565b34801561033a57600080fd5b506101436103493660046129fb565b61144c565b6103787f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828693361132f565b610394576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff9190612cea565b90506104156001600160a01b0383168483611471565b505050565b60006001600160e01b03198216637965db0b60e01b148061044b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061045f60015460ff1690565b1561047d5760405163ab35696f60e01b815260040160405180910390fd5b61048a82606001516114d4565b6104a75760405163519bdea760e01b815260040160405180910390fd5b4780156105e757826080015181146104d2576040516342f7487960e11b815260040160405180910390fd5b60035483516001600160a01b03908116911614610502576040516324d0121760e01b815260040160405180910390fd5b61056283608001518686808060200260200160405190810160405280939291908181526020016000905b828210156105585761054960408302860136819003810190612d03565b8152602001906001019061052c565b50505050506114fa565b608084018190526001546040516304e45aaf60e01b81526101009091046001600160a01b0316916304e45aaf9161059d908790600401612d5a565b60206040518083038185885af11580156105bb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105e09190612cea565b91506106cb565b61064c836000015184608001518787808060200260200160405190810160405280939291908181526020016000905b828210156106425761063360408302860136819003810190612d03565b81526020019060010190610616565b505050505061154c565b60808401526001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf90610685908690600401612d5a565b6020604051808303816000875af11580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612cea565b91505b509392505050565b6000828152602081905260409020600101546106ee816115a9565b61041583836115b3565b6001600160a01b038116331461076d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6107778282611637565b5050565b600061078960015460ff1690565b156107a75760405163ab35696f60e01b815260040160405180910390fd5b6107b482602001516114d4565b6107d15760405163519bdea760e01b815260040160405180910390fd5b60006107e0836000015161169c565b9050478015610992576003546001600160a01b03838116911614610817576040516324d0121760e01b815260040160405180910390fd5b8360600151811461083b576040516342f7487960e11b815260040160405180910390fd5b60008061089e86606001518989808060200260200160405190810160405280939291908181526020016000905b828210156108945761088560408302860136819003810190612d03565b81526020019060010190610868565b50505050506116ca565b606088018190526001546040516304dc09a360e11b81529294509092506000916101009091046001600160a01b0316906309b813469084906108e4908b90600401612e00565b60206040518083038185885af1158015610902573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109279190612cea565b905061098681848b8b808060200260200160405190810160405280939291908181526020016000905b8282101561097c5761096d60408302860136819003810190612d03565b81526020019060010190610950565b505050505061171d565b95505050505050610ae0565b6000806109f68487606001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156109ec576109dd60408302860136819003810190612d03565b815260200190600101906109c0565b5050505050611811565b606088018190526001546040516304dc09a360e11b81529294509092506000916101009091046001600160a01b0316906309b8134690610a3a908a90600401612e00565b6020604051808303816000875af1158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d9190612cea565b90506109868582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610ad357610ac460408302860136819003810190612d03565b81526020019060010190610aa7565b505050505061186b565b50505b9392505050565b610b117fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b53361132f565b610b2d576040516282b42960e81b815260040160405180910390fd5b610b356118c7565b565b6000610b4560015460ff1690565b15610b635760405163ab35696f60e01b815260040160405180910390fd5b610b7082602001516114d4565b610b8d5760405163519bdea760e01b815260040160405180910390fd5b6000610b9c8360000151611919565b9050478015610cd25783604001518114610bc9576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03838116911614610bf7576040516324d0121760e01b815260040160405180910390fd5b610c4d84604001518787808060200260200160405190810160405280939291908181526020016000905b8282101561055857610c3e60408302860136819003810190612d03565b81526020019060010190610c21565b6040858101829052600154905163b858183f60e01b81526101009091046001600160a01b03169163b858183f91610c88908890600401612e00565b60206040518083038185885af1158015610ca6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ccb9190612cea565b9250610add565b610d298285604001518888808060200260200160405190810160405280939291908181526020016000905b8282101561064257610d1a60408302860136819003810190612d03565b81526020019060010190610cfd565b604085810191909152600154905163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610d65908790600401612e00565b6020604051808303816000875af1158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da89190612cea565b9695505050505050565b6000610dc060015460ff1690565b15610dde5760405163ab35696f60e01b815260040160405180910390fd5b610deb82606001516114d4565b610e085760405163519bdea760e01b815260040160405180910390fd5b478015610fa55760035483516001600160a01b03908116911614610e3f576040516324d0121760e01b815260040160405180910390fd5b8260a001518114610e63576040516342f7487960e11b815260040160405180910390fd5b600080610ebc8560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561089457610ead60408302860136819003810190612d03565b81526020019060010190610e90565b60a08701819052600154604051635023b4df60e01b81529294509092506000916101009091046001600160a01b031690635023b4df908490610f02908a90600401612d5a565b60206040518083038185885af1158015610f20573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f459190612cea565b9050610f9a81848a8a808060200260200160405190810160405280939291908181526020016000905b8282101561097c57610f8b60408302860136819003810190612d03565b81526020019060010190610f6e565b945050505050610ae0565b60008061100385600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b828210156109ec57610ff460408302860136819003810190612d03565b81526020019060010190610fd7565b60a08701819052600154604051635023b4df60e01b81529294509092506000916101009091046001600160a01b031690635023b4df90611047908990600401612d5a565b6020604051808303816000875af1158015611066573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108a9190612cea565b9050610f9a866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610ad3576110d560408302860136819003810190612d03565b815260200190600101906110b8565b6060834211156111075760405163387b2e5560e11b815260040160405180910390fd5b6111118383611358565b949350505050565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111869190612cea565b9050818110156111cc5760405162461bcd60e51b8152602060048201526011602482015270092dce6eaccccd2c6d2cadce840ae929ab607b1b6044820152606401610764565b801561077757600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561121857600080fd5b505af115801561122c573d6000803e3d6000fd5b50505050600061123c3383611925565b905080610415576040516342fb4ceb60e11b81526004810184905260248101839052604401610764565b6112907f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828693361132f565b6112ac576040516282b42960e81b815260040160405180910390fd5b47156112de5760006112be8247611925565b90508061077757604051633398652560e11b815260040160405180910390fd5b50565b61130b7ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f63361132f565b611327576040516282b42960e81b815260040160405180910390fd5b610b356119cf565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b038111156113725761137261286a565b6040519080825280602002602001820160405280156113a557816020015b60608152602001906001900390816113905790505b50905060005b8281101561144557611415308585848181106113c9576113c9612e13565b90506020028101906113db9190612e29565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a0a92505050565b82828151811061142757611427612e13565b6020026020010181905250808061143d90612e85565b9150506113ab565b5092915050565b600082815260208190526040902060010154611467816115a9565b6104158383611637565b6040516001600160a01b03831660248201526044810182905261041590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a2f565b60006001600160a01b03821633148061044b57506001600160a01b038216301492915050565b600061150582611b04565b506000806115138585611b77565b90925090506115228286612e9e565b945061152d81611ca0565b600354611543906001600160a01b031686611d7f565b50929392505050565b600061155782611b04565b506000806115658585611b77565b90925090506115748286612e9e565b94506115808682611e7c565b6115956001600160a01b038716333088611f85565b61159f8686611d7f565b5092949350505050565b6112de8133611fc3565b6115bd828261132f565b610777576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556115f33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611641828261132f565b15610777576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080601483516116ad9190612e9e565b905060006116bd8483601461201c565b9050611111816000612129565b60008060006116d884611b04565b905060006116e882612710612eb1565b90506116f7866127108361218e565b600354909350611710906001600160a01b031684611d7f565b85935050505b9250929050565b600080600061172c8685611b77565b9150915061173981611ca0565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561178957600080fd5b505af115801561179d573d6000803e3d6000fd5b5050505060008287876117b09190612e9e565b6117ba9190612e9e565b604051909150600090339083156108fc0290849084818181858888f193505050509050806117fb576040516382e4f46960e01b815260040160405180910390fd5b6118058489612eb1565b98975050505050505050565b600080600061181f84611b04565b9050600061182f82612710612eb1565b905061183e866127108361218e565b925061184a8784611d7f565b61185f6001600160a01b038816333089611f85565b50939590945092505050565b600080600061187a8685611b77565b9150915061188887826121ce565b6118b233836118978989612e9e565b6118a19190612e9e565b6001600160a01b038a169190611471565b6118bc8287612eb1565b979650505050505050565b6118cf6122d5565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061044b8282612129565b6000814710156119775760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610764565b6040516001600160a01b038416908390600081818185875af1925050503d80600081146119c0576040519150601f19603f3d011682016040523d82523d6000602084013e6119c5565b606091505b5090949350505050565b6119d761231e565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336118fc565b6060610ae08383604051806060016040528060278152602001612fcf60279139612364565b6000611a84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123d29092919063ffffffff16565b9050805160001480611aa5575080806020019051810190611aa59190612ec4565b6104155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610764565b6000805b8251811015611b4e57828181518110611b2357611b23612e13565b60200260200101516020015182611b3a9190612eb1565b915080611b4681612e85565b915050611b08565b506103e8811115611b725760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611b9457611b9461286a565b604051908082528060200260200182016040528015611bd957816020015b6040805180820190915260008082526020820152815260200190600190039081611bb25790505b50905060005b8351811015611c98576000611c1e858381518110611bff57611bff612e13565b602002602001015160200151612710886123e19092919063ffffffff16565b90506040518060400160405280868481518110611c3d57611c3d612e13565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611c6d57611c6d612e13565b6020908102919091010152611c828185612eb1565b9350508080611c9090612e85565b915050611bdf565b509250929050565b60005b8151811015610777576000828281518110611cc057611cc0612e13565b602002602001015190506000611cde82600001518360200151611925565b905080611d1557815160208301516040516208c3b360e61b81526001600160a01b0390921660048301526024820152604401610764565b81600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac358460200151604051611d6291815260200190565b60405180910390a350508080611d7790612e85565b915050611ca3565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df99190612cea565b10156107775760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015611e58573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104159190612ec4565b60005b815181101561041557611ee233838381518110611e9e57611e9e612e13565b602002602001015160000151848481518110611ebc57611ebc612e13565b602002602001015160200151866001600160a01b0316611f85909392919063ffffffff16565b818181518110611ef457611ef4612e13565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e858581518110611f5057611f50612e13565b602002602001015160200151604051611f6b91815260200190565b60405180910390a480611f7d81612e85565b915050611e7f565b6040516001600160a01b0380851660248301528316604482015260648101829052611fbd9085906323b872dd60e01b9060840161149d565b50505050565b611fcd828261132f565b61077757611fda81612483565b611fe5836020612495565b604051602001611ff6929190612ee6565b60408051601f198184030181529082905262461bcd60e51b825261076491600401612f5b565b60608161202a81601f612eb1565b10156120695760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610764565b6120738284612eb1565b845110156120b75760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610764565b6060821580156120d65760405191506000825260208201604052612120565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561210f5780518352602092830192016120f7565b5050858452601f01601f1916604052505b50949350505050565b6000612136826014612eb1565b8351101561217e5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610764565b500160200151600160601b900490565b600061219b8484846123e1565b9050600082806121ad576121ad612f6e565b8486091115610ae05760001981106121c457600080fd5b6001019392505050565b60005b8151811015610415576122328282815181106121ef576121ef612e13565b60200260200101516000015183838151811061220d5761220d612e13565b602002602001015160200151856001600160a01b03166114719092919063ffffffff16565b81818151811061224457612244612e13565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106122a0576122a0612e13565b6020026020010151602001516040516122bb91815260200190565b60405180910390a4806122cd81612e85565b9150506121d1565b60015460ff16610b355760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610764565b60015460ff1615610b355760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610764565b6060600080856001600160a01b0316856040516123819190612f84565b600060405180830381855af49150503d80600081146123bc576040519150601f19603f3d011682016040523d82523d6000602084013e6123c1565b606091505b5091509150610da886838387612630565b606061111184846000856126a9565b6000838302816000198587098281108382030391505080841161240357600080fd5b8060000361241657508290049050610ae0565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061044b6001600160a01b03831660145b606060006124a4836002612fa0565b6124af906002612eb1565b6001600160401b038111156124c6576124c661286a565b6040519080825280601f01601f1916602001820160405280156124f0576020820181803683370190505b509050600360fc1b8160008151811061250b5761250b612e13565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061253a5761253a612e13565b60200101906001600160f81b031916908160001a905350600061255e846002612fa0565b612569906001612eb1565b90505b60018111156125e1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061259d5761259d612e13565b1a60f81b8282815181106125b3576125b3612e13565b60200101906001600160f81b031916908160001a90535060049490941c936125da81612fb7565b905061256c565b508315610ae05760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610764565b6060831561269f578251600003612698576001600160a01b0385163b6126985760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610764565b5081611111565b6111118383612779565b60608247101561270a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610764565b600080866001600160a01b031685876040516127269190612f84565b60006040518083038185875af1925050503d8060008114612763576040519150601f19603f3d011682016040523d82523d6000602084013e612768565b606091505b50915091506118bc87838387612630565b8151156127895781518083602001fd5b8060405162461bcd60e51b81526004016107649190612f5b565b6001600160a01b03811681146112de57600080fd5b8035611b72816127a3565b600080604083850312156127d657600080fd5b82356127e1816127a3565b915060208301356127f1816127a3565b809150509250929050565b60006020828403121561280e57600080fd5b81356001600160e01b031981168114610ae057600080fd5b60008083601f84011261283857600080fd5b5081356001600160401b0381111561284f57600080fd5b6020830191508360208260061b850101111561171657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156128a2576128a261286a565b60405290565b604051608081016001600160401b03811182821017156128a2576128a261286a565b604051601f8201601f191681016001600160401b03811182821017156128f2576128f261286a565b604052919050565b600060e0828403121561290c57600080fd5b612914612880565b90508135612921816127a3565b81526020820135612931816127a3565b6020820152604082013562ffffff8116811461294c57600080fd5b604082015261295d606083016127b8565b60608201526080820135608082015260a082013560a082015261298260c083016127b8565b60c082015292915050565b600080600061010084860312156129a357600080fd5b83356001600160401b038111156129b957600080fd5b6129c586828701612826565b90945092506129d9905085602086016128fa565b90509250925092565b6000602082840312156129f457600080fd5b5035919050565b60008060408385031215612a0e57600080fd5b8235915060208301356127f1816127a3565b600060808284031215612a3257600080fd5b612a3a6128a8565b905081356001600160401b0380821115612a5357600080fd5b818401915084601f830112612a6757600080fd5b8135602082821115612a7b57612a7b61286a565b612a8d601f8301601f191682016128ca565b92508183528681838601011115612aa357600080fd5b81818501828501376000818385010152828552612ac18187016127b8565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612af857600080fd5b83356001600160401b0380821115612b0f57600080fd5b612b1b87838801612826565b90955093506020860135915080821115612b3457600080fd5b50612b4186828701612a20565b9150509250925092565b60008083601f840112612b5d57600080fd5b5081356001600160401b03811115612b7457600080fd5b6020830191508360208260051b850101111561171657600080fd5b600080600060408486031215612ba457600080fd5b8335925060208401356001600160401b03811115612bc157600080fd5b612bcd86828701612b4b565b9497909650939450505050565b60005b83811015612bf5578181015183820152602001612bdd565b50506000910152565b60008151808452612c16816020860160208601612bda565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612c7f57603f19888603018452612c6d858351612bfe565b94509285019290850190600101612c51565b5092979650505050505050565b600060208284031215612c9e57600080fd5b8135610ae0816127a3565b60008060208385031215612cbc57600080fd5b82356001600160401b03811115612cd257600080fd5b612cde85828601612b4b565b90969095509350505050565b600060208284031215612cfc57600080fd5b5051919050565b600060408284031215612d1557600080fd5b604051604081018181106001600160401b0382111715612d3757612d3761286a565b6040528235612d45816127a3565b81526020928301359281019290925250919050565b60e0810161044b828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b6000815160808452612dce6080850182612bfe565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b602081526000610ae06020830184612db9565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612e4057600080fd5b8301803591506001600160401b03821115612e5a57600080fd5b60200191503681900382131561171657600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612e9757612e97612e6f565b5060010190565b8181038181111561044b5761044b612e6f565b8082018082111561044b5761044b612e6f565b600060208284031215612ed657600080fd5b81518015158114610ae057600080fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612f1e816017850160208801612bda565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612f4f816028840160208801612bda565b01602801949350505050565b602081526000610ae06020830184612bfe565b634e487b7160e01b600052601260045260246000fd5b60008251612f96818460208701612bda565b9190910192915050565b808202811582820484141761044b5761044b612e6f565b600081612fc657612fc6612e6f565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122060463b8c42f8b619093981b0f594938e67042d40ad9d5eadd4922e9bc3000dde64736f6c63430008130033";class wT extends $l{constructor(...e){e.length>1?super(...e):super(bT,vT,e[0])}deploy(e,t,n,r){return super.deploy(e,t,n,r||{})}getDeployTransaction(e,t,n,r){return super.getDeployTransaction(e,t,n,r||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=vT;static abi=bT;static createInterface(){return new ma(bT)}static connect(e,t){return new Jl(e,bT,t)}}const xT=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"CollectProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid1",type:"uint256"}],name:"Flash",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"observationCardinalityNextOld",type:"uint16"},{indexed:!1,internalType:"uint16",name:"observationCardinalityNextNew",type:"uint16"}],name:"IncreaseObservationCardinalityNext",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"feeProtocol0Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol0New",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1New",type:"uint8"}],name:"SetFeeProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"int256",name:"amount0",type:"int256"},{indexed:!1,internalType:"int256",name:"amount1",type:"int256"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Swap",type:"event"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"burn",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collect",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collectProtocol",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fee",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal0X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal1X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"flash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"}],name:"increaseObservationCardinalityNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"liquidity",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxLiquidityPerTick",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mint",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"observations",outputs:[{internalType:"uint32",name:"blockTimestamp",type:"uint32"},{internalType:"int56",name:"tickCumulative",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityCumulativeX128",type:"uint160"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32[]",name:"secondsAgos",type:"uint32[]"}],name:"observe",outputs:[{internalType:"int56[]",name:"tickCumulatives",type:"int56[]"},{internalType:"uint160[]",name:"secondsPerLiquidityCumulativeX128s",type:"uint160[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"positions",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFees",outputs:[{internalType:"uint128",name:"token0",type:"uint128"},{internalType:"uint128",name:"token1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint8",name:"feeProtocol0",type:"uint8"},{internalType:"uint8",name:"feeProtocol1",type:"uint8"}],name:"setFeeProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"slot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint16",name:"observationIndex",type:"uint16"},{internalType:"uint16",name:"observationCardinality",type:"uint16"},{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"},{internalType:"uint8",name:"feeProtocol",type:"uint8"},{internalType:"bool",name:"unlocked",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"snapshotCumulativesInside",outputs:[{internalType:"int56",name:"tickCumulativeInside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityInsideX128",type:"uint160"},{internalType:"uint32",name:"secondsInside",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"},{internalType:"bytes",name:"data",type:"bytes"}],name:"swap",outputs:[{internalType:"int256",name:"amount0",type:"int256"},{internalType:"int256",name:"amount1",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int16",name:"",type:"int16"}],name:"tickBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tickSpacing",outputs:[{internalType:"int24",name:"",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"",type:"int24"}],name:"ticks",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"},{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"},{internalType:"int56",name:"tickCumulativeOutside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityOutsideX128",type:"uint160"},{internalType:"uint32",name:"secondsOutside",type:"uint32"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"token0",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"token1",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],ET="0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a";class TT extends $l{constructor(...e){e.length>1?super(...e):super(xT,ET,e[0])}deploy(e){return super.deploy(e||{})}getDeployTransaction(e){return super.getDeployTransaction(e||{})}attach(e){return super.attach(e)}connect(e){return super.connect(e)}static bytecode=ET;static abi=xT;static createInterface(){return new ma(xT)}static connect(e,t){return new Jl(e,xT,t)}}const CT=2e6;async function kT(e,t,n){const r=TT.createInterface(),i=ST(t,r),o=[];return i&&n.forEach((e=>{e&&o.push({target:e,callData:i,gasLimit:Rn.from("1000000")})})),e.callStatic.multicall(o)}const ST=(e,t)=>{const n=t?.getFunction(e);return n?t?.encodeFunctionData(n):void 0},IT={"0xcdca1753":["uint256","uint160[]","uint32[]","uint256"],"0xc6a5026a":["uint256","uint160","uint32","uint256"],"0x2f80bb1d":["uint256","uint160[]","uint32[]","uint256"],"0xbd21704a":["uint256","uint160","uint32","uint256"]};const PT=lo("decimals()").substring(0,10);async function OT(e,t,n){if("native"===e)return n.decimals;try{const n=await t.call({to:e,data:PT});return parseInt(n,16)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new fT(`failed to get ERC20 decimals: ${t}`)}}function NT(e){if(e===gi)return!1;try{return ti(e),!0}catch(e){return!1}}const RT=e=>"native"===e||NT(e),MT=e=>new mg(e.chainId,e.address,e.decimals,e.symbol,e.name),LT=e=>({chainId:e.chainId,address:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name,type:"erc20"}),DT=e=>{const t=MT(e.token);return ug.fromRawAmount(t,e.value.toString())},FT=(e,t)=>({value:e,token:t}),BT=e=>"erc20"===e.token.type,jT=e=>"native"===e.token.type,zT=e=>"native"===e.type,_T=(e,t)=>{if(BT(e)&&BT(t))return((e,t)=>{if(e.token.address!==t.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:e.value.add(t.value),token:e.token}})(e,t);if(jT(e)&&jT(t))return((e,t)=>({value:e.value.add(t.value),token:e.token}))(e,t);throw new Error("Token mismatch: token types must be the same")},UT=(e,t)=>{if(BT(e)&&BT(t))return((e,t)=>{if(e.token.address!==t.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:e.value.sub(t.value),token:e.token}})(e,t);if(jT(e)&&jT(t))return((e,t)=>({value:e.value.sub(t.value),token:e.token}))(e,t);throw new Error("Token mismatch: token types must be the same")},HT=e=>"native"===e.type?{address:"",chainId:e.chainId,decimals:e.decimals,symbol:e.symbol,name:e.name}:e,WT=e=>({token:HT(e.token),value:e.value});async function VT(e,t,n,r,i){const o=n.map((e=>iw.quoteCallParameters(e,DT(r),i,{useQuoterV2:!0}).calldata));let a;try{a=await async function(e,t,n,r){const i=new Array(t.length);for(const e in t)i[e]={target:n,callData:t[e],gasLimit:r?.gasRequired??CT};return e.callStatic.multicall(i)}(e,o,t)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new fT(`failed multicall: ${t}`)}const s=[];for(const e in a.returnData){const t=o[e].substring(0,10),u=IT[t];if(!u)throw new Error("No quoting function signature found");if("0x"!==a.returnData[e].returnData)try{const t=uo.decode(u,a.returnData[e].returnData);if(t){const o=t[0];if(!(o instanceof Rn))throw new Error("Expected BigNumber");const a=LT(n[e].input),u=LT(n[e].output);s.push({route:n[e],amountIn:i===GA.EXACT_INPUT?r:FT(o,a),amountOut:i===GA.EXACT_INPUT?FT(o,u):r,gasEstimate:Rn.from(t[3]),tradeType:i})}}catch{}}return s}function qT({factoryAddress:e,erc20Pair:t,fee:n,initCodeHashManualOverride:r}){return t=XT(t),oi(e,eh(["bytes"],[uo.encode(["address","address","uint24"],[t[0].address,t[1].address,n])]),r??"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54")}const XT=e=>{if(e[0].address.toLowerCase()>e[1].address.toLowerCase()){const t=e[0];e[0]=e[1],e[1]=t}return e},GT=[nv.LOWEST,nv.LOW,nv.MEDIUM,nv.HIGH],ZT=(e,t,n)=>{const r=((e,t)=>{const n=new Map,r=[];[...e,...t].forEach((e=>{n.set(e.address,e),r.push(e.address)}));const i=[...new Set([...r])],o=[];for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){const r=n.get(i[e]),a=n.get(i[t]);r&&a&&o.push([r,a])}return o})(e,t),i=[];for(let e=0;e<r.length;e++)for(let t=0;t<GT.length;t++){const o=qT({factoryAddress:n,erc20Pair:r[e],fee:GT[t]});i.push({erc20Pair:r[e],fee:GT[t],poolAddress:o})}return i},KT="liquidity",QT="slot0";class JT{provider;routingTokens;routingContracts;constructor(e,t,n){this.provider=e,this.routingTokens=t,this.routingContracts=n}async findOptimalRoute(e,t,n,r=2){const[i,o]=this.determineERC20InAndERC20Out(n,e,t),a=gT.connect(this.routingContracts.multicallAddress,this.provider),s=[i,o],u=await(async(e,t,n,r)=>{const i=ZT(t,n,r),o=i.map((e=>e.poolAddress));let a,s;try{[a,s]=await Promise.all([kT(e,QT,o),kT(e,KT,o)])}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new fT(`failed multicall: ${t}`)}const u=a.returnData,l=s.returnData,c=TT.createInterface(),d=[];return i.forEach(((e,t)=>{const n="0x"===a.returnData[t].returnData,r="0x"===s.returnData[t].returnData;if(n||r)return;const i=c.decodeFunctionResult(QT,u[t].returnData),o=c.decodeFunctionResult(KT,l[t].returnData),f=i.sqrtPriceX96.isZero(),p=o[0].isZero();if(f||p)return;const h=new Gv(MT(e.erc20Pair[0]),MT(e.erc20Pair[1]),e.fee,i.sqrtPriceX96.toString(),o.toString(),i.tick);d.push(h)})),d})(a,s,this.routingTokens,this.routingContracts.factoryAddress);if(0===u.length)throw new dT;const l=$T(i,o,u,r,[],[],i);if(0===l.length)throw new dT;return await this.getBestQuoteFromRoutes(a,l,e,n)}async getBestQuoteFromRoutes(e,t,n,r){const i=await VT(e,this.routingContracts.quoterAddress,t,n,r);if(0===i.length)throw new dT;if(r===GA.EXACT_INPUT)return this.bestQuoteForAmountIn(i);if(r===GA.EXACT_OUTPUT)return this.bestQuoteForAmountOut(i);throw new Error("Invalid trade type")}bestQuoteForAmountIn(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountOut.value.gt(t.amountOut.value)&&(t=e[n]);return t}bestQuoteForAmountOut(e){let t=e[0];for(let n=1;n<e.length;n++)e[n].amountIn.value.lt(t.amountIn.value)&&(t=e[n]);return t}determineERC20InAndERC20Out(e,t,n){return e===GA.EXACT_INPUT?[t.token,n]:[n,t.token]}}const $T=(e,t,n,r,i=[],o=[],a=e)=>{const s=MT(e),u=MT(t),l=MT(a);for(const e of n){const c=e.involvesToken(s),d=i.find((t=>{return(n=e)===(r=t)||n.token0.equals(r.token0)&&n.token1.equals(r.token1)&&n.fee===r.fee;var n,r}));if(!c||d)continue;const f=e.token0.equals(s)?e.token1:e.token0;f.equals(u)?o.push(new Yv([...i,e],l,u)):r>1&&$T(LT(f),t,n,r-1,[...i,e],o,a)}return o},eC=async(e,t)=>{const n=await e.getFeeData().catch((()=>null));return n?(r=n).maxFeePerGas&&r.maxPriorityFeePerGas?FT(n.maxFeePerGas.add(n.maxPriorityFeePerGas),t):n.gasPrice?FT(n.gasPrice,t):null:null;var r},tC=(e,t)=>FT(t.mul(e.value),e.token),nC=async(e,t,n,r)=>{const i=await(async(e,t,n,r)=>{const i=mT.connect(n.token.address,e);let o;try{o=await i.allowance(t,r)}catch(e){const t=e instanceof Error?e.message:"Unknown Error";throw new pT(`failed to get allowance: ${t}`)}const a=n.value.sub(o);return!a.isNegative()&&!a.isZero()})(e,t,n,r);return i?((e,t,n)=>{if(e===n)throw new pT("owner and spender addresses are the same");return{data:mT.createInterface().encodeFunctionData("approve",[n,t.value]),to:t.token.address,value:0,from:e}})(t,n,r):null};const rC=async(e,t,n,r)=>{const i=await nC(e,t,n.amount,n.spender);if(!i)return null;const o=await async function(e,t,n,r){const i=mT.connect(r,e);return await i.estimateGas.approve(n,Ti,{from:t})}(e,t,n.spender,n.amount.token.address),a=r?tC(r,o):null;return{transaction:i,gasFeeEstimate:a?WT(a):null}},iC=e=>"native"===e.type;class oC{nativeToken;wrappedToken;constructor(e,t){this.nativeToken=e,this.wrappedToken=t}wrapAmount(e){if(!iC(e.token))throw new Error(`cannot wrap non-native token: ${e.token.address}`);return FT(e.value,this.wrappedToken)}unwrapAmount(e){if(e.token.address.toLowerCase()!==this.wrappedToken.address.toLowerCase())throw new Error(`cannot unwrap non-wrapped token ${e.token.address}`);return FT(e.value,this.nativeToken)}maybeWrapToken(e){return iC(e)?this.wrappedToken:e}maybeWrapAmount(e){return FT(e.value,this.maybeWrapToken(e.token))}}const aC=e=>{if(1===e.toString().split(".").length)return new dg(e,100);const t=(e/100).toString().split("."),n=t[0]+t[1],r=10**t[1].length;return new dg(n,r)};const sC=(e,t,n,r)=>{const i=function(e){return e.tradeType===GA.EXACT_INPUT?e.amountOut:e.amountIn}(t),o=iC(r)?e.unwrapAmount(i):i,a=FT(function(e,t,n){const r=aC(n).add(1),i=(e===GA.EXACT_INPUT?r.invert():r).multiply(t.toString()).quotient;return Rn.from(i.toString())}(t.tradeType,o.value,n),r);return{quotedAmount:o,quotedAmountWithMaxSlippage:a}};const uC=Math.floor(Date.now()/1e3)+900;const lC=13473,cC={chainId:lC,address:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439",decimals:18,symbol:"WIMX",name:"Wrapped Immutable Testnet Token",type:"erc20"},dC="multicall(uint256,bytes[])";function fC(e,t,n,r,i,o,a,s,u,l){const{route:c}=r.swaps[0],d=1===c.pools.length,f=i.length>0;return d?f?function(e,t,n,r,i,o,a,s){const u=o.map((e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient}))),l=[];return t.tradeType===GA.EXACT_INPUT&&l.push(a.encodeFunctionData("exactInputSingleWithSecondaryFee",[u,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountIn:r,amountOutMinimum:i,sqrtPriceLimitX96:0}])),t.tradeType===GA.EXACT_OUTPUT&&l.push(a.encodeFunctionData("exactOutputSingleWithSecondaryFee",[u,{tokenIn:n.tokenPath[0].address,tokenOut:n.tokenPath[1].address,fee:n.pools[0].fee,recipient:e,amountInMaximum:r,amountOut:i,sqrtPriceLimitX96:0}])),zT(s)&&l.push(a.encodeFunctionData("unwrapNativeToken",[i])),l}(n,r,c,u,l,i,o,t):function(e,t,n,r,i,o,a,s,u){const l=[];return r.tradeType===GA.EXACT_INPUT&&l.push(s.encodeFunctionData("exactInputSingle",[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountIn:o,amountOutMinimum:a,sqrtPriceLimitX96:0}])),r.tradeType===GA.EXACT_OUTPUT&&l.push(s.encodeFunctionData("exactOutputSingle",[{tokenIn:i.tokenPath[0].address,tokenOut:i.tokenPath[1].address,fee:i.pools[0].fee,recipient:n,amountInMaximum:o,amountOut:a,sqrtPriceLimitX96:0}])),r.tradeType===GA.EXACT_OUTPUT&&zT(e)&&l.push(u.encodeFunctionData("refundETH")),zT(t)&&l.push(u.encodeFunctionData("unwrapWETH9(uint256)",[a])),l}(e,t,n,r,c,u,l,a,s):f?function(e,t,n,r,i,o,a,s){const u=Rv(n,t.tradeType===GA.EXACT_OUTPUT),l=o.map((e=>({feeBasisPoints:e.basisPoints,recipient:e.recipient}))),c=[];return t.tradeType===GA.EXACT_INPUT&&c.push(a.encodeFunctionData("exactInputWithSecondaryFee",[l,{path:u,recipient:e,amountIn:r,amountOutMinimum:i}])),t.tradeType===GA.EXACT_OUTPUT&&c.push(a.encodeFunctionData("exactOutputWithSecondaryFee",[l,{path:u,recipient:e,amountInMaximum:r,amountOut:i}])),zT(s)&&c.push(a.encodeFunctionData("unwrapNativeToken",[i])),c}(n,r,c,u,l,i,o,t):function(e,t,n,r,i,o,a,s,u){const l=Rv(i,r.tradeType===GA.EXACT_OUTPUT),c=[];return r.tradeType===GA.EXACT_INPUT&&c.push(s.encodeFunctionData("exactInput",[{path:l,recipient:n,amountIn:o,amountOutMinimum:a}])),r.tradeType===GA.EXACT_OUTPUT&&c.push(s.encodeFunctionData("exactOutput",[{path:l,recipient:n,amountInMaximum:o,amountOut:a}])),r.tradeType===GA.EXACT_OUTPUT&&zT(e)&&c.push(u.encodeFunctionData("refundETH")),zT(t)&&c.push(u.encodeFunctionData("unwrapWETH9(uint256)",[a])),c}(e,t,n,r,c,u,l,a,s)}function pC(e,t,n,r,i,o,a,s){const u=wT.createInterface(),l=fC(e,t,r,n,o,u,rT.SwapRouter.INTERFACE,rT.PaymentsExtended.INTERFACE,a,s);return u.encodeFunctionData(dC,[i.deadlineOrPreviousBlockhash,l])}function hC(e,t,n,r,i,o,a,s,u,l){const c=((e,t,n,r,i)=>zT(e)?0===i.length?n:r:t)(t,r,a,s,l),{calldata:d,maximumAmountIn:f}=function(e,t,n,r,i,o,a){const s=Qv.createUncheckedTrade({route:n.route,inputAmount:DT(n.amountIn),outputAmount:DT(n.amountOut),tradeType:n.tradeType}),u={slippageTolerance:aC(i),recipient:r,deadlineOrPreviousBlockhash:o},l=Nv(s.maximumAmountIn(u.slippageTolerance).quotient),c=Nv(s.minimumAmountOut(u.slippageTolerance).quotient);return{calldata:pC(e,t,s,r,u,a,l,c),maximumAmountIn:l}}(e,t,n,c,i,o,l),p=u?tC(u,n.gasEstimate):null,h=((e,t)=>"native"===e.type?t:"0x00")(e,f);return{transaction:{data:d,to:l.length>0?s:a,value:h,from:r},gasFeeEstimate:p?WT(p):null}}function mC(e,t,n,r){const i=((e,t,n,r)=>{if(e.tradeType===GA.EXACT_OUTPUT){const t=iC(n.token)?r.unwrapAmount(e.amountIn):e.amountIn;return n.addAmount(t),r.maybeWrapAmount(n.amountWithFeesApplied())}return r.maybeWrapAmount(t)})(e,t,n,r);return{gasEstimate:e.gasEstimate,route:e.route,amountIn:i,amountOut:e.amountOut,tradeType:e.tradeType}}const yC={[lC]:{chainId:lC,rpcUrl:"https://rpc.testnet.immutable.com",contracts:{[lC]:{multicall:"0x4DB567A44451b27C1fAd7f52e1cDf64b915d62f9",coreFactory:"0xb18c44b211065E69844FbA9AE146DA362104AfBf",quoterV2:"0x87854A7D4b9BaC3D37f4516A1Ac7F36fB5ad539f",peripheryRouter:"0x786ec643F231960D4C1A4E336990F8E7bF8f1277",secondaryFee:"0xCe11A21e7b6B4650C3B6363446fa1aa486A5146A"}}[13473],commonRoutingTokens:[cC],nativeToken:{chainId:lC,decimals:18,symbol:"tIMX",name:"Immutable Testnet Token",type:"native"},wrappedNativeToken:cC}},AC={[Fe.SANDBOX]:yC,[Fe.PRODUCTION]:{}};class gC{baseConfig;chain;secondaryFees=[];constructor({chainId:e,baseConfig:t,secondaryFees:n,overrides:r}){if(this.baseConfig=t,this.secondaryFees=n||[],function(e){let t=0;for(const n of e){if(!NT(n.recipient))throw new oT(`Invalid secondary fee recipient address: ${n.recipient}`);if(n.basisPoints<=0||n.basisPoints>1e3)throw new oT(`Invalid secondary fee basis points: ${n.basisPoints}`);t+=n.basisPoints}if(t>1e3)throw new oT(`Invalid total secondary fee basis points: ${t}`)}(this.secondaryFees),r)return function(e){const t=["rpcURL","exchangeContracts","commonRoutingTokens","nativeToken"];for(const n of t)if(!e[n])throw new oT(`Missing override: ${n}`);Object.entries(e.exchangeContracts).forEach((([e,t])=>{if(!NT(t))throw new oT(`Invalid exchange contract address for ${e}`)}))}(r),this.chain={chainId:e,rpcUrl:r.rpcURL,contracts:r.exchangeContracts,commonRoutingTokens:r.commonRoutingTokens,nativeToken:r.nativeToken,wrappedNativeToken:r.wrappedNativeToken},void(this.secondaryFees=n||[]);const i=AC[t.environment][e];if(!i)throw new aT(e,t.environment);this.chain=i}}class bC{provider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;secondaryFeeContractAddress;routerContractAddress;constructor(e){const t=new gC(e);this.chainId=t.chain.chainId,this.nativeToken=t.chain.nativeToken,this.wrappedNativeToken=t.chain.wrappedNativeToken,this.nativeTokenService=new oC(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=t.secondaryFees,this.routerContractAddress=t.chain.contracts.peripheryRouter,this.secondaryFeeContractAddress=t.chain.contracts.secondaryFee,this.provider=new Uf(t.chain.rpcUrl),this.router=new JT(this.provider,t.chain.commonRoutingTokens,{multicallAddress:t.chain.contracts.multicall,factoryAddress:t.chain.contracts.coreFactory,quoterAddress:t.chain.contracts.quoterV2})}static validate(e,t,n,r,i){Wg(NT(i),new lT("invalid from address")),Wg(RT(e),new lT("invalid token in address")),Wg(RT(t),new lT("invalid token out address")),Wg(e.toLocaleLowerCase()!==t.toLocaleLowerCase(),new cT),Wg(n<=10,new uT("max hops must be less than or equal to 10")),Wg(n>=1,new uT("max hops must be greater than or equal to 1")),Wg(r<=50,new sT("slippage percent must be less than or equal to 50")),Wg(r>=0,new sT("slippage percent must be greater than or equal to 0"))}async getSecondaryFees(){if(0===this.secondaryFees.length)return[];const e=wT.connect(this.secondaryFeeContractAddress,this.provider);return await e.paused()?[]:this.secondaryFees}parseTokenLiteral(e,t){return"native"===e?this.nativeToken:{type:"erc20",address:e,chainId:this.chainId,decimals:t}}async getUnsignedSwapTx(e,t,n,r,i,o,a,s){bC.validate(t,n,o,i,e);const[u,l,c]=await Promise.all([OT(t,this.provider,this.nativeToken),OT(n,this.provider,this.nativeToken),this.getSecondaryFees()]),d=this.parseTokenLiteral(t,u),f=this.parseTokenLiteral(n,l),[p,h]=s===GA.EXACT_INPUT?[d,f]:[f,d],m=FT(r,p),y=new class{secondaryFees;amount;constructor(e,t){this.secondaryFees=e,this.amount=FT(Rn.from(0),t)}get token(){return this.amount.token}addAmount(e){this.amount=_T(this.amount,e)}amountWithFeesApplied(){return _T(this.amount,this.total())}amountLessFees(){return UT(this.amount,this.total())}withAmounts(){return this.secondaryFees.map((e=>{const t=this.amount.value.mul(e.basisPoints).div(1e4);return{...e,amount:FT(t,this.amount.token)}}))}total(){let e=FT(Rn.from(0),this.amount.token);for(const t of this.secondaryFees){const n=this.amount.value.mul(t.basisPoints).div(1e4);e=_T(e,FT(n,this.amount.token))}return e}}(c,d),A=function(e,t,n,r){return n===GA.EXACT_OUTPUT?r.maybeWrapAmount(e):(t.addAmount(e),r.maybeWrapAmount(t.amountLessFees()))}(m,y,s,this.nativeTokenService),[g,b]=await Promise.all([this.router.findOptimalRoute(A,this.nativeTokenService.maybeWrapToken(h),s,o),eC(this.provider,this.nativeToken)]),v=mC(g,m,y,this.nativeTokenService),w=hC(d,f,v,e,i,a,this.routerContractAddress,this.secondaryFeeContractAddress,b,c),{quotedAmount:x,quotedAmountWithMaxSlippage:E}=sC(this.nativeTokenService,v,i,h),T=((e,t,n,r,i)=>{const o=e===GA.EXACT_INPUT?t:n;return BT(o)?{spender:0===i.length?r.routerAddress:r.secondaryFeeAddress,amount:o}:null})(s,m,E,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.secondaryFeeContractAddress},c),C=T?await rC(this.provider,e,T,b):null,k=((e,t,n,r)=>({amount:WT(e),amountWithMaxSlippage:WT(t),slippage:n,fees:r.withAmounts().map((e=>({...e,amount:WT(e.amount)})))}))(x,E,i,y);return{quote:k,approval:C,swap:w}}async getUnsignedSwapTxFromAmountIn(e,t,n,r,i=.1,o=2,a=uC){return await this.getUnsignedSwapTx(e,t,n,Rn.from(r),i,o,a,GA.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(e,t,n,r,i=.1,o=2,a=uC){return await this.getUnsignedSwapTx(e,t,n,Rn.from(r),i,o,a,GA.EXACT_OUTPUT)}}var vC={};const wC={erc1271:Object.freeze({__proto__:null,abi:[{type:"function",name:"isValidSignature",constant:!0,inputs:[{type:"bytes32"},{type:"bytes"}],outputs:[{type:"bytes4"}],payable:!1,stateMutability:"view"}],returns:{isValidSignatureBytes32:"0x1626ba7e"}}),factory:Object.freeze({__proto__:null,abi:[{type:"function",name:"deploy",constant:!1,inputs:[{type:"address"},{type:"bytes32"}],outputs:[],payable:!0,stateMutability:"payable"}]}),mainModule:Object.freeze({__proto__:null,abi:[{type:"function",name:"nonce",constant:!0,inputs:[],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"readNonce",constant:!0,inputs:[{type:"uint256"}],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"updateImplementation",constant:!1,inputs:[{type:"address"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"selfExecute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"execute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"},{type:"uint256"},{type:"bytes"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"createContract",inputs:[{type:"bytes"}],payable:!0,stateMutability:"payable"}]}),mainModuleUpgradable:Object.freeze({__proto__:null,abi:[{type:"function",name:"updateImageHash",constant:!0,inputs:[{type:"bytes32"}],outputs:[],payable:!1,stateMutability:"view"},{type:"function",name:"imageHash",constant:!0,inputs:[],outputs:[{type:"bytes32"}],payable:!1,stateMutability:"view"}]}),sequenceUtils:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_mainModule",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"bytes32",name:"_imageHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_threshold",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_signers",type:"bytes"}],name:"RequiredConfig",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"RequiredSigner",type:"event"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callBalanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callBlockNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_i",type:"uint256"}],name:"callBlockhash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"callChainId",outputs:[{internalType:"uint256",name:"id",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCode",outputs:[{internalType:"bytes",name:"code",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeHash",outputs:[{internalType:"bytes32",name:"codeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeSize",outputs:[{internalType:"uint256",name:"size",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callCoinbase",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callDifficulty",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLeft",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callOrigin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"knownImageHashes",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"lastImageHashUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastSignerUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastWalletUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"delegateCall",type:"bool"},{internalType:"bool",name:"revertOnError",type:"bool"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct IModuleCalls.Transaction[]",name:"_txs",type:"tuple[]"}],name:"multiCall",outputs:[{internalType:"bool[]",name:"_successes",type:"bool[]"},{internalType:"bytes[]",name:"_results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_threshold",type:"uint256"},{components:[{internalType:"uint256",name:"weight",type:"uint256"},{internalType:"address",name:"signer",type:"address"}],internalType:"struct RequireUtils.Member[]",name:"_members",type:"tuple[]"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishConfig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"uint256",name:"_sizeMembers",type:"uint256"},{internalType:"bytes",name:"_signature",type:"bytes"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishInitialSigners",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_nonce",type:"uint256"}],name:"requireMinNonce",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_expiration",type:"uint256"}],name:"requireNonExpired",outputs:[],stateMutability:"view",type:"function"}]}),requireFreshSigner:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"",type:"address"}],name:"requireFreshSigner",outputs:[],stateMutability:"nonpayable",type:"function"}]})};function xC(){return xC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xC.apply(this,arguments)}var EC;!function(e){e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.DISABLED=5]="DISABLED"}(EC||(EC={}));function TC(e,t){return function(...n){const r=Array.prototype.slice.call(n);return new Promise((async(n,i)=>{try{r.push(((e,t)=>e?i(e):n(t))),await e.apply(t,r)}catch(e){i(e)}}))}}new class{constructor(e){this.config=e,this.logLevel=void 0,this.configure(e)}configure(e){switch(this.config=xC({},this.config,e),this.config.logLevel){case"DEBUG":this.logLevel=EC.DEBUG;break;case"INFO":default:this.logLevel=EC.INFO;break;case"WARN":this.logLevel=EC.WARN;break;case"ERROR":this.logLevel=EC.ERROR;break;case"DISABLED":this.logLevel=EC.DISABLED}void 0===this.config.silence&&(this.config.silence=!1)}debug(e,...t){!0!==this.config.silence&&this.logLevel===EC.DEBUG&&console.log(e,...t)}info(e,...t){!0!==this.config.silence&&this.logLevel<=EC.INFO&&console.log(e,...t)}warn(e,...t){!0!==this.config.silence&&this.logLevel<=EC.WARN&&(console.warn(e,...t),this.config.onwarn&&this.config.onwarn(e,t))}error(e,...t){!0!==this.config.silence&&this.logLevel<=EC.ERROR&&(console.error(e,...t),this.config.onerror&&this.config.onerror(e,t))}}({logLevel:"INFO",silence:!0});const CC=(e=0,t=Number.MAX_SAFE_INTEGER)=>(e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e);function kC(){return kC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},kC.apply(this,arguments)}const SC=(e,t=!1)=>(((e,t=!1,n=!1)=>{if(!e)throw new Error("invalid network config: empty config");const r=[];if(Array.isArray(e)?r.push(...e):r.push(e),0===r.length){if(t)throw new Error("invalid network config: empty config");return!1}const i=r.map((e=>e.chainId)).sort(),o=i.filter(((e,t)=>i.indexOf(e)!==t));if(o.length>0){if(t)throw new Error(`invalid network config: duplicate chainIds ${o}`);return!1}r.forEach((e=>e.name=e.name.toLowerCase()));const a=r.map((e=>e.name)).sort(),s=a.filter(((e,t)=>a.indexOf(e)!==t));if(s.length>0){if(t)throw new Error(`invalid network config: duplicate network names ${s}`);return!1}let u=!1,l=!1;for(let e=0;e<r.length;e++){const i=r[e];if(!(i.rpcUrl&&""!==i.rpcUrl||i.provider)){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: rpcUrl or provider must be provided`);return!1}if(!n&&!i.relayer){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: relayer must be provided`);return!1}if(i.isDefaultChain){if(u){if(t)throw new Error(`invalid network config for chainId ${i.chainId}: DefaultChain is already set by another config`);return!1}u=!0}if(i.isAuthChain){if(l&&t)throw new Error(`invalid network config for chainId ${i.chainId}: AuthChain is already set by another config`);l=!0}}if(!u){if(t)throw new Error("invalid network config: DefaultChain must be set");return!1}if(!l){if(t)throw new Error("invalid network config: AuthChain must be set");return!1}})(e,!0,t),e),IC=e=>SC(PC(e)),PC=e=>{if(!e)return[];const t=e.sort(((e,t)=>e.chainId===t.chainId?0:e.chainId<t.chainId?-1:1)),n=t.findIndex((e=>e.isDefaultChain));n>0&&t.splice(0,0,t.splice(n,1)[0]);const r=t.findIndex((e=>e.isAuthChain&&!0!==e.isDefaultChain));return r>0&&t.splice(1,0,t.splice(r,1)[0]),t},OC=(e,t)=>"string"==typeof e?(t=t||{},e.replace(/\$\{\s*([$#@\-\d\w]+)\s*\}/gim,(function(e,n){let r=t[n];return r="function"==typeof r?r():null==r?"":"object"==typeof r||"symbol"==typeof r?r.toString():r.valueOf(),r}))):"";let NC;!function(e){e[e.MAINNET=1]="MAINNET",e[e.ROPSTEN=3]="ROPSTEN",e[e.RINKEBY=4]="RINKEBY",e[e.GOERLI=5]="GOERLI",e[e.KOVAN=42]="KOVAN",e[e.POLYGON=137]="POLYGON",e[e.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",e[e.POLYGON_ZKEVM=1101]="POLYGON_ZKEVM",e[e.BSC=56]="BSC",e[e.BSC_TESTNET=97]="BSC_TESTNET",e[e.OPTIMISM=10]="OPTIMISM",e[e.OPTIMISM_TESTNET=69]="OPTIMISM_TESTNET",e[e.ARBITRUM=42161]="ARBITRUM",e[e.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",e[e.ARBITRUM_NOVA=42170]="ARBITRUM_NOVA",e[e.AVALANCHE=43114]="AVALANCHE",e[e.AVALANCHE_TESTNET=43113]="AVALANCHE_TESTNET",e[e.FANTOM=250]="FANTOM",e[e.FANTOM_TESTNET=4002]="FANTOM_TESTNET",e[e.GNOSIS=100]="GNOSIS",e[e.AURORA=1313161554]="AURORA",e[e.AURORA_TESTNET=1313161556]="AURORA_TESTNET",e[e.BASE_GOERLI=84531]="BASE_GOERLI"}(NC||(NC={}));const RC=e=>OC("https://${network}-indexer.sequence.app",{network:e}),MC=e=>OC("https://${network}-relayer.sequence.app",{network:e}),LC=e=>OC("https://nodes.sequence.app/${network}",{network:e}),DC={[NC.MAINNET]:{chainId:NC.MAINNET,name:"mainnet",title:"Ethereum",blockExplorer:{name:"Etherscan",rootUrl:"https://etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[NC.ROPSTEN]:{chainId:NC.ROPSTEN,name:"ropsten",title:"Ropsten",testnet:!0,blockExplorer:{name:"Etherscan (Ropsten)",rootUrl:"https://ropsten.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[NC.RINKEBY]:{chainId:NC.RINKEBY,name:"rinkeby",title:"Rinkeby",testnet:!0,blockExplorer:{name:"Etherscan (Rinkeby)",rootUrl:"https://rinkeby.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",disabled:!0},[NC.GOERLI]:{chainId:NC.GOERLI,name:"goerli",title:"Goerli",testnet:!0,blockExplorer:{name:"Etherscan (Goerli)",rootUrl:"https://goerli.etherscan.io/"},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},[NC.KOVAN]:{chainId:NC.KOVAN,name:"kovan",title:"Kovan",testnet:!0,blockExplorer:{name:"Etherscan (Kovan)",rootUrl:"https://kovan.etherscan.io/"}},[NC.POLYGON]:{chainId:NC.POLYGON,name:"polygon",title:"Polygon",blockExplorer:{name:"Polygonscan",rootUrl:"https://polygonscan.com/"}},[NC.POLYGON_MUMBAI]:{chainId:NC.POLYGON_MUMBAI,name:"mumbai",title:"Polygon Mumbai",testnet:!0,blockExplorer:{name:"Polygonscan (Mumbai)",rootUrl:"https://mumbai.polygonscan.com/"}},[NC.POLYGON_ZKEVM]:{chainId:NC.POLYGON_ZKEVM,name:"polygon-zkevm",title:"Polygon zkEVM",blockExplorer:{name:"Polygonscan (zkEVM)",rootUrl:"https://zkevm.polygonscan.com/"}},[NC.BSC]:{chainId:NC.BSC,name:"bsc",title:"BNB Smart Chain",blockExplorer:{name:"BSCScan",rootUrl:"https://bscscan.com/"}},[NC.BSC_TESTNET]:{chainId:NC.BSC_TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",testnet:!0,blockExplorer:{name:"BSCScan (Testnet)",rootUrl:"https://testnet.bscscan.com/"}},[NC.OPTIMISM]:{chainId:NC.OPTIMISM,name:"optimism",title:"Optimism",blockExplorer:{name:"Etherscan (Optimism)",rootUrl:"https://optimistic.etherscan.io/"}},[NC.OPTIMISM_TESTNET]:{chainId:NC.OPTIMISM_TESTNET,name:"optimism-testnet",title:"Optimistic Kovan",testnet:!0,blockExplorer:{name:"Etherscan (Optimism Testnet)",rootUrl:"https://kovan-optimistic.etherscan.io/"}},[NC.ARBITRUM]:{chainId:NC.ARBITRUM,name:"arbitrum",title:"Arbitrum One",blockExplorer:{name:"Arbiscan",rootUrl:"https://arbiscan.io/"}},[NC.ARBITRUM_GOERLI]:{chainId:NC.ARBITRUM_GOERLI,name:"arbitrum-goerli",title:"Arbitrum Goerli",testnet:!0,blockExplorer:{name:"Arbiscan (Testnet)",rootUrl:"https://testnet.arbiscan.io/"}},[NC.ARBITRUM_NOVA]:{chainId:NC.ARBITRUM_NOVA,name:"arbitrum-nova",title:"Arbitrum Nova",blockExplorer:{name:"Nova Explorer",rootUrl:"https://nova-explorer.arbitrum.io/"}},[NC.AVALANCHE]:{chainId:NC.AVALANCHE,name:"avalanche",title:"Avalanche",blockExplorer:{name:"Snowtrace",rootUrl:"https://snowtrace.io/"}},[NC.AVALANCHE_TESTNET]:{chainId:NC.AVALANCHE_TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",testnet:!0,blockExplorer:{name:"Snowtrace (Testnet)",rootUrl:"https://testnet.snowtrace.io/"}},[NC.FANTOM]:{chainId:NC.FANTOM,name:"fantom",title:"Fantom",blockExplorer:{name:"FTMScan",rootUrl:"https://ftmscan.com/"}},[NC.FANTOM_TESTNET]:{chainId:NC.FANTOM_TESTNET,name:"fantom-testnet",title:"Fantom Testnet",testnet:!0,blockExplorer:{name:"FTMScan (Testnet)",rootUrl:"https://testnet.ftmscan.com/"}},[NC.GNOSIS]:{chainId:NC.GNOSIS,name:"gnosis",title:"Gnosis Chain",blockExplorer:{name:"Gnosis Chain Explorer",rootUrl:"https://blockscout.com/xdai/mainnet/"}},[NC.AURORA]:{chainId:NC.AURORA,name:"aurora",title:"Aurora",blockExplorer:{name:"Aurora Explorer",rootUrl:"https://aurorascan.dev/"}},[NC.AURORA_TESTNET]:{chainId:NC.AURORA_TESTNET,name:"aurora-testnet",title:"Aurora Testnet",blockExplorer:{name:"Aurora Explorer (Testnet)",rootUrl:"https://testnet.aurorascan.dev/"}},[NC.BASE_GOERLI]:{chainId:NC.BASE_GOERLI,name:"base-goerli",title:"Base Goerli",blockExplorer:{name:"Base Goerli Explorer",rootUrl:"https://goerli.basescan.org/"}}};IC([kC({},DC[NC.MAINNET],{rpcUrl:LC("mainnet"),relayer:{url:MC("mainnet")},indexerUrl:RC("mainnet")}),kC({},DC[NC.POLYGON],{rpcUrl:LC("polygon"),relayer:{url:MC("polygon")},indexerUrl:RC("polygon"),isDefaultChain:!0,isAuthChain:!0}),kC({},DC[NC.BSC],{rpcUrl:LC("bsc"),indexerUrl:RC("bsc"),relayer:{url:MC("bsc")}}),kC({},DC[NC.AVALANCHE],{rpcUrl:LC("avalanche"),indexerUrl:RC("avalanche"),relayer:{url:MC("avalanche")}}),kC({},DC[NC.ARBITRUM],{rpcUrl:LC("arbitrum"),indexerUrl:RC("arbitrum"),relayer:{url:MC("arbitrum")}}),kC({},DC[NC.ARBITRUM_NOVA],{rpcUrl:LC("arbitrum-nova"),indexerUrl:RC("arbitrum-nova"),relayer:{url:MC("arbitrum-nova")}}),kC({},DC[NC.OPTIMISM],{rpcUrl:LC("optimism"),indexerUrl:RC("optimism"),relayer:{url:MC("optimism")}}),kC({},DC[NC.POLYGON_ZKEVM],{rpcUrl:LC("polygon-zkevm"),indexerUrl:RC("polygon-zkevm"),relayer:{url:MC("polygon-zkevm")}}),kC({},DC[NC.GNOSIS],{rpcUrl:LC("gnosis"),indexerUrl:RC("gnosis"),relayer:{url:MC("gnosis")}})]),IC([kC({},DC[NC.RINKEBY],{rpcUrl:LC("rinkeby"),relayer:{url:MC("rinkeby")},indexerUrl:RC("rinkeby")}),kC({},DC[NC.GOERLI],{rpcUrl:LC("goerli"),relayer:{url:MC("goerli")},indexerUrl:RC("goerli")}),kC({},DC[NC.POLYGON_MUMBAI],{rpcUrl:LC("mumbai"),relayer:{url:MC("mumbai")},indexerUrl:RC("mumbai"),isDefaultChain:!0,isAuthChain:!0}),kC({},DC[NC.BSC_TESTNET],{rpcUrl:LC("bsc-testnet"),relayer:{url:MC("bsc-testnet")},indexerUrl:RC("bsc-testnet")}),kC({},DC[NC.ARBITRUM_GOERLI],{rpcUrl:LC("arbitrum-goerli"),relayer:{url:MC("arbitrum-goerli")},indexerUrl:RC("arbitrum-goerli")}),kC({},DC[NC.BASE_GOERLI],{rpcUrl:LC("base-goerli"),relayer:{url:MC("base-goerli")},indexerUrl:RC("base-goerli")})]);const FC="2.0";function BC(){return BC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},BC.apply(this,arguments)}let jC;function zC(e,t){return e.reduce((function(e,n,r){return t(n,r)?e[0].push(n):e[1].push(n),e}),[[],[]])}!function(e){e.ethCall="eth_call",e.ethGetBalance="eth_getBalance",e.ethGetCode="eth_getCode"}(jC||(jC={}));const _C={batchSize:50,timeWindow:50,contract:"0xd130B43062D875a4B7aF3f8fc036Bc6e9D3E1B3E",verbose:!1};class UC{constructor(e){var t=this;if(this.batchableJsonRpcMethods=[jC.ethCall,jC.ethGetCode,jC.ethGetBalance],this.multicallInterface=new ma(wC.sequenceUtils.abi),this.options=void 0,this.timeout=void 0,this.queue=[],this.scheduleExecution=()=>{this.queue.length>0&&(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.run,this.options.timeWindow))},this.handle=(e,t,n)=>this.batchableJsonRpcMethods.find((e=>e===t.method))?(this.queue.push({request:t,callback:n,next:e}),this.options.verbose&&console.log("Scheduling call",t.method),void this.scheduleExecution()):(this.options.verbose&&console.log("Forwarded call",t.method),e(t,n)),this.run=async function(){t.options.verbose&&console.log("Processing multicall");const e=Math.min(t.options.batchSize,t.queue.length);if(0===e)return;if(1===e)return t.forward(t.queue[0]),t.queue=[],void(t.options.verbose&&console.log("Skip multicall, single item"));t.options.verbose&&console.log("Resolving",e);var n=t.queue.slice(0,e);t.queue=e===t.queue.length?[]:t.queue.slice(e),t.options.verbose&&console.log("Updated queue",t.queue.length),0!==t.queue.length&&t.scheduleExecution();const r=n[0].next;let i;var[n,o]=zC(n,(e=>{try{if(e.next!==r)return!1;switch(e.request.method){case jC.ethCall:if(e.request.params[0].from||e.request.params[0].gasPrice||e.request.params[0].value)return!1;case jC.ethGetBalance:case jC.ethGetCode:const t=function(e){if(void 0===e)return"latest";switch(e){case"earliest":case"latest":case"pending":return e}return Rn.from(e)}(e.request.params[1]);if(void 0===i&&(i=t),!function(e,t){return e===t||(Rn.isBigNumber(e)?!!Rn.isBigNumber(t)&&e.eq(t):!Rn.isBigNumber(t)&&e===t)}(t,i))return!1}return!0}catch(e){return!1}}));if(0!==o.length&&(t.options.verbose&&console.log("Forwarding incompatible calls",o.length),t.forward(o),0===n.length))return;let a=n.map((e=>{try{switch(e.request.method){case jC.ethCall:return{delegateCall:!1,revertOnError:!1,target:e.request.params[0].to,data:e.request.params[0].data,gasLimit:e.request.params[0].gas?e.request.params[0].gas:0,value:0};case jC.ethGetCode:return{delegateCall:!1,revertOnError:!1,target:t.options.contract,gasLimit:0,value:0,data:t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("callCode"),[e.request.params[0]])};case jC.ethGetBalance:return{delegateCall:!1,revertOnError:!1,target:t.options.contract,gasLimit:0,value:0,data:t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("callBalanceOf"),[e.request.params[0]])};default:return null}}catch(e){return null}}));var[n,o]=zC(n,((e,t)=>void 0!==a[t]));if(a=a.filter((e=>e)),0!==o.length&&(t.options.verbose&&console.log("Forwarding calls on error",o.length),t.forward(o),0===n.length))return;let s;try{s=t.multicallInterface.encodeFunctionData(t.multicallInterface.getFunction("multiCall"),[a])}catch(e){return void t.forward(n)}const u=CC(),l=await async function(e,t){try{return await e}catch(e){return t instanceof Function?t(e):t}}(TC(r)({id:u,jsonrpc:FC,method:jC.ethCall,params:[{to:t.options.contract,value:0,data:s},Rn.isBigNumber(i)?i.toNumber():i]}),(e=>({jsonrpc:FC,id:u,result:void 0,error:e})));if(l.error)return t.forward(n);let c;try{c=t.multicallInterface.decodeFunctionResult(t.multicallInterface.getFunction("multiCall"),l.result)}catch(e){return void t.forward(n)}t.options.verbose&&console.log("Got response for",n.length),n.forEach(((e,n)=>{if(c[0][n])switch(e.request.method){case jC.ethCall:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:c[1][n]});break;case jC.ethGetCode:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:uo.decode(["bytes"],c[1][n])[0]});break;case jC.ethGetBalance:e.callback(void 0,{jsonrpc:e.request.jsonrpc,id:e.request.id,result:uo.decode(["uint256"],c[1][n])[0]})}else t.forward(e)}))},this.options=e?BC({},UC.DefaultOptions,e):UC.DefaultOptions,this.options.batchSize<=0)throw new Error(`Invalid batch size of ${this.options.batchSize}`)}forward(e){Array.isArray(e)?e.forEach((e=>e.next(e.request,e.callback))):e.next(e.request,e.callback)}static isMulticall(e){return e&&void 0!==e.handle&&void 0!==e.conf&&UC.isMulticallOptions(e.options)}static isMulticallOptions(e){return void 0!==e&&void 0!==e.batchSize&&void 0!==e.timeWindow&&void 0!==e.contract}}UC.DefaultOptions=BC({},_C);const HC=["getNetwork","getBlockNumber","getGasPrice","getTransactionCount","getStorageAt","sendTransaction","estimateGas","getBlock","getTransaction","getTransactionReceipt","getLogs","emit","litenerCount","addListener","removeListener","waitForTransaction","detectNetwork","getBlockWithTransactions"];var WC=Object.freeze({__proto__:null,ProxyMethods:HC,MulticallProvider:class extends If{constructor(e,t){var n;super(e.getNetwork()),n=this,this.provider=e,this.multicall=void 0,this.listenerCount=this.provider.listenerCount,this.getResolver=async function(e){const t=n.provider;if(t.getResolver){const r=await t.getResolver(await e);return r?new Cf(n,r.address,r.name):null}return t.getResolver(await e)},this.next=async function(e,t){try{switch(e.method){case jC.ethCall:n.callback(e,t,await n.provider.call(e.params[0],e.params[1]));break;case jC.ethGetCode:n.callback(e,t,await n.provider.getCode(e.params[0],e.params[1]));break;case jC.ethGetBalance:n.callback(e,t,await n.provider.getBalance(e.params[0],e.params[1]))}}catch(r){n.callback(e,t,void 0,r)}},this.multicall=UC.isMulticall(t)?t:new UC(t),HC.forEach((t=>{void 0!==e[t]&&(this[t]=(...n)=>e[t](...n))}))}callback(e,t,n,r){t(r,{jsonrpc:FC,id:e.id,result:n,error:r})}async call(e,t){return this.rpcCall(jC.ethCall,e,t)}async getCode(e,t){return this.rpcCall(jC.ethGetCode,e,t)}async getBalance(e,t){return this.rpcCall(jC.ethGetBalance,e,t)}async rpcCall(e,...t){const n=CC();return(await TC(this.multicall.handle)(this.next,{jsonrpc:FC,id:n,method:e,params:t})).result}},MulticallExternalProvider:class{constructor(e,t){if(this.provider=e,this.multicall=void 0,this.multicall=UC.isMulticall(t)?t:new UC(t),e.send){const t=async function(t,n){e.send(t,n)};this.send=(e,n)=>{this.multicall.handle(t,e,n)}}if(e.sendAsync){const t=async function(t,n){e.sendAsync(t,n)};this.sendAsync=(e,n)=>{this.multicall.handle(t,e,n)}}}get isMetaMask(){return this.provider.isMetaMask}get isStatus(){return this.provider.isStatus}},multicallMiddleware:e=>t=>{const n=UC.isMulticall(e)?e:new UC(e);return(e,r)=>n.handle(t,e,r)}}),VC=Ue(Object.freeze({__proto__:null,Multicall:UC,providers:WC})),qC=Ue(mh),XC={},GC=Ue(ai),ZC=Ue(ho),YC=Ue(ic),KC=Ue(Cn),QC=Ue(sa),JC=Ue(Lc),$C=Ue(yd),ek=Ue(_r),tk=Ue(nn),nk=Ue(cc),rk=Ue(_c),ik=Ue(ur),ok=Ue(Yr),ak=Ue(gl),sk=Ue(to),uk=Ue(Fl),lk=Ue(ch),ck=Ue(xd),dk=Ue(_d);!function(e){var t=ze&&ze.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=ze&&ze.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=ze&&ze.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,"__esModule",{value:!0}),e.formatBytes32String=e.Utf8ErrorFuncs=e.toUtf8String=e.toUtf8CodePoints=e.toUtf8Bytes=e._toEscapedUtf8String=e.nameprep=e.hexDataSlice=e.hexDataLength=e.hexZeroPad=e.hexValue=e.hexStripZeros=e.hexConcat=e.isHexString=e.hexlify=e.base64=e.base58=e.TransactionDescription=e.LogDescription=e.Interface=e.SigningKey=e.HDNode=e.defaultPath=e.isBytesLike=e.isBytes=e.zeroPad=e.stripZeros=e.concat=e.arrayify=e.shallowCopy=e.resolveProperties=e.getStatic=e.defineReadOnly=e.deepCopy=e.checkProperties=e.poll=e.fetchJson=e._fetchData=e.RLP=e.Logger=e.checkResultErrors=e.FormatTypes=e.ParamType=e.FunctionFragment=e.EventFragment=e.ErrorFragment=e.ConstructorFragment=e.Fragment=e.defaultAbiCoder=e.AbiCoder=void 0,e.Indexed=e.Utf8ErrorReason=e.UnicodeNormalizationForm=e.SupportedAlgorithm=e.mnemonicToSeed=e.isValidMnemonic=e.entropyToMnemonic=e.mnemonicToEntropy=e.getAccountPath=e.verifyTypedData=e.verifyMessage=e.recoverPublicKey=e.computePublicKey=e.recoverAddress=e.computeAddress=e.getJsonWalletAddress=e.TransactionTypes=e.serializeTransaction=e.parseTransaction=e.accessListify=e.joinSignature=e.splitSignature=e.soliditySha256=e.solidityKeccak256=e.solidityPack=e.shuffled=e.randomBytes=e.sha512=e.sha256=e.ripemd160=e.keccak256=e.computeHmac=e.commify=e.parseUnits=e.formatUnits=e.parseEther=e.formatEther=e.isAddress=e.getCreate2Address=e.getContractAddress=e.getIcapAddress=e.getAddress=e._TypedDataEncoder=e.id=e.isValidName=e.namehash=e.hashMessage=e.dnsEncode=e.parseBytes32String=void 0;var i=fw;Object.defineProperty(e,"AbiCoder",{enumerable:!0,get:function(){return i.AbiCoder}}),Object.defineProperty(e,"checkResultErrors",{enumerable:!0,get:function(){return i.checkResultErrors}}),Object.defineProperty(e,"ConstructorFragment",{enumerable:!0,get:function(){return i.ConstructorFragment}}),Object.defineProperty(e,"defaultAbiCoder",{enumerable:!0,get:function(){return i.defaultAbiCoder}}),Object.defineProperty(e,"ErrorFragment",{enumerable:!0,get:function(){return i.ErrorFragment}}),Object.defineProperty(e,"EventFragment",{enumerable:!0,get:function(){return i.EventFragment}}),Object.defineProperty(e,"FormatTypes",{enumerable:!0,get:function(){return i.FormatTypes}}),Object.defineProperty(e,"Fragment",{enumerable:!0,get:function(){return i.Fragment}}),Object.defineProperty(e,"FunctionFragment",{enumerable:!0,get:function(){return i.FunctionFragment}}),Object.defineProperty(e,"Indexed",{enumerable:!0,get:function(){return i.Indexed}}),Object.defineProperty(e,"Interface",{enumerable:!0,get:function(){return i.Interface}}),Object.defineProperty(e,"LogDescription",{enumerable:!0,get:function(){return i.LogDescription}}),Object.defineProperty(e,"ParamType",{enumerable:!0,get:function(){return i.ParamType}}),Object.defineProperty(e,"TransactionDescription",{enumerable:!0,get:function(){return i.TransactionDescription}});var o=GC;Object.defineProperty(e,"getAddress",{enumerable:!0,get:function(){return o.getAddress}}),Object.defineProperty(e,"getCreate2Address",{enumerable:!0,get:function(){return o.getCreate2Address}}),Object.defineProperty(e,"getContractAddress",{enumerable:!0,get:function(){return o.getContractAddress}}),Object.defineProperty(e,"getIcapAddress",{enumerable:!0,get:function(){return o.getIcapAddress}}),Object.defineProperty(e,"isAddress",{enumerable:!0,get:function(){return o.isAddress}});var a=r(ZC);e.base64=a;var s=YC;Object.defineProperty(e,"base58",{enumerable:!0,get:function(){return s.Base58}});var u=KC;Object.defineProperty(e,"arrayify",{enumerable:!0,get:function(){return u.arrayify}}),Object.defineProperty(e,"concat",{enumerable:!0,get:function(){return u.concat}}),Object.defineProperty(e,"hexConcat",{enumerable:!0,get:function(){return u.hexConcat}}),Object.defineProperty(e,"hexDataSlice",{enumerable:!0,get:function(){return u.hexDataSlice}}),Object.defineProperty(e,"hexDataLength",{enumerable:!0,get:function(){return u.hexDataLength}}),Object.defineProperty(e,"hexlify",{enumerable:!0,get:function(){return u.hexlify}}),Object.defineProperty(e,"hexStripZeros",{enumerable:!0,get:function(){return u.hexStripZeros}}),Object.defineProperty(e,"hexValue",{enumerable:!0,get:function(){return u.hexValue}}),Object.defineProperty(e,"hexZeroPad",{enumerable:!0,get:function(){return u.hexZeroPad}}),Object.defineProperty(e,"isBytes",{enumerable:!0,get:function(){return u.isBytes}}),Object.defineProperty(e,"isBytesLike",{enumerable:!0,get:function(){return u.isBytesLike}}),Object.defineProperty(e,"isHexString",{enumerable:!0,get:function(){return u.isHexString}}),Object.defineProperty(e,"joinSignature",{enumerable:!0,get:function(){return u.joinSignature}}),Object.defineProperty(e,"zeroPad",{enumerable:!0,get:function(){return u.zeroPad}}),Object.defineProperty(e,"splitSignature",{enumerable:!0,get:function(){return u.splitSignature}}),Object.defineProperty(e,"stripZeros",{enumerable:!0,get:function(){return u.stripZeros}});var l=QC;Object.defineProperty(e,"_TypedDataEncoder",{enumerable:!0,get:function(){return l._TypedDataEncoder}}),Object.defineProperty(e,"dnsEncode",{enumerable:!0,get:function(){return l.dnsEncode}}),Object.defineProperty(e,"hashMessage",{enumerable:!0,get:function(){return l.hashMessage}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return l.id}}),Object.defineProperty(e,"isValidName",{enumerable:!0,get:function(){return l.isValidName}}),Object.defineProperty(e,"namehash",{enumerable:!0,get:function(){return l.namehash}});var c=JC;Object.defineProperty(e,"defaultPath",{enumerable:!0,get:function(){return c.defaultPath}}),Object.defineProperty(e,"entropyToMnemonic",{enumerable:!0,get:function(){return c.entropyToMnemonic}}),Object.defineProperty(e,"getAccountPath",{enumerable:!0,get:function(){return c.getAccountPath}}),Object.defineProperty(e,"HDNode",{enumerable:!0,get:function(){return c.HDNode}}),Object.defineProperty(e,"isValidMnemonic",{enumerable:!0,get:function(){return c.isValidMnemonic}}),Object.defineProperty(e,"mnemonicToEntropy",{enumerable:!0,get:function(){return c.mnemonicToEntropy}}),Object.defineProperty(e,"mnemonicToSeed",{enumerable:!0,get:function(){return c.mnemonicToSeed}});var d=$C;Object.defineProperty(e,"getJsonWalletAddress",{enumerable:!0,get:function(){return d.getJsonWalletAddress}});var f=ek;Object.defineProperty(e,"keccak256",{enumerable:!0,get:function(){return f.keccak256}});var p=tk;Object.defineProperty(e,"Logger",{enumerable:!0,get:function(){return p.Logger}});var h=nk;Object.defineProperty(e,"computeHmac",{enumerable:!0,get:function(){return h.computeHmac}}),Object.defineProperty(e,"ripemd160",{enumerable:!0,get:function(){return h.ripemd160}}),Object.defineProperty(e,"sha256",{enumerable:!0,get:function(){return h.sha256}}),Object.defineProperty(e,"sha512",{enumerable:!0,get:function(){return h.sha512}});var m=tT;Object.defineProperty(e,"solidityKeccak256",{enumerable:!0,get:function(){return m.keccak256}}),Object.defineProperty(e,"solidityPack",{enumerable:!0,get:function(){return m.pack}}),Object.defineProperty(e,"soliditySha256",{enumerable:!0,get:function(){return m.sha256}});var y=rk;Object.defineProperty(e,"randomBytes",{enumerable:!0,get:function(){return y.randomBytes}}),Object.defineProperty(e,"shuffled",{enumerable:!0,get:function(){return y.shuffled}});var A=ik;Object.defineProperty(e,"checkProperties",{enumerable:!0,get:function(){return A.checkProperties}}),Object.defineProperty(e,"deepCopy",{enumerable:!0,get:function(){return A.deepCopy}}),Object.defineProperty(e,"defineReadOnly",{enumerable:!0,get:function(){return A.defineReadOnly}}),Object.defineProperty(e,"getStatic",{enumerable:!0,get:function(){return A.getStatic}}),Object.defineProperty(e,"resolveProperties",{enumerable:!0,get:function(){return A.resolveProperties}}),Object.defineProperty(e,"shallowCopy",{enumerable:!0,get:function(){return A.shallowCopy}});var g=r(ok);e.RLP=g;var b=ak;Object.defineProperty(e,"computePublicKey",{enumerable:!0,get:function(){return b.computePublicKey}}),Object.defineProperty(e,"recoverPublicKey",{enumerable:!0,get:function(){return b.recoverPublicKey}}),Object.defineProperty(e,"SigningKey",{enumerable:!0,get:function(){return b.SigningKey}});var v=sk;Object.defineProperty(e,"formatBytes32String",{enumerable:!0,get:function(){return v.formatBytes32String}}),Object.defineProperty(e,"nameprep",{enumerable:!0,get:function(){return v.nameprep}}),Object.defineProperty(e,"parseBytes32String",{enumerable:!0,get:function(){return v.parseBytes32String}}),Object.defineProperty(e,"_toEscapedUtf8String",{enumerable:!0,get:function(){return v._toEscapedUtf8String}}),Object.defineProperty(e,"toUtf8Bytes",{enumerable:!0,get:function(){return v.toUtf8Bytes}}),Object.defineProperty(e,"toUtf8CodePoints",{enumerable:!0,get:function(){return v.toUtf8CodePoints}}),Object.defineProperty(e,"toUtf8String",{enumerable:!0,get:function(){return v.toUtf8String}}),Object.defineProperty(e,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return v.Utf8ErrorFuncs}});var w=uk;Object.defineProperty(e,"accessListify",{enumerable:!0,get:function(){return w.accessListify}}),Object.defineProperty(e,"computeAddress",{enumerable:!0,get:function(){return w.computeAddress}}),Object.defineProperty(e,"parseTransaction",{enumerable:!0,get:function(){return w.parse}}),Object.defineProperty(e,"recoverAddress",{enumerable:!0,get:function(){return w.recoverAddress}}),Object.defineProperty(e,"serializeTransaction",{enumerable:!0,get:function(){return w.serialize}}),Object.defineProperty(e,"TransactionTypes",{enumerable:!0,get:function(){return w.TransactionTypes}});var x=lk;Object.defineProperty(e,"commify",{enumerable:!0,get:function(){return x.commify}}),Object.defineProperty(e,"formatEther",{enumerable:!0,get:function(){return x.formatEther}}),Object.defineProperty(e,"parseEther",{enumerable:!0,get:function(){return x.parseEther}}),Object.defineProperty(e,"formatUnits",{enumerable:!0,get:function(){return x.formatUnits}}),Object.defineProperty(e,"parseUnits",{enumerable:!0,get:function(){return x.parseUnits}});var E=ck;Object.defineProperty(e,"verifyMessage",{enumerable:!0,get:function(){return E.verifyMessage}}),Object.defineProperty(e,"verifyTypedData",{enumerable:!0,get:function(){return E.verifyTypedData}});var T=dk;Object.defineProperty(e,"_fetchData",{enumerable:!0,get:function(){return T._fetchData}}),Object.defineProperty(e,"fetchJson",{enumerable:!0,get:function(){return T.fetchJson}}),Object.defineProperty(e,"poll",{enumerable:!0,get:function(){return T.poll}});var C=nk;Object.defineProperty(e,"SupportedAlgorithm",{enumerable:!0,get:function(){return C.SupportedAlgorithm}});var k=sk;Object.defineProperty(e,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return k.UnicodeNormalizationForm}}),Object.defineProperty(e,"Utf8ErrorReason",{enumerable:!0,get:function(){return k.Utf8ErrorReason}})}(XC);var fk={};Object.defineProperty(fk,"__esModule",{value:!0}),fk.DomainRegistryABI=void 0;fk.DomainRegistryABI=[{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"DomainAlreadyRegistered",type:"error"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"maxIndex",type:"uint256"},{internalType:"uint256",name:"suppliedIndex",type:"uint256"}],name:"DomainIndexOutOfRange",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"domain",type:"string"},{indexed:!1,internalType:"bytes4",name:"tag",type:"bytes4"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"DomainRegistered",type:"event"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getDomain",outputs:[{internalType:"string",name:"domain",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getDomains",outputs:[{internalType:"string[]",name:"domains",type:"string[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getNumberOfDomains",outputs:[{internalType:"uint256",name:"totalDomains",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"setDomain",outputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}];var pk={};Object.defineProperty(pk,"__esModule",{value:!0}),pk.SeaportABIv14=void 0;pk.SeaportABIv14=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"EtherTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientEtherSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"advancedOrder",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"advancedOrders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"order",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"order",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"contractName",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"validated",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var hk={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.DOMAIN_REGISTRY_ADDRESS=e.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS=e.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS=e.KNOWN_CONDUIT_KEYS_TO_CONDUIT=e.NO_CONDUIT=e.ONE_HUNDRED_PERCENT_BP=e.MAX_INT=e.BasicOrderRouteType=e.Side=e.ItemType=e.OrderType=e.EIP_712_BULK_ORDER_TYPE=e.EIP_712_ORDER_TYPE=e.OPENSEA_CONDUIT_ADDRESS=e.OPENSEA_CONDUIT_KEY=e.SEAPORT_CONTRACT_VERSION_V1_5=e.SEAPORT_CONTRACT_VERSION_V1_4=e.SEAPORT_CONTRACT_NAME=void 0;const t=qC;var n,r,i,o;e.SEAPORT_CONTRACT_NAME="Seaport",e.SEAPORT_CONTRACT_VERSION_V1_4="1.4",e.SEAPORT_CONTRACT_VERSION_V1_5="1.5",e.OPENSEA_CONDUIT_KEY="0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",e.OPENSEA_CONDUIT_ADDRESS="0x1e0049783f008a0085193e00003d00cd54003c71",e.EIP_712_ORDER_TYPE={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"}]},e.EIP_712_BULK_ORDER_TYPE={BulkOrder:[{name:"tree",type:"OrderComponents[2][2][2][2][2][2][2]"}],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"}]},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"}(n||(e.OrderType=n={})),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"}(r||(e.ItemType=r={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(i||(e.Side=i={})),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"}(o||(e.BasicOrderRouteType=o={})),e.MAX_INT=t.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),e.ONE_HUNDRED_PERCENT_BP=1e4,e.NO_CONDUIT="0x0000000000000000000000000000000000000000000000000000000000000000",e.KNOWN_CONDUIT_KEYS_TO_CONDUIT={[e.OPENSEA_CONDUIT_KEY]:e.OPENSEA_CONDUIT_ADDRESS},e.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS="0x00000000000001ad428e4906aE43D8F9852d0dD6",e.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS="0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",e.DOMAIN_REGISTRY_ADDRESS="0x000000000DaD0DE04D2B2D4a5A74581EBA94124A"}(hk);var mk={},yk={};Object.defineProperty(yk,"__esModule",{value:!0}),yk.ERC20ABI=void 0;yk.ERC20ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];var Ak={};Object.defineProperty(Ak,"__esModule",{value:!0}),Ak.ERC721ABI=void 0;Ak.ERC721ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];var gk,bk={},vk={};function wk(){if(gk)return vk;gk=1,Object.defineProperty(vk,"__esModule",{value:!0}),vk.getItemToCriteriaMap=vk.generateCriteriaResolvers=void 0;const e=hk,t=Tk();vk.generateCriteriaResolvers=({orders:n,offerCriterias:r=[[]],considerationCriterias:i=[[]]})=>{const o=n.flatMap(((n,r)=>n.parameters.offer.map(((t,n)=>({orderIndex:r,item:t,index:n,side:e.Side.OFFER}))).filter((({item:e})=>(0,t.isCriteriaItem)(e.itemType))))),a=n.flatMap(((n,r)=>n.parameters.consideration.map(((t,n)=>({orderIndex:r,item:t,index:n,side:e.Side.CONSIDERATION}))).filter((({item:e})=>(0,t.isCriteriaItem)(e.itemType))))),s=(e,t)=>e.map((({orderIndex:e,item:n,index:r,side:i})=>{const o=n.identifierOrCriteria||"0",a=t[e][r];return{orderIndex:e,index:r,side:i,identifier:a.identifier,criteriaProof:"0"===o?[]:a.proof}}));return[...s(o,r),...s(a,i)]};return vk.getItemToCriteriaMap=(e,n)=>{const r=[...n];return e.reduce(((e,n)=>((0,t.isCriteriaItem)(n.itemType)&&e.set(n,r.shift()),e)),new Map)},vk}var xk,Ek={};function Tk(){return xk||(xk=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getMaximumSizeForOrder=e.getSummedTokenAndIdentifierAmounts=e.getPresentItemAmount=e.isCriteriaItem=e.isErc1155Item=e.isErc721Item=e.isErc20Item=e.isNativeCurrencyItem=e.isCurrencyItem=void 0;const t=qC,n=hk,r=wk(),i=Ek;e.isCurrencyItem=({itemType:e})=>[n.ItemType.NATIVE,n.ItemType.ERC20].includes(e);e.isNativeCurrencyItem=({itemType:e})=>e===n.ItemType.NATIVE;e.isErc20Item=e=>e===n.ItemType.ERC20;e.isErc721Item=e=>[n.ItemType.ERC721,n.ItemType.ERC721_WITH_CRITERIA].includes(e);e.isErc1155Item=e=>[n.ItemType.ERC1155,n.ItemType.ERC1155_WITH_CRITERIA].includes(e);e.isCriteriaItem=e=>[n.ItemType.ERC721_WITH_CRITERIA,n.ItemType.ERC1155_WITH_CRITERIA].includes(e);e.getPresentItemAmount=({startAmount:e,endAmount:n,timeBasedItemParams:r})=>{const i=t.BigNumber.from(e),o=t.BigNumber.from(n);if(!r)return i.gt(o)?i:o;const{isConsiderationItem:a,currentBlockTimestamp:s,ascendingAmountTimestampBuffer:u,startTime:l,endTime:c}=r,d=t.BigNumber.from(c).sub(l),f=o.gt(e),p=t.BigNumber.from(f?s+u:s);if(p.lt(l))return i;const h=(p.gt(c)?t.BigNumber.from(c):p).sub(l),m=d.sub(h);return i.mul(m).add(o.mul(h)).add(a?d.sub(1):0).div(d)};e.getSummedTokenAndIdentifierAmounts=({items:n,criterias:i,timeBasedItemParams:o})=>{const a=(0,r.getItemToCriteriaMap)(n,i),s=n.reduce(((n,r)=>{var i,s,u,l;const c=null!==(s=null===(i=a.get(r))||void 0===i?void 0:i.identifier)&&void 0!==s?s:r.identifierOrCriteria;return Object.assign(Object.assign({},n),{[r.token]:Object.assign(Object.assign({},n[r.token]),{[c]:(null!==(l=null===(u=n[r.token])||void 0===u?void 0:u[c])&&void 0!==l?l:t.BigNumber.from(0)).add((0,e.getPresentItemAmount)({startAmount:r.startAmount,endAmount:r.endAmount,timeBasedItemParams:o}))})})}),{});return s};e.getMaximumSizeForOrder=({parameters:{offer:e,consideration:t}})=>{const n=[...e,...t].flatMap((({startAmount:e,endAmount:t})=>[e,t]));return(0,i.findGcd)(n)}}(bk)),bk}!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.findGcd=e.gcd=void 0;const t=qC;e.gcd=(n,r)=>{const i=t.BigNumber.from(n),o=t.BigNumber.from(r);return i.eq(0)?o:(0,e.gcd)(o.mod(n),i)};e.findGcd=n=>{let r=t.BigNumber.from(n[0]);for(let t=1;t<n.length;t++)if(r=(0,e.gcd)(n[t],r),r.eq(1))return r;return r}}(Ek);var Ck={};!function(e){var t=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.getTagFromDomain=e.getTransactionMethods=e.executeAllActions=void 0;const n=XC;e.executeAllActions=e=>t(void 0,void 0,void 0,(function*(){for(let t=0;t<e.length-1;t++){const n=e[t];if("approval"===n.type){const e=yield n.transactionMethods.transact();yield e.wait()}}const t=e[e.length-1];switch(t.type){case"create":return t.createOrder();case"createBulk":return t.createBulkOrders();default:return t.transactionMethods.transact()}}));e.getTransactionMethods=(n,r,i,o)=>{const a=i[i.length-1];let s;(e=>{const t=["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","type","accessList","customData","ccipReadEnabled","value","blockTag","CallOverrides"];return void 0===e||Object.keys(e).every((e=>t.includes(e)))})(a)&&(s=a,i.pop());const u=a=>t(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},s),a),u=yield n.populateTransaction[r](...i,t);if(o){const t=(0,e.getTagFromDomain)(o);u.data=u.data+t}return u}));return{callStatic:e=>{const t=Object.assign(Object.assign({},s),e);return n.callStatic[r](...i,t)},estimateGas:e=>{const t=Object.assign(Object.assign({},s),e);return n.estimateGas[r](...i,t)},transact:e=>t(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},s),e),r=yield u(t);return n.signer.sendTransaction(r)})),buildTransaction:u}};e.getTagFromDomain=e=>(0,n.keccak256)((0,n.toUtf8Bytes)(e)).slice(2,10)}(Ck);var kk=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(mk,"__esModule",{value:!0}),mk.getApprovalActions=mk.approvedItemAmount=void 0;const Sk=qC,Ik=yk,Pk=Ak,Ok=hk,Nk=Tk(),Rk=Ck;mk.approvedItemAmount=(e,t,n,r)=>kk(void 0,void 0,void 0,(function*(){if((0,Nk.isErc721Item)(t.itemType)||(0,Nk.isErc1155Item)(t.itemType)){return new Sk.Contract(t.token,Pk.ERC721ABI,r).isApprovedForAll(e,n).then((e=>e?Ok.MAX_INT:Sk.BigNumber.from(0)))}if(t.itemType===Ok.ItemType.ERC20){return new Sk.Contract(t.token,Ik.ERC20ABI,r).allowance(e,n)}return Ok.MAX_INT})),mk.getApprovalActions=function(e,t,n){return e.filter(((t,n)=>n===e.length-1||e[n+1].token!==t.token)).map((({token:e,operator:r,itemType:i,identifierOrCriteria:o,requiredApprovedAmount:a})=>{const s=(0,Nk.isErc1155Item)(i);if((0,Nk.isErc721Item)(i)||s){const a=new Sk.Contract(e,Pk.ERC721ABI,n);return{type:"approval",token:e,identifierOrCriteria:o,itemType:i,operator:r,transactionMethods:(0,Rk.getTransactionMethods)(a.connect(n),t&&!s?"approve":"setApprovalForAll",[r,!(t&&!s)||o])}}{const s=new Sk.Contract(e,Ik.ERC20ABI,n);return{type:"approval",token:e,identifierOrCriteria:o,itemType:i,transactionMethods:(0,Rk.getTransactionMethods)(s.connect(n),"approve",[r,t?a:Ok.MAX_INT]),operator:r}}}))};var Mk={},Lk={},Dk={};Object.defineProperty(Dk,"__esModule",{value:!0}),Dk.ERC1155ABI=void 0;Dk.ERC1155ABI=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"owners",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"balances",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];var Fk=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(Lk,"__esModule",{value:!0}),Lk.balanceOf=void 0;const Bk=qC,jk=Dk,zk=yk,_k=Ak,Uk=hk,Hk=Tk();Lk.balanceOf=(e,t,n,r)=>Fk(void 0,void 0,void 0,(function*(){if((0,Hk.isErc721Item)(t.itemType)){const i=new Bk.Contract(t.token,_k.ERC721ABI,n);return t.itemType===Uk.ItemType.ERC721_WITH_CRITERIA?r?i.ownerOf(r.identifier).then((t=>Bk.BigNumber.from(Number(t.toLowerCase()===e.toLowerCase())))):i.balanceOf(e):i.ownerOf(t.identifierOrCriteria).then((t=>Bk.BigNumber.from(Number(t.toLowerCase()===e.toLowerCase()))))}if((0,Hk.isErc1155Item)(t.itemType)){const i=new Bk.Contract(t.token,jk.ERC1155ABI,n);if(t.itemType===Uk.ItemType.ERC1155_WITH_CRITERIA){if(!r){const e=Bk.BigNumber.from(t.startAmount),n=Bk.BigNumber.from(t.endAmount);return e.gt(n)?e:n}return i.balanceOf(e,r.identifier)}return i.balanceOf(e,t.identifierOrCriteria)}if((0,Hk.isErc20Item)(t.itemType)){return new Bk.Contract(t.token,zk.ERC20ABI,n).balanceOf(e)}return n.getBalance(e)})),function(e){var t=ze&&ze.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(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(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.validateStandardFulfillBalancesAndApprovals=e.validateBasicFulfillBalancesAndApprovals=e.validateOfferBalancesAndApprovals=e.getInsufficientBalanceAndApprovalAmounts=e.getBalancesAndApprovals=void 0;const n=qC,r=hk,i=mk,o=Lk,a=wk(),s=Tk(),u=(e,t,n)=>{const r=e.find((({token:e,identifierOrCriteria:r})=>t.toLowerCase()===e.toLowerCase()&&r.toLowerCase()===n.toLowerCase()));if(!r)throw new Error("Balances and approvals didn't contain all tokens and identifiers");return r};e.getBalancesAndApprovals=({owner:e,items:u,criterias:l,operator:c,multicallProvider:d})=>t(void 0,void 0,void 0,(function*(){const f=(0,a.getItemToCriteriaMap)(u,l);return Promise.all(u.map((a=>t(void 0,void 0,void 0,(function*(){var t,u;let l=Promise.resolve(n.BigNumber.from(0));return l=(0,s.isErc721Item)(a.itemType)||(0,s.isErc1155Item)(a.itemType)||(0,s.isErc20Item)(a.itemType)?(0,i.approvedItemAmount)(e,a,c,d):Promise.resolve(r.MAX_INT),{token:a.token,identifierOrCriteria:null!==(u=null===(t=f.get(a))||void 0===t?void 0:t.identifier)&&void 0!==u?u:a.identifierOrCriteria,balance:yield(0,o.balanceOf)(e,a,d,f.get(a)),approvedAmount:yield l,itemType:a.itemType}})))))}));e.getInsufficientBalanceAndApprovalAmounts=({balancesAndApprovals:e,tokenAndIdentifierAmounts:t,operator:n})=>{const r=[...Object.entries(t).map((([e,t])=>Object.entries(t).map((([t,n])=>[e,t,n]))))].flat(),i=t=>r.filter((([n,r,i])=>u(e,n,r)[t].lt(i))).map((([n,r,i])=>{const o=u(e,n,r);return{token:n,identifierOrCriteria:r,requiredAmount:i,amountHave:o[t],itemType:o.itemType}})),[o,a]=[i("balance"),i("approvedAmount").map((e=>({token:e.token,identifierOrCriteria:e.identifierOrCriteria,approvedAmount:e.amountHave,requiredApprovedAmount:e.requiredAmount,itemType:e.itemType,operator:n})))];return{insufficientBalances:o,insufficientApprovals:a}};e.validateOfferBalancesAndApprovals=({offer:t,criterias:n,balancesAndApprovals:r,timeBasedItemParams:i,throwOnInsufficientBalances:o=!0,throwOnInsufficientApprovals:a,operator:u})=>{const{insufficientBalances:l,insufficientApprovals:c}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:r,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:t,criterias:n,timeBasedItemParams:i?Object.assign(Object.assign({},i),{isConsiderationItem:!1}):void 0}),operator:u});if(o&&l.length>0)throw new Error("The offerer does not have the amount needed to create or fulfill.");if(a&&c.length>0)throw new Error("The offerer does not have the sufficient approvals.");return c};e.validateBasicFulfillBalancesAndApprovals=({offer:t,consideration:n,offererBalancesAndApprovals:r,fulfillerBalancesAndApprovals:i,timeBasedItemParams:o,offererOperator:a,fulfillerOperator:u})=>{(0,e.validateOfferBalancesAndApprovals)({offer:t,criterias:[],balancesAndApprovals:r,timeBasedItemParams:o,throwOnInsufficientApprovals:!0,operator:a});const l=n.filter((e=>e.itemType!==t[0].itemType)),{insufficientBalances:c,insufficientApprovals:d}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:i,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:l,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},o),{isConsiderationItem:!0})}),operator:u});if(c.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return d};e.validateStandardFulfillBalancesAndApprovals=({offer:t,consideration:n,offerCriteria:r,considerationCriteria:i,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:a,timeBasedItemParams:u,offererOperator:c,fulfillerOperator:d})=>{(0,e.validateOfferBalancesAndApprovals)({offer:t,criterias:r,balancesAndApprovals:o,timeBasedItemParams:u,throwOnInsufficientApprovals:!0,operator:c});const f=l({items:t,criterias:r,balancesAndApprovals:a,timeBasedItemParams:u}),{insufficientBalances:p,insufficientApprovals:h}=(0,e.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:f,tokenAndIdentifierAmounts:(0,s.getSummedTokenAndIdentifierAmounts)({items:n,criterias:i,timeBasedItemParams:Object.assign(Object.assign({},u),{isConsiderationItem:!0})}),operator:d});if(p.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return h};const l=({items:e,criterias:t,timeBasedItemParams:n,balancesAndApprovals:r})=>{const i=(0,s.getSummedTokenAndIdentifierAmounts)({items:e,criterias:t,timeBasedItemParams:Object.assign(Object.assign({},n),{isConsiderationItem:!1})}),o=r.map((e=>Object.assign({},e)));return Object.entries(i).forEach((([e,t])=>Object.entries(t).forEach((([t,n])=>{const r=u(o,e,t),i=o.indexOf(r);o[i].balance=o[i].balance.add(n)})))),o}}(Mk);var Wk={},Vk={},qk={},Xk={},Gk={exports:{}};var Zk,Yk={exports:{}},Kk=Ue(Object.freeze({__proto__:null,default:{}}));function Qk(){return Zk||(Zk=1,function(e,t){var n;e.exports=(n=n||function(e,t){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==ze&&ze.crypto&&(n=ze.crypto),!n)try{n=Kk}catch(e){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),o={},a=o.lib={},s=a.Base={extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},u=a.WordArray=s.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var o=0;o<i;o++){var a=n[o>>>2]>>>24-o%4*8&255;t[r+o>>>2]|=a<<24-(r+o)%4*8}else for(var s=0;s<i;s+=4)t[r+s>>>2]=n[s>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=s.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(r());return new u.init(t,e)}}),l=o.enc={},c=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new u.init(n,t/2)}},d=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new u.init(n,t)}},f=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},p=a.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n,r=this._data,i=r.words,o=r.sigBytes,a=this.blockSize,s=o/(4*a),l=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,c=e.min(4*l,o);if(l){for(var d=0;d<l;d+=a)this._doProcessBlock(i,d);n=i.splice(0,l),r.sigBytes-=c}return new u.init(n,c)},clone:function(){var e=s.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});a.Hasher=p.extend({cfg:s.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new h.HMAC.init(e,n).finalize(t)}}});var h=o.algo={};return o}(Math),n)}(Yk)),Yk.exports}!function(e,t){var n;e.exports=(n=Qk(),function(e){var t=n,r=t.lib,i=r.WordArray,o=r.Hasher,a=t.algo,s=[],u=[];!function(){function t(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var r=2,i=0;i<64;)t(r)&&(i<8&&(s[i]=n(e.pow(r,.5))),u[i]=n(e.pow(r,1/3)),i++),r++}();var l=[],c=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],c=n[5],d=n[6],f=n[7],p=0;p<64;p++){if(p<16)l[p]=0|e[t+p];else{var h=l[p-15],m=(h<<25|h>>>7)^(h<<14|h>>>18)^h>>>3,y=l[p-2],A=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;l[p]=m+l[p-7]+A+l[p-16]}var g=r&i^r&o^i&o,b=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),v=f+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&c^~s&d)+u[p]+l[p];f=d,d=c,c=s,s=a+v|0,a=o,o=i,i=r,r=v+(b+g)|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+d|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(c),t.HmacSHA256=o._createHmacHelper(c)}(Math),n.SHA256)}(Gk);var Jk=Gk.exports,$k={exports:{}};!function(e,t){e.exports=function(){function e(e,t){var n=t?"└":"├";return n+=e?"─ ":"──┐"}function t(e,t){var n=[];for(var r in e)e.hasOwnProperty(r)&&(t&&"function"==typeof e[r]||n.push(r));return n}function n(r,i,o,a,s,u,l){var c,d,f="",p=0,h=a.slice(0);if(h.push([i,o])&&a.length>0&&(a.forEach((function(e,t){t>0&&(f+=(e[1]?" ":"│")+" "),d||e[0]!==i||(d=!0)})),f+=e(r,o)+r,s&&("object"!=typeof i||i instanceof Date)&&(f+=": "+i),d&&(f+=" (circular ref.)"),l(f)),!d&&"object"==typeof i){var m=t(i,u);m.forEach((function(e){c=++p===m.length,n(e,i[e],c,h,s,u,l)}))}}var r={asLines:function(e,t,r,i){n(".",e,!1,[],t,"function"!=typeof r&&r,i||r)},asTree:function(e,t,r){var i="";return n(".",e,!1,[],t,r,(function(e){i+=e+"\n"})),i}};return r}()}($k);var eS,tS=$k.exports,nS={},rS={exports:{}},iS={exports:{}};function oS(){return eS||(eS=1,function(e,t){var n;e.exports=(n=Qk(),function(e){var t=n,r=t.lib,i=r.Base,o=r.WordArray,a=t.x64={};a.Word=i.extend({init:function(e,t){this.high=e,this.low=t}}),a.WordArray=i.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:8*t.length},toX32:function(){for(var e=this.words,t=e.length,n=[],r=0;r<t;r++){var i=e[r];n.push(i.high),n.push(i.low)}return o.create(n,this.sigBytes)},clone:function(){for(var e=i.clone.call(this),t=e.words=this.words.slice(0),n=t.length,r=0;r<n;r++)t[r]=t[r].clone();return e}})}(),n)}(iS)),iS.exports}var aS,sS={exports:{}};function uS(){return aS||(aS=1,function(e,t){var n;e.exports=(n=Qk(),function(){if("function"==typeof ArrayBuffer){var e=n.lib.WordArray,t=e.init,r=e.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var n=e.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=e[i]<<24-i%4*8;t.call(this,r,n)}else t.apply(this,arguments)};r.prototype=e}}(),n.lib.WordArray)}(sS)),sS.exports}var lS,cS={exports:{}};function dS(){return lS||(lS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib.WordArray,r=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=2){var o=t[i>>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i<n;i++)r[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},r.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],o=0;o<n;o+=2){var a=i(t[o>>>2]>>>16-o%4*8&65535);r.push(String.fromCharCode(a))}return r.join("")},parse:function(e){for(var n=e.length,r=[],o=0;o<n;o++)r[o>>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(r,2*n)}}}(),n.enc.Utf16)}(cS)),cS.exports}var fS,pS={exports:{}};function hS(){return fS||(fS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib.WordArray;function r(e,n,r){for(var i=[],o=0,a=0;a<n;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;i[o>>>2]|=s<<24-o%4*8,o++}return t.create(i,o)}e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],o=0;o<n;o+=3)for(var a=(t[o>>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<n;s++)i.push(r.charAt(a>>>6*(3-s)&63));var u=r.charAt(64);if(u)for(;i.length%4;)i.push(u);return i.join("")},parse:function(e){var t=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<n.length;o++)i[n.charCodeAt(o)]=o}var a=n.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(t=s)}return r(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),n.enc.Base64)}(pS)),pS.exports}var mS,yS={exports:{}};function AS(){return mS||(mS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib.WordArray;function r(e,n,r){for(var i=[],o=0,a=0;a<n;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;i[o>>>2]|=s<<24-o%4*8,o++}return t.create(i,o)}e.enc.Base64url={stringify:function(e,t){void 0===t&&(t=!0);var n=e.words,r=e.sigBytes,i=t?this._safe_map:this._map;e.clamp();for(var o=[],a=0;a<r;a+=3)for(var s=(n[a>>>2]>>>24-a%4*8&255)<<16|(n[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|n[a+2>>>2]>>>24-(a+2)%4*8&255,u=0;u<4&&a+.75*u<r;u++)o.push(i.charAt(s>>>6*(3-u)&63));var l=i.charAt(64);if(l)for(;o.length%4;)o.push(l);return o.join("")},parse:function(e,t){void 0===t&&(t=!0);var n=e.length,i=t?this._safe_map:this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var a=0;a<i.length;a++)o[i.charCodeAt(a)]=a}var s=i.charAt(64);if(s){var u=e.indexOf(s);-1!==u&&(n=u)}return r(e,n,o)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),n.enc.Base64url)}(yS)),yS.exports}var gS,bS={exports:{}};function vS(){return gS||(gS=1,function(e,t){var n;e.exports=(n=Qk(),function(e){var t=n,r=t.lib,i=r.WordArray,o=r.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var u=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_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 o=this._hash.words,a=e[t+0],u=e[t+1],p=e[t+2],h=e[t+3],m=e[t+4],y=e[t+5],A=e[t+6],g=e[t+7],b=e[t+8],v=e[t+9],w=e[t+10],x=e[t+11],E=e[t+12],T=e[t+13],C=e[t+14],k=e[t+15],S=o[0],I=o[1],P=o[2],O=o[3];S=l(S,I,P,O,a,7,s[0]),O=l(O,S,I,P,u,12,s[1]),P=l(P,O,S,I,p,17,s[2]),I=l(I,P,O,S,h,22,s[3]),S=l(S,I,P,O,m,7,s[4]),O=l(O,S,I,P,y,12,s[5]),P=l(P,O,S,I,A,17,s[6]),I=l(I,P,O,S,g,22,s[7]),S=l(S,I,P,O,b,7,s[8]),O=l(O,S,I,P,v,12,s[9]),P=l(P,O,S,I,w,17,s[10]),I=l(I,P,O,S,x,22,s[11]),S=l(S,I,P,O,E,7,s[12]),O=l(O,S,I,P,T,12,s[13]),P=l(P,O,S,I,C,17,s[14]),S=c(S,I=l(I,P,O,S,k,22,s[15]),P,O,u,5,s[16]),O=c(O,S,I,P,A,9,s[17]),P=c(P,O,S,I,x,14,s[18]),I=c(I,P,O,S,a,20,s[19]),S=c(S,I,P,O,y,5,s[20]),O=c(O,S,I,P,w,9,s[21]),P=c(P,O,S,I,k,14,s[22]),I=c(I,P,O,S,m,20,s[23]),S=c(S,I,P,O,v,5,s[24]),O=c(O,S,I,P,C,9,s[25]),P=c(P,O,S,I,h,14,s[26]),I=c(I,P,O,S,b,20,s[27]),S=c(S,I,P,O,T,5,s[28]),O=c(O,S,I,P,p,9,s[29]),P=c(P,O,S,I,g,14,s[30]),S=d(S,I=c(I,P,O,S,E,20,s[31]),P,O,y,4,s[32]),O=d(O,S,I,P,b,11,s[33]),P=d(P,O,S,I,x,16,s[34]),I=d(I,P,O,S,C,23,s[35]),S=d(S,I,P,O,u,4,s[36]),O=d(O,S,I,P,m,11,s[37]),P=d(P,O,S,I,g,16,s[38]),I=d(I,P,O,S,w,23,s[39]),S=d(S,I,P,O,T,4,s[40]),O=d(O,S,I,P,a,11,s[41]),P=d(P,O,S,I,h,16,s[42]),I=d(I,P,O,S,A,23,s[43]),S=d(S,I,P,O,v,4,s[44]),O=d(O,S,I,P,E,11,s[45]),P=d(P,O,S,I,k,16,s[46]),S=f(S,I=d(I,P,O,S,p,23,s[47]),P,O,a,6,s[48]),O=f(O,S,I,P,g,10,s[49]),P=f(P,O,S,I,C,15,s[50]),I=f(I,P,O,S,y,21,s[51]),S=f(S,I,P,O,E,6,s[52]),O=f(O,S,I,P,h,10,s[53]),P=f(P,O,S,I,w,15,s[54]),I=f(I,P,O,S,u,21,s[55]),S=f(S,I,P,O,b,6,s[56]),O=f(O,S,I,P,k,10,s[57]),P=f(P,O,S,I,A,15,s[58]),I=f(I,P,O,S,T,21,s[59]),S=f(S,I,P,O,m,6,s[60]),O=f(O,S,I,P,x,10,s[61]),P=f(P,O,S,I,p,15,s[62]),I=f(I,P,O,S,v,21,s[63]),o[0]=o[0]+S|0,o[1]=o[1]+I|0,o[2]=o[2]+P|0,o[3]=o[3]+O|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var o=e.floor(r/4294967296),a=r;n[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(n.length+1),this._process();for(var s=this._hash,u=s.words,l=0;l<4;l++){var c=u[l];u[l]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function l(e,t,n,r,i,o,a){var s=e+(t&n|~t&r)+i+a;return(s<<o|s>>>32-o)+t}function c(e,t,n,r,i,o,a){var s=e+(t&r|n&~r)+i+a;return(s<<o|s>>>32-o)+t}function d(e,t,n,r,i,o,a){var s=e+(t^n^r)+i+a;return(s<<o|s>>>32-o)+t}function f(e,t,n,r,i,o,a){var s=e+(n^(t|~r))+i+a;return(s<<o|s>>>32-o)+t}t.MD5=o._createHelper(u),t.HmacMD5=o._createHmacHelper(u)}(Math),n.MD5)}(bS)),bS.exports}var wS,xS={exports:{}};function ES(){return wS||(wS=1,function(e,t){var n;e.exports=(n=Qk(),function(){var e=n,t=e.lib,r=t.WordArray,i=t.Hasher,o=e.algo,a=[],s=o.SHA1=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],s=n[3],u=n[4],l=0;l<80;l++){if(l<16)a[l]=0|e[t+l];else{var c=a[l-3]^a[l-8]^a[l-14]^a[l-16];a[l]=c<<1|c>>>31}var d=(r<<5|r>>>27)+u+a[l];d+=l<20?1518500249+(i&o|~i&s):l<40?1859775393+(i^o^s):l<60?(i&o|i&s|o&s)-1894007588:(i^o^s)-899497514,u=s,s=o,o=i<<30|i>>>2,i=r,r=d}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+u|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=Math.floor(n/4294967296),t[15+(r+64>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA1=i._createHelper(s),e.HmacSHA1=i._createHmacHelper(s)}(),n.SHA1)}(xS)),xS.exports}var TS,CS={exports:{}};var kS,SS={exports:{}};function IS(){return kS||(kS=1,function(e,t){var n;e.exports=(n=Qk(),oS(),function(){var e=n,t=e.lib.Hasher,r=e.x64,i=r.Word,o=r.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var u=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=s()}();var c=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],c=n[5],d=n[6],f=n[7],p=r.high,h=r.low,m=i.high,y=i.low,A=o.high,g=o.low,b=a.high,v=a.low,w=s.high,x=s.low,E=c.high,T=c.low,C=d.high,k=d.low,S=f.high,I=f.low,P=p,O=h,N=m,R=y,M=A,L=g,D=b,F=v,B=w,j=x,z=E,_=T,U=C,H=k,W=S,V=I,q=0;q<80;q++){var X,G,Z=l[q];if(q<16)G=Z.high=0|e[t+2*q],X=Z.low=0|e[t+2*q+1];else{var Y=l[q-15],K=Y.high,Q=Y.low,J=(K>>>1|Q<<31)^(K>>>8|Q<<24)^K>>>7,$=(Q>>>1|K<<31)^(Q>>>8|K<<24)^(Q>>>7|K<<25),ee=l[q-2],te=ee.high,ne=ee.low,re=(te>>>19|ne<<13)^(te<<3|ne>>>29)^te>>>6,ie=(ne>>>19|te<<13)^(ne<<3|te>>>29)^(ne>>>6|te<<26),oe=l[q-7],ae=oe.high,se=oe.low,ue=l[q-16],le=ue.high,ce=ue.low;G=(G=(G=J+ae+((X=$+se)>>>0<$>>>0?1:0))+re+((X+=ie)>>>0<ie>>>0?1:0))+le+((X+=ce)>>>0<ce>>>0?1:0),Z.high=G,Z.low=X}var de,fe=B&z^~B&U,pe=j&_^~j&H,he=P&N^P&M^N&M,me=O&R^O&L^R&L,ye=(P>>>28|O<<4)^(P<<30|O>>>2)^(P<<25|O>>>7),Ae=(O>>>28|P<<4)^(O<<30|P>>>2)^(O<<25|P>>>7),ge=(B>>>14|j<<18)^(B>>>18|j<<14)^(B<<23|j>>>9),be=(j>>>14|B<<18)^(j>>>18|B<<14)^(j<<23|B>>>9),ve=u[q],we=ve.high,xe=ve.low,Ee=W+ge+((de=V+be)>>>0<V>>>0?1:0),Te=Ae+me;W=U,V=H,U=z,H=_,z=B,_=j,B=D+(Ee=(Ee=(Ee=Ee+fe+((de+=pe)>>>0<pe>>>0?1:0))+we+((de+=xe)>>>0<xe>>>0?1:0))+G+((de+=X)>>>0<X>>>0?1:0))+((j=F+de|0)>>>0<F>>>0?1:0)|0,D=M,F=L,M=N,L=R,N=P,R=O,P=Ee+(ye+he+(Te>>>0<Ae>>>0?1:0))+((O=de+Te|0)>>>0<de>>>0?1:0)|0}h=r.low=h+O,r.high=p+P+(h>>>0<O>>>0?1:0),y=i.low=y+R,i.high=m+N+(y>>>0<R>>>0?1:0),g=o.low=g+L,o.high=A+M+(g>>>0<L>>>0?1:0),v=a.low=v+F,a.high=b+D+(v>>>0<F>>>0?1:0),x=s.low=x+j,s.high=w+B+(x>>>0<j>>>0?1:0),T=c.low=T+_,c.high=E+z+(T>>>0<_>>>0?1:0),k=d.low=k+H,d.high=C+U+(k>>>0<H>>>0?1:0),I=f.low=I+V,f.high=S+W+(I>>>0<V>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(r+128>>>10<<5)]=Math.floor(n/4294967296),t[31+(r+128>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(c),e.HmacSHA512=t._createHmacHelper(c)}(),n.SHA512)}(SS)),SS.exports}var PS,OS={exports:{}};var NS,RS={exports:{}};function MS(){return NS||(NS=1,function(e,t){var n;e.exports=(n=Qk(),oS(),function(e){var t=n,r=t.lib,i=r.WordArray,o=r.Hasher,a=t.x64.Word,s=t.algo,u=[],l=[],c=[];!function(){for(var e=1,t=0,n=0;n<24;n++){u[e+5*t]=(n+1)*(n+2)/2%64;var r=(2*e+3*t)%5;e=t%5,t=r}for(e=0;e<5;e++)for(t=0;t<5;t++)l[e+5*t]=t+(2*e+3*t)%5*5;for(var i=1,o=0;o<24;o++){for(var s=0,d=0,f=0;f<7;f++){if(1&i){var p=(1<<f)-1;p<32?d^=1<<p:s^=1<<p-32}128&i?i=i<<1^113:i<<=1}c[o]=a.create(s,d)}}();var d=[];!function(){for(var e=0;e<25;e++)d[e]=a.create()}();var f=s.SHA3=o.extend({cfg:o.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var n=this._state,r=this.blockSize/2,i=0;i<r;i++){var o=e[t+2*i],a=e[t+2*i+1];o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(I=n[i]).high^=a,I.low^=o}for(var s=0;s<24;s++){for(var f=0;f<5;f++){for(var p=0,h=0,m=0;m<5;m++)p^=(I=n[f+5*m]).high,h^=I.low;var y=d[f];y.high=p,y.low=h}for(f=0;f<5;f++){var A=d[(f+4)%5],g=d[(f+1)%5],b=g.high,v=g.low;for(p=A.high^(b<<1|v>>>31),h=A.low^(v<<1|b>>>31),m=0;m<5;m++)(I=n[f+5*m]).high^=p,I.low^=h}for(var w=1;w<25;w++){var x=(I=n[w]).high,E=I.low,T=u[w];T<32?(p=x<<T|E>>>32-T,h=E<<T|x>>>32-T):(p=E<<T-32|x>>>64-T,h=x<<T-32|E>>>64-T);var C=d[l[w]];C.high=p,C.low=h}var k=d[0],S=n[0];for(k.high=S.high,k.low=S.low,f=0;f<5;f++)for(m=0;m<5;m++){var I=n[w=f+5*m],P=d[w],O=d[(f+1)%5+5*m],N=d[(f+2)%5+5*m];I.high=P.high^~O.high&N.high,I.low=P.low^~O.low&N.low}I=n[0];var R=c[s];I.high^=R.high,I.low^=R.low}},_doFinalize:function(){var t=this._data,n=t.words;this._nDataBytes;var r=8*t.sigBytes,o=32*this.blockSize;n[r>>>5]|=1<<24-r%32,n[(e.ceil((r+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*n.length,this._process();for(var a=this._state,s=this.cfg.outputLength/8,u=s/8,l=[],c=0;c<u;c++){var d=a[c],f=d.high,p=d.low;f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),p=16711935&(p<<8|p>>>24)|4278255360&(p<<24|p>>>8),l.push(p),l.push(f)}return new i.init(l,s)},clone:function(){for(var e=o.clone.call(this),t=e._state=this._state.slice(0),n=0;n<25;n++)t[n]=t[n].clone();return e}});t.SHA3=o._createHelper(f),t.HmacSHA3=o._createHmacHelper(f)}(Math),n.SHA3)}(RS)),RS.exports}var LS,DS={exports:{}};var FS,BS={exports:{}};function jS(){return FS||(FS=1,function(e,t){var n;e.exports=(n=Qk(),void function(){var e=n,t=e.lib.Base,r=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=r.parse(t));var n=e.blockSize,i=4*n;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),a=this._iKey=t.clone(),s=o.words,u=a.words,l=0;l<n;l++)s[l]^=1549556828,u[l]^=909522486;o.sigBytes=a.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}())}(BS)),BS.exports}var zS,_S={exports:{}};var US,HS={exports:{}};function WS(){return US||(US=1,function(e,t){var n;e.exports=(n=Qk(),ES(),jS(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,o=e.algo,a=o.MD5,s=o.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:a,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n,r=this.cfg,o=r.hasher.create(),a=i.create(),s=a.words,u=r.keySize,l=r.iterations;s.length<u;){n&&o.update(n),n=o.update(e).finalize(t),o.reset();for(var c=1;c<l;c++)n=o.finalize(n),o.reset();a.concat(n)}return a.sigBytes=4*u,a}});e.EvpKDF=function(e,t,n){return s.create(n).compute(e,t)}}(),n.EvpKDF)}(HS)),HS.exports}var VS,qS={exports:{}};function XS(){return VS||(VS=1,function(e,t){var n;e.exports=(n=Qk(),WS(),void(n.lib.Cipher||function(e){var t=n,r=t.lib,i=r.Base,o=r.WordArray,a=r.BufferedBlockAlgorithm,s=t.enc;s.Utf8;var u=s.Base64,l=t.algo.EvpKDF,c=r.Cipher=a.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){a.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?b:A}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()});r.StreamCipher=c.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var d=t.mode={},f=r.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=d.CBC=function(){var t=f.extend();function n(t,n,r){var i,o=this._iv;o?(i=o,this._iv=e):i=this._prevBlock;for(var a=0;a<r;a++)t[n+a]^=i[a]}return t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,o=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=o}}),t}(),h=(t.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,r=n-e.sigBytes%n,i=r<<24|r<<16|r<<8|r,a=[],s=0;s<r;s+=4)a.push(i);var u=o.create(a,r);e.concat(u)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};r.BlockCipher=c.extend({cfg:c.cfg.extend({mode:p,padding:h}),reset:function(){var e;c.reset.call(this);var t=this.cfg,n=t.iv,r=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=r.createEncryptor:(e=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,n&&n.words):(this._mode=e.call(r,this,n&&n.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var m=r.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),y=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;return(n?o.create([1398893684,1701076831]).concat(n).concat(t):t).toString(u)},parse:function(e){var t,n=u.parse(e),r=n.words;return 1398893684==r[0]&&1701076831==r[1]&&(t=o.create(r.slice(2,4)),r.splice(0,4),n.sigBytes-=16),m.create({ciphertext:n,salt:t})}},A=r.SerializableCipher=i.extend({cfg:i.extend({format:y}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),o=i.finalize(t),a=i.cfg;return m.create({ciphertext:o,key:n,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=(t.kdf={}).OpenSSL={execute:function(e,t,n,r,i){if(r||(r=o.random(8)),i)a=l.create({keySize:t+n,hasher:i}).compute(e,r);else var a=l.create({keySize:t+n}).compute(e,r);var s=o.create(a.words.slice(t),4*n);return a.sigBytes=4*t,m.create({key:a,iv:s,salt:r})}},b=r.PasswordBasedCipher=A.extend({cfg:A.cfg.extend({kdf:g}),encrypt:function(e,t,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize,r.salt,r.hasher);r.iv=i.iv;var o=A.encrypt.call(this,e,t,i.key,r);return o.mixIn(i),o},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt,r.hasher);return r.iv=i.iv,A.decrypt.call(this,e,t,i.key,r)}})}()))}(qS)),qS.exports}var GS,ZS={exports:{}};function YS(){return GS||(GS=1,function(e,t){var n;e.exports=(n=Qk(),XS(),n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();function t(e,t,n,r){var i,o=this._iv;o?(i=o.slice(0),this._iv=void 0):i=this._prevBlock,r.encryptBlock(i,0);for(var a=0;a<n;a++)e[t+a]^=i[a]}return e.Encryptor=e.extend({processBlock:function(e,n){var r=this._cipher,i=r.blockSize;t.call(this,e,n,i,r),this._prevBlock=e.slice(n,n+i)}}),e.Decryptor=e.extend({processBlock:function(e,n){var r=this._cipher,i=r.blockSize,o=e.slice(n,n+i);t.call(this,e,n,i,r),this._prevBlock=o}}),e}(),n.mode.CFB)}(ZS)),ZS.exports}var KS,QS={exports:{}};function JS(){return KS||(KS=1,function(e,t){var n,r,i;e.exports=(i=Qk(),XS(),i.mode.CTR=(n=i.lib.BlockCipherMode.extend(),r=n.Encryptor=n.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=this._iv,o=this._counter;i&&(o=this._counter=i.slice(0),this._iv=void 0);var a=o.slice(0);n.encryptBlock(a,0),o[r-1]=o[r-1]+1|0;for(var s=0;s<r;s++)e[t+s]^=a[s]}}),n.Decryptor=r,n),i.mode.CTR)}(QS)),QS.exports}var $S,eI={exports:{}};function tI(){return $S||($S=1,function(e,t){var n;e.exports=(n=Qk(),XS(),
19
19
  /** @preserve
20
20
  * Counter block mode compatible with Dr Brian Gladman fileenc.c
21
21
  * derived from CryptoJS.mode.CTR