@evvm/x402 0.0.1 → 0.1.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.
package/dist/index.cjs ADDED
@@ -0,0 +1,76 @@
1
+ var VA=Object.create;var{getPrototypeOf:LA,defineProperty:pq,getOwnPropertyNames:nM,getOwnPropertyDescriptor:EA}=Object,aM=Object.prototype.hasOwnProperty;function eM(Y){return this[Y]}var wA,AA,lG=(Y,J,Q)=>{var X=Y!=null&&typeof Y==="object";if(X){var q=J?wA??=new WeakMap:AA??=new WeakMap,G=q.get(Y);if(G)return G}Q=Y!=null?VA(LA(Y)):{};let $=J||!Y||!Y.__esModule?pq(Q,"default",{value:Y,enumerable:!0}):Q;for(let W of nM(Y))if(!aM.call($,W))pq($,W,{get:eM.bind(Y,W),enumerable:!0});if(X)q.set(Y,$);return $},CA=(Y)=>{var J=(tM??=new WeakMap).get(Y),Q;if(J)return J;if(J=pq({},"__esModule",{value:!0}),Y&&typeof Y==="object"||typeof Y==="function"){for(var X of nM(Y))if(!aM.call(J,X))pq(J,X,{get:eM.bind(Y,X),enumerable:!(Q=EA(Y,X))||Q.enumerable})}return tM.set(Y,J),J},tM;var IA=(Y)=>Y;function SA(Y,J){this[Y]=IA.bind(null,J)}var IW=(Y,J)=>{for(var Q in J)pq(Y,Q,{get:J[Q],enumerable:!0,configurable:!0,set:SA.bind(J,Q)})};var F8=(Y,J)=>()=>(Y&&(J=Y(Y=0)),J);function aZ(Y,J=!1){if(J)return{h:Number(Y&QW),l:Number(Y>>BE&QW)};return{h:Number(Y>>BE&QW)|0,l:Number(Y&QW)|0}}function RE(Y,J=!1){let Q=Y.length,X=new Uint32Array(Q),q=new Uint32Array(Q);for(let G=0;G<Q;G++){let{h:$,l:W}=aZ(Y[G],J);[X[G],q[G]]=[$,W]}return[X,q]}var QW,BE,VE=(Y,J,Q)=>Y<<Q|J>>>32-Q,LE=(Y,J,Q)=>J<<Q|Y>>>32-Q,EE=(Y,J,Q)=>J<<Q-32|Y>>>64-Q,wE=(Y,J,Q)=>Y<<Q-32|J>>>64-Q;var AE=F8(()=>{QW=BigInt(4294967295),BE=BigInt(32)});var aY,BQ;var CE=F8(()=>{aY=lG(require("node:crypto")),BQ=aY&&typeof aY==="object"&&"webcrypto"in aY?aY.webcrypto:aY&&typeof aY==="object"&&("randomBytes"in aY)?aY:void 0});function eZ(Y){return Y instanceof Uint8Array||ArrayBuffer.isView(Y)&&Y.constructor.name==="Uint8Array"}function RQ(Y){if(!Number.isSafeInteger(Y)||Y<0)throw Error("positive integer expected, got "+Y)}function AY(Y,...J){if(!eZ(Y))throw Error("Uint8Array expected");if(J.length>0&&!J.includes(Y.length))throw Error("Uint8Array expected of length "+J+", got length="+Y.length)}function IE(Y){if(typeof Y!=="function"||typeof Y.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");RQ(Y.outputLen),RQ(Y.blockLen)}function eY(Y,J=!0){if(Y.destroyed)throw Error("Hash instance has been destroyed");if(J&&Y.finished)throw Error("Hash#digest() has already been called")}function qW(Y,J){AY(Y);let Q=J.outputLen;if(Y.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function SE(Y){return new Uint32Array(Y.buffer,Y.byteOffset,Math.floor(Y.byteLength/4))}function CY(...Y){for(let J=0;J<Y.length;J++)Y[J].fill(0)}function XW(Y){return new DataView(Y.buffer,Y.byteOffset,Y.byteLength)}function $Y(Y,J){return Y<<32-J|Y>>>J}function Jx(Y){return Y<<24&4278190080|Y<<8&16711680|Y>>>8&65280|Y>>>24&255}function Qx(Y){for(let J=0;J<Y.length;J++)Y[J]=Jx(Y[J]);return Y}function qx(Y){if(typeof Y!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Y))}function VQ(Y){if(typeof Y==="string")Y=qx(Y);return AY(Y),Y}function vE(...Y){let J=0;for(let X=0;X<Y.length;X++){let q=Y[X];AY(q),J+=q.length}let Q=new Uint8Array(J);for(let X=0,q=0;X<Y.length;X++){let G=Y[X];Q.set(G,q),q+=G.length}return Q}class LQ{}function GW(Y){let J=(X)=>Y().update(VQ(X)).digest(),Q=Y();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>Y(),J}function $W(Y=32){if(BQ&&typeof BQ.getRandomValues==="function")return BQ.getRandomValues(new Uint8Array(Y));if(BQ&&typeof BQ.randomBytes==="function")return Uint8Array.from(BQ.randomBytes(Y));throw Error("crypto.getRandomValues must be defined")}var Yx,rz;var IJ=F8(()=>{CE();/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Yx=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();rz=Yx?(Y)=>Y:Qx});function Ax(Y,J,Q,X){if(typeof Y.setBigUint64==="function")return Y.setBigUint64(J,Q,X);let q=BigInt(32),G=BigInt(4294967295),$=Number(Q>>q&G),W=Number(Q&G),j=X?4:0,K=X?0:4;Y.setUint32(J+j,$,X),Y.setUint32(J+K,W,X)}function dE(Y,J,Q){return Y&J^~Y&Q}function rE(Y,J,Q){return Y&J^Y&Q^J&Q}var QM,QJ;var sE=F8(()=>{IJ();QM=class QM extends LQ{constructor(Y,J,Q,X){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=Y,this.outputLen=J,this.padOffset=Q,this.isLE=X,this.buffer=new Uint8Array(Y),this.view=XW(this.buffer)}update(Y){eY(this),Y=VQ(Y),AY(Y);let{view:J,buffer:Q,blockLen:X}=this,q=Y.length;for(let G=0;G<q;){let $=Math.min(X-this.pos,q-G);if($===X){let W=XW(Y);for(;X<=q-G;G+=X)this.process(W,G);continue}if(Q.set(Y.subarray(G,G+$),this.pos),this.pos+=$,G+=$,this.pos===X)this.process(J,0),this.pos=0}return this.length+=Y.length,this.roundClean(),this}digestInto(Y){eY(this),qW(Y,this),this.finished=!0;let{buffer:J,view:Q,blockLen:X,isLE:q}=this,{pos:G}=this;if(J[G++]=128,CY(this.buffer.subarray(G)),this.padOffset>X-G)this.process(Q,0),G=0;for(let z=G;z<X;z++)J[z]=0;Ax(Q,X-8,BigInt(this.length*8),q),this.process(Q,0);let $=XW(Y),W=this.outputLen;if(W%4)throw Error("_sha2: outputLen should be aligned to 32bit");let j=W/4,K=this.get();if(j>K.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<j;z++)$.setUint32(4*z,K[z],q)}digest(){let{buffer:Y,outputLen:J}=this;this.digestInto(Y);let Q=Y.slice(0,J);return this.destroy(),Q}_cloneInto(Y){Y||(Y=new this.constructor),Y.set(...this.get());let{blockLen:J,buffer:Q,length:X,finished:q,destroyed:G,pos:$}=this;if(Y.destroyed=G,Y.finished=q,Y.length=X,Y.pos=$,X%J)Y.buffer.set(Q);return Y}clone(){return this._cloneInto()}};QJ=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225])});var Cx,_J,iE,MG;var tE=F8(()=>{sE();IJ();Cx=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_J=new Uint32Array(64);iE=class iE extends QM{constructor(Y=32){super(64,Y,8,!1);this.A=QJ[0]|0,this.B=QJ[1]|0,this.C=QJ[2]|0,this.D=QJ[3]|0,this.E=QJ[4]|0,this.F=QJ[5]|0,this.G=QJ[6]|0,this.H=QJ[7]|0}get(){let{A:Y,B:J,C:Q,D:X,E:q,F:G,G:$,H:W}=this;return[Y,J,Q,X,q,G,$,W]}set(Y,J,Q,X,q,G,$,W){this.A=Y|0,this.B=J|0,this.C=Q|0,this.D=X|0,this.E=q|0,this.F=G|0,this.G=$|0,this.H=W|0}process(Y,J){for(let z=0;z<16;z++,J+=4)_J[z]=Y.getUint32(J,!1);for(let z=16;z<64;z++){let M=_J[z-15],N=_J[z-2],O=$Y(M,7)^$Y(M,18)^M>>>3,D=$Y(N,17)^$Y(N,19)^N>>>10;_J[z]=D+_J[z-7]+O+_J[z-16]|0}let{A:Q,B:X,C:q,D:G,E:$,F:W,G:j,H:K}=this;for(let z=0;z<64;z++){let M=$Y($,6)^$Y($,11)^$Y($,25),N=K+M+dE($,W,j)+Cx[z]+_J[z]|0,D=($Y(Q,2)^$Y(Q,13)^$Y(Q,22))+rE(Q,X,q)|0;K=j,j=W,W=$,$=G+N|0,G=q,q=X,X=Q,Q=N+D|0}Q=Q+this.A|0,X=X+this.B|0,q=q+this.C|0,G=G+this.D|0,$=$+this.E|0,W=W+this.F|0,j=j+this.G|0,K=K+this.H|0,this.set(Q,X,q,G,$,W,j,K)}roundClean(){CY(_J)}destroy(){this.set(0,0,0,0,0,0,0,0),CY(this.buffer)}};MG=GW(()=>new iE)});var qM,XM=(Y,J,Q)=>new qM(Y,J).update(Q).digest();var nE=F8(()=>{IJ();qM=class qM extends LQ{constructor(Y,J){super();this.finished=!1,this.destroyed=!1,IE(Y);let Q=VQ(J);if(this.iHash=Y.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let X=this.blockLen,q=new Uint8Array(X);q.set(Q.length>X?Y.create().update(Q).digest():Q);for(let G=0;G<q.length;G++)q[G]^=54;this.iHash.update(q),this.oHash=Y.create();for(let G=0;G<q.length;G++)q[G]^=106;this.oHash.update(q),CY(q)}update(Y){return eY(this),this.iHash.update(Y),this}digestInto(Y){eY(this),AY(Y,this.outputLen),this.finished=!0,this.iHash.digestInto(Y),this.oHash.update(Y),this.oHash.digestInto(Y),this.destroy()}digest(){let Y=new Uint8Array(this.oHash.outputLen);return this.digestInto(Y),Y}_cloneInto(Y){Y||(Y=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:Q,finished:X,destroyed:q,blockLen:G,outputLen:$}=this;return Y=Y,Y.finished=X,Y.destroyed=q,Y.blockLen=G,Y.outputLen=$,Y.oHash=J._cloneInto(Y.oHash),Y.iHash=Q._cloneInto(Y.iHash),Y}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};XM.create=(Y,J)=>new qM(Y,J)});function Eq(Y){return Y instanceof Uint8Array||ArrayBuffer.isView(Y)&&Y.constructor.name==="Uint8Array"}function XJ(Y){if(!Eq(Y))throw Error("Uint8Array expected")}function wq(Y,J){if(typeof J!=="boolean")throw Error(Y+" boolean expected, got "+J)}function NG(Y){let J=Y.toString(16);return J.length&1?"0"+J:J}function Yw(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);return Y===""?jM:BigInt("0x"+Y)}function Aq(Y){if(XJ(Y),Jw)return Y.toHex();let J="";for(let Q=0;Q<Y.length;Q++)J+=Ix[Y[Q]];return J}function aE(Y){if(Y>=qJ._0&&Y<=qJ._9)return Y-qJ._0;if(Y>=qJ.A&&Y<=qJ.F)return Y-(qJ.A-10);if(Y>=qJ.a&&Y<=qJ.f)return Y-(qJ.a-10);return}function OG(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);if(Jw)return Uint8Array.fromHex(Y);let J=Y.length,Q=J/2;if(J%2)throw Error("hex string expected, got unpadded hex of length "+J);let X=new Uint8Array(Q);for(let q=0,G=0;q<Q;q++,G+=2){let $=aE(Y.charCodeAt(G)),W=aE(Y.charCodeAt(G+1));if($===void 0||W===void 0){let j=Y[G]+Y[G+1];throw Error('hex string expected, got non-hex character "'+j+'" at index '+G)}X[q]=$*16+W}return X}function v8(Y){return Yw(Aq(Y))}function KM(Y){return XJ(Y),Yw(Aq(Uint8Array.from(Y).reverse()))}function SY(Y,J){return OG(Y.toString(16).padStart(J*2,"0"))}function zM(Y,J){return SY(Y,J).reverse()}function s0(Y,J,Q){let X;if(typeof J==="string")try{X=OG(J)}catch(G){throw Error(Y+" must be hex string or Uint8Array, cause: "+G)}else if(Eq(J))X=Uint8Array.from(J);else throw Error(Y+" must be hex string or Uint8Array");let q=X.length;if(typeof Q==="number"&&q!==Q)throw Error(Y+" of length "+Q+" expected, got "+q);return X}function V8(...Y){let J=0;for(let X=0;X<Y.length;X++){let q=Y[X];XJ(q),J+=q.length}let Q=new Uint8Array(J);for(let X=0,q=0;X<Y.length;X++){let G=Y[X];Q.set(G,q),q+=G.length}return Q}function MW(Y){if(typeof Y!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Y))}function wQ(Y,J,Q){return GM(Y)&&GM(J)&&GM(Q)&&J<=Y&&Y<Q}function GJ(Y,J,Q,X){if(!wQ(J,Q,X))throw Error("expected valid "+Y+": "+Q+" <= n < "+X+", got "+J)}function Qw(Y){let J;for(J=0;Y>jM;Y>>=WM,J+=1);return J}function qw(Y,J,Q){if(typeof Y!=="number"||Y<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof Q!=="function")throw Error("hmacFn must be a function");let X=$M(Y),q=$M(Y),G=0,$=()=>{X.fill(1),q.fill(0),G=0},W=(...M)=>Q(q,X,...M),j=(M=$M(0))=>{if(q=W(eE([0]),M),X=W(),M.length===0)return;q=W(eE([1]),M),X=W()},K=()=>{if(G++>=1000)throw Error("drbg: tried 1000 values");let M=0,N=[];while(M<J){X=W();let O=X.slice();N.push(O),M+=X.length}return V8(...N)};return(M,N)=>{$(),j(M);let O=void 0;while(!(O=N(K())))j();return $(),O}}function $J(Y,J,Q={}){let X=(q,G,$)=>{let W=Sx[G];if(typeof W!=="function")throw Error("invalid validator function");let j=Y[q];if($&&j===void 0)return;if(!W(j,Y))throw Error("param "+String(q)+" is invalid. Expected "+G+", got "+j)};for(let[q,G]of Object.entries(J))X(q,G,!1);for(let[q,G]of Object.entries(Q))X(q,G,!0);return Y}function MM(Y){let J=new WeakMap;return(Q,...X)=>{let q=J.get(Q);if(q!==void 0)return q;let G=Y(Q,...X);return J.set(Q,G),G}}var jM,WM,Jw,Ix,qJ,GM=(Y)=>typeof Y==="bigint"&&jM<=Y,AQ=(Y)=>(WM<<BigInt(Y))-WM,$M=(Y)=>new Uint8Array(Y),eE=(Y)=>Uint8Array.from(Y),Sx;var Cq=F8(()=>{/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */jM=BigInt(0),WM=BigInt(1);Jw=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",Ix=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0"));qJ={_0:48,_9:57,A:65,F:70,a:97,f:102};Sx={bigint:(Y)=>typeof Y==="bigint",function:(Y)=>typeof Y==="function",boolean:(Y)=>typeof Y==="boolean",string:(Y)=>typeof Y==="string",stringOrUint8Array:(Y)=>typeof Y==="string"||Eq(Y),isSafeInteger:(Y)=>Number.isSafeInteger(Y),array:(Y)=>Array.isArray(Y),field:(Y,J)=>J.Fp.isValid(Y),hash:(Y)=>typeof Y==="function"&&Number.isSafeInteger(Y.outputLen)}});function o0(Y,J){let Q=Y%J;return Q>=L8?Q:J+Q}function m8(Y,J,Q){let X=Y;while(J-- >L8)X*=X,X%=Q;return X}function NW(Y,J){if(Y===L8)throw Error("invert: expected non-zero number");if(J<=L8)throw Error("invert: expected positive modulus, got "+J);let Q=o0(Y,J),X=J,q=L8,G=M8,$=M8,W=L8;while(Q!==L8){let K=X/Q,z=X%Q,M=q-$*K,N=G-W*K;X=Q,Q=z,q=$,G=W,$=M,W=N}if(X!==M8)throw Error("invert: does not exist");return o0(q,J)}function jw(Y,J){let Q=(Y.ORDER+M8)/Gw,X=Y.pow(J,Q);if(!Y.eql(Y.sqr(X),J))throw Error("Cannot find square root");return X}function _x(Y,J){let Q=(Y.ORDER-$w)/Ww,X=Y.mul(J,CQ),q=Y.pow(X,Q),G=Y.mul(J,q),$=Y.mul(Y.mul(G,CQ),q),W=Y.mul(G,Y.sub($,Y.ONE));if(!Y.eql(Y.sqr(W),J))throw Error("Cannot find square root");return W}function kx(Y){if(Y<BigInt(3))throw Error("sqrt is not defined for small field");let J=Y-M8,Q=0;while(J%CQ===L8)J/=CQ,Q++;let X=CQ,q=DG(Y);while(Xw(q,X)===1)if(X++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return jw;let G=q.pow(X,J),$=(J+M8)/CQ;return function(j,K){if(j.is0(K))return K;if(Xw(j,K)!==1)throw Error("Cannot find square root");let z=Q,M=j.mul(j.ONE,G),N=j.pow(K,J),O=j.pow(K,$);while(!j.eql(N,j.ONE)){if(j.is0(N))return j.ZERO;let D=1,U=j.sqr(N);while(!j.eql(U,j.ONE))if(D++,U=j.sqr(U),D===z)throw Error("Cannot find square root");let A=M8<<BigInt(z-D-1),w=j.pow(M,A);z=D,M=j.sqr(w),N=j.mul(N,M),O=j.mul(O,w)}return O}}function Fx(Y){if(Y%Gw===vx)return jw;if(Y%Ww===$w)return _x;return kx(Y)}function OW(Y){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=Px.reduce((X,q)=>{return X[q]="function",X},J);return $J(Y,Q)}function Tx(Y,J,Q){if(Q<L8)throw Error("invalid exponent, negatives unsupported");if(Q===L8)return Y.ONE;if(Q===M8)return J;let X=Y.ONE,q=J;while(Q>L8){if(Q&M8)X=Y.mul(X,q);q=Y.sqr(q),Q>>=M8}return X}function Iq(Y,J,Q=!1){let X=Array(J.length).fill(Q?Y.ZERO:void 0),q=J.reduce(($,W,j)=>{if(Y.is0(W))return $;return X[j]=$,Y.mul($,W)},Y.ONE),G=Y.inv(q);return J.reduceRight(($,W,j)=>{if(Y.is0(W))return $;return X[j]=Y.mul($,X[j]),Y.mul($,W)},G),X}function Xw(Y,J){let Q=(Y.ORDER-M8)/CQ,X=Y.pow(J,Q),q=Y.eql(X,Y.ONE),G=Y.eql(X,Y.ZERO),$=Y.eql(X,Y.neg(Y.ONE));if(!q&&!G&&!$)throw Error("invalid Legendre symbol result");return q?1:G?0:-1}function NM(Y,J){if(J!==void 0)RQ(J);let Q=J!==void 0?J:Y.toString(2).length,X=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:X}}function DG(Y,J,Q=!1,X={}){if(Y<=L8)throw Error("invalid field: expected ORDER > 0, got "+Y);let{nBitLength:q,nByteLength:G}=NM(Y,J);if(G>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let $,W=Object.freeze({ORDER:Y,isLE:Q,BITS:q,BYTES:G,MASK:AQ(q),ZERO:L8,ONE:M8,create:(j)=>o0(j,Y),isValid:(j)=>{if(typeof j!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof j);return L8<=j&&j<Y},is0:(j)=>j===L8,isOdd:(j)=>(j&M8)===M8,neg:(j)=>o0(-j,Y),eql:(j,K)=>j===K,sqr:(j)=>o0(j*j,Y),add:(j,K)=>o0(j+K,Y),sub:(j,K)=>o0(j-K,Y),mul:(j,K)=>o0(j*K,Y),pow:(j,K)=>Tx(W,j,K),div:(j,K)=>o0(j*NW(K,Y),Y),sqrN:(j)=>j*j,addN:(j,K)=>j+K,subN:(j,K)=>j-K,mulN:(j,K)=>j*K,inv:(j)=>NW(j,Y),sqrt:X.sqrt||((j)=>{if(!$)$=Fx(Y);return $(W,j)}),toBytes:(j)=>Q?zM(j,G):SY(j,G),fromBytes:(j)=>{if(j.length!==G)throw Error("Field.fromBytes: expected "+G+" bytes, got "+j.length);return Q?KM(j):v8(j)},invertBatch:(j)=>Iq(W,j),cmov:(j,K,z)=>z?K:j});return Object.freeze(W)}function Kw(Y){if(typeof Y!=="bigint")throw Error("field order must be bigint");let J=Y.toString(2).length;return Math.ceil(J/8)}function OM(Y){let J=Kw(Y);return J+Math.ceil(J/2)}function zw(Y,J,Q=!1){let X=Y.length,q=Kw(J),G=OM(J);if(X<16||X<G||X>1024)throw Error("expected "+G+"-1024 bytes of input, got "+X);let $=Q?KM(Y):v8(Y),W=o0($,J-M8)+M8;return Q?zM(W,q):SY(W,q)}var L8,M8,CQ,vx,Gw,$w,Ww,Px;var UG=F8(()=>{IJ();Cq();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */L8=BigInt(0),M8=BigInt(1),CQ=BigInt(2),vx=BigInt(3),Gw=BigInt(4),$w=BigInt(5),Ww=BigInt(8);Px=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function DM(Y,J){let Q=J.negate();return Y?Q:J}function Ow(Y,J){if(!Number.isSafeInteger(Y)||Y<=0||Y>J)throw Error("invalid window size, expected [1.."+J+"], got W="+Y)}function UM(Y,J){Ow(Y,J);let Q=Math.ceil(J/Y)+1,X=2**(Y-1),q=2**Y,G=AQ(Y),$=BigInt(Y);return{windows:Q,windowSize:X,mask:G,maxNumber:q,shiftBy:$}}function Nw(Y,J,Q){let{windowSize:X,mask:q,maxNumber:G,shiftBy:$}=Q,W=Number(Y&q),j=Y>>$;if(W>X)W-=G,j+=RM;let K=J*X,z=K+Math.abs(W)-1,M=W===0,N=W<0,O=J%2!==0;return{nextN:j,offset:z,isZero:M,isNeg:N,isNegF:O,offsetF:K}}function Zx(Y,J){if(!Array.isArray(Y))throw Error("array expected");Y.forEach((Q,X)=>{if(!(Q instanceof J))throw Error("invalid point at index "+X)})}function xx(Y,J){if(!Array.isArray(Y))throw Error("array of scalars expected");Y.forEach((Q,X)=>{if(!J.isValid(Q))throw Error("invalid scalar at index "+X)})}function BM(Y){return Dw.get(Y)||1}function Uw(Y,J){return{constTimeNegate:DM,hasPrecomputes(Q){return BM(Q)!==1},unsafeLadder(Q,X,q=Y.ZERO){let G=Q;while(X>Mw){if(X&RM)q=q.add(G);G=G.double(),X>>=RM}return q},precomputeWindow(Q,X){let{windows:q,windowSize:G}=UM(X,J),$=[],W=Q,j=W;for(let K=0;K<q;K++){j=W,$.push(j);for(let z=1;z<G;z++)j=j.add(W),$.push(j);W=j.double()}return $},wNAF(Q,X,q){let{ZERO:G,BASE:$}=Y,W=UM(Q,J);for(let j=0;j<W.windows;j++){let{nextN:K,offset:z,isZero:M,isNeg:N,isNegF:O,offsetF:D}=Nw(q,j,W);if(q=K,M)$=$.add(DM(O,X[D]));else G=G.add(DM(N,X[z]))}return{p:G,f:$}},wNAFUnsafe(Q,X,q,G=Y.ZERO){let $=UM(Q,J);for(let W=0;W<$.windows;W++){if(q===Mw)break;let{nextN:j,offset:K,isZero:z,isNeg:M}=Nw(q,W,$);if(q=j,z)continue;else{let N=X[K];G=G.add(M?N.negate():N)}}return G},getPrecomputes(Q,X,q){let G=HM.get(X);if(!G){if(G=this.precomputeWindow(X,Q),Q!==1)HM.set(X,q(G))}return G},wNAFCached(Q,X,q){let G=BM(Q);return this.wNAF(G,this.getPrecomputes(G,Q,q),X)},wNAFCachedUnsafe(Q,X,q,G){let $=BM(Q);if($===1)return this.unsafeLadder(Q,X,G);return this.wNAFUnsafe($,this.getPrecomputes($,Q,q),X,G)},setWindowSize(Q,X){Ow(X,J),Dw.set(Q,X),HM.delete(Q)}}}function Hw(Y,J,Q,X){Zx(Q,Y),xx(X,J);let q=Q.length,G=X.length;if(q!==G)throw Error("arrays of points and scalars must have equal length");let $=Y.ZERO,W=Qw(BigInt(q)),j=1;if(W>12)j=W-3;else if(W>4)j=W-2;else if(W>0)j=2;let K=AQ(j),z=Array(Number(K)+1).fill($),M=Math.floor((J.BITS-1)/j)*j,N=$;for(let O=M;O>=0;O-=j){z.fill($);for(let U=0;U<G;U++){let A=X[U],w=Number(A>>BigInt(O)&K);z[w]=z[w].add(Q[U])}let D=$;for(let U=z.length-1,A=$;U>0;U--)A=A.add(z[U]),D=D.add(A);if(N=N.add(D),O!==0)for(let U=0;U<j;U++)N=N.double()}return N}function VM(Y){return OW(Y.Fp),$J(Y,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...NM(Y.n,Y.nBitLength),...Y,...{p:Y.Fp.ORDER}})}var Mw,RM,HM,Dw;var Bw=F8(()=>{UG();Cq();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */Mw=BigInt(0),RM=BigInt(1);HM=new WeakMap,Dw=new WeakMap});function Rw(Y){if(Y.lowS!==void 0)wq("lowS",Y.lowS);if(Y.prehash!==void 0)wq("prehash",Y.prehash)}function gx(Y){let J=VM(Y);$J(J,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:Q,Fp:X,a:q}=J;if(Q){if(!X.eql(q,X.ZERO))throw Error("invalid endo: CURVE.a must be 0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...J})}function LM(Y,J){return Aq(SY(Y,J))}function fx(Y){let J=gx(Y),{Fp:Q}=J,X=DG(J.n,J.nBitLength),q=J.toBytes||((R,E,C)=>{let S=E.toAffine();return V8(Uint8Array.from([4]),Q.toBytes(S.x),Q.toBytes(S.y))}),G=J.fromBytes||((R)=>{let E=R.subarray(1),C=Q.fromBytes(E.subarray(0,Q.BYTES)),S=Q.fromBytes(E.subarray(Q.BYTES,2*Q.BYTES));return{x:C,y:S}});function $(R){let{a:E,b:C}=J,S=Q.sqr(R),Z=Q.mul(S,R);return Q.add(Q.add(Z,Q.mul(R,E)),C)}function W(R,E){let C=Q.sqr(E),S=$(R);return Q.eql(C,S)}if(!W(J.Gx,J.Gy))throw Error("bad curve params: generator point");let j=Q.mul(Q.pow(J.a,HG),EM),K=Q.mul(Q.sqr(J.b),BigInt(27));if(Q.is0(Q.add(j,K)))throw Error("bad curve params: a or b");function z(R){return wQ(R,C0,J.n)}function M(R){let{allowedPrivateKeyLengths:E,nByteLength:C,wrapPrivateKey:S,n:Z}=J;if(E&&typeof R!=="bigint"){if(Eq(R))R=Aq(R);if(typeof R!=="string"||!E.includes(R.length))throw Error("invalid private key");R=R.padStart(C*2,"0")}let r;try{r=typeof R==="bigint"?R:v8(s0("private key",R,C))}catch(c){throw Error("invalid private key, expected hex or "+C+" bytes, got "+typeof R)}if(S)r=o0(r,Z);return GJ("private key",r,C0,Z),r}function N(R){if(!(R instanceof U))throw Error("ProjectivePoint expected")}let O=MM((R,E)=>{let{px:C,py:S,pz:Z}=R;if(Q.eql(Z,Q.ONE))return{x:C,y:S};let r=R.is0();if(E==null)E=r?Q.ONE:Q.inv(Z);let c=Q.mul(C,E),h=Q.mul(S,E),a=Q.mul(Z,E);if(r)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(a,Q.ONE))throw Error("invZ was invalid");return{x:c,y:h}}),D=MM((R)=>{if(R.is0()){if(J.allowInfinityPoint&&!Q.is0(R.py))return;throw Error("bad point: ZERO")}let{x:E,y:C}=R.toAffine();if(!Q.isValid(E)||!Q.isValid(C))throw Error("bad point: x or y not FE");if(!W(E,C))throw Error("bad point: equation left != right");if(!R.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class U{constructor(R,E,C){if(R==null||!Q.isValid(R))throw Error("x required");if(E==null||!Q.isValid(E)||Q.is0(E))throw Error("y required");if(C==null||!Q.isValid(C))throw Error("z required");this.px=R,this.py=E,this.pz=C,Object.freeze(this)}static fromAffine(R){let{x:E,y:C}=R||{};if(!R||!Q.isValid(E)||!Q.isValid(C))throw Error("invalid affine point");if(R instanceof U)throw Error("projective point not allowed");let S=(Z)=>Q.eql(Z,Q.ZERO);if(S(E)&&S(C))return U.ZERO;return new U(E,C,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(R){let E=Iq(Q,R.map((C)=>C.pz));return R.map((C,S)=>C.toAffine(E[S])).map(U.fromAffine)}static fromHex(R){let E=U.fromAffine(G(s0("pointHex",R)));return E.assertValidity(),E}static fromPrivateKey(R){return U.BASE.multiply(M(R))}static msm(R,E){return Hw(U,X,R,E)}_setWindowSize(R){v.setWindowSize(this,R)}assertValidity(){D(this)}hasEvenY(){let{y:R}=this.toAffine();if(Q.isOdd)return!Q.isOdd(R);throw Error("Field doesn't support isOdd")}equals(R){N(R);let{px:E,py:C,pz:S}=this,{px:Z,py:r,pz:c}=R,h=Q.eql(Q.mul(E,c),Q.mul(Z,S)),a=Q.eql(Q.mul(C,c),Q.mul(r,S));return h&&a}negate(){return new U(this.px,Q.neg(this.py),this.pz)}double(){let{a:R,b:E}=J,C=Q.mul(E,HG),{px:S,py:Z,pz:r}=this,c=Q.ZERO,h=Q.ZERO,a=Q.ZERO,n=Q.mul(S,S),V0=Q.mul(Z,Z),e=Q.mul(r,r),B=Q.mul(S,Z);return B=Q.add(B,B),a=Q.mul(S,r),a=Q.add(a,a),c=Q.mul(R,a),h=Q.mul(C,e),h=Q.add(c,h),c=Q.sub(V0,h),h=Q.add(V0,h),h=Q.mul(c,h),c=Q.mul(B,c),a=Q.mul(C,a),e=Q.mul(R,e),B=Q.sub(n,e),B=Q.mul(R,B),B=Q.add(B,a),a=Q.add(n,n),n=Q.add(a,n),n=Q.add(n,e),n=Q.mul(n,B),h=Q.add(h,n),e=Q.mul(Z,r),e=Q.add(e,e),n=Q.mul(e,B),c=Q.sub(c,n),a=Q.mul(e,V0),a=Q.add(a,a),a=Q.add(a,a),new U(c,h,a)}add(R){N(R);let{px:E,py:C,pz:S}=this,{px:Z,py:r,pz:c}=R,h=Q.ZERO,a=Q.ZERO,n=Q.ZERO,V0=J.a,e=Q.mul(J.b,HG),B=Q.mul(E,Z),I=Q.mul(C,r),f=Q.mul(S,c),t=Q.add(E,C),u=Q.add(Z,r);t=Q.mul(t,u),u=Q.add(B,I),t=Q.sub(t,u),u=Q.add(E,S);let p=Q.add(Z,c);return u=Q.mul(u,p),p=Q.add(B,f),u=Q.sub(u,p),p=Q.add(C,S),h=Q.add(r,c),p=Q.mul(p,h),h=Q.add(I,f),p=Q.sub(p,h),n=Q.mul(V0,u),h=Q.mul(e,f),n=Q.add(h,n),h=Q.sub(I,n),n=Q.add(I,n),a=Q.mul(h,n),I=Q.add(B,B),I=Q.add(I,B),f=Q.mul(V0,f),u=Q.mul(e,u),I=Q.add(I,f),f=Q.sub(B,f),f=Q.mul(V0,f),u=Q.add(u,f),B=Q.mul(I,u),a=Q.add(a,B),B=Q.mul(p,u),h=Q.mul(t,h),h=Q.sub(h,B),B=Q.mul(t,I),n=Q.mul(p,n),n=Q.add(n,B),new U(h,a,n)}subtract(R){return this.add(R.negate())}is0(){return this.equals(U.ZERO)}wNAF(R){return v.wNAFCached(this,R,U.normalizeZ)}multiplyUnsafe(R){let{endo:E,n:C}=J;GJ("scalar",R,WY,C);let S=U.ZERO;if(R===WY)return S;if(this.is0()||R===C0)return this;if(!E||v.hasPrecomputes(this))return v.wNAFCachedUnsafe(this,R,U.normalizeZ);let{k1neg:Z,k1:r,k2neg:c,k2:h}=E.splitScalar(R),a=S,n=S,V0=this;while(r>WY||h>WY){if(r&C0)a=a.add(V0);if(h&C0)n=n.add(V0);V0=V0.double(),r>>=C0,h>>=C0}if(Z)a=a.negate();if(c)n=n.negate();return n=new U(Q.mul(n.px,E.beta),n.py,n.pz),a.add(n)}multiply(R){let{endo:E,n:C}=J;GJ("scalar",R,C0,C);let S,Z;if(E){let{k1neg:r,k1:c,k2neg:h,k2:a}=E.splitScalar(R),{p:n,f:V0}=this.wNAF(c),{p:e,f:B}=this.wNAF(a);n=v.constTimeNegate(r,n),e=v.constTimeNegate(h,e),e=new U(Q.mul(e.px,E.beta),e.py,e.pz),S=n.add(e),Z=V0.add(B)}else{let{p:r,f:c}=this.wNAF(R);S=r,Z=c}return U.normalizeZ([S,Z])[0]}multiplyAndAddUnsafe(R,E,C){let S=U.BASE,Z=(c,h)=>h===WY||h===C0||!c.equals(S)?c.multiplyUnsafe(h):c.multiply(h),r=Z(this,E).add(Z(R,C));return r.is0()?void 0:r}toAffine(R){return O(this,R)}isTorsionFree(){let{h:R,isTorsionFree:E}=J;if(R===C0)return!0;if(E)return E(U,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:R,clearCofactor:E}=J;if(R===C0)return this;if(E)return E(U,this);return this.multiplyUnsafe(J.h)}toRawBytes(R=!0){return wq("isCompressed",R),this.assertValidity(),q(U,this,R)}toHex(R=!0){return wq("isCompressed",R),Aq(this.toRawBytes(R))}}U.BASE=new U(J.Gx,J.Gy,Q.ONE),U.ZERO=new U(Q.ZERO,Q.ONE,Q.ZERO);let{endo:A,nBitLength:w}=J,v=Uw(U,A?Math.ceil(w/2):w);return{CURVE:J,ProjectivePoint:U,normPrivateKeyToScalar:M,weierstrassEquation:$,isWithinCurveOrder:z}}function hx(Y){let J=VM(Y);return $J(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function Lw(Y){let J=hx(Y),{Fp:Q,n:X,nByteLength:q,nBitLength:G}=J,$=Q.BYTES+1,W=2*Q.BYTES+1;function j(B){return o0(B,X)}function K(B){return NW(B,X)}let{ProjectivePoint:z,normPrivateKeyToScalar:M,weierstrassEquation:N,isWithinCurveOrder:O}=fx({...J,toBytes(B,I,f){let t=I.toAffine(),u=Q.toBytes(t.x),p=V8;if(wq("isCompressed",f),f)return p(Uint8Array.from([I.hasEvenY()?2:3]),u);else return p(Uint8Array.from([4]),u,Q.toBytes(t.y))},fromBytes(B){let I=B.length,f=B[0],t=B.subarray(1);if(I===$&&(f===2||f===3)){let u=v8(t);if(!wQ(u,C0,Q.ORDER))throw Error("Point is not on curve");let p=N(u),g0;try{g0=Q.sqrt(p)}catch(e0){let c0=e0 instanceof Error?": "+e0.message:"";throw Error("Point is not on curve"+c0)}let E0=(g0&C0)===C0;if((f&1)===1!==E0)g0=Q.neg(g0);return{x:u,y:g0}}else if(I===W&&f===4){let u=Q.fromBytes(t.subarray(0,Q.BYTES)),p=Q.fromBytes(t.subarray(Q.BYTES,2*Q.BYTES));return{x:u,y:p}}else{let u=$,p=W;throw Error("invalid Point, expected length of "+u+", or uncompressed "+p+", got "+I)}}});function D(B){let I=X>>C0;return B>I}function U(B){return D(B)?j(-B):B}let A=(B,I,f)=>v8(B.slice(I,f));class w{constructor(B,I,f){if(GJ("r",B,C0,X),GJ("s",I,C0,X),this.r=B,this.s=I,f!=null)this.recovery=f;Object.freeze(this)}static fromCompact(B){let I=q;return B=s0("compactSignature",B,I*2),new w(A(B,0,I),A(B,I,2*I))}static fromDER(B){let{r:I,s:f}=WJ.toSig(s0("DER",B));return new w(I,f)}assertValidity(){}addRecoveryBit(B){return new w(this.r,this.s,B)}recoverPublicKey(B){let{r:I,s:f,recovery:t}=this,u=Z(s0("msgHash",B));if(t==null||![0,1,2,3].includes(t))throw Error("recovery id invalid");let p=t===2||t===3?I+J.n:I;if(p>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let g0=(t&1)===0?"02":"03",E0=z.fromHex(g0+LM(p,Q.BYTES)),i0=K(p),e0=j(-u*i0),c0=j(f*i0),$8=z.BASE.multiplyAndAddUnsafe(E0,e0,c0);if(!$8)throw Error("point at infinify");return $8.assertValidity(),$8}hasHighS(){return D(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,j(-this.s),this.recovery):this}toDERRawBytes(){return OG(this.toDERHex())}toDERHex(){return WJ.hexFromSig(this)}toCompactRawBytes(){return OG(this.toCompactHex())}toCompactHex(){let B=q;return LM(this.r,B)+LM(this.s,B)}}let v={isValidPrivateKey(B){try{return M(B),!0}catch(I){return!1}},normPrivateKeyToScalar:M,randomPrivateKey:()=>{let B=OM(J.n);return zw(J.randomBytes(B),J.n)},precompute(B=8,I=z.BASE){return I._setWindowSize(B),I.multiply(BigInt(3)),I}};function R(B,I=!0){return z.fromPrivateKey(B).toRawBytes(I)}function E(B){if(typeof B==="bigint")return!1;if(B instanceof z)return!0;let f=s0("key",B).length,t=Q.BYTES,u=t+1,p=2*t+1;if(J.allowedPrivateKeyLengths||q===u)return;else return f===u||f===p}function C(B,I,f=!0){if(E(B)===!0)throw Error("first arg must be private key");if(E(I)===!1)throw Error("second arg must be public key");return z.fromHex(I).multiply(M(B)).toRawBytes(f)}let S=J.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let I=v8(B),f=B.length*8-G;return f>0?I>>BigInt(f):I},Z=J.bits2int_modN||function(B){return j(S(B))},r=AQ(G);function c(B){return GJ("num < 2^"+G,B,WY,r),SY(B,q)}function h(B,I,f=a){if(["recovered","canonical"].some((O8)=>(O8 in f)))throw Error("sign() legacy options not supported");let{hash:t,randomBytes:u}=J,{lowS:p,prehash:g0,extraEntropy:E0}=f;if(p==null)p=!0;if(B=s0("msgHash",B),Rw(f),g0)B=s0("prehashed msgHash",t(B));let i0=Z(B),e0=M(I),c0=[c(e0),c(i0)];if(E0!=null&&E0!==!1){let O8=E0===!0?u(Q.BYTES):E0;c0.push(s0("extraEntropy",O8))}let $8=V8(...c0),PY=i0;function mJ(O8){let k8=S(O8);if(!O(k8))return;let y8=K(k8),t8=z.BASE.multiply(k8).toAffine(),l8=j(t8.x);if(l8===WY)return;let DY=j(y8*j(PY+l8*e0));if(DY===WY)return;let TY=(t8.x===l8?0:2)|Number(t8.y&C0),bq=DY;if(p&&D(DY))bq=U(DY),TY^=1;return new w(l8,bq,TY)}return{seed:$8,k2sig:mJ}}let a={lowS:J.lowS,prehash:!1},n={lowS:J.lowS,prehash:!1};function V0(B,I,f=a){let{seed:t,k2sig:u}=h(B,I,f),p=J;return qw(p.hash.outputLen,p.nByteLength,p.hmac)(t,u)}z.BASE._setWindowSize(8);function e(B,I,f,t=n){let u=B;I=s0("msgHash",I),f=s0("publicKey",f);let{lowS:p,prehash:g0,format:E0}=t;if(Rw(t),"strict"in t)throw Error("options.strict was renamed to lowS");if(E0!==void 0&&E0!=="compact"&&E0!=="der")throw Error("format must be compact or der");let i0=typeof u==="string"||Eq(u),e0=!i0&&!E0&&typeof u==="object"&&u!==null&&typeof u.r==="bigint"&&typeof u.s==="bigint";if(!i0&&!e0)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let c0=void 0,$8;try{if(e0)c0=new w(u.r,u.s);if(i0){try{if(E0!=="compact")c0=w.fromDER(u)}catch(TY){if(!(TY instanceof WJ.Err))throw TY}if(!c0&&E0!=="der")c0=w.fromCompact(u)}$8=z.fromHex(f)}catch(TY){return!1}if(!c0)return!1;if(p&&c0.hasHighS())return!1;if(g0)I=J.hash(I);let{r:PY,s:mJ}=c0,O8=Z(I),k8=K(mJ),y8=j(O8*k8),t8=j(PY*k8),l8=z.BASE.multiplyAndAddUnsafe($8,y8,t8)?.toAffine();if(!l8)return!1;return j(l8.x)===PY}return{CURVE:J,getPublicKey:R,getSharedSecret:C,sign:V0,verify:e,ProjectivePoint:z,Signature:w,utils:v}}function mx(Y,J){let Q=Y.ORDER,X=WY;for(let D=Q-C0;D%kJ===WY;D/=kJ)X+=C0;let q=X,G=kJ<<q-C0-C0,$=G*kJ,W=(Q-C0)/$,j=(W-C0)/kJ,K=$-C0,z=G,M=Y.pow(J,W),N=Y.pow(J,(W+C0)/kJ),O=(D,U)=>{let A=M,w=Y.pow(U,K),v=Y.sqr(w);v=Y.mul(v,U);let R=Y.mul(D,v);R=Y.pow(R,j),R=Y.mul(R,w),w=Y.mul(R,U),v=Y.mul(R,D);let E=Y.mul(v,w);R=Y.pow(E,z);let C=Y.eql(R,Y.ONE);w=Y.mul(v,N),R=Y.mul(E,A),v=Y.cmov(w,v,C),E=Y.cmov(R,E,C);for(let S=q;S>C0;S--){let Z=S-kJ;Z=kJ<<Z-C0;let r=Y.pow(E,Z),c=Y.eql(r,Y.ONE);w=Y.mul(v,A),A=Y.mul(A,A),r=Y.mul(E,A),v=Y.cmov(w,v,c),E=Y.cmov(r,E,c)}return{isValid:C,value:v}};if(Y.ORDER%EM===HG){let D=(Y.ORDER-HG)/EM,U=Y.sqrt(Y.neg(J));O=(A,w)=>{let v=Y.sqr(w),R=Y.mul(A,w);v=Y.mul(v,R);let E=Y.pow(v,D);E=Y.mul(E,R);let C=Y.mul(E,U),S=Y.mul(Y.sqr(E),w),Z=Y.eql(S,A),r=Y.cmov(C,E,Z);return{isValid:Z,value:r}}}return O}function Ew(Y,J){if(OW(Y),!Y.isValid(J.A)||!Y.isValid(J.B)||!Y.isValid(J.Z))throw Error("mapToCurveSimpleSWU: invalid opts");let Q=mx(Y,J.Z);if(!Y.isOdd)throw Error("Fp.isOdd is not implemented!");return(X)=>{let q,G,$,W,j,K,z,M;q=Y.sqr(X),q=Y.mul(q,J.Z),G=Y.sqr(q),G=Y.add(G,q),$=Y.add(G,Y.ONE),$=Y.mul($,J.B),W=Y.cmov(J.Z,Y.neg(G),!Y.eql(G,Y.ZERO)),W=Y.mul(W,J.A),G=Y.sqr($),K=Y.sqr(W),j=Y.mul(K,J.A),G=Y.add(G,j),G=Y.mul(G,$),K=Y.mul(K,W),j=Y.mul(K,J.B),G=Y.add(G,j),z=Y.mul(q,$);let{isValid:N,value:O}=Q(G,K);M=Y.mul(q,X),M=Y.mul(M,O),z=Y.cmov(z,$,N),M=Y.cmov(M,O,N);let D=Y.isOdd(X)===Y.isOdd(M);M=Y.cmov(Y.neg(M),M,D);let U=Iq(Y,[W],!0)[0];return z=Y.mul(z,U),{x:z,y:M}}}var Vw,WJ,WY,C0,kJ,HG,EM;var wM=F8(()=>{Bw();UG();Cq();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */Vw=class Vw extends Error{constructor(Y=""){super(Y)}};WJ={Err:Vw,_tlv:{encode:(Y,J)=>{let{Err:Q}=WJ;if(Y<0||Y>256)throw new Q("tlv.encode: wrong tag");if(J.length&1)throw new Q("tlv.encode: unpadded data");let X=J.length/2,q=NG(X);if(q.length/2&128)throw new Q("tlv.encode: long form length too big");let G=X>127?NG(q.length/2|128):"";return NG(Y)+G+q+J},decode(Y,J){let{Err:Q}=WJ,X=0;if(Y<0||Y>256)throw new Q("tlv.encode: wrong tag");if(J.length<2||J[X++]!==Y)throw new Q("tlv.decode: wrong tlv");let q=J[X++],G=!!(q&128),$=0;if(!G)$=q;else{let j=q&127;if(!j)throw new Q("tlv.decode(long): indefinite length not supported");if(j>4)throw new Q("tlv.decode(long): byte length is too big");let K=J.subarray(X,X+j);if(K.length!==j)throw new Q("tlv.decode: length bytes not complete");if(K[0]===0)throw new Q("tlv.decode(long): zero leftmost byte");for(let z of K)$=$<<8|z;if(X+=j,$<128)throw new Q("tlv.decode(long): not minimal encoding")}let W=J.subarray(X,X+$);if(W.length!==$)throw new Q("tlv.decode: wrong value length");return{v:W,l:J.subarray(X+$)}}},_int:{encode(Y){let{Err:J}=WJ;if(Y<WY)throw new J("integer: negative integers are not allowed");let Q=NG(Y);if(Number.parseInt(Q[0],16)&8)Q="00"+Q;if(Q.length&1)throw new J("unexpected DER parsing assertion: unpadded hex");return Q},decode(Y){let{Err:J}=WJ;if(Y[0]&128)throw new J("invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new J("invalid signature integer: unnecessary leading zero");return v8(Y)}},toSig(Y){let{Err:J,_int:Q,_tlv:X}=WJ,q=s0("signature",Y),{v:G,l:$}=X.decode(48,q);if($.length)throw new J("invalid signature: left bytes after parsing");let{v:W,l:j}=X.decode(2,G),{v:K,l:z}=X.decode(2,j);if(z.length)throw new J("invalid signature: left bytes after parsing");return{r:Q.decode(W),s:Q.decode(K)}},hexFromSig(Y){let{_tlv:J,_int:Q}=WJ,X=J.encode(2,Q.encode(Y.r)),q=J.encode(2,Q.encode(Y.s)),G=X+q;return J.encode(48,G)}};WY=BigInt(0),C0=BigInt(1),kJ=BigInt(2),HG=BigInt(3),EM=BigInt(4)});function yx(Y){return{hash:Y,hmac:(J,...Q)=>XM(Y,J,vE(...Q)),randomBytes:$W}}function ww(Y,J){let Q=(X)=>Lw({...Y,...yx(X)});return{...Q(J),create:Q}}var Aw=F8(()=>{nE();IJ();wM();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */});function FJ(Y,J){if(BG(Y),BG(J),Y<0||Y>=1<<8*J)throw Error("invalid I2OSP input: "+Y);let Q=Array.from({length:J}).fill(0);for(let X=J-1;X>=0;X--)Q[X]=Y&255,Y>>>=8;return new Uint8Array(Q)}function ux(Y,J){let Q=new Uint8Array(Y.length);for(let X=0;X<Y.length;X++)Q[X]=Y[X]^J[X];return Q}function BG(Y){if(!Number.isSafeInteger(Y))throw Error("number expected")}function cx(Y,J,Q,X){if(XJ(Y),XJ(J),BG(Q),J.length>255)J=X(V8(MW("H2C-OVERSIZE-DST-"),J));let{outputLen:q,blockLen:G}=X,$=Math.ceil(Q/q);if(Q>65535||$>255)throw Error("expand_message_xmd: invalid lenInBytes");let W=V8(J,FJ(J.length,1)),j=FJ(0,G),K=FJ(Q,2),z=Array($),M=X(V8(j,Y,K,FJ(0,1),W));z[0]=X(V8(M,FJ(1,1),W));for(let O=1;O<=$;O++){let D=[ux(M,z[O-1]),FJ(O+1,1),W];z[O]=X(V8(...D))}return V8(...z).slice(0,Q)}function bx(Y,J,Q,X,q){if(XJ(Y),XJ(J),BG(Q),J.length>255){let G=Math.ceil(2*X/8);J=q.create({dkLen:G}).update(MW("H2C-OVERSIZE-DST-")).update(J).digest()}if(Q>65535||J.length>255)throw Error("expand_message_xof: invalid lenInBytes");return q.create({dkLen:Q}).update(Y).update(FJ(Q,2)).update(J).update(FJ(J.length,1)).digest()}function Cw(Y,J,Q){$J(Q,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});let{p:X,k:q,m:G,hash:$,expand:W,DST:j}=Q;XJ(Y),BG(J);let K=typeof j==="string"?MW(j):j,z=X.toString(2).length,M=Math.ceil((z+q)/8),N=J*G*M,O;if(W==="xmd")O=cx(Y,K,N,$);else if(W==="xof")O=bx(Y,K,N,q,$);else if(W==="_internal_pass")O=Y;else throw Error('expand must be "xmd" or "xof"');let D=Array(J);for(let U=0;U<J;U++){let A=Array(G);for(let w=0;w<G;w++){let v=M*(w+U*G),R=O.subarray(v,v+M);A[w]=o0(lx(R),X)}D[U]=A}return D}function Iw(Y,J){let Q=J.map((X)=>Array.from(X).reverse());return(X,q)=>{let[G,$,W,j]=Q.map((M)=>M.reduce((N,O)=>Y.add(Y.mul(N,X),O))),[K,z]=Iq(Y,[$,j],!0);return X=Y.mul(G,K),q=Y.mul(q,Y.mul(W,z)),{x:X,y:q}}}function Sw(Y,J,Q){if(typeof J!=="function")throw Error("mapToCurve() must be defined");function X(G){return Y.fromAffine(J(G))}function q(G){let $=G.clearCofactor();if($.equals(Y.ZERO))return Y.ZERO;return $.assertValidity(),$}return{defaults:Q,hashToCurve(G,$){let W=Cw(G,2,{...Q,DST:Q.DST,...$}),j=X(W[0]),K=X(W[1]);return q(j.add(K))},encodeToCurve(G,$){let W=Cw(G,1,{...Q,DST:Q.encodeDST,...$});return q(X(W[0]))},mapToCurve(G){if(!Array.isArray(G))throw Error("expected array of bigints");for(let $ of G)if(typeof $!=="bigint")throw Error("expected array of bigints");return q(X(G))}}}var lx;var vw=F8(()=>{UG();Cq();lx=v8});var xw={};IW(xw,{secp256k1_hasher:()=>kM,secp256k1:()=>EG,schnorr:()=>rx,hashToCurve:()=>tx,encodeToCurve:()=>nx});function Fw(Y){let J=LG,Q=BigInt(3),X=BigInt(6),q=BigInt(11),G=BigInt(22),$=BigInt(23),W=BigInt(44),j=BigInt(88),K=Y*Y*Y%J,z=K*K*Y%J,M=m8(z,Q,J)*z%J,N=m8(M,Q,J)*z%J,O=m8(N,UW,J)*K%J,D=m8(O,q,J)*O%J,U=m8(D,G,J)*D%J,A=m8(U,W,J)*U%J,w=m8(A,j,J)*A%J,v=m8(w,W,J)*U%J,R=m8(v,Q,J)*z%J,E=m8(R,$,J)*D%J,C=m8(E,X,J)*K%J,S=m8(C,UW,J);if(!PJ.eql(PJ.sqr(S),Y))throw Error("Cannot find square root");return S}function HW(Y,...J){let Q=kw[Y];if(Q===void 0){let X=MG(Uint8Array.from(Y,(q)=>q.charCodeAt(0)));Q=V8(X,X),kw[Y]=Q}return MG(V8(Q,...J))}function IM(Y){let J=EG.utils.normPrivateKeyToScalar(Y),Q=_M.fromPrivateKey(J);return{scalar:Q.hasEvenY()?J:VG(-J),bytes:vM(Q)}}function Pw(Y){GJ("x",Y,RG,LG);let J=AM(Y*Y),Q=AM(J*Y+BigInt(7)),X=Fw(Q);if(X%UW!==SM)X=AM(-X);let q=new _M(Y,X,RG);return q.assertValidity(),q}function Tw(...Y){return VG(Sq(HW("BIP0340/challenge",...Y)))}function ox(Y){return IM(Y).bytes}function dx(Y,J,Q=$W(32)){let X=s0("message",Y),{bytes:q,scalar:G}=IM(J),$=s0("auxRand",Q,32),W=CM(G^Sq(HW("BIP0340/aux",$))),j=HW("BIP0340/nonce",W,q,X),K=VG(Sq(j));if(K===SM)throw Error("sign failed: k is zero");let{bytes:z,scalar:M}=IM(K),N=Tw(z,q,X),O=new Uint8Array(64);if(O.set(z,0),O.set(CM(VG(M+N*G)),32),!Zw(O,X,q))throw Error("sign: Invalid signature produced");return O}function Zw(Y,J,Q){let X=s0("signature",Y,64),q=s0("message",J),G=s0("publicKey",Q,32);try{let $=Pw(Sq(G)),W=Sq(X.subarray(0,32));if(!wQ(W,RG,LG))return!1;let j=Sq(X.subarray(32,64));if(!wQ(j,RG,DW))return!1;let K=Tw(CM(W),vM($),q),z=px($,j,VG(-K));if(!z||!z.hasEvenY()||z.toAffine().x!==W)return!1;return!0}catch($){return!1}}var LG,DW,SM,RG,UW,_w=(Y,J)=>(Y+J/UW)/J,PJ,EG,kw,vM=(Y)=>Y.toRawBytes(!0).slice(1),CM=(Y)=>SY(Y,32),AM=(Y)=>o0(Y,LG),VG=(Y)=>o0(Y,DW),_M,px=(Y,J,Q)=>_M.BASE.multiplyAndAddUnsafe(Y,J,Q),Sq,rx,sx,ix,kM,tx,nx;var gw=F8(()=>{tE();IJ();Aw();vw();UG();Cq();wM();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */LG=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),DW=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),SM=BigInt(0),RG=BigInt(1),UW=BigInt(2);PJ=DG(LG,void 0,void 0,{sqrt:Fw}),EG=ww({a:SM,b:BigInt(7),Fp:PJ,n:DW,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(Y)=>{let J=DW,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),X=-RG*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),q=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),G=Q,$=BigInt("0x100000000000000000000000000000000"),W=_w(G*Y,J),j=_w(-X*Y,J),K=o0(Y-W*Q-j*q,J),z=o0(-W*X-j*G,J),M=K>$,N=z>$;if(M)K=J-K;if(N)z=J-z;if(K>$||z>$)throw Error("splitScalar: Endomorphism failed, k="+Y);return{k1neg:M,k1:K,k2neg:N,k2:z}}}},MG),kw={};_M=(()=>EG.ProjectivePoint)();Sq=v8;rx=(()=>({getPublicKey:ox,sign:dx,verify:Zw,utils:{randomPrivateKey:EG.utils.randomPrivateKey,lift_x:Pw,pointToBytes:vM,numberToBytesBE:SY,bytesToNumberBE:v8,taggedHash:HW,mod:o0}}))(),sx=(()=>Iw(PJ,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map((Y)=>Y.map((J)=>BigInt(J)))))(),ix=(()=>Ew(PJ,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:PJ.create(BigInt("-11"))}))(),kM=(()=>Sw(EG.ProjectivePoint,(Y)=>{let{x:J,y:Q}=ix(PJ.create(Y[0]));return sx(J,Q)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:PJ.ORDER,m:1,k:128,expand:"xmd",hash:MG}))(),tx=(()=>kM.hashToCurve)(),nx=(()=>kM.encodeToCurve)()});var Kh={};IW(Kh,{requireEvvmPaymentExpress:()=>$h,paymentRequiredResponse:()=>mG,parseHeader:()=>iM,invalidPaymentResponse:()=>OY,createEvvmMiddlewareNext:()=>jh,LocalFacilitator:()=>XA});module.exports=CA(Kh);var j7=lG(require("http")),K7=lG(require("https")),z7=require("zlib"),Uq=require("crypto"),QX=lG(require("node:crypto")),vA=Object.defineProperty,_A=(Y)=>Y;function kA(Y,J){this[Y]=_A.bind(null,J)}var XY=(Y,J)=>{for(var Q in J)vA(Y,Q,{get:J[Q],enumerable:!0,configurable:!0,set:kA.bind(J,Q)})},t0=function(Y,J,Q,X){var q=arguments.length,G=q<3?J:X===null?X=Object.getOwnPropertyDescriptor(J,Q):X,$;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")G=Reflect.decorate(Y,J,Q,X);else for(var W=Y.length-1;W>=0;W--)if($=Y[W])G=(q<3?$(G):q>3?$(J,Q,G):$(J,Q))||G;return q>3&&G&&Object.defineProperty(J,Q,G),G},x=(Y,J)=>()=>(Y&&(J=Y(Y=0)),J);function BJ(Y,{includeName:J=!1}={}){if(Y.type!=="function"&&Y.type!=="event"&&Y.type!=="error")throw new v4(Y.type);return`${Y.name}(${m5(Y.inputs,{includeName:J})})`}function m5(Y,{includeName:J=!1}={}){if(!Y)return"";return Y.map((Q)=>FA(Q,{includeName:J})).join(J?", ":",")}function FA(Y,{includeName:J}){if(Y.type.startsWith("tuple"))return`(${m5(Y.components,{includeName:J})})${Y.type.slice(5)}`;return Y.type+(J&&Y.name?` ${Y.name}`:"")}var Wq=x(()=>{g8()});function jq(Y,{strict:J=!0}={}){if(!Y)return!1;if(typeof Y!=="string")return!1;return J?/^0x[0-9a-fA-F]*$/.test(Y):Y.startsWith("0x")}function K8(Y){if(jq(Y,{strict:!1}))return Math.ceil((Y.length-2)/2);return Y.length}var AX=()=>{},YN="2.45.0";function H4(Y,J){if(J?.(Y))return Y;if(Y&&typeof Y==="object"&&"cause"in Y&&Y.cause!==void 0)return H4(Y.cause,J);return J?null:Y}var uG,o,J8=x(()=>{uG={getDocsUrl:({docsBaseUrl:Y,docsPath:J="",docsSlug:Q})=>J?`${Y??"https://viem.sh"}${J}${Q?`#${Q}`:""}`:void 0,version:`viem@${YN}`},o=class Y extends Error{constructor(J,Q={}){let X=(()=>{if(Q.cause instanceof Y)return Q.cause.details;if(Q.cause?.message)return Q.cause.message;return Q.details})(),q=(()=>{if(Q.cause instanceof Y)return Q.cause.docsPath||Q.docsPath;return Q.docsPath})(),G=uG.getDocsUrl?.({...Q,docsPath:q}),$=[J||"An error occurred.","",...Q.metaMessages?[...Q.metaMessages,""]:[],...G?[`Docs: ${G}`]:[],...X?[`Details: ${X}`]:[],...uG.version?[`Version: ${uG.version}`]:[]].join(`
2
+ `);super($,Q.cause?{cause:Q.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=X,this.docsPath=q,this.metaMessages=Q.metaMessages,this.name=Q.name??this.name,this.shortMessage=J,this.version=YN}walk(J){return H4(this,J)}}}),B4,tW,R4,y5,V4,L4,E4,w4,nW,l5,eJ,u5,A4,C4,I4,S4,c5,v4,g8=x(()=>{Wq(),AX(),J8(),B4=class extends o{constructor({docsPath:J}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
3
+ `),{docsPath:J,name:"AbiConstructorNotFoundError"})}},tW=class extends o{constructor({docsPath:J}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
4
+ `),{docsPath:J,name:"AbiConstructorParamsNotFoundError"})}},R4=class extends o{constructor({data:J,params:Q,size:X}){super([`Data size of ${X} bytes is too small for given parameters.`].join(`
5
+ `),{metaMessages:[`Params: (${m5(Q,{includeName:!0})})`,`Data: ${J} (${X} bytes)`],name:"AbiDecodingDataSizeTooSmallError"});Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=J,this.params=Q,this.size=X}},y5=class extends o{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},V4=class extends o{constructor({expectedLength:J,givenLength:Q,type:X}){super([`ABI encoding array length mismatch for type ${X}.`,`Expected length: ${J}`,`Given length: ${Q}`].join(`
6
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}},L4=class extends o{constructor({expectedSize:J,value:Q}){super(`Size of bytes "${Q}" (bytes${K8(Q)}) does not match expected size (bytes${J}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},E4=class extends o{constructor({expectedLength:J,givenLength:Q}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${J}`,`Given length (values): ${Q}`].join(`
7
+ `),{name:"AbiEncodingLengthMismatchError"})}},w4=class extends o{constructor(J,{docsPath:Q}){super([`Arguments (\`args\`) were provided to "${J}", but "${J}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
8
+ `),{docsPath:Q,name:"AbiErrorInputsNotFoundError"})}},nW=class extends o{constructor(J,{docsPath:Q}={}){super([`Error ${J?`"${J}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
9
+ `),{docsPath:Q,name:"AbiErrorNotFoundError"})}},l5=class extends o{constructor(J,{docsPath:Q}){super([`Encoded error signature "${J}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${J}.`].join(`
10
+ `),{docsPath:Q,name:"AbiErrorSignatureNotFoundError"});Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=J}},eJ=class extends o{constructor(J,{docsPath:Q}={}){super([`Function ${J?`"${J}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
11
+ `),{docsPath:Q,name:"AbiFunctionNotFoundError"})}},u5=class extends o{constructor(J,{docsPath:Q}){super([`Function "${J}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
12
+ `),{docsPath:Q,name:"AbiFunctionOutputsNotFoundError"})}},A4=class extends o{constructor(J,{docsPath:Q}){super([`Encoded function signature "${J}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${J}.`].join(`
13
+ `),{docsPath:Q,name:"AbiFunctionSignatureNotFoundError"})}},C4=class extends o{constructor(J,Q){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${J.type}\` in \`${BJ(J.abiItem)}\`, and`,`\`${Q.type}\` in \`${BJ(Q.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}},I4=class extends o{constructor(J,{docsPath:Q}){super([`Type "${J}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
14
+ `),{docsPath:Q,name:"InvalidAbiEncodingType"})}},S4=class extends o{constructor(J,{docsPath:Q}){super([`Type "${J}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
15
+ `),{docsPath:Q,name:"InvalidAbiDecodingType"})}},c5=class extends o{constructor(J){super([`Value "${J}" is not a valid array.`].join(`
16
+ `),{name:"InvalidArrayError"})}},v4=class extends o{constructor(J){super([`"${J}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
17
+ `),{name:"InvalidDefinitionTypeError"})}}}),YQ,c$=x(()=>{J8(),YQ=class extends o{constructor({address:J}){super(`Address "${J}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}}),b$,_4,k4,p$=x(()=>{J8(),b$=class extends o{constructor({max:J,min:Q,signed:X,size:q,value:G}){super(`Number "${G}" is not in safe ${q?`${q*8}-bit ${X?"signed":"unsigned"} `:""}integer range ${J?`(${Q} to ${J})`:`(above ${Q})`}`,{name:"IntegerOutOfRangeError"})}},_4=class extends o{constructor(J){super(`Bytes value "${J}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},k4=class extends o{constructor({givenSize:J,maxSize:Q}){super(`Size cannot exceed ${Q} bytes. Given size: ${J} bytes.`,{name:"SizeOverflowError"})}}}),b5,F4=x(()=>{b5=class extends Map{constructor(J){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=J}get(J){let Q=super.get(J);if(super.has(J)&&Q!==void 0)this.delete(J),super.set(J,Q);return Q}set(J,Q){if(super.set(J,Q),this.maxSize&&this.size>this.maxSize){let X=this.keys().next().value;if(X)this.delete(X)}return this}}}),p5,o5,aW,d5=x(()=>{J8(),p5=class extends o{constructor({offset:J,position:Q,size:X}){super(`Slice ${Q==="start"?"starting":"ending"} at offset "${J}" is out-of-bounds (size: ${X}).`,{name:"SliceOffsetOutOfBoundsError"})}},o5=class extends o{constructor({size:J,targetSize:Q,type:X}){super(`${X.charAt(0).toUpperCase()}${X.slice(1).toLowerCase()} size (${J}) exceeds padding size (${Q}).`,{name:"SizeExceedsPaddingSizeError"})}},aW=class extends o{constructor({size:J,targetSize:Q,type:X}){super(`${X.charAt(0).toUpperCase()}${X.slice(1).toLowerCase()} is expected to be ${Q} ${X} long, but is ${J} ${X} long.`,{name:"InvalidBytesLengthError"})}}});function Kq(Y,{dir:J,size:Q=32}={}){if(typeof Y==="string")return DJ(Y,{dir:J,size:Q});return PA(Y,{dir:J,size:Q})}function DJ(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;let X=Y.replace("0x","");if(X.length>Q*2)throw new o5({size:Math.ceil(X.length/2),targetSize:Q,type:"hex"});return`0x${X[J==="right"?"padEnd":"padStart"](Q*2,"0")}`}function PA(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;if(Y.length>Q)throw new o5({size:Y.length,targetSize:Q,type:"bytes"});let X=new Uint8Array(Q);for(let q=0;q<Q;q++){let G=J==="right";X[G?q:Q-q-1]=Y[G?q:Y.length-q-1]}return X}var r5=x(()=>{d5()});function s5(Y,{dir:J="left"}={}){let Q=typeof Y==="string"?Y.replace("0x",""):Y,X=0;for(let q=0;q<Q.length-1;q++)if(Q[J==="left"?q:Q.length-q-1].toString()==="0")X++;else break;if(Q=J==="left"?Q.slice(X):Q.slice(0,Q.length-X),typeof Y==="string"){if(Q.length===1&&J==="right")Q=`${Q}0`;return`0x${Q.length%2===1?`0${Q}`:Q}`}return Q}function EY(Y,{size:J}){if(K8(Y)>J)throw new k4({givenSize:K8(Y),maxSize:J})}function P4(Y,J={}){let{signed:Q}=J;if(J.size)EY(Y,{size:J.size});let X=BigInt(Y);if(!Q)return X;let q=(Y.length-2)/2,G=(1n<<BigInt(q)*8n-1n)-1n;if(X<=G)return X;return X-BigInt(`0x${"f".padStart(q*2,"f")}`)-1n}function TA(Y,J={}){let Q=P4(Y,J),X=Number(Q);if(!Number.isSafeInteger(X))throw new b$({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:J.signed,size:J.size,value:`${Q}n`});return X}var i5=x(()=>{p$(),AX()});function ZA(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return T0(Y,J);if(typeof Y==="string")return Z4(Y,J);if(typeof Y==="boolean")return T4(Y,J);return pY(Y,J)}function T4(Y,J={}){let Q=`0x${Number(Y)}`;if(typeof J.size==="number")return EY(Q,{size:J.size}),Kq(Q,{size:J.size});return Q}function pY(Y,J={}){let Q="";for(let q=0;q<Y.length;q++)Q+=x4[Y[q]];let X=`0x${Q}`;if(typeof J.size==="number")return EY(X,{size:J.size}),Kq(X,{dir:"right",size:J.size});return X}function T0(Y,J={}){let{signed:Q,size:X}=J,q=BigInt(Y),G;if(X)if(Q)G=(1n<<BigInt(X)*8n-1n)-1n;else G=2n**(BigInt(X)*8n)-1n;else if(typeof Y==="number")G=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof G==="bigint"&&Q?-G-1n:0;if(G&&q>G||q<$){let j=typeof Y==="bigint"?"n":"";throw new b$({max:G?`${G}${j}`:void 0,min:`${$}${j}`,signed:Q,size:X,value:`${Y}${j}`})}let W=`0x${(Q&&q<0?(1n<<BigInt(X*8))+BigInt(q):q).toString(16)}`;if(X)return Kq(W,{size:X});return W}function Z4(Y,J={}){let Q=g4.encode(Y);return pY(Q,J)}var x4,g4,wJ=x(()=>{p$(),r5(),i5(),x4=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0")),g4=new TextEncoder});function f4(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return gA(Y,J);if(typeof Y==="boolean")return xA(Y,J);if(jq(Y))return t5(Y,J);return h4(Y,J)}function xA(Y,J={}){let Q=new Uint8Array(1);if(Q[0]=Number(Y),typeof J.size==="number")return EY(Q,{size:J.size}),Kq(Q,{size:J.size});return Q}function JN(Y){if(Y>=HY.zero&&Y<=HY.nine)return Y-HY.zero;if(Y>=HY.A&&Y<=HY.F)return Y-(HY.A-10);if(Y>=HY.a&&Y<=HY.f)return Y-(HY.a-10);return}function t5(Y,J={}){let Q=Y;if(J.size)EY(Q,{size:J.size}),Q=Kq(Q,{dir:"right",size:J.size});let X=Q.slice(2);if(X.length%2)X=`0${X}`;let q=X.length/2,G=new Uint8Array(q);for(let $=0,W=0;$<q;$++){let j=JN(X.charCodeAt(W++)),K=JN(X.charCodeAt(W++));if(j===void 0||K===void 0)throw new o(`Invalid byte sequence ("${X[W-2]}${X[W-1]}" in "${X}").`);G[$]=j*16+K}return G}function gA(Y,J){let Q=T0(Y,J);return t5(Q)}function h4(Y,J={}){let Q=m4.encode(Y);if(typeof J.size==="number")return EY(Q,{size:J.size}),Kq(Q,{dir:"right",size:J.size});return Q}var m4,HY,o$=x(()=>{J8(),r5(),i5(),wJ(),m4=new TextEncoder,HY={zero:48,nine:57,A:65,F:70,a:97,f:102}});function fA(Y,J=!1){if(J)return{h:Number(Y&iq),l:Number(Y>>eW&iq)};return{h:Number(Y>>eW&iq)|0,l:Number(Y&iq)|0}}function hA(Y,J=!1){let Q=Y.length,X=new Uint32Array(Q),q=new Uint32Array(Q);for(let G=0;G<Q;G++){let{h:$,l:W}=fA(Y[G],J);[X[G],q[G]]=[$,W]}return[X,q]}var iq,eW,mA=(Y,J,Q)=>Y<<Q|J>>>32-Q,yA=(Y,J,Q)=>J<<Q|Y>>>32-Q,lA=(Y,J,Q)=>J<<Q-32|Y>>>64-Q,uA=(Y,J,Q)=>Y<<Q-32|J>>>64-Q,cA=x(()=>{iq=BigInt(4294967295),eW=BigInt(32)});function bA(Y){return Y instanceof Uint8Array||ArrayBuffer.isView(Y)&&Y.constructor.name==="Uint8Array"}function QN(Y){if(!Number.isSafeInteger(Y)||Y<0)throw Error("positive integer expected, got "+Y)}function z$(Y,...J){if(!bA(Y))throw Error("Uint8Array expected");if(J.length>0&&!J.includes(Y.length))throw Error("Uint8Array expected of length "+J+", got length="+Y.length)}function qN(Y,J=!0){if(Y.destroyed)throw Error("Hash instance has been destroyed");if(J&&Y.finished)throw Error("Hash#digest() has already been called")}function pA(Y,J){z$(Y);let Q=J.outputLen;if(Y.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function oA(Y){return new Uint32Array(Y.buffer,Y.byteOffset,Math.floor(Y.byteLength/4))}function y4(...Y){for(let J=0;J<Y.length;J++)Y[J].fill(0)}function dA(Y){return Y<<24&4278190080|Y<<8&16711680|Y>>>8&65280|Y>>>24&255}function rA(Y){for(let J=0;J<Y.length;J++)Y[J]=dA(Y[J]);return Y}function sA(Y){if(typeof Y!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Y))}function l4(Y){if(typeof Y==="string")Y=sA(Y);return z$(Y),Y}class u4{}function iA(Y){let J=(X)=>Y().update(l4(X)).digest(),Q=Y();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>Y(),J}var XN,Y5,tA=x(()=>{/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */XN=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)(),Y5=XN?(Y)=>Y:rA});function nA(Y,J=24){let Q=new Uint32Array(10);for(let X=24-J;X<24;X++){for(let $=0;$<10;$++)Q[$]=Y[$]^Y[$+10]^Y[$+20]^Y[$+30]^Y[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=Q[j],z=Q[j+1],M=zN(K,z,1)^Q[W],N=MN(K,z,1)^Q[W+1];for(let O=0;O<50;O+=10)Y[$+O]^=M,Y[$+O+1]^=N}let q=Y[2],G=Y[3];for(let $=0;$<24;$++){let W=Q5[$],j=zN(q,G,W),K=MN(q,G,W),z=J5[$];q=Y[z],G=Y[z+1],Y[z]=j,Y[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)Q[W]=Y[$+W];for(let W=0;W<10;W++)Y[$+W]^=~Q[(W+2)%10]&Q[(W+4)%10]}Y[0]^=c4[X],Y[1]^=b4[X]}y4(Q)}var GN,FQ,$N,WN,jN,KN,J5,Q5,SW,vW,c4,b4,zN=(Y,J,Q)=>Q>32?lA(Y,J,Q):mA(Y,J,Q),MN=(Y,J,Q)=>Q>32?uA(Y,J,Q):yA(Y,J,Q),p4,aA=(Y,J,Q)=>iA(()=>new p4(J,Y,Q)),o4,eA=x(()=>{cA(),tA(),GN=BigInt(0),FQ=BigInt(1),$N=BigInt(2),WN=BigInt(7),jN=BigInt(256),KN=BigInt(113),J5=[],Q5=[],SW=[];for(let Y=0,J=FQ,Q=1,X=0;Y<24;Y++){[Q,X]=[X,(2*Q+3*X)%5],J5.push(2*(5*X+Q)),Q5.push((Y+1)*(Y+2)/2%64);let q=GN;for(let G=0;G<7;G++)if(J=(J<<FQ^(J>>WN)*KN)%jN,J&$N)q^=FQ<<(FQ<<BigInt(G))-FQ;SW.push(q)}vW=hA(SW,!0),c4=vW[0],b4=vW[1],p4=class Y extends u4{constructor(J,Q,X,q=!1,G=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=J,this.suffix=Q,this.outputLen=X,this.enableXOF=q,this.rounds=G,QN(X),!(0<J&&J<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=oA(this.state)}clone(){return this._cloneInto()}keccak(){Y5(this.state32),nA(this.state32,this.rounds),Y5(this.state32),this.posOut=0,this.pos=0}update(J){qN(this),J=l4(J),z$(J);let{blockLen:Q,state:X}=this,q=J.length;for(let G=0;G<q;){let $=Math.min(Q-this.pos,q-G);for(let W=0;W<$;W++)X[this.pos++]^=J[G++];if(this.pos===Q)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:J,suffix:Q,pos:X,blockLen:q}=this;if(J[X]^=Q,(Q&128)!==0&&X===q-1)this.keccak();J[q-1]^=128,this.keccak()}writeInto(J){qN(this,!1),z$(J),this.finish();let Q=this.state,{blockLen:X}=this;for(let q=0,G=J.length;q<G;){if(this.posOut>=X)this.keccak();let $=Math.min(X-this.posOut,G-q);J.set(Q.subarray(this.posOut,this.posOut+$),q),this.posOut+=$,q+=$}return J}xofInto(J){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(J)}xof(J){return QN(J),this.xofInto(new Uint8Array(J))}digestInto(J){if(pA(J,this),this.finished)throw Error("digest() was already called");return this.writeInto(J),this.destroy(),J}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,y4(this.state)}_cloneInto(J){let{blockLen:Q,suffix:X,outputLen:q,rounds:G,enableXOF:$}=this;return J||(J=new Y(Q,X,q,$,G)),J.state32.set(this.state32),J.pos=this.pos,J.posOut=this.posOut,J.finished=this.finished,J.rounds=G,J.suffix=X,J.outputLen=q,J.enableXOF=$,J.destroyed=this.destroyed,J}},o4=(()=>aA(1,136,32))()});function n5(Y,J){let Q=J||"hex",X=o4(jq(Y,{strict:!1})?f4(Y):Y);if(Q==="bytes")return X;return ZA(X)}var a5=x(()=>{eA(),o$(),wJ()});function d4(Y,J){if(Y$.has(`${Y}.${J}`))return Y$.get(`${Y}.${J}`);let Q=J?`${J}${Y.toLowerCase()}`:Y.substring(2).toLowerCase(),X=n5(h4(Q),"bytes"),q=(J?Q.substring(`${J}0x`.length):Q).split("");for(let $=0;$<40;$+=2){if(X[$>>1]>>4>=8&&q[$])q[$]=q[$].toUpperCase();if((X[$>>1]&15)>=8&&q[$+1])q[$+1]=q[$+1].toUpperCase()}let G=`0x${q.join("")}`;return Y$.set(`${Y}.${J}`,G),G}var Y$,r4=x(()=>{o$(),a5(),F4(),Y$=new b5(8192)});function oY(Y,J){let{strict:Q=!0}=J??{},X=`${Y}.${Q}`;if(J$.has(X))return J$.get(X);let q=(()=>{if(!s4.test(Y))return!1;if(Y.toLowerCase()===Y)return!0;if(Q)return d4(Y)===Y;return!0})();return J$.set(X,q),q}var s4,J$,CX=x(()=>{F4(),r4(),s4=/^0x[a-fA-F0-9]{40}$/,J$=new b5(8192)});function JQ(Y){if(typeof Y[0]==="string")return d$(Y);return YC(Y)}function YC(Y){let J=0;for(let q of Y)J+=q.length;let Q=new Uint8Array(J),X=0;for(let q of Y)Q.set(q,X),X+=q.length;return Q}function d$(Y){return`0x${Y.reduce((J,Q)=>J+Q.replace("0x",""),"")}`}function pQ(Y,J,Q,{strict:X}={}){if(jq(Y,{strict:!1}))return JC(Y,J,Q,{strict:X});return n4(Y,J,Q,{strict:X})}function i4(Y,J){if(typeof J==="number"&&J>0&&J>K8(Y)-1)throw new p5({offset:J,position:"start",size:K8(Y)})}function t4(Y,J,Q){if(typeof J==="number"&&typeof Q==="number"&&K8(Y)!==Q-J)throw new p5({offset:Q,position:"end",size:K8(Y)})}function n4(Y,J,Q,{strict:X}={}){i4(Y,J);let q=Y.slice(J,Q);if(X)t4(q,J,Q);return q}function JC(Y,J,Q,{strict:X}={}){i4(Y,J);let q=`0x${Y.replace("0x","").slice((J??0)*2,(Q??Y.length)*2)}`;if(X)t4(q,J,Q);return q}var IX=x(()=>{d5(),AX()}),a4,QC=x(()=>{a4=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/});function zq(Y,J){if(Y.length!==J.length)throw new E4({expectedLength:Y.length,givenLength:J.length});let Q=qC({params:Y,values:J}),X=Yj(Q);if(X.length===0)return"0x";return X}function qC({params:Y,values:J}){let Q=[];for(let X=0;X<Y.length;X++)Q.push(e5({param:Y[X],value:J[X]}));return Q}function e5({param:Y,value:J}){let Q=Jj(Y.type);if(Q){let[X,q]=Q;return GC(J,{length:X,param:{...Y,type:q}})}if(Y.type==="tuple")return zC(J,{param:Y});if(Y.type==="address")return XC(J);if(Y.type==="bool")return WC(J);if(Y.type.startsWith("uint")||Y.type.startsWith("int")){let X=Y.type.startsWith("int"),[,,q="256"]=a4.exec(Y.type)??[];return jC(J,{signed:X,size:Number(q)})}if(Y.type.startsWith("bytes"))return $C(J,{param:Y});if(Y.type==="string")return KC(J);throw new I4(Y.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Yj(Y){let J=0;for(let G=0;G<Y.length;G++){let{dynamic:$,encoded:W}=Y[G];if($)J+=32;else J+=K8(W)}let Q=[],X=[],q=0;for(let G=0;G<Y.length;G++){let{dynamic:$,encoded:W}=Y[G];if($)Q.push(T0(J+q,{size:32})),X.push(W),q+=K8(W);else Q.push(W)}return JQ([...Q,...X])}function XC(Y){if(!oY(Y))throw new YQ({address:Y});return{dynamic:!1,encoded:DJ(Y.toLowerCase())}}function GC(Y,{length:J,param:Q}){let X=J===null;if(!Array.isArray(Y))throw new c5(Y);if(!X&&Y.length!==J)throw new V4({expectedLength:J,givenLength:Y.length,type:`${Q.type}[${J}]`});let q=!1,G=[];for(let $=0;$<Y.length;$++){let W=e5({param:Q,value:Y[$]});if(W.dynamic)q=!0;G.push(W)}if(X||q){let $=Yj(G);if(X){let W=T0(G.length,{size:32});return{dynamic:!0,encoded:G.length>0?JQ([W,$]):W}}if(q)return{dynamic:!0,encoded:$}}return{dynamic:!1,encoded:JQ(G.map(({encoded:$})=>$))}}function $C(Y,{param:J}){let[,Q]=J.type.split("bytes"),X=K8(Y);if(!Q){let q=Y;if(X%32!==0)q=DJ(q,{dir:"right",size:Math.ceil((Y.length-2)/2/32)*32});return{dynamic:!0,encoded:JQ([DJ(T0(X,{size:32})),q])}}if(X!==Number.parseInt(Q,10))throw new L4({expectedSize:Number.parseInt(Q,10),value:Y});return{dynamic:!1,encoded:DJ(Y,{dir:"right"})}}function WC(Y){if(typeof Y!=="boolean")throw new o(`Invalid boolean value: "${Y}" (type: ${typeof Y}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:DJ(T4(Y))}}function jC(Y,{signed:J,size:Q=256}){if(typeof Q==="number"){let X=2n**(BigInt(Q)-(J?1n:0n))-1n,q=J?-X-1n:0n;if(Y>X||Y<q)throw new b$({max:X.toString(),min:q.toString(),signed:J,size:Q/8,value:Y.toString()})}return{dynamic:!1,encoded:T0(Y,{size:32,signed:J})}}function KC(Y){let J=Z4(Y),Q=Math.ceil(K8(J)/32),X=[];for(let q=0;q<Q;q++)X.push(DJ(pQ(J,q*32,(q+1)*32),{dir:"right"}));return{dynamic:!0,encoded:JQ([DJ(T0(K8(J),{size:32})),...X])}}function zC(Y,{param:J}){let Q=!1,X=[];for(let q=0;q<J.components.length;q++){let G=J.components[q],$=Array.isArray(Y)?q:G.name,W=e5({param:G,value:Y[$]});if(X.push(W),W.dynamic)Q=!0}return{dynamic:Q,encoded:Q?Yj(X):JQ(X.map(({encoded:q})=>q))}}function Jj(Y){let J=Y.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}var zQ=x(()=>{g8(),c$(),J8(),p$(),CX(),r5(),AX(),IX(),wJ(),QC()}),q5,e4,YD,MC=x(()=>{J8(),q5=class extends o{constructor({offset:J}){super(`Offset \`${J}\` cannot be negative.`,{name:"NegativeOffsetError"})}},e4=class extends o{constructor({length:J,position:Q}){super(`Position \`${Q}\` is out of bounds (\`0 < position < ${J}\`).`,{name:"PositionOutOfBoundsError"})}},YD=class extends o{constructor({count:J,limit:Q}){super(`Recursive read limit of \`${Q}\` exceeded (recursive read count: \`${J}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function NC(Y,{recursiveReadLimit:J=8192}={}){let Q=Object.create(JD);return Q.bytes=Y,Q.dataView=new DataView(Y.buffer??Y,Y.byteOffset,Y.byteLength),Q.positionReadCount=new Map,Q.recursiveReadLimit=J,Q}var JD,OC=x(()=>{MC(),JD={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new YD({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(Y){if(Y<0||Y>this.bytes.length-1)throw new e4({length:this.bytes.length,position:Y})},decrementPosition(Y){if(Y<0)throw new q5({offset:Y});let J=this.position-Y;this.assertPosition(J),this.position=J},getReadCount(Y){return this.positionReadCount.get(Y||this.position)||0},incrementPosition(Y){if(Y<0)throw new q5({offset:Y});let J=this.position+Y;this.assertPosition(J),this.position=J},inspectByte(Y){let J=Y??this.position;return this.assertPosition(J),this.bytes[J]},inspectBytes(Y,J){let Q=J??this.position;return this.assertPosition(Q+Y-1),this.bytes.subarray(Q,Q+Y)},inspectUint8(Y){let J=Y??this.position;return this.assertPosition(J),this.bytes[J]},inspectUint16(Y){let J=Y??this.position;return this.assertPosition(J+1),this.dataView.getUint16(J)},inspectUint24(Y){let J=Y??this.position;return this.assertPosition(J+2),(this.dataView.getUint16(J)<<8)+this.dataView.getUint8(J+2)},inspectUint32(Y){let J=Y??this.position;return this.assertPosition(J+3),this.dataView.getUint32(J)},pushByte(Y){this.assertPosition(this.position),this.bytes[this.position]=Y,this.position++},pushBytes(Y){this.assertPosition(this.position+Y.length-1),this.bytes.set(Y,this.position),this.position+=Y.length},pushUint8(Y){this.assertPosition(this.position),this.bytes[this.position]=Y,this.position++},pushUint16(Y){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,Y),this.position+=2},pushUint24(Y){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,Y>>8),this.dataView.setUint8(this.position+2,Y&255),this.position+=3},pushUint32(Y){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,Y),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let Y=this.inspectByte();return this.position++,Y},readBytes(Y,J){this.assertReadLimit(),this._touch();let Q=this.inspectBytes(Y);return this.position+=J??Y,Q},readUint8(){this.assertReadLimit(),this._touch();let Y=this.inspectUint8();return this.position+=1,Y},readUint16(){this.assertReadLimit(),this._touch();let Y=this.inspectUint16();return this.position+=2,Y},readUint24(){this.assertReadLimit(),this._touch();let Y=this.inspectUint24();return this.position+=3,Y},readUint32(){this.assertReadLimit(),this._touch();let Y=this.inspectUint32();return this.position+=4,Y},get remaining(){return this.bytes.length-this.position},setPosition(Y){let J=this.position;return this.assertPosition(Y),this.position=Y,()=>this.position=J},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let Y=this.getReadCount();if(this.positionReadCount.set(this.position,Y+1),Y>0)this.recursiveReadCount++}}});function DC(Y,J={}){if(typeof J.size<"u")EY(Y,{size:J.size});let Q=pY(Y,J);return P4(Q,J)}function UC(Y,J={}){let Q=Y;if(typeof J.size<"u")EY(Q,{size:J.size}),Q=s5(Q);if(Q.length>1||Q[0]>1)throw new _4(Q);return Boolean(Q[0])}function lY(Y,J={}){if(typeof J.size<"u")EY(Y,{size:J.size});let Q=pY(Y,J);return TA(Q,J)}function HC(Y,J={}){let Q=Y;if(typeof J.size<"u")EY(Q,{size:J.size}),Q=s5(Q,{dir:"right"});return new TextDecoder().decode(Q)}var BC=x(()=>{p$(),i5(),wJ()});function Qj(Y,J){let Q=typeof J==="string"?t5(J):J,X=NC(Q);if(K8(Q)===0&&Y.length>0)throw new y5;if(K8(J)&&K8(J)<32)throw new R4({data:typeof J==="string"?J:pY(J),params:Y,size:K8(J)});let q=0,G=[];for(let $=0;$<Y.length;++$){let W=Y[$];X.setPosition(q);let[j,K]=mQ(X,W,{staticPosition:0});q+=K,G.push(j)}return G}function mQ(Y,J,{staticPosition:Q}){let X=Jj(J.type);if(X){let[q,G]=X;return VC(Y,{...J,type:G},{length:q,staticPosition:Q})}if(J.type==="tuple")return AC(Y,J,{staticPosition:Q});if(J.type==="address")return RC(Y);if(J.type==="bool")return LC(Y);if(J.type.startsWith("bytes"))return EC(Y,J,{staticPosition:Q});if(J.type.startsWith("uint")||J.type.startsWith("int"))return wC(Y,J);if(J.type==="string")return CC(Y,{staticPosition:Q});throw new S4(J.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function RC(Y){let J=Y.readBytes(32);return[d4(pY(n4(J,-20))),32]}function VC(Y,J,{length:Q,staticPosition:X}){if(!Q){let $=lY(Y.readBytes(X5)),W=X+$,j=W+NN;Y.setPosition(W);let K=lY(Y.readBytes(NN)),z=GX(J),M=0,N=[];for(let O=0;O<K;++O){Y.setPosition(j+(z?O*32:M));let[D,U]=mQ(Y,J,{staticPosition:j});M+=U,N.push(D)}return Y.setPosition(X+32),[N,32]}if(GX(J)){let $=lY(Y.readBytes(X5)),W=X+$,j=[];for(let K=0;K<Q;++K){Y.setPosition(W+K*32);let[z]=mQ(Y,J,{staticPosition:W});j.push(z)}return Y.setPosition(X+32),[j,32]}let q=0,G=[];for(let $=0;$<Q;++$){let[W,j]=mQ(Y,J,{staticPosition:X+q});q+=j,G.push(W)}return[G,q]}function LC(Y){return[UC(Y.readBytes(32),{size:32}),32]}function EC(Y,J,{staticPosition:Q}){let[X,q]=J.type.split("bytes");if(!q){let G=lY(Y.readBytes(32));Y.setPosition(Q+G);let $=lY(Y.readBytes(32));if($===0)return Y.setPosition(Q+32),["0x",32];let W=Y.readBytes($);return Y.setPosition(Q+32),[pY(W),32]}return[pY(Y.readBytes(Number.parseInt(q,10),32)),32]}function wC(Y,J){let Q=J.type.startsWith("int"),X=Number.parseInt(J.type.split("int")[1]||"256",10),q=Y.readBytes(32);return[X>48?DC(q,{signed:Q}):lY(q,{signed:Q}),32]}function AC(Y,J,{staticPosition:Q}){let X=J.components.length===0||J.components.some(({name:$})=>!$),q=X?[]:{},G=0;if(GX(J)){let $=lY(Y.readBytes(X5)),W=Q+$;for(let j=0;j<J.components.length;++j){let K=J.components[j];Y.setPosition(W+G);let[z,M]=mQ(Y,K,{staticPosition:W});G+=M,q[X?j:K?.name]=z}return Y.setPosition(Q+32),[q,32]}for(let $=0;$<J.components.length;++$){let W=J.components[$],[j,K]=mQ(Y,W,{staticPosition:Q});q[X?$:W?.name]=j,G+=K}return[q,G]}function CC(Y,{staticPosition:J}){let Q=lY(Y.readBytes(32)),X=J+Q;Y.setPosition(X);let q=lY(Y.readBytes(32));if(q===0)return Y.setPosition(J+32),["",32];let G=Y.readBytes(q,32),$=HC(s5(G));return Y.setPosition(J+32),[$,32]}function GX(Y){let{type:J}=Y;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return Y.components?.some(GX);let Q=Jj(Y.type);if(Q&&GX({...Y,type:Q[1]}))return!0;return!1}var NN=32,X5=32,qj=x(()=>{g8(),r4(),OC(),AX(),IX(),BC(),o$(),wJ(),zQ()});function IC(Y){return SC(Y)}var SC=(Y)=>n5(f4(Y)),vC=x(()=>{o$(),a5()});function iY(Y,J){return Y.exec(J)?.groups}var Xj,Gj,$j,r$=x(()=>{Xj=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Gj=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,$j=/^\(.+?\).*?$/});function G5(Y){let J=Y.type;if($5.test(Y.type)&&"components"in Y){J="(";let Q=Y.components.length;for(let q=0;q<Q;q++){let G=Y.components[q];if(J+=G5(G),q<Q-1)J+=", "}let X=iY($5,Y.type);return J+=`)${X?.array||""}`,G5({...Y,type:J})}if("indexed"in Y&&Y.indexed)J=`${J} indexed`;if(Y.name)return`${J} ${Y.name}`;return J}var $5,_C=x(()=>{r$(),$5=/^tuple(?<array>(\[(\d*)\])*)$/});function oq(Y){let J="",Q=Y.length;for(let X=0;X<Q;X++){let q=Y[X];if(J+=G5(q),X!==Q-1)J+=", "}return J}var kC=x(()=>{_C()});function FC(Y){if(Y.type==="function")return`function ${Y.name}(${oq(Y.inputs)})${Y.stateMutability&&Y.stateMutability!=="nonpayable"?` ${Y.stateMutability}`:""}${Y.outputs?.length?` returns (${oq(Y.outputs)})`:""}`;if(Y.type==="event")return`event ${Y.name}(${oq(Y.inputs)})`;if(Y.type==="error")return`error ${Y.name}(${oq(Y.inputs)})`;if(Y.type==="constructor")return`constructor(${oq(Y.inputs)})${Y.stateMutability==="payable"?" payable":""}`;if(Y.type==="fallback")return`fallback() external${Y.stateMutability==="payable"?" payable":""}`;return"receive() external payable"}var PC=x(()=>{kC()});function TC(Y){return Wj.test(Y)}function ZC(Y){return iY(Wj,Y)}function xC(Y){return jj.test(Y)}function gC(Y){return iY(jj,Y)}function fC(Y){return Kj.test(Y)}function hC(Y){return iY(Kj,Y)}function QD(Y){return zj.test(Y)}function mC(Y){return iY(zj,Y)}function yC(Y){return Mj.test(Y)}function lC(Y){return iY(Mj,Y)}function uC(Y){return Nj.test(Y)}function cC(Y){return iY(Nj,Y)}function bC(Y){return qD.test(Y)}var Wj,jj,Kj,zj,Mj,Nj,qD,XD,M$,Oj=x(()=>{r$(),Wj=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/,jj=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/,Kj=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/,zj=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/,Mj=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/,Nj=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/,qD=/^receive\(\) external payable$/,XD=new Set(["indexed"]),M$=new Set(["calldata","memory","storage"])}),pC="1.2.3",Z8,SX=x(()=>{Z8=class Y extends Error{constructor(J,Q={}){let X=Q.cause instanceof Y?Q.cause.details:Q.cause?.message?Q.cause.message:Q.details,q=Q.cause instanceof Y?Q.cause.docsPath||Q.docsPath:Q.docsPath,G=[J||"An error occurred.","",...Q.metaMessages?[...Q.metaMessages,""]:[],...q?[`Docs: https://abitype.dev${q}`]:[],...X?[`Details: ${X}`]:[],`Version: abitype@${pC}`].join(`
18
+ `);super(G);if(Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),Q.cause)this.cause=Q.cause;this.details=X,this.docsPath=q,this.metaMessages=Q.metaMessages,this.shortMessage=J}}}),GD,$D,WD=x(()=>{SX(),GD=class extends Z8{constructor({type:J}){super("Unknown type.",{metaMessages:[`Type "${J}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},$D=class extends Z8{constructor({type:J}){super("Unknown type.",{metaMessages:[`Type "${J}" is not a valid ABI type.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}}),jD,KD,zD,MD,ND,OD=x(()=>{SX(),jD=class extends Z8{constructor({param:J}){super("Invalid ABI parameter.",{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},KD=class extends Z8{constructor({param:J,name:Q}){super("Invalid ABI parameter.",{details:J,metaMessages:[`"${Q}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},zD=class extends Z8{constructor({param:J,type:Q,modifier:X}){super("Invalid ABI parameter.",{details:J,metaMessages:[`Modifier "${X}" not allowed${Q?` in "${Q}" type`:""}.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},MD=class extends Z8{constructor({param:J,type:Q,modifier:X}){super("Invalid ABI parameter.",{details:J,metaMessages:[`Modifier "${X}" not allowed${Q?` in "${Q}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${X}" was given.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},ND=class extends Z8{constructor({abiParameter:J}){super("Invalid ABI parameter.",{details:JSON.stringify(J,null,2),metaMessages:["ABI parameter type is invalid."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}}),MQ,DD,UD,HD=x(()=>{SX(),MQ=class extends Z8{constructor({signature:J,type:Q}){super(`Invalid ${Q} signature.`,{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},DD=class extends Z8{constructor({signature:J}){super("Unknown signature.",{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},UD=class extends Z8{constructor({signature:J}){super("Invalid struct signature.",{details:J,metaMessages:["No properties exist."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}}),BD,oC=x(()=>{SX(),BD=class extends Z8{constructor({type:J}){super("Circular reference detected.",{metaMessages:[`Struct "${J}" is a circular reference.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}}),RD,dC=x(()=>{SX(),RD=class extends Z8{constructor({current:J,depth:Q}){super("Unbalanced parentheses.",{metaMessages:[`"${J.trim()}" has too many ${Q>0?"opening":"closing"} parentheses.`],details:`Depth "${Q}"`});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function rC(Y,J,Q){let X="";if(Q)for(let q of Object.entries(Q)){if(!q)continue;let G="";for(let $ of q[1])G+=`[${$.type}${$.name?`:${$.name}`:""}]`;X+=`(${q[0]}{${G}})`}if(J)return`${J}:${Y}${X}`;return`${Y}${X}`}var Q$,sC=x(()=>{Q$=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function iC(Y,J={}){if(fC(Y))return tC(Y,J);if(xC(Y))return nC(Y,J);if(TC(Y))return aC(Y,J);if(yC(Y))return eC(Y,J);if(uC(Y))return YI(Y);if(bC(Y))return{type:"receive",stateMutability:"payable"};throw new DD({signature:Y})}function tC(Y,J={}){let Q=hC(Y);if(!Q)throw new MQ({signature:Y,type:"function"});let X=JY(Q.parameters),q=[],G=X.length;for(let W=0;W<G;W++)q.push(QQ(X[W],{modifiers:M$,structs:J,type:"function"}));let $=[];if(Q.returns){let W=JY(Q.returns),j=W.length;for(let K=0;K<j;K++)$.push(QQ(W[K],{modifiers:M$,structs:J,type:"function"}))}return{name:Q.name,type:"function",stateMutability:Q.stateMutability??"nonpayable",inputs:q,outputs:$}}function nC(Y,J={}){let Q=gC(Y);if(!Q)throw new MQ({signature:Y,type:"event"});let X=JY(Q.parameters),q=[],G=X.length;for(let $=0;$<G;$++)q.push(QQ(X[$],{modifiers:XD,structs:J,type:"event"}));return{name:Q.name,type:"event",inputs:q}}function aC(Y,J={}){let Q=ZC(Y);if(!Q)throw new MQ({signature:Y,type:"error"});let X=JY(Q.parameters),q=[],G=X.length;for(let $=0;$<G;$++)q.push(QQ(X[$],{structs:J,type:"error"}));return{name:Q.name,type:"error",inputs:q}}function eC(Y,J={}){let Q=lC(Y);if(!Q)throw new MQ({signature:Y,type:"constructor"});let X=JY(Q.parameters),q=[],G=X.length;for(let $=0;$<G;$++)q.push(QQ(X[$],{structs:J,type:"constructor"}));return{type:"constructor",stateMutability:Q.stateMutability??"nonpayable",inputs:q}}function YI(Y){let J=cC(Y);if(!J)throw new MQ({signature:Y,type:"fallback"});return{type:"fallback",stateMutability:J.stateMutability??"nonpayable"}}function QQ(Y,J){let Q=rC(Y,J?.type,J?.structs);if(Q$.has(Q))return Q$.get(Q);let X=$j.test(Y),q=iY(X?ED:LD,Y);if(!q)throw new jD({param:Y});if(q.name&&JI(q.name))throw new KD({param:Y,name:q.name});let G=q.name?{name:q.name}:{},$=q.modifier==="indexed"?{indexed:!0}:{},W=J?.structs??{},j,K={};if(X){j="tuple";let M=JY(q.type),N=[],O=M.length;for(let D=0;D<O;D++)N.push(QQ(M[D],{structs:W}));K={components:N}}else if(q.type in W)j="tuple",K={components:W[q.type]};else if(wD.test(q.type))j=`${q.type}256`;else if(q.type==="address payable")j="address";else if(j=q.type,J?.type!=="struct"&&!VD(j))throw new $D({type:j});if(q.modifier){if(!J?.modifiers?.has?.(q.modifier))throw new zD({param:Y,type:J?.type,modifier:q.modifier});if(M$.has(q.modifier)&&!QI(j,!!q.array))throw new MD({param:Y,type:J?.type,modifier:q.modifier})}let z={type:`${j}${q.array??""}`,...G,...$,...K};return Q$.set(Q,z),z}function JY(Y,J=[],Q="",X=0){let q=Y.trim().length;for(let G=0;G<q;G++){let $=Y[G],W=Y.slice(G+1);switch($){case",":return X===0?JY(W,[...J,Q.trim()]):JY(W,J,`${Q}${$}`,X);case"(":return JY(W,J,`${Q}${$}`,X+1);case")":return JY(W,J,`${Q}${$}`,X-1);default:return JY(W,J,`${Q}${$}`,X)}}if(Q==="")return J;if(X!==0)throw new RD({current:Q,depth:X});return J.push(Q.trim()),J}function VD(Y){return Y==="address"||Y==="bool"||Y==="function"||Y==="string"||Xj.test(Y)||Gj.test(Y)}function JI(Y){return Y==="address"||Y==="bool"||Y==="function"||Y==="string"||Y==="tuple"||Xj.test(Y)||Gj.test(Y)||AD.test(Y)}function QI(Y,J){return J||Y==="bytes"||Y==="string"||Y==="tuple"}var LD,ED,wD,AD,CD=x(()=>{r$(),WD(),OD(),HD(),dC(),sC(),Oj(),LD=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,ED=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,wD=/^u?int$/,AD=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function qI(Y){let J={},Q=Y.length;for(let $=0;$<Q;$++){let W=Y[$];if(!QD(W))continue;let j=mC(W);if(!j)throw new MQ({signature:W,type:"struct"});let K=j.properties.split(";"),z=[],M=K.length;for(let N=0;N<M;N++){let O=K[N].trim();if(!O)continue;let D=QQ(O,{type:"struct"});z.push(D)}if(!z.length)throw new UD({signature:W});J[j.name]=z}let X={},q=Object.entries(J),G=q.length;for(let $=0;$<G;$++){let[W,j]=q[$];X[W]=ID(j,J)}return X}function ID(Y=[],J={},Q=new Set){let X=[],q=Y.length;for(let G=0;G<q;G++){let $=Y[G];if($j.test($.type))X.push($);else{let W=iY(SD,$.type);if(!W?.type)throw new ND({abiParameter:$});let{array:j,type:K}=W;if(K in J){if(Q.has(K))throw new BD({type:K});X.push({...$,type:`tuple${j??""}`,components:ID(J[K],J,new Set([...Q,K]))})}else if(VD(K))X.push($);else throw new GD({type:K})}}return X}var SD,XI=x(()=>{r$(),WD(),OD(),HD(),oC(),Oj(),CD(),SD=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function vD(Y){let J=qI(Y),Q=[],X=Y.length;for(let q=0;q<X;q++){let G=Y[q];if(QD(G))continue;Q.push(iC(G,J))}return Q}var GI=x(()=>{Oj(),XI(),CD()}),_D=x(()=>{PC(),GI()});function $I(Y){let J=!0,Q="",X=0,q="",G=!1;for(let $=0;$<Y.length;$++){let W=Y[$];if(["(",")",","].includes(W))J=!0;if(W==="(")X++;if(W===")")X--;if(!J)continue;if(X===0){if(W===" "&&["event","function",""].includes(q))q="";else if(q+=W,W===")"){G=!0;break}continue}if(W===" "){if(Y[$-1]!==","&&Q!==","&&Q!==",(")Q="",J=!1;continue}q+=W,Q+=W}if(!G)throw new o("Unable to normalize signature.");return q}var WI=x(()=>{J8()}),jI=(Y)=>{let J=(()=>{if(typeof Y==="string")return Y;return FC(Y)})();return $I(J)},KI=x(()=>{_D(),WI()});function kD(Y){return IC(jI(Y))}var FD=x(()=>{vC(),KI()}),PD,zI=x(()=>{FD(),PD=kD}),vX=(Y)=>pQ(kD(Y),0,4),_X=x(()=>{IX(),FD()});function kX(Y){let{abi:J,args:Q=[],name:X}=Y,q=jq(X,{strict:!1}),G=J.filter((W)=>{if(q){if(W.type==="function")return vX(W)===X;if(W.type==="event")return PD(W)===X;return!1}return"name"in W&&W.name===X});if(G.length===0)return;if(G.length===1)return G[0];let $;for(let W of G){if(!("inputs"in W))continue;if(!Q||Q.length===0){if(!W.inputs||W.inputs.length===0)return W;continue}if(!W.inputs)continue;if(W.inputs.length===0)continue;if(W.inputs.length!==Q.length)continue;if(Q.every((j,K)=>{let z="inputs"in W&&W.inputs[K];if(!z)return!1;return W5(j,z)})){if($&&"inputs"in $&&$.inputs){let j=TD(W.inputs,$.inputs,Q);if(j)throw new C4({abiItem:W,type:j[0]},{abiItem:$,type:j[1]})}$=W}}if($)return $;return G[0]}function W5(Y,J){let Q=typeof Y,X=J.type;switch(X){case"address":return oY(Y,{strict:!1});case"bool":return Q==="boolean";case"function":return Q==="string";case"string":return Q==="string";default:{if(X==="tuple"&&"components"in J)return Object.values(J.components).every((q,G)=>{return Q==="object"&&W5(Object.values(Y)[G],q)});if(/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(X))return Q==="number"||Q==="bigint";if(/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(X))return Q==="string"||Y instanceof Uint8Array;if(/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(X))return Array.isArray(Y)&&Y.every((q)=>W5(q,{...J,type:X.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function TD(Y,J,Q){for(let X in Y){let q=Y[X],G=J[X];if(q.type==="tuple"&&G.type==="tuple"&&"components"in q&&"components"in G)return TD(q.components,G.components,Q[X]);let $=[q.type,G.type];if((()=>{if($.includes("address")&&$.includes("bytes20"))return!0;if($.includes("address")&&$.includes("string"))return oY(Q[X],{strict:!1});if($.includes("address")&&$.includes("bytes"))return oY(Q[X],{strict:!1});return!1})())return $}return}var FX=x(()=>{g8(),CX(),zI(),_X()});function MI(Y){let{abi:J,args:Q,functionName:X,data:q}=Y,G=J[0];if(X){let W=kX({abi:J,args:Q,name:X});if(!W)throw new eJ(X,{docsPath:_W});G=W}if(G.type!=="function")throw new eJ(void 0,{docsPath:_W});if(!G.outputs)throw new u5(G.name,{docsPath:_W});let $=Qj(G.outputs,q);if($&&$.length>1)return $;if($&&$.length===1)return $[0];return}var _W="/docs/contract/decodeFunctionResult",ZD=x(()=>{g8(),qj(),FX()});function NI(Y){let{abi:J,args:Q,functionName:X}=Y,q=J[0];if(X){let G=kX({abi:J,args:Q,name:X});if(!G)throw new eJ(X,{docsPath:ON});q=G}if(q.type!=="function")throw new eJ(void 0,{docsPath:ON});return{abi:[q],functionName:vX(BJ(q))}}var ON="/docs/contract/encodeFunctionData",OI=x(()=>{g8(),_X(),Wq(),FX()});function DI(Y){let{args:J}=Y,{abi:Q,functionName:X}=(()=>{if(Y.abi.length===1&&Y.functionName?.startsWith("0x"))return Y;return NI(Y)})(),q=Q[0],G=X,$="inputs"in q&&q.inputs?zq(q.inputs,J??[]):void 0;return d$([G,$??"0x"])}var xD=x(()=>{zQ(),OI()});function Dj(Y){if(typeof Y==="string")return{address:Y,type:"json-rpc"};return Y}var gD,Uj,fD,Hj=x(()=>{gD={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Uj={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},fD={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});function hD(Y){let{abi:J,data:Q}=Y,X=pQ(Q,0,4);if(X==="0x")throw new y5;let q=[...J||[],Uj,fD].find((G)=>G.type==="error"&&X===vX(BJ(G)));if(!q)throw new l5(X,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:q,args:"inputs"in q&&q.inputs&&q.inputs.length>0?Qj(q.inputs,pQ(Q,4)):void 0,errorName:q.name}}var mD=x(()=>{Hj(),g8(),IX(),_X(),qj(),Wq()}),$X=(Y,J,Q)=>JSON.stringify(Y,(X,q)=>{let G=typeof q==="bigint"?q.toString():q;return typeof J==="function"?J(X,G):G},Q);function DN({abiItem:Y,args:J,includeFunctionName:Q=!0,includeName:X=!1}){if(!("name"in Y))return;if(!("inputs"in Y))return;if(!Y.inputs)return;return`${Q?Y.name:""}(${Y.inputs.map((q,G)=>`${X&&q.name?`${q.name}: `:""}${typeof J[G]==="object"?$X(J[G]):J[G]}`).join(", ")})`}var UI=()=>{},yD,lD,uD=x(()=>{yD={gwei:9,wei:18},lD={ether:-9,wei:9}});function cD(Y,J){let Q=Y.toString(),X=Q.startsWith("-");if(X)Q=Q.slice(1);Q=Q.padStart(J,"0");let[q,G]=[Q.slice(0,Q.length-J),Q.slice(Q.length-J)];return G=G.replace(/(0+)$/,""),`${X?"-":""}${q||"0"}${G?`.${G}`:""}`}function HI(Y,J="wei"){return cD(Y,yD[J])}var BI=x(()=>{uD()});function oJ(Y,J="wei"){return cD(Y,lD[J])}var bD=x(()=>{uD()});function UN(Y){return Y.reduce((J,{slot:Q,value:X})=>{return`${J} ${Q}: ${X}
19
+ `},"")}function RI(Y){return Y.reduce((J,{address:Q,...X})=>{let q=`${J} ${Q}:
20
+ `;if(X.nonce)q+=` nonce: ${X.nonce}
21
+ `;if(X.balance)q+=` balance: ${X.balance}
22
+ `;if(X.code)q+=` code: ${X.code}
23
+ `;if(X.state)q+=` state:
24
+ `,q+=UN(X.state);if(X.stateDiff)q+=` stateDiff:
25
+ `,q+=UN(X.stateDiff);return q},` State Override:
26
+ `).slice(0,-1)}var pD,oD,dD=x(()=>{J8(),pD=class extends o{constructor({address:J}){super(`State for account "${J}" is set multiple times.`,{name:"AccountStateConflictError"})}},oD=class extends o{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});function HN(Y){let J=Object.entries(Y).map(([X,q])=>{if(q===void 0||q===!1)return null;return[X,q]}).filter(Boolean),Q=J.reduce((X,[q])=>Math.max(X,q.length),0);return J.map(([X,q])=>` ${`${X}:`.padEnd(Q+1)} ${q}`).join(`
27
+ `)}var VI=()=>{},LI=(Y)=>Y,N$=(Y)=>Y,rD,EI,wI,AI,sD,iD,Bj=x(()=>{Hj(),mD(),Wq(),UI(),FX(),BI(),bD(),g8(),J8(),dD(),VI(),rD=class extends o{constructor(J,{account:Q,docsPath:X,chain:q,data:G,gas:$,gasPrice:W,maxFeePerGas:j,maxPriorityFeePerGas:K,nonce:z,to:M,value:N,stateOverride:O}){let D=Q?Dj(Q):void 0,U=HN({from:D?.address,to:M,value:typeof N<"u"&&`${HI(N)} ${q?.nativeCurrency?.symbol||"ETH"}`,data:G,gas:$,gasPrice:typeof W<"u"&&`${oJ(W)} gwei`,maxFeePerGas:typeof j<"u"&&`${oJ(j)} gwei`,maxPriorityFeePerGas:typeof K<"u"&&`${oJ(K)} gwei`,nonce:z});if(O)U+=`
28
+ ${RI(O)}`;super(J.shortMessage,{cause:J,docsPath:X,metaMessages:[...J.metaMessages?[...J.metaMessages," "]:[],"Raw Call Arguments:",U].filter(Boolean),name:"CallExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=J}},EI=class extends o{constructor(J,{abi:Q,args:X,contractAddress:q,docsPath:G,functionName:$,sender:W}){let j=kX({abi:Q,args:X,name:$}),K=j?DN({abiItem:j,args:X,includeFunctionName:!1,includeName:!1}):void 0,z=j?BJ(j,{includeName:!0}):void 0,M=HN({address:q&&LI(q),function:z,args:K&&K!=="()"&&`${[...Array($?.length??0).keys()].map(()=>" ").join("")}${K}`,sender:W});super(J.shortMessage||`An unknown error occurred while executing the contract function "${$}".`,{cause:J,docsPath:G,metaMessages:[...J.metaMessages?[...J.metaMessages," "]:[],M&&"Contract Call:",M].filter(Boolean),name:"ContractFunctionExecutionError"});Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=Q,this.args=X,this.cause=J,this.contractAddress=q,this.functionName=$,this.sender=W}},wI=class extends o{constructor({abi:J,data:Q,functionName:X,message:q}){let G,$,W,j;if(Q&&Q!=="0x")try{$=hD({abi:J,data:Q});let{abiItem:z,errorName:M,args:N}=$;if(M==="Error")j=N[0];else if(M==="Panic"){let[O]=N;j=gD[O]}else{let O=z?BJ(z,{includeName:!0}):void 0,D=z&&N?DN({abiItem:z,args:N,includeFunctionName:!1,includeName:!1}):void 0;W=[O?`Error: ${O}`:"",D&&D!=="()"?` ${[...Array(M?.length??0).keys()].map(()=>" ").join("")}${D}`:""]}}catch(z){G=z}else if(q)j=q;let K;if(G instanceof l5)K=G.signature,W=[`Unable to decode signature "${K}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${K}.`];super(j&&j!=="execution reverted"||K?[`The contract function "${X}" reverted with the following ${K?"signature":"reason"}:`,j||K].join(`
29
+ `):`The contract function "${X}" reverted.`,{cause:G,metaMessages:W,name:"ContractFunctionRevertedError"});Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=$,this.raw=Q,this.reason=j,this.signature=K}},AI=class extends o{constructor({functionName:J}){super(`The contract function "${J}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${J}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},sD=class extends o{constructor({factory:J}){super(`Deployment for counterfactual contract call failed${J?` for factory "${J}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},iD=class extends o{constructor({data:J,message:Q}){super(Q||"",{name:"RawContractError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=J}}}),j5,tD,Rj=x(()=>{J8(),j5=class extends o{constructor({body:J,cause:Q,details:X,headers:q,status:G,url:$}){super("HTTP request failed.",{cause:Q,details:X,metaMessages:[G&&`Status: ${G}`,`URL: ${N$($)}`,J&&`Request body: ${$X(J)}`].filter(Boolean),name:"HttpRequestError"});Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=J,this.headers=q,this.status=G,this.url=$}},tD=class extends o{constructor({body:J,error:Q,url:X}){super("RPC Request failed.",{cause:Q,details:Q.message,metaMessages:[`URL: ${N$(X)}`,`Request body: ${$X(J)}`],name:"RpcRequestError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=Q.code,this.data=Q.data,this.url=X}}}),CI=-1,E8,w8,BN,RN,VN,LN,EN,wN,AN,CN,IN,SN,vN,_N,kN,FN,PN,TN,ZN,xN,gN,fN,hN,mN,yN,lN,uN,II=x(()=>{J8(),Rj(),E8=class extends o{constructor(J,{code:Q,docsPath:X,metaMessages:q,name:G,shortMessage:$}){super($,{cause:J,docsPath:X,metaMessages:q||J?.metaMessages,name:G||"RpcError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=G||J.name,this.code=J instanceof tD?J.code:Q??CI}},w8=class extends E8{constructor(J,Q){super(J,Q);Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=Q.data}},BN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}},Object.defineProperty(BN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700}),RN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}},Object.defineProperty(RN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600}),VN=class Y extends E8{constructor(J,{method:Q}={}){super(J,{code:Y.code,name:"MethodNotFoundRpcError",shortMessage:`The method${Q?` "${Q}"`:""} does not exist / is not available.`})}},Object.defineProperty(VN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601}),LN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
30
+ `)})}},Object.defineProperty(LN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602}),EN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}},Object.defineProperty(EN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603}),wN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
31
+ `)})}},Object.defineProperty(wN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32000}),AN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}},Object.defineProperty(AN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001}),CN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}},Object.defineProperty(CN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002}),IN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}},Object.defineProperty(IN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003}),SN=class Y extends E8{constructor(J,{method:Q}={}){super(J,{code:Y.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${Q?` "${Q}"`:""} is not supported.`})}},Object.defineProperty(SN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004}),vN=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}},Object.defineProperty(vN,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005}),_N=class Y extends E8{constructor(J){super(J,{code:Y.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}},Object.defineProperty(_N,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006}),kN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}},Object.defineProperty(kN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001}),FN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}},Object.defineProperty(FN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100}),PN=class Y extends w8{constructor(J,{method:Q}={}){super(J,{code:Y.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${Q?` " ${Q}"`:""}.`})}},Object.defineProperty(PN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200}),TN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}},Object.defineProperty(TN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900}),ZN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}},Object.defineProperty(ZN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901}),xN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}},Object.defineProperty(xN,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902}),gN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}},Object.defineProperty(gN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700}),fN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}},Object.defineProperty(fN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710}),hN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}},Object.defineProperty(hN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720}),mN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}},Object.defineProperty(mN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730}),yN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}},Object.defineProperty(yN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740}),lN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}},Object.defineProperty(lN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750}),uN=class Y extends w8{constructor(J){super(J,{code:Y.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}},Object.defineProperty(uN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760})}),SI="0.1.1";function vI(){return SI}var _I=()=>{};function nD(Y,J){if(J?.(Y))return Y;if(Y&&typeof Y==="object"&&"cause"in Y&&Y.cause)return nD(Y.cause,J);return J?null:Y}var gQ,kI=x(()=>{_I(),gQ=class Y extends Error{static setStaticOptions(J){Y.prototype.docsOrigin=J.docsOrigin,Y.prototype.showVersion=J.showVersion,Y.prototype.version=J.version}constructor(J,Q={}){let X=(()=>{if(Q.cause instanceof Y){if(Q.cause.details)return Q.cause.details;if(Q.cause.shortMessage)return Q.cause.shortMessage}if(Q.cause&&"details"in Q.cause&&typeof Q.cause.details==="string")return Q.cause.details;if(Q.cause?.message)return Q.cause.message;return Q.details})(),q=(()=>{if(Q.cause instanceof Y)return Q.cause.docsPath||Q.docsPath;return Q.docsPath})(),G=Q.docsOrigin??Y.prototype.docsOrigin,$=`${G}${q??""}`,W=Boolean(Q.version??Y.prototype.showVersion),j=Q.version??Y.prototype.version,K=[J||"An error occurred.",...Q.metaMessages?["",...Q.metaMessages]:[],...X||q||W?["",X?`Details: ${X}`:void 0,q?`See: ${$}`:void 0,W?`Version: ${j}`:void 0]:[]].filter((z)=>typeof z==="string").join(`
32
+ `);super(K,Q.cause?{cause:Q.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=Q.cause,this.details=X,this.docs=$,this.docsOrigin=G,this.docsPath=q,this.shortMessage=J,this.showVersion=W,this.version=j}walk(J){return nD(this,J)}},Object.defineProperty(gQ,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${vI()}`}}),(()=>{gQ.setStaticOptions(gQ.defaultStaticOptions)})()});function FI(Y,J={}){let{dir:Q,size:X=32}=J;if(X===0)return Y;let q=Y.replace("0x","");if(q.length>X*2)throw new eD({size:Math.ceil(q.length/2),targetSize:X,type:"Hex"});return`0x${q[Q==="right"?"padEnd":"padStart"](X*2,"0")}`}var PI=x(()=>{Vj()});function xY(Y,J={}){let{signed:Q,size:X}=J,q=BigInt(Y),G;if(X)if(Q)G=(1n<<BigInt(X)*8n-1n)-1n;else G=2n**(BigInt(X)*8n)-1n;else if(typeof Y==="number")G=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof G==="bigint"&&Q?-G-1n:0;if(G&&q>G||q<$){let j=typeof Y==="bigint"?"n":"";throw new aD({max:G?`${G}${j}`:void 0,min:`${$}${j}`,signed:Q,size:X,value:`${Y}${j}`})}let W=`0x${(Q&&q<0?BigInt.asUintN(X*8,BigInt(q)):q).toString(16)}`;if(X)return TI(W,X);return W}function TI(Y,J){return FI(Y,{dir:"left",size:J})}var aD,eD,Vj=x(()=>{kI(),PI(),aD=class extends gQ{constructor({max:J,min:Q,signed:X,size:q,value:G}){super(`Number \`${G}\` is not in safe${q?` ${q*8}-bit`:""}${X?" signed":" unsigned"} integer range ${J?`(\`${Q}\` to \`${J}\`)`:`(above \`${Q}\`)`}`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}},eD=class extends gQ{constructor({size:J,targetSize:Q,type:X}){super(`${X.charAt(0).toUpperCase()}${X.slice(1).toLowerCase()} size (\`${J}\`) exceeds padding size (\`${Q}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}});function ZI(Y){return{address:Y.address,amount:xY(Y.amount),index:xY(Y.index),validatorIndex:xY(Y.validatorIndex)}}var xI=x(()=>{Vj()});function gI(Y){return{...typeof Y.baseFeePerGas==="bigint"&&{baseFeePerGas:xY(Y.baseFeePerGas)},...typeof Y.blobBaseFee==="bigint"&&{blobBaseFee:xY(Y.blobBaseFee)},...typeof Y.feeRecipient==="string"&&{feeRecipient:Y.feeRecipient},...typeof Y.gasLimit==="bigint"&&{gasLimit:xY(Y.gasLimit)},...typeof Y.number==="bigint"&&{number:xY(Y.number)},...typeof Y.prevRandao==="bigint"&&{prevRandao:xY(Y.prevRandao)},...typeof Y.time==="bigint"&&{time:xY(Y.time)},...Y.withdrawals&&{withdrawals:Y.withdrawals.map(ZI)}}}var fI=x(()=>{Vj(),xI()}),K5,O$,kW,hI,mI,YU=x(()=>{K5=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],O$=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],kW=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],hI=[...kW,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],mI=[...kW,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}]}),yI="0x82ad56cb",lI="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",uI="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",cI="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033",D$,Lj,JU=x(()=>{J8(),D$=class extends o{constructor({blockNumber:J,chain:Q,contract:X}){super(`Chain "${Q.name}" does not support contract "${X.name}".`,{metaMessages:["This could be due to any of the following:",...J&&X.blockCreated&&X.blockCreated>J?[`- The contract "${X.name}" was not deployed until block ${X.blockCreated} (current block ${J}).`]:[`- The chain does not have the contract "${X.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},Lj=class extends o{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}});function QU(Y){let{abi:J,args:Q,bytecode:X}=Y;if(!Q||Q.length===0)return X;let q=J.find(($)=>("type"in $)&&$.type==="constructor");if(!q)throw new B4({docsPath:FW});if(!("inputs"in q))throw new tW({docsPath:FW});if(!q.inputs||q.inputs.length===0)throw new tW({docsPath:FW});let G=zq(q.inputs,Q);return d$([X,G])}var FW="/docs/contract/encodeDeployData",bI=x(()=>{g8(),zQ()});function pI({blockNumber:Y,chain:J,contract:Q}){let X=J?.contracts?.[Q];if(!X)throw new D$({chain:J,contract:{name:Q}});if(Y&&X.blockCreated&&X.blockCreated>Y)throw new D$({blockNumber:Y,chain:J,contract:{name:Q,blockCreated:X.blockCreated}});return X.address}var oI=x(()=>{JU()}),dJ,WX,U$,H$,B$,R$,V$,L$,E$,w$,jX,Ej,wj=x(()=>{bD(),J8(),dJ=class extends o{constructor({cause:J,message:Q}={}){let X=Q?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${X?`with reason: ${X}`:"for an unknown reason"}.`,{cause:J,name:"ExecutionRevertedError"})}},Object.defineProperty(dJ,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(dJ,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/}),WX=class extends o{constructor({cause:J,maxFeePerGas:Q}={}){super(`The fee cap (\`maxFeePerGas\`${Q?` = ${oJ(Q)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:J,name:"FeeCapTooHighError"})}},Object.defineProperty(WX,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/}),U$=class extends o{constructor({cause:J,maxFeePerGas:Q}={}){super(`The fee cap (\`maxFeePerGas\`${Q?` = ${oJ(Q)}`:""} gwei) cannot be lower than the block base fee.`,{cause:J,name:"FeeCapTooLowError"})}},Object.defineProperty(U$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/}),H$=class extends o{constructor({cause:J,nonce:Q}={}){super(`Nonce provided for the transaction ${Q?`(${Q}) `:""}is higher than the next one expected.`,{cause:J,name:"NonceTooHighError"})}},Object.defineProperty(H$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/}),B$=class extends o{constructor({cause:J,nonce:Q}={}){super([`Nonce provided for the transaction ${Q?`(${Q}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
33
+ `),{cause:J,name:"NonceTooLowError"})}},Object.defineProperty(B$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/}),R$=class extends o{constructor({cause:J,nonce:Q}={}){super(`Nonce provided for the transaction ${Q?`(${Q}) `:""}exceeds the maximum allowed nonce.`,{cause:J,name:"NonceMaxValueError"})}},Object.defineProperty(R$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/}),V$=class extends o{constructor({cause:J}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
34
+ `),{cause:J,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}},Object.defineProperty(V$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/}),L$=class extends o{constructor({cause:J,gas:Q}={}){super(`The amount of gas ${Q?`(${Q}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:J,name:"IntrinsicGasTooHighError"})}},Object.defineProperty(L$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/}),E$=class extends o{constructor({cause:J,gas:Q}={}){super(`The amount of gas ${Q?`(${Q}) `:""}provided for the transaction is too low.`,{cause:J,name:"IntrinsicGasTooLowError"})}},Object.defineProperty(E$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/}),w$=class extends o{constructor({cause:J}){super("The transaction type is not supported for this chain.",{cause:J,name:"TransactionTypeNotSupportedError"})}},Object.defineProperty(w$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/}),jX=class extends o{constructor({cause:J,maxPriorityFeePerGas:Q,maxFeePerGas:X}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${Q?` = ${oJ(Q)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${X?` = ${oJ(X)} gwei`:""}).`].join(`
35
+ `),{cause:J,name:"TipAboveFeeCapError"})}},Object.defineProperty(jX,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/}),Ej=class extends o{constructor({cause:J}){super(`An error occurred while executing: ${J?.shortMessage}`,{cause:J,name:"UnknownNodeError"})}}});function dI(Y,J){let Q=(Y.details||"").toLowerCase(),X=Y instanceof o?Y.walk((q)=>q?.code===dJ.code):Y;if(X instanceof o)return new dJ({cause:Y,message:X.details});if(dJ.nodeMessage.test(Q))return new dJ({cause:Y,message:Y.details});if(WX.nodeMessage.test(Q))return new WX({cause:Y,maxFeePerGas:J?.maxFeePerGas});if(U$.nodeMessage.test(Q))return new U$({cause:Y,maxFeePerGas:J?.maxFeePerGas});if(H$.nodeMessage.test(Q))return new H$({cause:Y,nonce:J?.nonce});if(B$.nodeMessage.test(Q))return new B$({cause:Y,nonce:J?.nonce});if(R$.nodeMessage.test(Q))return new R$({cause:Y,nonce:J?.nonce});if(V$.nodeMessage.test(Q))return new V$({cause:Y});if(L$.nodeMessage.test(Q))return new L$({cause:Y,gas:J?.gas});if(E$.nodeMessage.test(Q))return new E$({cause:Y,gas:J?.gas});if(w$.nodeMessage.test(Q))return new w$({cause:Y});if(jX.nodeMessage.test(Q))return new jX({cause:Y,maxFeePerGas:J?.maxFeePerGas,maxPriorityFeePerGas:J?.maxPriorityFeePerGas});return new Ej({cause:Y})}var rI=x(()=>{J8(),wj()});function sI(Y,{docsPath:J,...Q}){let X=(()=>{let q=dI(Y,Q);if(q instanceof Ej)return Y;return q})();return new rD(X,{docsPath:J,...Q})}var iI=x(()=>{Bj(),wj(),rI()});function tI(Y,{format:J}){if(!J)return{};let Q={};function X(G){let $=Object.keys(G);for(let W of $){if(W in Y)Q[W]=Y[W];if(G[W]&&typeof G[W]==="object"&&!Array.isArray(G[W]))X(G[W])}}let q=J(Y||{});return X(q),Q}function nI(Y,J){let Q={};if(typeof Y.authorizationList<"u")Q.authorizationList=aI(Y.authorizationList);if(typeof Y.accessList<"u")Q.accessList=Y.accessList;if(typeof Y.blobVersionedHashes<"u")Q.blobVersionedHashes=Y.blobVersionedHashes;if(typeof Y.blobs<"u")if(typeof Y.blobs[0]!=="string")Q.blobs=Y.blobs.map((X)=>pY(X));else Q.blobs=Y.blobs;if(typeof Y.data<"u")Q.data=Y.data;if(Y.account)Q.from=Y.account.address;if(typeof Y.from<"u")Q.from=Y.from;if(typeof Y.gas<"u")Q.gas=T0(Y.gas);if(typeof Y.gasPrice<"u")Q.gasPrice=T0(Y.gasPrice);if(typeof Y.maxFeePerBlobGas<"u")Q.maxFeePerBlobGas=T0(Y.maxFeePerBlobGas);if(typeof Y.maxFeePerGas<"u")Q.maxFeePerGas=T0(Y.maxFeePerGas);if(typeof Y.maxPriorityFeePerGas<"u")Q.maxPriorityFeePerGas=T0(Y.maxPriorityFeePerGas);if(typeof Y.nonce<"u")Q.nonce=T0(Y.nonce);if(typeof Y.to<"u")Q.to=Y.to;if(typeof Y.type<"u")Q.type=qU[Y.type];if(typeof Y.value<"u")Q.value=T0(Y.value);return Q}function aI(Y){return Y.map((J)=>({address:J.address,r:J.r?T0(BigInt(J.r)):J.r,s:J.s?T0(BigInt(J.s)):J.s,chainId:T0(J.chainId),nonce:T0(J.nonce),...typeof J.yParity<"u"?{yParity:T0(J.yParity)}:{},...typeof J.v<"u"&&typeof J.yParity>"u"?{v:T0(J.v)}:{}}))}var qU,eI=x(()=>{wJ(),qU={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});function YS(){let Y=()=>{return},J=()=>{return};return{promise:new Promise((Q,X)=>{Y=Q,J=X}),resolve:Y,reject:J}}function JS({fn:Y,id:J,shouldSplitBatch:Q,wait:X=0,sort:q}){let G=async()=>{let z=j();$();let M=z.map(({args:N})=>N);if(M.length===0)return;Y(M).then((N)=>{if(q&&Array.isArray(N))N.sort(q);for(let O=0;O<z.length;O++){let{resolve:D}=z[O];D?.([N[O],N])}}).catch((N)=>{for(let O=0;O<z.length;O++){let{reject:D}=z[O];D?.(N)}})},$=()=>q$.delete(J),W=()=>j().map(({args:z})=>z),j=()=>q$.get(J)||[],K=(z)=>q$.set(J,[...j(),z]);return{flush:$,async schedule(z){let{promise:M,resolve:N,reject:O}=YS();if(Q?.([...W(),z]))G();if(j().length>0)return K({args:z,resolve:N,reject:O}),M;return K({args:z,resolve:N,reject:O}),setTimeout(G,X),M}}}var q$,QS=x(()=>{q$=new Map});function cN(Y){if(!Y||Y.length===0)return;return Y.reduce((J,{slot:Q,value:X})=>{if(Q.length!==66)throw new aW({size:Q.length,targetSize:66,type:"hex"});if(X.length!==66)throw new aW({size:X.length,targetSize:66,type:"hex"});return J[Q]=X,J},{})}function qS(Y){let{balance:J,nonce:Q,state:X,stateDiff:q,code:G}=Y,$={};if(G!==void 0)$.code=G;if(J!==void 0)$.balance=T0(J);if(Q!==void 0)$.nonce=T0(Q);if(X!==void 0)$.state=cN(X);if(q!==void 0){if($.state)throw new oD;$.stateDiff=cN(q)}return $}function XS(Y){if(!Y)return;let J={};for(let{address:Q,...X}of Y){if(!oY(Q,{strict:!1}))throw new YQ({address:Q});if(J[Q])throw new pD({address:Q});J[Q]=qS(X)}return J}var GS=x(()=>{c$(),d5(),dD(),CX(),wJ()}),$S,WS,jS,KS,zS,MS,NS,OS,DS,US,HS,BS,RS,VS,LS,ES,wS,AS,CS,IS,SS,vS,_S,kS,FS,PS,TS,ZS,xS,gS,fS,hS,mS,yS,lS,uS,cS,bS,pS,oS,dS,rS,sS,iS,tS,nS,aS,eS,Y3,J3,Q3,q3,X3,G3,$3,W3,j3,K3,z3,M3,N3,O3,D3,U3,H3,B3,R3,V3,L3,E3,w3,A3,C3,I3,S3,v3,_3,k3,F3,P3,T3,Z3,x3,g3,f3,h3,m3,y3,l3,u3,c3,b3,p3,o3,d3,XU,r3=x(()=>{$S=2n**(8n-1n)-1n,WS=2n**(16n-1n)-1n,jS=2n**(24n-1n)-1n,KS=2n**(32n-1n)-1n,zS=2n**(40n-1n)-1n,MS=2n**(48n-1n)-1n,NS=2n**(56n-1n)-1n,OS=2n**(64n-1n)-1n,DS=2n**(72n-1n)-1n,US=2n**(80n-1n)-1n,HS=2n**(88n-1n)-1n,BS=2n**(96n-1n)-1n,RS=2n**(104n-1n)-1n,VS=2n**(112n-1n)-1n,LS=2n**(120n-1n)-1n,ES=2n**(128n-1n)-1n,wS=2n**(136n-1n)-1n,AS=2n**(144n-1n)-1n,CS=2n**(152n-1n)-1n,IS=2n**(160n-1n)-1n,SS=2n**(168n-1n)-1n,vS=2n**(176n-1n)-1n,_S=2n**(184n-1n)-1n,kS=2n**(192n-1n)-1n,FS=2n**(200n-1n)-1n,PS=2n**(208n-1n)-1n,TS=2n**(216n-1n)-1n,ZS=2n**(224n-1n)-1n,xS=2n**(232n-1n)-1n,gS=2n**(240n-1n)-1n,fS=2n**(248n-1n)-1n,hS=2n**(256n-1n)-1n,mS=-(2n**(8n-1n)),yS=-(2n**(16n-1n)),lS=-(2n**(24n-1n)),uS=-(2n**(32n-1n)),cS=-(2n**(40n-1n)),bS=-(2n**(48n-1n)),pS=-(2n**(56n-1n)),oS=-(2n**(64n-1n)),dS=-(2n**(72n-1n)),rS=-(2n**(80n-1n)),sS=-(2n**(88n-1n)),iS=-(2n**(96n-1n)),tS=-(2n**(104n-1n)),nS=-(2n**(112n-1n)),aS=-(2n**(120n-1n)),eS=-(2n**(128n-1n)),Y3=-(2n**(136n-1n)),J3=-(2n**(144n-1n)),Q3=-(2n**(152n-1n)),q3=-(2n**(160n-1n)),X3=-(2n**(168n-1n)),G3=-(2n**(176n-1n)),$3=-(2n**(184n-1n)),W3=-(2n**(192n-1n)),j3=-(2n**(200n-1n)),K3=-(2n**(208n-1n)),z3=-(2n**(216n-1n)),M3=-(2n**(224n-1n)),N3=-(2n**(232n-1n)),O3=-(2n**(240n-1n)),D3=-(2n**(248n-1n)),U3=-(2n**(256n-1n)),H3=2n**8n-1n,B3=2n**16n-1n,R3=2n**24n-1n,V3=2n**32n-1n,L3=2n**40n-1n,E3=2n**48n-1n,w3=2n**56n-1n,A3=2n**64n-1n,C3=2n**72n-1n,I3=2n**80n-1n,S3=2n**88n-1n,v3=2n**96n-1n,_3=2n**104n-1n,k3=2n**112n-1n,F3=2n**120n-1n,P3=2n**128n-1n,T3=2n**136n-1n,Z3=2n**144n-1n,x3=2n**152n-1n,g3=2n**160n-1n,f3=2n**168n-1n,h3=2n**176n-1n,m3=2n**184n-1n,y3=2n**192n-1n,l3=2n**200n-1n,u3=2n**208n-1n,c3=2n**216n-1n,b3=2n**224n-1n,p3=2n**232n-1n,o3=2n**240n-1n,d3=2n**248n-1n,XU=2n**256n-1n});function s3(Y){let{account:J,maxFeePerGas:Q,maxPriorityFeePerGas:X,to:q}=Y,G=J?Dj(J):void 0;if(G&&!oY(G.address))throw new YQ({address:G.address});if(q&&!oY(q))throw new YQ({address:q});if(Q&&Q>XU)throw new WX({maxFeePerGas:Q});if(X&&Q&&X>Q)throw new jX({maxFeePerGas:Q,maxPriorityFeePerGas:X})}var i3=x(()=>{r3(),c$(),wj(),CX()}),GU,$U,WU,t3=x(()=>{J8(),GU=class extends o{constructor({callbackSelector:J,cause:Q,data:X,extraData:q,sender:G,urls:$}){super(Q.shortMessage||"An error occurred while fetching for an offchain result.",{cause:Q,metaMessages:[...Q.metaMessages||[],Q.metaMessages?.length?"":[],"Offchain Gateway Call:",$&&[" Gateway URL(s):",...$.map((W)=>` ${N$(W)}`)],` Sender: ${G}`,` Data: ${X}`,` Callback selector: ${J}`,` Extra data: ${q}`].flat(),name:"OffchainLookupError"})}},$U=class extends o{constructor({result:J,url:Q}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${N$(Q)}`,`Response: ${$X(J)}`],name:"OffchainLookupResponseMalformedError"})}},WU=class extends o{constructor({sender:J,to:Q}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${Q}`,`OffchainLookup sender address: ${J}`],name:"OffchainLookupSenderMismatchError"})}}});function n3(Y,J){if(!oY(Y,{strict:!1}))throw new YQ({address:Y});if(!oY(J,{strict:!1}))throw new YQ({address:J});return Y.toLowerCase()===J.toLowerCase()}var a3=x(()=>{c$(),CX()});function e3(Y){let{abi:J,data:Q}=Y,X=pQ(Q,0,4),q=J.find((G)=>G.type==="function"&&X===vX(BJ(G)));if(!q)throw new A4(X,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:q.name,args:"inputs"in q&&q.inputs&&q.inputs.length>0?Qj(q.inputs,pQ(Q,4)):void 0}}var Yv=x(()=>{g8(),IX(),_X(),qj(),Wq()});function bN(Y){let{abi:J,errorName:Q,args:X}=Y,q=J[0];if(Q){let j=kX({abi:J,args:X,name:Q});if(!j)throw new nW(Q,{docsPath:PW});q=j}if(q.type!=="error")throw new nW(void 0,{docsPath:PW});let G=BJ(q),$=vX(G),W="0x";if(X&&X.length>0){if(!q.inputs)throw new w4(q.name,{docsPath:PW});W=zq(q.inputs,X)}return d$([$,W])}var PW="/docs/contract/encodeErrorResult",Jv=x(()=>{g8(),_X(),zQ(),Wq(),FX()});function Qv(Y){let{abi:J,functionName:Q,result:X}=Y,q=J[0];if(Q){let $=kX({abi:J,name:Q});if(!$)throw new eJ(Q,{docsPath:TW});q=$}if(q.type!=="function")throw new eJ(void 0,{docsPath:TW});if(!q.outputs)throw new u5(q.name,{docsPath:TW});let G=(()=>{if(q.outputs.length===0)return[];if(q.outputs.length===1)return[X];if(Array.isArray(X))return X;throw new c5(X)})();return zq(q.outputs,G)}var TW="/docs/contract/encodeFunctionResult",qv=x(()=>{g8(),zQ(),FX()});async function jU(Y){let{data:J,ccipRequest:Q}=Y,{args:[X]}=e3({abi:O$,data:J}),q=[],G=[];return await Promise.all(X.map(async($,W)=>{try{G[W]=$.urls.includes(KU)?await jU({data:$.data,ccipRequest:Q}):await Q($),q[W]=!1}catch(j){q[W]=!0,G[W]=Xv(j)}})),Qv({abi:O$,functionName:"query",result:[q,G]})}function Xv(Y){if(Y.name==="HttpRequestError"&&Y.status)return bN({abi:O$,errorName:"HttpError",args:[Y.status,Y.shortMessage]});return bN({abi:[Uj],errorName:"Error",args:["shortMessage"in Y?Y.shortMessage:Y.message]})}var KU="x-batch-gateway:true",Gv=x(()=>{YU(),Hj(),Yv(),Jv(),qv()}),zU={};XY(zU,{offchainLookupSignature:()=>Wv,offchainLookupAbiItem:()=>Aj,offchainLookup:()=>$v,ccipRequest:()=>MU});async function $v(Y,{blockNumber:J,blockTag:Q,data:X,to:q}){let{args:G}=hD({data:X,abi:[Aj]}),[$,W,j,K,z]=G,{ccipRead:M}=Y,N=M&&typeof M?.request==="function"?M.request:MU;try{if(!n3(q,$))throw new WU({sender:$,to:q});let O=W.includes(KU)?await jU({data:j,ccipRequest:N}):await N({data:j,sender:$,urls:W}),{data:D}=await Kv(Y,{blockNumber:J,blockTag:Q,data:JQ([K,zq([{type:"bytes"},{type:"bytes"}],[O,z])]),to:q});return D}catch(O){throw new GU({callbackSelector:K,cause:O,data:X,extraData:z,sender:$,urls:W})}}async function MU({data:Y,sender:J,urls:Q}){let X=Error("An unknown error occurred.");for(let q=0;q<Q.length;q++){let G=Q[q],$=G.includes("{data}")?"GET":"POST",W=$==="POST"?{data:Y,sender:J}:void 0,j=$==="POST"?{"Content-Type":"application/json"}:{};try{let K=await fetch(G.replace("{sender}",J.toLowerCase()).replace("{data}",Y),{body:JSON.stringify(W),headers:j,method:$}),z;if(K.headers.get("Content-Type")?.startsWith("application/json"))z=(await K.json()).data;else z=await K.text();if(!K.ok){X=new j5({body:W,details:z?.error?$X(z.error):K.statusText,headers:K.headers,status:K.status,url:G});continue}if(!jq(z)){X=new $U({result:z,url:G});continue}return z}catch(K){X=new j5({body:W,details:K.message,url:G})}}throw X}var Wv="0x556f1830",Aj,jv=x(()=>{OU(),t3(),Rj(),mD(),zQ(),a3(),Gv(),Aj={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function Kv(Y,J){let{account:Q=Y.account,authorizationList:X,batch:q=Boolean(Y.batch?.multicall),blockNumber:G,blockTag:$=Y.experimental_blockTag??"latest",accessList:W,blobs:j,blockOverrides:K,code:z,data:M,factory:N,factoryData:O,gas:D,gasPrice:U,maxFeePerBlobGas:A,maxFeePerGas:w,maxPriorityFeePerGas:v,nonce:R,to:E,value:C,stateOverride:S,...Z}=J,r=Q?Dj(Q):void 0;if(z&&(N||O))throw new o("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(z&&E)throw new o("Cannot provide both `code` & `to` as parameters.");let c=z&&M,h=N&&O&&E&&M,a=c||h,n=(()=>{if(c)return NU({code:z,data:M});if(h)return Nv({data:M,factory:N,factoryData:O,to:E});return M})();try{s3(J);let V0=(typeof G==="bigint"?T0(G):void 0)||$,e=K?gI(K):void 0,B=XS(S),I=Y.chain?.formatters?.transactionRequest?.format,f=(I||nI)({...tI(Z,{format:I}),accessList:W,account:r,authorizationList:X,blobs:j,data:n,gas:D,gasPrice:U,maxFeePerBlobGas:A,maxFeePerGas:w,maxPriorityFeePerGas:v,nonce:R,to:a?void 0:E,value:C},"call");if(q&&zv({request:f})&&!B&&!e)try{return await Mv(Y,{...f,blockNumber:G,blockTag:$})}catch(p){if(!(p instanceof Lj)&&!(p instanceof D$))throw p}let t=(()=>{let p=[f,V0];if(B&&e)return[...p,B,e];if(B)return[...p,B];if(e)return[...p,{},e];return p})(),u=await Y.request({method:"eth_call",params:t});if(u==="0x")return{data:void 0};return{data:u}}catch(V0){let e=Ov(V0),{offchainLookup:B,offchainLookupSignature:I}=await Promise.resolve().then(()=>(jv(),zU));if(Y.ccipRead!==!1&&e?.slice(0,10)===I&&E)return{data:await B(Y,{data:e,to:E})};if(a&&e?.slice(0,10)==="0x101bb98d")throw new sD({factory:N});throw sI(V0,{...J,account:r,chain:Y.chain})}}function zv({request:Y}){let{data:J,to:Q,...X}=Y;if(!J)return!1;if(J.startsWith(yI))return!1;if(!Q)return!1;if(Object.values(X).filter((q)=>typeof q<"u").length>0)return!1;return!0}async function Mv(Y,J){let{batchSize:Q=1024,deployless:X=!1,wait:q=0}=typeof Y.batch?.multicall==="object"?Y.batch.multicall:{},{blockNumber:G,blockTag:$=Y.experimental_blockTag??"latest",data:W,to:j}=J,K=(()=>{if(X)return null;if(J.multicallAddress)return J.multicallAddress;if(Y.chain)return pI({blockNumber:G,chain:Y.chain,contract:"multicall3"});throw new Lj})(),z=(typeof G==="bigint"?T0(G):void 0)||$,{schedule:M}=JS({id:`${Y.uid}.${z}`,wait:q,shouldSplitBatch(D){return D.reduce((U,{data:A})=>U+(A.length-2),0)>Q*2},fn:async(D)=>{let U=D.map((v)=>({allowFailure:!0,callData:v.data,target:v.to})),A=DI({abi:K5,args:[U],functionName:"aggregate3"}),w=await Y.request({method:"eth_call",params:[{...K===null?{data:NU({code:cI,data:A})}:{to:K,data:A}},z]});return MI({abi:K5,args:[U],functionName:"aggregate3",data:w||"0x"})}}),[{returnData:N,success:O}]=await M({data:W,to:j});if(!O)throw new iD({data:N});if(N==="0x")return{data:void 0};return{data:N}}function NU(Y){let{code:J,data:Q}=Y;return QU({abi:vD(["constructor(bytes, bytes)"]),bytecode:lI,args:[J,Q]})}function Nv(Y){let{data:J,factory:Q,factoryData:X,to:q}=Y;return QU({abi:vD(["constructor(address, bytes, address, bytes)"]),bytecode:uI,args:[q,J,Q,X]})}function Ov(Y){if(!(Y instanceof o))return;let J=Y.walk();return typeof J?.data==="object"?J.data?.data:J.data}var OU=x(()=>{_D(),fI(),YU(),J8(),JU(),Bj(),ZD(),bI(),xD(),oI(),wJ(),iI(),eI(),QS(),GS(),i3()}),L={};XY(L,{xor:()=>F6,xid:()=>eV,void:()=>C6,uuidv7:()=>oV,uuidv6:()=>pV,uuidv4:()=>bV,uuid:()=>cV,util:()=>O0,url:()=>dV,uppercase:()=>J9,unknown:()=>GQ,union:()=>P9,undefined:()=>w6,ulid:()=>aV,uint64:()=>L6,uint32:()=>B6,tuple:()=>rK,trim:()=>W9,treeifyError:()=>kU,transform:()=>Z9,toUpperCase:()=>K9,toLowerCase:()=>j9,toJSONSchema:()=>VV,templateLiteral:()=>b6,symbol:()=>E6,superRefine:()=>Lz,success:()=>l6,stringbool:()=>t6,stringFormat:()=>z6,string:()=>k$,strictObject:()=>_6,startsWith:()=>q9,slugify:()=>z9,size:()=>uX,setErrorMap:()=>TF,set:()=>g6,safeParseAsync:()=>PV,safeParse:()=>FV,safeEncodeAsync:()=>mV,safeEncode:()=>fV,safeDecodeAsync:()=>yV,safeDecode:()=>hV,registry:()=>nj,regexes:()=>OQ,regex:()=>e$,refine:()=>Vz,record:()=>sK,readonly:()=>Oz,property:()=>wK,promise:()=>p6,prettifyError:()=>PU,preprocess:()=>a6,prefault:()=>$z,positive:()=>RK,pipe:()=>OX,partialRecord:()=>T6,parseAsync:()=>kV,parse:()=>_V,overwrite:()=>nY,optional:()=>MX,object:()=>v6,number:()=>PK,nullish:()=>y6,nullable:()=>NX,null:()=>fK,normalize:()=>$9,nonpositive:()=>LK,nonoptional:()=>Wz,nonnegative:()=>EK,never:()=>k9,negative:()=>VK,nativeEnum:()=>f6,nanoid:()=>iV,nan:()=>u6,multipleOf:()=>rQ,minSize:()=>LJ,minLength:()=>XQ,mime:()=>G9,meta:()=>s6,maxSize:()=>Mq,maxLength:()=>cX,map:()=>x6,mac:()=>Q6,lte:()=>p8,lt:()=>RJ,lowercase:()=>Y9,looseRecord:()=>Z6,looseObject:()=>k6,locales:()=>ij,literal:()=>h6,length:()=>bX,lazy:()=>Hz,ksuid:()=>Y6,keyof:()=>S6,jwt:()=>K6,json:()=>n6,iso:()=>IK,ipv6:()=>q6,ipv4:()=>J6,intersection:()=>oK,int64:()=>V6,int32:()=>H6,int:()=>F$,instanceof:()=>i6,includes:()=>Q9,httpUrl:()=>rV,hostname:()=>M6,hex:()=>N6,hash:()=>O6,guid:()=>uV,gte:()=>I8,gt:()=>VJ,globalRegistry:()=>b8,getErrorMap:()=>ZF,function:()=>P$,fromJSONSchema:()=>hF,formatError:()=>_j,float64:()=>U6,float32:()=>D6,flattenError:()=>vj,file:()=>m6,exactOptional:()=>Jz,enum:()=>T9,endsWith:()=>X9,encodeAsync:()=>xV,encode:()=>TV,emoji:()=>sV,email:()=>lV,e164:()=>j6,discriminatedUnion:()=>P6,describe:()=>r6,decodeAsync:()=>gV,decode:()=>ZV,date:()=>I6,custom:()=>d6,cuid2:()=>nV,cuid:()=>tV,core:()=>DU,config:()=>z8,coerce:()=>Y7,codec:()=>c6,clone:()=>r8,cidrv6:()=>G6,cidrv4:()=>X6,check:()=>o6,catch:()=>zz,boolean:()=>TK,bigint:()=>R6,base64url:()=>W6,base64:()=>$6,array:()=>tX,any:()=>A6,_function:()=>P$,_default:()=>Xz,_ZodString:()=>M9,ZodXor:()=>cK,ZodXID:()=>R9,ZodVoid:()=>lK,ZodUnknown:()=>mK,ZodUnion:()=>aX,ZodUndefined:()=>xK,ZodUUID:()=>VY,ZodURL:()=>dX,ZodULID:()=>B9,ZodType:()=>$0,ZodTuple:()=>dK,ZodTransform:()=>eK,ZodTemplateLiteral:()=>Dz,ZodSymbol:()=>ZK,ZodSuccess:()=>jz,ZodStringFormat:()=>v0,ZodString:()=>oX,ZodSet:()=>tK,ZodRecord:()=>eX,ZodRealError:()=>h8,ZodReadonly:()=>Nz,ZodPromise:()=>Bz,ZodPrefault:()=>Gz,ZodPipe:()=>f9,ZodOptional:()=>x9,ZodObject:()=>nX,ZodNumberFormat:()=>DQ,ZodNumber:()=>rX,ZodNullable:()=>Qz,ZodNull:()=>gK,ZodNonOptional:()=>g9,ZodNever:()=>yK,ZodNanoID:()=>D9,ZodNaN:()=>Mz,ZodMap:()=>iK,ZodMAC:()=>FK,ZodLiteral:()=>nK,ZodLazy:()=>Uz,ZodKSUID:()=>V9,ZodJWT:()=>v9,ZodIssueCode:()=>PF,ZodIntersection:()=>pK,ZodISOTime:()=>_K,ZodISODuration:()=>kK,ZodISODateTime:()=>SK,ZodISODate:()=>vK,ZodIPv6:()=>E9,ZodIPv4:()=>L9,ZodGUID:()=>zX,ZodFunction:()=>Rz,ZodFirstPartyTypeKind:()=>U5,ZodFile:()=>aK,ZodExactOptional:()=>Yz,ZodError:()=>FF,ZodEnum:()=>nQ,ZodEmoji:()=>O9,ZodEmail:()=>N9,ZodE164:()=>S9,ZodDiscriminatedUnion:()=>bK,ZodDefault:()=>qz,ZodDate:()=>F9,ZodCustomStringFormat:()=>Nq,ZodCustom:()=>YG,ZodCodec:()=>h9,ZodCatch:()=>Kz,ZodCUID2:()=>H9,ZodCUID:()=>U9,ZodCIDRv6:()=>A9,ZodCIDRv4:()=>w9,ZodBoolean:()=>sX,ZodBigIntFormat:()=>_9,ZodBigInt:()=>iX,ZodBase64URL:()=>I9,ZodBase64:()=>C9,ZodArray:()=>uK,ZodAny:()=>hK,TimePrecision:()=>aB,NEVER:()=>UU,$output:()=>rB,$input:()=>sB,$brand:()=>HU});var DU={};XY(DU,{version:()=>FH,util:()=>O0,treeifyError:()=>kU,toJSONSchema:()=>VV,toDotPath:()=>FU,safeParseAsync:()=>ZU,safeParse:()=>TU,safeEncodeAsync:()=>ov,safeEncode:()=>bv,safeDecodeAsync:()=>dv,safeDecode:()=>pv,registry:()=>nj,regexes:()=>OQ,process:()=>A0,prettifyError:()=>PU,parseAsync:()=>N5,parse:()=>M5,meta:()=>ZR,locales:()=>ij,isValidJWT:()=>JB,isValidBase64URL:()=>aH,isValidBase64:()=>cj,initializeContext:()=>sQ,globalRegistry:()=>b8,globalConfig:()=>A$,formatError:()=>_j,flattenError:()=>vj,finalize:()=>tQ,extractDefs:()=>iQ,encodeAsync:()=>uv,encode:()=>yv,describe:()=>TR,decodeAsync:()=>cv,decode:()=>lv,createToJSONSchemaMethod:()=>gR,createStandardJSONSchemaMethod:()=>KX,config:()=>z8,clone:()=>r8,_xor:()=>$F,_xid:()=>jK,_void:()=>wR,_uuidv7:()=>QK,_uuidv6:()=>JK,_uuidv4:()=>YK,_uuid:()=>ej,_url:()=>a$,_uppercase:()=>J9,_unknown:()=>LR,_union:()=>GF,_undefined:()=>BR,_ulid:()=>WK,_uint64:()=>UR,_uint32:()=>KR,_tuple:()=>KF,_trim:()=>W9,_transform:()=>HF,_toUpperCase:()=>K9,_toLowerCase:()=>j9,_templateLiteral:()=>IF,_symbol:()=>HR,_superRefine:()=>FR,_success:()=>EF,_stringbool:()=>xR,_stringFormat:()=>pX,_string:()=>iB,_startsWith:()=>q9,_slugify:()=>z9,_size:()=>uX,_set:()=>NF,_safeParseAsync:()=>fX,_safeParse:()=>gX,_safeEncodeAsync:()=>gj,_safeEncode:()=>Zj,_safeDecodeAsync:()=>fj,_safeDecode:()=>xj,_regex:()=>e$,_refine:()=>kR,_record:()=>zF,_readonly:()=>CF,_property:()=>wK,_promise:()=>vF,_positive:()=>RK,_pipe:()=>AF,_parseAsync:()=>xX,_parse:()=>ZX,_overwrite:()=>nY,_optional:()=>BF,_number:()=>qR,_nullable:()=>RF,_null:()=>RR,_normalize:()=>$9,_nonpositive:()=>LK,_nonoptional:()=>LF,_nonnegative:()=>EK,_never:()=>ER,_negative:()=>VK,_nativeEnum:()=>DF,_nanoid:()=>XK,_nan:()=>IR,_multipleOf:()=>rQ,_minSize:()=>LJ,_minLength:()=>XQ,_min:()=>I8,_mime:()=>G9,_maxSize:()=>Mq,_maxLength:()=>cX,_max:()=>p8,_map:()=>MF,_mac:()=>nB,_lte:()=>p8,_lt:()=>RJ,_lowercase:()=>Y9,_literal:()=>UF,_length:()=>bX,_lazy:()=>SF,_ksuid:()=>KK,_jwt:()=>BK,_isoTime:()=>JR,_isoDuration:()=>QR,_isoDateTime:()=>eB,_isoDate:()=>YR,_ipv6:()=>MK,_ipv4:()=>zK,_intersection:()=>jF,_int64:()=>DR,_int32:()=>jR,_int:()=>GR,_includes:()=>Q9,_guid:()=>_$,_gte:()=>I8,_gt:()=>VJ,_float64:()=>WR,_float32:()=>$R,_file:()=>vR,_enum:()=>OF,_endsWith:()=>X9,_encodeAsync:()=>Pj,_encode:()=>kj,_emoji:()=>qK,_email:()=>aj,_e164:()=>HK,_discriminatedUnion:()=>WF,_default:()=>VF,_decodeAsync:()=>Tj,_decode:()=>Fj,_date:()=>AR,_custom:()=>_R,_cuid2:()=>$K,_cuid:()=>GK,_coercedString:()=>tB,_coercedNumber:()=>XR,_coercedDate:()=>CR,_coercedBoolean:()=>MR,_coercedBigint:()=>OR,_cidrv6:()=>OK,_cidrv4:()=>NK,_check:()=>PR,_catch:()=>wF,_boolean:()=>zR,_bigint:()=>NR,_base64url:()=>UK,_base64:()=>DK,_array:()=>SR,_any:()=>VR,TimePrecision:()=>aB,NEVER:()=>UU,JSONSchemaGenerator:()=>LV,JSONSchema:()=>kF,Doc:()=>uj,$output:()=>rB,$input:()=>sB,$constructor:()=>V,$brand:()=>HU,$ZodXor:()=>VB,$ZodXID:()=>lH,$ZodVoid:()=>NB,$ZodUnknown:()=>zB,$ZodUnion:()=>n$,$ZodUndefined:()=>WB,$ZodUUID:()=>TH,$ZodURL:()=>xH,$ZodULID:()=>yH,$ZodType:()=>G0,$ZodTuple:()=>dj,$ZodTransform:()=>_B,$ZodTemplateLiteral:()=>yB,$ZodSymbol:()=>$B,$ZodSuccess:()=>xB,$ZodStringFormat:()=>S0,$ZodString:()=>lX,$ZodSet:()=>CB,$ZodRegistry:()=>tj,$ZodRecord:()=>wB,$ZodRealError:()=>f8,$ZodReadonly:()=>mB,$ZodPromise:()=>uB,$ZodPrefault:()=>TB,$ZodPipe:()=>hB,$ZodOptional:()=>rj,$ZodObjectJIT:()=>RB,$ZodObject:()=>BB,$ZodNumberFormat:()=>XB,$ZodNumber:()=>bj,$ZodNullable:()=>FB,$ZodNull:()=>jB,$ZodNonOptional:()=>ZB,$ZodNever:()=>MB,$ZodNanoID:()=>fH,$ZodNaN:()=>fB,$ZodMap:()=>AB,$ZodMAC:()=>sH,$ZodLiteral:()=>SB,$ZodLazy:()=>cB,$ZodKSUID:()=>uH,$ZodJWT:()=>QB,$ZodIntersection:()=>EB,$ZodISOTime:()=>pH,$ZodISODuration:()=>oH,$ZodISODateTime:()=>cH,$ZodISODate:()=>bH,$ZodIPv6:()=>rH,$ZodIPv4:()=>dH,$ZodGUID:()=>PH,$ZodFunction:()=>lB,$ZodFile:()=>vB,$ZodExactOptional:()=>kB,$ZodError:()=>Sj,$ZodEnum:()=>IB,$ZodEncodeError:()=>PX,$ZodEmoji:()=>gH,$ZodEmail:()=>ZH,$ZodE164:()=>YB,$ZodDiscriminatedUnion:()=>LB,$ZodDefault:()=>PB,$ZodDate:()=>OB,$ZodCustomStringFormat:()=>qB,$ZodCustom:()=>bB,$ZodCodec:()=>sj,$ZodCheckUpperCase:()=>AH,$ZodCheckStringFormat:()=>yX,$ZodCheckStartsWith:()=>IH,$ZodCheckSizeEquals:()=>BH,$ZodCheckRegex:()=>EH,$ZodCheckProperty:()=>vH,$ZodCheckOverwrite:()=>kH,$ZodCheckNumberFormat:()=>OH,$ZodCheckMultipleOf:()=>NH,$ZodCheckMinSize:()=>HH,$ZodCheckMinLength:()=>VH,$ZodCheckMimeType:()=>_H,$ZodCheckMaxSize:()=>UH,$ZodCheckMaxLength:()=>RH,$ZodCheckLowerCase:()=>wH,$ZodCheckLessThan:()=>yj,$ZodCheckLengthEquals:()=>LH,$ZodCheckIncludes:()=>CH,$ZodCheckGreaterThan:()=>lj,$ZodCheckEndsWith:()=>SH,$ZodCheckBigIntFormat:()=>DH,$ZodCheck:()=>x0,$ZodCatch:()=>gB,$ZodCUID2:()=>mH,$ZodCUID:()=>hH,$ZodCIDRv6:()=>tH,$ZodCIDRv4:()=>iH,$ZodBoolean:()=>pj,$ZodBigIntFormat:()=>GB,$ZodBigInt:()=>oj,$ZodBase64URL:()=>eH,$ZodBase64:()=>nH,$ZodAsyncError:()=>UJ,$ZodArray:()=>DB,$ZodAny:()=>KB});var UU=Object.freeze({status:"aborted"});function V(Y,J,Q){function X(W,j){if(!W._zod)Object.defineProperty(W,"_zod",{value:{def:j,constr:$,traits:new Set},enumerable:!1});if(W._zod.traits.has(Y))return;W._zod.traits.add(Y),J(W,j);let K=$.prototype,z=Object.keys(K);for(let M=0;M<z.length;M++){let N=z[M];if(!(N in W))W[N]=K[N].bind(W)}}let q=Q?.Parent??Object;class G extends q{}Object.defineProperty(G,"name",{value:Y});function $(W){var j;let K=Q?.Parent?new G:this;X(K,W),(j=K._zod).deferred??(j.deferred=[]);for(let z of K._zod.deferred)z();return K}return Object.defineProperty($,"init",{value:X}),Object.defineProperty($,Symbol.hasInstance,{value:(W)=>{if(Q?.Parent&&W instanceof Q.Parent)return!0;return W?._zod?.traits?.has(Y)}}),Object.defineProperty($,"name",{value:Y}),$}var HU=Symbol("zod_brand");class UJ extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class PX extends Error{constructor(Y){super(`Encountered unidirectional transform during encode: ${Y}`);this.name="ZodEncodeError"}}var A$={};function z8(Y){if(Y)Object.assign(A$,Y);return A$}var O0={};XY(O0,{unwrapMessage:()=>tq,uint8ArrayToHex:()=>mv,uint8ArrayToBase64url:()=>fv,uint8ArrayToBase64:()=>SU,stringifyPrimitive:()=>Q0,slugify:()=>RU,shallowClone:()=>LU,safeExtend:()=>Fv,required:()=>Zv,randomString:()=>Av,propertyKeyTypes:()=>I$,promiseAllObject:()=>wv,primitiveTypes:()=>EU,prefixIssues:()=>qY,pick:()=>vv,partial:()=>Tv,parsedType:()=>X0,optionalKeys:()=>wU,omit:()=>_v,objectClone:()=>Vv,numKeys:()=>Cv,nullish:()=>NQ,normalizeParams:()=>T,mergeDefs:()=>tY,merge:()=>Pv,jsonStringifyReplacer:()=>C$,joinValues:()=>P,issue:()=>S$,isPlainObject:()=>qQ,isObject:()=>oQ,hexToUint8Array:()=>hv,getSizableOrigin:()=>i$,getParsedType:()=>Iv,getLengthableOrigin:()=>t$,getEnumValues:()=>Cj,getElementAtPath:()=>Ev,floatSafeRemainder:()=>BU,finalizeIssue:()=>o8,extend:()=>kv,escapeRegex:()=>dY,esc:()=>z5,defineLazy:()=>M0,createTransparentProxy:()=>Sv,cloneDef:()=>Lv,clone:()=>r8,cleanRegex:()=>s$,cleanEnum:()=>xv,captureStackTrace:()=>Ij,cached:()=>TX,base64urlToUint8Array:()=>gv,base64ToUint8Array:()=>IU,assignProp:()=>AJ,assertNotEqual:()=>Uv,assertNever:()=>Bv,assertIs:()=>Hv,assertEqual:()=>Dv,assert:()=>Rv,allowsEval:()=>VU,aborted:()=>rJ,NUMBER_FORMAT_RANGES:()=>AU,Class:()=>vU,BIGINT_FORMAT_RANGES:()=>CU});function Dv(Y){return Y}function Uv(Y){return Y}function Hv(Y){}function Bv(Y){throw Error("Unexpected value in exhaustive check")}function Rv(Y){}function Cj(Y){let J=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,X])=>J.indexOf(+Q)===-1).map(([Q,X])=>X)}function P(Y,J="|"){return Y.map((Q)=>Q0(Q)).join(J)}function C$(Y,J){if(typeof J==="bigint")return J.toString();return J}function TX(Y){return{get value(){{let J=Y();return Object.defineProperty(this,"value",{value:J}),J}throw Error("cached value already set")}}}function NQ(Y){return Y===null||Y===void 0}function s$(Y){let J=Y.startsWith("^")?1:0,Q=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(J,Q)}function BU(Y,J){let Q=(Y.toString().split(".")[1]||"").length,X=J.toString(),q=(X.split(".")[1]||"").length;if(q===0&&/\d?e-\d?/.test(X)){let j=X.match(/\d?e-(\d?)/);if(j?.[1])q=Number.parseInt(j[1])}let G=Q>q?Q:q,$=Number.parseInt(Y.toFixed(G).replace(".","")),W=Number.parseInt(J.toFixed(G).replace(".",""));return $%W/10**G}var pN=Symbol("evaluating");function M0(Y,J,Q){let X=void 0;Object.defineProperty(Y,J,{get(){if(X===pN)return;if(X===void 0)X=pN,X=Q();return X},set(q){Object.defineProperty(Y,J,{value:q})},configurable:!0})}function Vv(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function AJ(Y,J,Q){Object.defineProperty(Y,J,{value:Q,writable:!0,enumerable:!0,configurable:!0})}function tY(...Y){let J={};for(let Q of Y){let X=Object.getOwnPropertyDescriptors(Q);Object.assign(J,X)}return Object.defineProperties({},J)}function Lv(Y){return tY(Y._zod.def)}function Ev(Y,J){if(!J)return Y;return J.reduce((Q,X)=>Q?.[X],Y)}function wv(Y){let J=Object.keys(Y),Q=J.map((X)=>Y[X]);return Promise.all(Q).then((X)=>{let q={};for(let G=0;G<J.length;G++)q[J[G]]=X[G];return q})}function Av(Y=10){let J="";for(let Q=0;Q<Y;Q++)J+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return J}function z5(Y){return JSON.stringify(Y)}function RU(Y){return Y.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ij="captureStackTrace"in Error?Error.captureStackTrace:(...Y)=>{};function oQ(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}var VU=TX(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return Function(""),!0}catch(Y){return!1}});function qQ(Y){if(oQ(Y)===!1)return!1;let J=Y.constructor;if(J===void 0)return!0;if(typeof J!=="function")return!0;let Q=J.prototype;if(oQ(Q)===!1)return!1;if(Object.prototype.hasOwnProperty.call(Q,"isPrototypeOf")===!1)return!1;return!0}function LU(Y){if(qQ(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function Cv(Y){let J=0;for(let Q in Y)if(Object.prototype.hasOwnProperty.call(Y,Q))J++;return J}var Iv=(Y)=>{let J=typeof Y;switch(J){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(Y)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(Y))return"array";if(Y===null)return"null";if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return"promise";if(typeof Map<"u"&&Y instanceof Map)return"map";if(typeof Set<"u"&&Y instanceof Set)return"set";if(typeof Date<"u"&&Y instanceof Date)return"date";if(typeof File<"u"&&Y instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${J}`)}},I$=new Set(["string","number","symbol"]),EU=new Set(["string","number","bigint","boolean","symbol","undefined"]);function dY(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function r8(Y,J,Q){let X=new Y._zod.constr(J??Y._zod.def);if(!J||Q?.parent)X._zod.parent=Y;return X}function T(Y){let J=Y;if(!J)return{};if(typeof J==="string")return{error:()=>J};if(J?.message!==void 0){if(J?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");J.error=J.message}if(delete J.message,typeof J.error==="string")return{...J,error:()=>J.error};return J}function Sv(Y){let J;return new Proxy({},{get(Q,X,q){return J??(J=Y()),Reflect.get(J,X,q)},set(Q,X,q,G){return J??(J=Y()),Reflect.set(J,X,q,G)},has(Q,X){return J??(J=Y()),Reflect.has(J,X)},deleteProperty(Q,X){return J??(J=Y()),Reflect.deleteProperty(J,X)},ownKeys(Q){return J??(J=Y()),Reflect.ownKeys(J)},getOwnPropertyDescriptor(Q,X){return J??(J=Y()),Reflect.getOwnPropertyDescriptor(J,X)},defineProperty(Q,X,q){return J??(J=Y()),Reflect.defineProperty(J,X,q)}})}function Q0(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function wU(Y){return Object.keys(Y).filter((J)=>{return Y[J]._zod.optin==="optional"&&Y[J]._zod.optout==="optional"})}var AU={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},CU={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function vv(Y,J){let Q=Y._zod.def,X=Q.checks;if(X&&X.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let q=tY(Y._zod.def,{get shape(){let G={};for(let $ in J){if(!($ in Q.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;G[$]=Q.shape[$]}return AJ(this,"shape",G),G},checks:[]});return r8(Y,q)}function _v(Y,J){let Q=Y._zod.def,X=Q.checks;if(X&&X.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let q=tY(Y._zod.def,{get shape(){let G={...Y._zod.def.shape};for(let $ in J){if(!($ in Q.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;delete G[$]}return AJ(this,"shape",G),G},checks:[]});return r8(Y,q)}function kv(Y,J){if(!qQ(J))throw Error("Invalid input to extend: expected a plain object");let Q=Y._zod.def.checks;if(Q&&Q.length>0){let q=Y._zod.def.shape;for(let G in J)if(Object.getOwnPropertyDescriptor(q,G)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let X=tY(Y._zod.def,{get shape(){let q={...Y._zod.def.shape,...J};return AJ(this,"shape",q),q}});return r8(Y,X)}function Fv(Y,J){if(!qQ(J))throw Error("Invalid input to safeExtend: expected a plain object");let Q=tY(Y._zod.def,{get shape(){let X={...Y._zod.def.shape,...J};return AJ(this,"shape",X),X}});return r8(Y,Q)}function Pv(Y,J){let Q=tY(Y._zod.def,{get shape(){let X={...Y._zod.def.shape,...J._zod.def.shape};return AJ(this,"shape",X),X},get catchall(){return J._zod.def.catchall},checks:[]});return r8(Y,Q)}function Tv(Y,J,Q){let X=J._zod.def.checks;if(X&&X.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let q=tY(J._zod.def,{get shape(){let G=J._zod.def.shape,$={...G};if(Q)for(let W in Q){if(!(W in G))throw Error(`Unrecognized key: "${W}"`);if(!Q[W])continue;$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W]}else for(let W in G)$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W];return AJ(this,"shape",$),$},checks:[]});return r8(J,q)}function Zv(Y,J,Q){let X=tY(J._zod.def,{get shape(){let q=J._zod.def.shape,G={...q};if(Q)for(let $ in Q){if(!($ in G))throw Error(`Unrecognized key: "${$}"`);if(!Q[$])continue;G[$]=new Y({type:"nonoptional",innerType:q[$]})}else for(let $ in q)G[$]=new Y({type:"nonoptional",innerType:q[$]});return AJ(this,"shape",G),G}});return r8(J,X)}function rJ(Y,J=0){if(Y.aborted===!0)return!0;for(let Q=J;Q<Y.issues.length;Q++)if(Y.issues[Q]?.continue!==!0)return!0;return!1}function qY(Y,J){return J.map((Q)=>{var X;return(X=Q).path??(X.path=[]),Q.path.unshift(Y),Q})}function tq(Y){return typeof Y==="string"?Y:Y?.message}function o8(Y,J,Q){let X={...Y,path:Y.path??[]};if(!Y.message){let q=tq(Y.inst?._zod.def?.error?.(Y))??tq(J?.error?.(Y))??tq(Q.customError?.(Y))??tq(Q.localeError?.(Y))??"Invalid input";X.message=q}if(delete X.inst,delete X.continue,!J?.reportInput)delete X.input;return X}function i$(Y){if(Y instanceof Set)return"set";if(Y instanceof Map)return"map";if(Y instanceof File)return"file";return"unknown"}function t$(Y){if(Array.isArray(Y))return"array";if(typeof Y==="string")return"string";return"unknown"}function X0(Y){let J=typeof Y;switch(J){case"number":return Number.isNaN(Y)?"nan":"number";case"object":{if(Y===null)return"null";if(Array.isArray(Y))return"array";let Q=Y;if(Q&&Object.getPrototypeOf(Q)!==Object.prototype&&"constructor"in Q&&Q.constructor)return Q.constructor.name}}return J}function S$(...Y){let[J,Q,X]=Y;if(typeof J==="string")return{message:J,code:"custom",input:Q,inst:X};return{...J}}function xv(Y){return Object.entries(Y).filter(([J,Q])=>{return Number.isNaN(Number.parseInt(J,10))}).map((J)=>J[1])}function IU(Y){let J=atob(Y),Q=new Uint8Array(J.length);for(let X=0;X<J.length;X++)Q[X]=J.charCodeAt(X);return Q}function SU(Y){let J="";for(let Q=0;Q<Y.length;Q++)J+=String.fromCharCode(Y[Q]);return btoa(J)}function gv(Y){let J=Y.replace(/-/g,"+").replace(/_/g,"/"),Q="=".repeat((4-J.length%4)%4);return IU(J+Q)}function fv(Y){return SU(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function hv(Y){let J=Y.replace(/^0x/,"");if(J.length%2!==0)throw Error("Invalid hex string length");let Q=new Uint8Array(J.length/2);for(let X=0;X<J.length;X+=2)Q[X/2]=Number.parseInt(J.slice(X,X+2),16);return Q}function mv(Y){return Array.from(Y).map((J)=>J.toString(16).padStart(2,"0")).join("")}class vU{constructor(...Y){}}var _U=(Y,J)=>{Y.name="$ZodError",Object.defineProperty(Y,"_zod",{value:Y._zod,enumerable:!1}),Object.defineProperty(Y,"issues",{value:J,enumerable:!1}),Y.message=JSON.stringify(J,C$,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},Sj=V("$ZodError",_U),f8=V("$ZodError",_U,{Parent:Error});function vj(Y,J=(Q)=>Q.message){let Q={},X=[];for(let q of Y.issues)if(q.path.length>0)Q[q.path[0]]=Q[q.path[0]]||[],Q[q.path[0]].push(J(q));else X.push(J(q));return{formErrors:X,fieldErrors:Q}}function _j(Y,J=(Q)=>Q.message){let Q={_errors:[]},X=(q)=>{for(let G of q.issues)if(G.code==="invalid_union"&&G.errors.length)G.errors.map(($)=>X({issues:$}));else if(G.code==="invalid_key")X({issues:G.issues});else if(G.code==="invalid_element")X({issues:G.issues});else if(G.path.length===0)Q._errors.push(J(G));else{let $=Q,W=0;while(W<G.path.length){let j=G.path[W];if(W!==G.path.length-1)$[j]=$[j]||{_errors:[]};else $[j]=$[j]||{_errors:[]},$[j]._errors.push(J(G));$=$[j],W++}}};return X(Y),Q}function kU(Y,J=(Q)=>Q.message){let Q={errors:[]},X=(q,G=[])=>{var $,W;for(let j of q.issues)if(j.code==="invalid_union"&&j.errors.length)j.errors.map((K)=>X({issues:K},j.path));else if(j.code==="invalid_key")X({issues:j.issues},j.path);else if(j.code==="invalid_element")X({issues:j.issues},j.path);else{let K=[...G,...j.path];if(K.length===0){Q.errors.push(J(j));continue}let z=Q,M=0;while(M<K.length){let N=K[M],O=M===K.length-1;if(typeof N==="string")z.properties??(z.properties={}),($=z.properties)[N]??($[N]={errors:[]}),z=z.properties[N];else z.items??(z.items=[]),(W=z.items)[N]??(W[N]={errors:[]}),z=z.items[N];if(O)z.errors.push(J(j));M++}}};return X(Y),Q}function FU(Y){let J=[],Q=Y.map((X)=>typeof X==="object"?X.key:X);for(let X of Q)if(typeof X==="number")J.push(`[${X}]`);else if(typeof X==="symbol")J.push(`[${JSON.stringify(String(X))}]`);else if(/[^\w$]/.test(X))J.push(`[${JSON.stringify(X)}]`);else{if(J.length)J.push(".");J.push(X)}return J.join("")}function PU(Y){let J=[],Q=[...Y.issues].sort((X,q)=>(X.path??[]).length-(q.path??[]).length);for(let X of Q)if(J.push(`✖ ${X.message}`),X.path?.length)J.push(` → at ${FU(X.path)}`);return J.join(`
36
+ `)}var ZX=(Y)=>(J,Q,X,q)=>{let G=X?Object.assign(X,{async:!1}):{async:!1},$=J._zod.run({value:Q,issues:[]},G);if($ instanceof Promise)throw new UJ;if($.issues.length){let W=new(q?.Err??Y)($.issues.map((j)=>o8(j,G,z8())));throw Ij(W,q?.callee),W}return $.value},M5=ZX(f8),xX=(Y)=>async(J,Q,X,q)=>{let G=X?Object.assign(X,{async:!0}):{async:!0},$=J._zod.run({value:Q,issues:[]},G);if($ instanceof Promise)$=await $;if($.issues.length){let W=new(q?.Err??Y)($.issues.map((j)=>o8(j,G,z8())));throw Ij(W,q?.callee),W}return $.value},N5=xX(f8),gX=(Y)=>(J,Q,X)=>{let q=X?{...X,async:!1}:{async:!1},G=J._zod.run({value:Q,issues:[]},q);if(G instanceof Promise)throw new UJ;return G.issues.length?{success:!1,error:new(Y??Sj)(G.issues.map(($)=>o8($,q,z8())))}:{success:!0,data:G.value}},TU=gX(f8),fX=(Y)=>async(J,Q,X)=>{let q=X?Object.assign(X,{async:!0}):{async:!0},G=J._zod.run({value:Q,issues:[]},q);if(G instanceof Promise)G=await G;return G.issues.length?{success:!1,error:new Y(G.issues.map(($)=>o8($,q,z8())))}:{success:!0,data:G.value}},ZU=fX(f8),kj=(Y)=>(J,Q,X)=>{let q=X?Object.assign(X,{direction:"backward"}):{direction:"backward"};return ZX(Y)(J,Q,q)},yv=kj(f8),Fj=(Y)=>(J,Q,X)=>{return ZX(Y)(J,Q,X)},lv=Fj(f8),Pj=(Y)=>async(J,Q,X)=>{let q=X?Object.assign(X,{direction:"backward"}):{direction:"backward"};return xX(Y)(J,Q,q)},uv=Pj(f8),Tj=(Y)=>async(J,Q,X)=>{return xX(Y)(J,Q,X)},cv=Tj(f8),Zj=(Y)=>(J,Q,X)=>{let q=X?Object.assign(X,{direction:"backward"}):{direction:"backward"};return gX(Y)(J,Q,q)},bv=Zj(f8),xj=(Y)=>(J,Q,X)=>{return gX(Y)(J,Q,X)},pv=xj(f8),gj=(Y)=>async(J,Q,X)=>{let q=X?Object.assign(X,{direction:"backward"}):{direction:"backward"};return fX(Y)(J,Q,q)},ov=gj(f8),fj=(Y)=>async(J,Q,X)=>{return fX(Y)(J,Q,X)},dv=fj(f8),OQ={};XY(OQ,{xid:()=>hU,uuid7:()=>tv,uuid6:()=>iv,uuid4:()=>sv,uuid:()=>dQ,uppercase:()=>zH,unicodeEmail:()=>bU,undefined:()=>jH,ulid:()=>fU,time:()=>JH,string:()=>qH,sha512_hex:()=>B_,sha512_base64url:()=>V_,sha512_base64:()=>R_,sha384_hex:()=>D_,sha384_base64url:()=>H_,sha384_base64:()=>U_,sha256_hex:()=>M_,sha256_base64url:()=>O_,sha256_base64:()=>N_,sha1_hex:()=>j_,sha1_base64url:()=>z_,sha1_base64:()=>K_,rfc5322Email:()=>av,number:()=>mj,null:()=>WH,nanoid:()=>yU,md5_hex:()=>G_,md5_base64url:()=>W_,md5_base64:()=>$_,mac:()=>rU,lowercase:()=>KH,ksuid:()=>mU,ipv6:()=>dU,ipv4:()=>oU,integer:()=>GH,idnEmail:()=>ev,html5Email:()=>nv,hostname:()=>Q_,hex:()=>X_,guid:()=>uU,extendedDuration:()=>rv,emoji:()=>pU,email:()=>cU,e164:()=>nU,duration:()=>lU,domain:()=>q_,datetime:()=>QH,date:()=>eU,cuid2:()=>gU,cuid:()=>xU,cidrv6:()=>iU,cidrv4:()=>sU,browserEmail:()=>Y_,boolean:()=>$H,bigint:()=>XH,base64url:()=>hj,base64:()=>tU});var xU=/^[cC][^\s-]{8,}$/,gU=/^[0-9a-z]+$/,fU=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,hU=/^[0-9a-vA-V]{20}$/,mU=/^[A-Za-z0-9]{27}$/,yU=/^[a-zA-Z0-9_-]{21}$/,lU=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,rv=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,uU=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,dQ=(Y)=>{if(!Y)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${Y}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},sv=dQ(4),iv=dQ(6),tv=dQ(7),cU=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,nv=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,av=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,bU=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,ev=bU,Y_=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,J_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function pU(){return new RegExp(J_,"u")}var oU=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,dU=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,rU=(Y)=>{let J=dY(Y??":");return new RegExp(`^(?:[0-9A-F]{2}${J}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${J}){5}[0-9a-f]{2}$`)},sU=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,iU=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,tU=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,hj=/^[A-Za-z0-9_-]*$/,Q_=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,q_=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,nU=/^\+[1-9]\d{6,14}$/,aU="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",eU=new RegExp(`^${aU}$`);function YH(Y){return typeof Y.precision==="number"?Y.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":Y.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${Y.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function JH(Y){return new RegExp(`^${YH(Y)}$`)}function QH(Y){let J=YH({precision:Y.precision}),Q=["Z"];if(Y.local)Q.push("");if(Y.offset)Q.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let X=`${J}(?:${Q.join("|")})`;return new RegExp(`^${aU}T(?:${X})$`)}var qH=(Y)=>{let J=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${J}$`)},XH=/^-?\d+n?$/,GH=/^-?\d+$/,mj=/^-?\d+(?:\.\d+)?$/,$H=/^(?:true|false)$/i,WH=/^null$/i,jH=/^undefined$/i,KH=/^[^A-Z]*$/,zH=/^[^a-z]*$/,X_=/^[0-9a-fA-F]*$/;function hX(Y,J){return new RegExp(`^[A-Za-z0-9+/]{${Y}}${J}$`)}function mX(Y){return new RegExp(`^[A-Za-z0-9_-]{${Y}}$`)}var G_=/^[0-9a-fA-F]{32}$/,$_=hX(22,"=="),W_=mX(22),j_=/^[0-9a-fA-F]{40}$/,K_=hX(27,"="),z_=mX(27),M_=/^[0-9a-fA-F]{64}$/,N_=hX(43,"="),O_=mX(43),D_=/^[0-9a-fA-F]{96}$/,U_=hX(64,""),H_=mX(64),B_=/^[0-9a-fA-F]{128}$/,R_=hX(86,"=="),V_=mX(86),x0=V("$ZodCheck",(Y,J)=>{var Q;Y._zod??(Y._zod={}),Y._zod.def=J,(Q=Y._zod).onattach??(Q.onattach=[])}),MH={number:"number",bigint:"bigint",object:"date"},yj=V("$ZodCheckLessThan",(Y,J)=>{x0.init(Y,J);let Q=MH[typeof J.value];Y._zod.onattach.push((X)=>{let q=X._zod.bag,G=(J.inclusive?q.maximum:q.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(J.value<G)if(J.inclusive)q.maximum=J.value;else q.exclusiveMaximum=J.value}),Y._zod.check=(X)=>{if(J.inclusive?X.value<=J.value:X.value<J.value)return;X.issues.push({origin:Q,code:"too_big",maximum:typeof J.value==="object"?J.value.getTime():J.value,input:X.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),lj=V("$ZodCheckGreaterThan",(Y,J)=>{x0.init(Y,J);let Q=MH[typeof J.value];Y._zod.onattach.push((X)=>{let q=X._zod.bag,G=(J.inclusive?q.minimum:q.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(J.value>G)if(J.inclusive)q.minimum=J.value;else q.exclusiveMinimum=J.value}),Y._zod.check=(X)=>{if(J.inclusive?X.value>=J.value:X.value>J.value)return;X.issues.push({origin:Q,code:"too_small",minimum:typeof J.value==="object"?J.value.getTime():J.value,input:X.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),NH=V("$ZodCheckMultipleOf",(Y,J)=>{x0.init(Y,J),Y._zod.onattach.push((Q)=>{var X;(X=Q._zod.bag).multipleOf??(X.multipleOf=J.value)}),Y._zod.check=(Q)=>{if(typeof Q.value!==typeof J.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof Q.value==="bigint"?Q.value%J.value===BigInt(0):BU(Q.value,J.value)===0)return;Q.issues.push({origin:typeof Q.value,code:"not_multiple_of",divisor:J.value,input:Q.value,inst:Y,continue:!J.abort})}}),OH=V("$ZodCheckNumberFormat",(Y,J)=>{x0.init(Y,J),J.format=J.format||"float64";let Q=J.format?.includes("int"),X=Q?"int":"number",[q,G]=AU[J.format];Y._zod.onattach.push(($)=>{let W=$._zod.bag;if(W.format=J.format,W.minimum=q,W.maximum=G,Q)W.pattern=GH}),Y._zod.check=($)=>{let W=$.value;if(Q){if(!Number.isInteger(W)){$.issues.push({expected:X,format:J.format,code:"invalid_type",continue:!1,input:W,inst:Y});return}if(!Number.isSafeInteger(W)){if(W>0)$.issues.push({input:W,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:X,inclusive:!0,continue:!J.abort});else $.issues.push({input:W,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:X,inclusive:!0,continue:!J.abort});return}}if(W<q)$.issues.push({origin:"number",input:W,code:"too_small",minimum:q,inclusive:!0,inst:Y,continue:!J.abort});if(W>G)$.issues.push({origin:"number",input:W,code:"too_big",maximum:G,inclusive:!0,inst:Y,continue:!J.abort})}}),DH=V("$ZodCheckBigIntFormat",(Y,J)=>{x0.init(Y,J);let[Q,X]=CU[J.format];Y._zod.onattach.push((q)=>{let G=q._zod.bag;G.format=J.format,G.minimum=Q,G.maximum=X}),Y._zod.check=(q)=>{let G=q.value;if(G<Q)q.issues.push({origin:"bigint",input:G,code:"too_small",minimum:Q,inclusive:!0,inst:Y,continue:!J.abort});if(G>X)q.issues.push({origin:"bigint",input:G,code:"too_big",maximum:X,inclusive:!0,inst:Y,continue:!J.abort})}}),UH=V("$ZodCheckMaxSize",(Y,J)=>{var Q;x0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(X)=>{let q=X.value;return!NQ(q)&&q.size!==void 0}),Y._zod.onattach.push((X)=>{let q=X._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<q)X._zod.bag.maximum=J.maximum}),Y._zod.check=(X)=>{let q=X.value;if(q.size<=J.maximum)return;X.issues.push({origin:i$(q),code:"too_big",maximum:J.maximum,inclusive:!0,input:q,inst:Y,continue:!J.abort})}}),HH=V("$ZodCheckMinSize",(Y,J)=>{var Q;x0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(X)=>{let q=X.value;return!NQ(q)&&q.size!==void 0}),Y._zod.onattach.push((X)=>{let q=X._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>q)X._zod.bag.minimum=J.minimum}),Y._zod.check=(X)=>{let q=X.value;if(q.size>=J.minimum)return;X.issues.push({origin:i$(q),code:"too_small",minimum:J.minimum,inclusive:!0,input:q,inst:Y,continue:!J.abort})}}),BH=V("$ZodCheckSizeEquals",(Y,J)=>{var Q;x0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(X)=>{let q=X.value;return!NQ(q)&&q.size!==void 0}),Y._zod.onattach.push((X)=>{let q=X._zod.bag;q.minimum=J.size,q.maximum=J.size,q.size=J.size}),Y._zod.check=(X)=>{let q=X.value,G=q.size;if(G===J.size)return;let $=G>J.size;X.issues.push({origin:i$(q),...$?{code:"too_big",maximum:J.size}:{code:"too_small",minimum:J.size},inclusive:!0,exact:!0,input:X.value,inst:Y,continue:!J.abort})}}),RH=V("$ZodCheckMaxLength",(Y,J)=>{var Q;x0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(X)=>{let q=X.value;return!NQ(q)&&q.length!==void 0}),Y._zod.onattach.push((X)=>{let q=X._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<q)X._zod.bag.maximum=J.maximum}),Y._zod.check=(X)=>{let q=X.value;if(q.length<=J.maximum)return;let G=t$(q);X.issues.push({origin:G,code:"too_big",maximum:J.maximum,inclusive:!0,input:q,inst:Y,continue:!J.abort})}}),VH=V("$ZodCheckMinLength",(Y,J)=>{var Q;x0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(X)=>{let q=X.value;return!NQ(q)&&q.length!==void 0}),Y._zod.onattach.push((X)=>{let q=X._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>q)X._zod.bag.minimum=J.minimum}),Y._zod.check=(X)=>{let q=X.value;if(q.length>=J.minimum)return;let G=t$(q);X.issues.push({origin:G,code:"too_small",minimum:J.minimum,inclusive:!0,input:q,inst:Y,continue:!J.abort})}}),LH=V("$ZodCheckLengthEquals",(Y,J)=>{var Q;x0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(X)=>{let q=X.value;return!NQ(q)&&q.length!==void 0}),Y._zod.onattach.push((X)=>{let q=X._zod.bag;q.minimum=J.length,q.maximum=J.length,q.length=J.length}),Y._zod.check=(X)=>{let q=X.value,G=q.length;if(G===J.length)return;let $=t$(q),W=G>J.length;X.issues.push({origin:$,...W?{code:"too_big",maximum:J.length}:{code:"too_small",minimum:J.length},inclusive:!0,exact:!0,input:X.value,inst:Y,continue:!J.abort})}}),yX=V("$ZodCheckStringFormat",(Y,J)=>{var Q,X;if(x0.init(Y,J),Y._zod.onattach.push((q)=>{let G=q._zod.bag;if(G.format=J.format,J.pattern)G.patterns??(G.patterns=new Set),G.patterns.add(J.pattern)}),J.pattern)(Q=Y._zod).check??(Q.check=(q)=>{if(J.pattern.lastIndex=0,J.pattern.test(q.value))return;q.issues.push({origin:"string",code:"invalid_format",format:J.format,input:q.value,...J.pattern?{pattern:J.pattern.toString()}:{},inst:Y,continue:!J.abort})});else(X=Y._zod).check??(X.check=()=>{})}),EH=V("$ZodCheckRegex",(Y,J)=>{yX.init(Y,J),Y._zod.check=(Q)=>{if(J.pattern.lastIndex=0,J.pattern.test(Q.value))return;Q.issues.push({origin:"string",code:"invalid_format",format:"regex",input:Q.value,pattern:J.pattern.toString(),inst:Y,continue:!J.abort})}}),wH=V("$ZodCheckLowerCase",(Y,J)=>{J.pattern??(J.pattern=KH),yX.init(Y,J)}),AH=V("$ZodCheckUpperCase",(Y,J)=>{J.pattern??(J.pattern=zH),yX.init(Y,J)}),CH=V("$ZodCheckIncludes",(Y,J)=>{x0.init(Y,J);let Q=dY(J.includes),X=new RegExp(typeof J.position==="number"?`^.{${J.position}}${Q}`:Q);J.pattern=X,Y._zod.onattach.push((q)=>{let G=q._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(X)}),Y._zod.check=(q)=>{if(q.value.includes(J.includes,J.position))return;q.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:J.includes,input:q.value,inst:Y,continue:!J.abort})}}),IH=V("$ZodCheckStartsWith",(Y,J)=>{x0.init(Y,J);let Q=new RegExp(`^${dY(J.prefix)}.*`);J.pattern??(J.pattern=Q),Y._zod.onattach.push((X)=>{let q=X._zod.bag;q.patterns??(q.patterns=new Set),q.patterns.add(Q)}),Y._zod.check=(X)=>{if(X.value.startsWith(J.prefix))return;X.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:J.prefix,input:X.value,inst:Y,continue:!J.abort})}}),SH=V("$ZodCheckEndsWith",(Y,J)=>{x0.init(Y,J);let Q=new RegExp(`.*${dY(J.suffix)}$`);J.pattern??(J.pattern=Q),Y._zod.onattach.push((X)=>{let q=X._zod.bag;q.patterns??(q.patterns=new Set),q.patterns.add(Q)}),Y._zod.check=(X)=>{if(X.value.endsWith(J.suffix))return;X.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:J.suffix,input:X.value,inst:Y,continue:!J.abort})}});function oN(Y,J,Q){if(Y.issues.length)J.issues.push(...qY(Q,Y.issues))}var vH=V("$ZodCheckProperty",(Y,J)=>{x0.init(Y,J),Y._zod.check=(Q)=>{let X=J.schema._zod.run({value:Q.value[J.property],issues:[]},{});if(X instanceof Promise)return X.then((q)=>oN(q,Q,J.property));oN(X,Q,J.property);return}}),_H=V("$ZodCheckMimeType",(Y,J)=>{x0.init(Y,J);let Q=new Set(J.mime);Y._zod.onattach.push((X)=>{X._zod.bag.mime=J.mime}),Y._zod.check=(X)=>{if(Q.has(X.value.type))return;X.issues.push({code:"invalid_value",values:J.mime,input:X.value.type,inst:Y,continue:!J.abort})}}),kH=V("$ZodCheckOverwrite",(Y,J)=>{x0.init(Y,J),Y._zod.check=(Q)=>{Q.value=J.tx(Q.value)}});class uj{constructor(Y=[]){if(this.content=[],this.indent=0,this)this.args=Y}indented(Y){this.indent+=1,Y(this),this.indent-=1}write(Y){if(typeof Y==="function"){Y(this,{execution:"sync"}),Y(this,{execution:"async"});return}let J=Y.split(`
37
+ `).filter((q)=>q),Q=Math.min(...J.map((q)=>q.length-q.trimStart().length)),X=J.map((q)=>q.slice(Q)).map((q)=>" ".repeat(this.indent*2)+q);for(let q of X)this.content.push(q)}compile(){let Y=Function,J=this?.args,Q=[...(this?.content??[""]).map((X)=>` ${X}`)];return new Y(...J,Q.join(`
38
+ `))}}var FH={major:4,minor:3,patch:6},G0=V("$ZodType",(Y,J)=>{var Q;Y??(Y={}),Y._zod.def=J,Y._zod.bag=Y._zod.bag||{},Y._zod.version=FH;let X=[...Y._zod.def.checks??[]];if(Y._zod.traits.has("$ZodCheck"))X.unshift(Y);for(let q of X)for(let G of q._zod.onattach)G(Y);if(X.length===0)(Q=Y._zod).deferred??(Q.deferred=[]),Y._zod.deferred?.push(()=>{Y._zod.run=Y._zod.parse});else{let q=($,W,j)=>{let K=rJ($),z;for(let M of W){if(M._zod.def.when){if(!M._zod.def.when($))continue}else if(K)continue;let N=$.issues.length,O=M._zod.check($);if(O instanceof Promise&&j?.async===!1)throw new UJ;if(z||O instanceof Promise)z=(z??Promise.resolve()).then(async()=>{if(await O,$.issues.length===N)return;if(!K)K=rJ($,N)});else{if($.issues.length===N)continue;if(!K)K=rJ($,N)}}if(z)return z.then(()=>{return $});return $},G=($,W,j)=>{if(rJ($))return $.aborted=!0,$;let K=q(W,X,j);if(K instanceof Promise){if(j.async===!1)throw new UJ;return K.then((z)=>Y._zod.parse(z,j))}return Y._zod.parse(K,j)};Y._zod.run=($,W)=>{if(W.skipChecks)return Y._zod.parse($,W);if(W.direction==="backward"){let K=Y._zod.parse({value:$.value,issues:[]},{...W,skipChecks:!0});if(K instanceof Promise)return K.then((z)=>{return G(z,$,W)});return G(K,$,W)}let j=Y._zod.parse($,W);if(j instanceof Promise){if(W.async===!1)throw new UJ;return j.then((K)=>q(K,X,W))}return q(j,X,W)}}M0(Y,"~standard",()=>({validate:(q)=>{try{let G=TU(Y,q);return G.success?{value:G.data}:{issues:G.error?.issues}}catch(G){return ZU(Y,q).then(($)=>$.success?{value:$.data}:{issues:$.error?.issues})}},vendor:"zod",version:1}))}),lX=V("$ZodString",(Y,J)=>{G0.init(Y,J),Y._zod.pattern=[...Y?._zod.bag?.patterns??[]].pop()??qH(Y._zod.bag),Y._zod.parse=(Q,X)=>{if(J.coerce)try{Q.value=String(Q.value)}catch(q){}if(typeof Q.value==="string")return Q;return Q.issues.push({expected:"string",code:"invalid_type",input:Q.value,inst:Y}),Q}}),S0=V("$ZodStringFormat",(Y,J)=>{yX.init(Y,J),lX.init(Y,J)}),PH=V("$ZodGUID",(Y,J)=>{J.pattern??(J.pattern=uU),S0.init(Y,J)}),TH=V("$ZodUUID",(Y,J)=>{if(J.version){let Q={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[J.version];if(Q===void 0)throw Error(`Invalid UUID version: "${J.version}"`);J.pattern??(J.pattern=dQ(Q))}else J.pattern??(J.pattern=dQ());S0.init(Y,J)}),ZH=V("$ZodEmail",(Y,J)=>{J.pattern??(J.pattern=cU),S0.init(Y,J)}),xH=V("$ZodURL",(Y,J)=>{S0.init(Y,J),Y._zod.check=(Q)=>{try{let X=Q.value.trim(),q=new URL(X);if(J.hostname){if(J.hostname.lastIndex=0,!J.hostname.test(q.hostname))Q.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:J.hostname.source,input:Q.value,inst:Y,continue:!J.abort})}if(J.protocol){if(J.protocol.lastIndex=0,!J.protocol.test(q.protocol.endsWith(":")?q.protocol.slice(0,-1):q.protocol))Q.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:J.protocol.source,input:Q.value,inst:Y,continue:!J.abort})}if(J.normalize)Q.value=q.href;else Q.value=X;return}catch(X){Q.issues.push({code:"invalid_format",format:"url",input:Q.value,inst:Y,continue:!J.abort})}}}),gH=V("$ZodEmoji",(Y,J)=>{J.pattern??(J.pattern=pU()),S0.init(Y,J)}),fH=V("$ZodNanoID",(Y,J)=>{J.pattern??(J.pattern=yU),S0.init(Y,J)}),hH=V("$ZodCUID",(Y,J)=>{J.pattern??(J.pattern=xU),S0.init(Y,J)}),mH=V("$ZodCUID2",(Y,J)=>{J.pattern??(J.pattern=gU),S0.init(Y,J)}),yH=V("$ZodULID",(Y,J)=>{J.pattern??(J.pattern=fU),S0.init(Y,J)}),lH=V("$ZodXID",(Y,J)=>{J.pattern??(J.pattern=hU),S0.init(Y,J)}),uH=V("$ZodKSUID",(Y,J)=>{J.pattern??(J.pattern=mU),S0.init(Y,J)}),cH=V("$ZodISODateTime",(Y,J)=>{J.pattern??(J.pattern=QH(J)),S0.init(Y,J)}),bH=V("$ZodISODate",(Y,J)=>{J.pattern??(J.pattern=eU),S0.init(Y,J)}),pH=V("$ZodISOTime",(Y,J)=>{J.pattern??(J.pattern=JH(J)),S0.init(Y,J)}),oH=V("$ZodISODuration",(Y,J)=>{J.pattern??(J.pattern=lU),S0.init(Y,J)}),dH=V("$ZodIPv4",(Y,J)=>{J.pattern??(J.pattern=oU),S0.init(Y,J),Y._zod.bag.format="ipv4"}),rH=V("$ZodIPv6",(Y,J)=>{J.pattern??(J.pattern=dU),S0.init(Y,J),Y._zod.bag.format="ipv6",Y._zod.check=(Q)=>{try{new URL(`http://[${Q.value}]`)}catch{Q.issues.push({code:"invalid_format",format:"ipv6",input:Q.value,inst:Y,continue:!J.abort})}}}),sH=V("$ZodMAC",(Y,J)=>{J.pattern??(J.pattern=rU(J.delimiter)),S0.init(Y,J),Y._zod.bag.format="mac"}),iH=V("$ZodCIDRv4",(Y,J)=>{J.pattern??(J.pattern=sU),S0.init(Y,J)}),tH=V("$ZodCIDRv6",(Y,J)=>{J.pattern??(J.pattern=iU),S0.init(Y,J),Y._zod.check=(Q)=>{let X=Q.value.split("/");try{if(X.length!==2)throw Error();let[q,G]=X;if(!G)throw Error();let $=Number(G);if(`${$}`!==G)throw Error();if($<0||$>128)throw Error();new URL(`http://[${q}]`)}catch{Q.issues.push({code:"invalid_format",format:"cidrv6",input:Q.value,inst:Y,continue:!J.abort})}}});function cj(Y){if(Y==="")return!0;if(Y.length%4!==0)return!1;try{return atob(Y),!0}catch{return!1}}var nH=V("$ZodBase64",(Y,J)=>{J.pattern??(J.pattern=tU),S0.init(Y,J),Y._zod.bag.contentEncoding="base64",Y._zod.check=(Q)=>{if(cj(Q.value))return;Q.issues.push({code:"invalid_format",format:"base64",input:Q.value,inst:Y,continue:!J.abort})}});function aH(Y){if(!hj.test(Y))return!1;let J=Y.replace(/[-_]/g,(X)=>X==="-"?"+":"/"),Q=J.padEnd(Math.ceil(J.length/4)*4,"=");return cj(Q)}var eH=V("$ZodBase64URL",(Y,J)=>{J.pattern??(J.pattern=hj),S0.init(Y,J),Y._zod.bag.contentEncoding="base64url",Y._zod.check=(Q)=>{if(aH(Q.value))return;Q.issues.push({code:"invalid_format",format:"base64url",input:Q.value,inst:Y,continue:!J.abort})}}),YB=V("$ZodE164",(Y,J)=>{J.pattern??(J.pattern=nU),S0.init(Y,J)});function JB(Y,J=null){try{let Q=Y.split(".");if(Q.length!==3)return!1;let[X]=Q;if(!X)return!1;let q=JSON.parse(atob(X));if("typ"in q&&q?.typ!=="JWT")return!1;if(!q.alg)return!1;if(J&&(!("alg"in q)||q.alg!==J))return!1;return!0}catch{return!1}}var QB=V("$ZodJWT",(Y,J)=>{S0.init(Y,J),Y._zod.check=(Q)=>{if(JB(Q.value,J.alg))return;Q.issues.push({code:"invalid_format",format:"jwt",input:Q.value,inst:Y,continue:!J.abort})}}),qB=V("$ZodCustomStringFormat",(Y,J)=>{S0.init(Y,J),Y._zod.check=(Q)=>{if(J.fn(Q.value))return;Q.issues.push({code:"invalid_format",format:J.format,input:Q.value,inst:Y,continue:!J.abort})}}),bj=V("$ZodNumber",(Y,J)=>{G0.init(Y,J),Y._zod.pattern=Y._zod.bag.pattern??mj,Y._zod.parse=(Q,X)=>{if(J.coerce)try{Q.value=Number(Q.value)}catch($){}let q=Q.value;if(typeof q==="number"&&!Number.isNaN(q)&&Number.isFinite(q))return Q;let G=typeof q==="number"?Number.isNaN(q)?"NaN":!Number.isFinite(q)?"Infinity":void 0:void 0;return Q.issues.push({expected:"number",code:"invalid_type",input:q,inst:Y,...G?{received:G}:{}}),Q}}),XB=V("$ZodNumberFormat",(Y,J)=>{OH.init(Y,J),bj.init(Y,J)}),pj=V("$ZodBoolean",(Y,J)=>{G0.init(Y,J),Y._zod.pattern=$H,Y._zod.parse=(Q,X)=>{if(J.coerce)try{Q.value=Boolean(Q.value)}catch(G){}let q=Q.value;if(typeof q==="boolean")return Q;return Q.issues.push({expected:"boolean",code:"invalid_type",input:q,inst:Y}),Q}}),oj=V("$ZodBigInt",(Y,J)=>{G0.init(Y,J),Y._zod.pattern=XH,Y._zod.parse=(Q,X)=>{if(J.coerce)try{Q.value=BigInt(Q.value)}catch(q){}if(typeof Q.value==="bigint")return Q;return Q.issues.push({expected:"bigint",code:"invalid_type",input:Q.value,inst:Y}),Q}}),GB=V("$ZodBigIntFormat",(Y,J)=>{DH.init(Y,J),oj.init(Y,J)}),$B=V("$ZodSymbol",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(typeof q==="symbol")return Q;return Q.issues.push({expected:"symbol",code:"invalid_type",input:q,inst:Y}),Q}}),WB=V("$ZodUndefined",(Y,J)=>{G0.init(Y,J),Y._zod.pattern=jH,Y._zod.values=new Set([void 0]),Y._zod.optin="optional",Y._zod.optout="optional",Y._zod.parse=(Q,X)=>{let q=Q.value;if(typeof q>"u")return Q;return Q.issues.push({expected:"undefined",code:"invalid_type",input:q,inst:Y}),Q}}),jB=V("$ZodNull",(Y,J)=>{G0.init(Y,J),Y._zod.pattern=WH,Y._zod.values=new Set([null]),Y._zod.parse=(Q,X)=>{let q=Q.value;if(q===null)return Q;return Q.issues.push({expected:"null",code:"invalid_type",input:q,inst:Y}),Q}}),KB=V("$ZodAny",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q)=>Q}),zB=V("$ZodUnknown",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q)=>Q}),MB=V("$ZodNever",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{return Q.issues.push({expected:"never",code:"invalid_type",input:Q.value,inst:Y}),Q}}),NB=V("$ZodVoid",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(typeof q>"u")return Q;return Q.issues.push({expected:"void",code:"invalid_type",input:q,inst:Y}),Q}}),OB=V("$ZodDate",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{if(J.coerce)try{Q.value=new Date(Q.value)}catch($){}let q=Q.value,G=q instanceof Date;if(G&&!Number.isNaN(q.getTime()))return Q;return Q.issues.push({expected:"date",code:"invalid_type",input:q,...G?{received:"Invalid Date"}:{},inst:Y}),Q}});function dN(Y,J,Q){if(Y.issues.length)J.issues.push(...qY(Q,Y.issues));J.value[Q]=Y.value}var DB=V("$ZodArray",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(!Array.isArray(q))return Q.issues.push({expected:"array",code:"invalid_type",input:q,inst:Y}),Q;Q.value=Array(q.length);let G=[];for(let $=0;$<q.length;$++){let W=q[$],j=J.element._zod.run({value:W,issues:[]},X);if(j instanceof Promise)G.push(j.then((K)=>dN(K,Q,$)));else dN(j,Q,$)}if(G.length)return Promise.all(G).then(()=>Q);return Q}});function v$(Y,J,Q,X,q){if(Y.issues.length){if(q&&!(Q in X))return;J.issues.push(...qY(Q,Y.issues))}if(Y.value===void 0){if(Q in X)J.value[Q]=void 0}else J.value[Q]=Y.value}function UB(Y){let J=Object.keys(Y.shape);for(let X of J)if(!Y.shape?.[X]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${X}": expected a Zod schema`);let Q=wU(Y.shape);return{...Y,keys:J,keySet:new Set(J),numKeys:J.length,optionalKeys:new Set(Q)}}function HB(Y,J,Q,X,q,G){let $=[],W=q.keySet,j=q.catchall._zod,K=j.def.type,z=j.optout==="optional";for(let M in J){if(W.has(M))continue;if(K==="never"){$.push(M);continue}let N=j.run({value:J[M],issues:[]},X);if(N instanceof Promise)Y.push(N.then((O)=>v$(O,Q,M,J,z)));else v$(N,Q,M,J,z)}if($.length)Q.issues.push({code:"unrecognized_keys",keys:$,input:J,inst:G});if(!Y.length)return Q;return Promise.all(Y).then(()=>{return Q})}var BB=V("$ZodObject",(Y,J)=>{if(G0.init(Y,J),!Object.getOwnPropertyDescriptor(J,"shape")?.get){let $=J.shape;Object.defineProperty(J,"shape",{get:()=>{let W={...$};return Object.defineProperty(J,"shape",{value:W}),W}})}let Q=TX(()=>UB(J));M0(Y._zod,"propValues",()=>{let $=J.shape,W={};for(let j in $){let K=$[j]._zod;if(K.values){W[j]??(W[j]=new Set);for(let z of K.values)W[j].add(z)}}return W});let X=oQ,q=J.catchall,G;Y._zod.parse=($,W)=>{G??(G=Q.value);let j=$.value;if(!X(j))return $.issues.push({expected:"object",code:"invalid_type",input:j,inst:Y}),$;$.value={};let K=[],z=G.shape;for(let M of G.keys){let N=z[M],O=N._zod.optout==="optional",D=N._zod.run({value:j[M],issues:[]},W);if(D instanceof Promise)K.push(D.then((U)=>v$(U,$,M,j,O)));else v$(D,$,M,j,O)}if(!q)return K.length?Promise.all(K).then(()=>$):$;return HB(K,j,$,W,Q.value,Y)}}),RB=V("$ZodObjectJIT",(Y,J)=>{BB.init(Y,J);let Q=Y._zod.parse,X=TX(()=>UB(J)),q=(M)=>{let N=new uj(["shape","payload","ctx"]),O=X.value,D=(v)=>{let R=z5(v);return`shape[${R}]._zod.run({ value: input[${R}], issues: [] }, ctx)`};N.write("const input = payload.value;");let U=Object.create(null),A=0;for(let v of O.keys)U[v]=`key_${A++}`;N.write("const newResult = {};");for(let v of O.keys){let R=U[v],E=z5(v),C=M[v]?._zod?.optout==="optional";if(N.write(`const ${R} = ${D(v)};`),C)N.write(`
39
+ if (${R}.issues.length) {
40
+ if (${E} in input) {
41
+ payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
42
+ ...iss,
43
+ path: iss.path ? [${E}, ...iss.path] : [${E}]
44
+ })));
45
+ }
46
+ }
47
+
48
+ if (${R}.value === undefined) {
49
+ if (${E} in input) {
50
+ newResult[${E}] = undefined;
51
+ }
52
+ } else {
53
+ newResult[${E}] = ${R}.value;
54
+ }
55
+
56
+ `);else N.write(`
57
+ if (${R}.issues.length) {
58
+ payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
59
+ ...iss,
60
+ path: iss.path ? [${E}, ...iss.path] : [${E}]
61
+ })));
62
+ }
63
+
64
+ if (${R}.value === undefined) {
65
+ if (${E} in input) {
66
+ newResult[${E}] = undefined;
67
+ }
68
+ } else {
69
+ newResult[${E}] = ${R}.value;
70
+ }
71
+
72
+ `)}N.write("payload.value = newResult;"),N.write("return payload;");let w=N.compile();return(v,R)=>w(M,v,R)},G,$=oQ,W=!A$.jitless,j=W&&VU.value,K=J.catchall,z;Y._zod.parse=(M,N)=>{z??(z=X.value);let O=M.value;if(!$(O))return M.issues.push({expected:"object",code:"invalid_type",input:O,inst:Y}),M;if(W&&j&&N?.async===!1&&N.jitless!==!0){if(!G)G=q(J.shape);if(M=G(M,N),!K)return M;return HB([],O,M,N,z,Y)}return Q(M,N)}});function rN(Y,J,Q,X){for(let G of Y)if(G.issues.length===0)return J.value=G.value,J;let q=Y.filter((G)=>!rJ(G));if(q.length===1)return J.value=q[0].value,q[0];return J.issues.push({code:"invalid_union",input:J.value,inst:Q,errors:Y.map((G)=>G.issues.map(($)=>o8($,X,z8())))}),J}var n$=V("$ZodUnion",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"optin",()=>J.options.some((q)=>q._zod.optin==="optional")?"optional":void 0),M0(Y._zod,"optout",()=>J.options.some((q)=>q._zod.optout==="optional")?"optional":void 0),M0(Y._zod,"values",()=>{if(J.options.every((q)=>q._zod.values))return new Set(J.options.flatMap((q)=>Array.from(q._zod.values)));return}),M0(Y._zod,"pattern",()=>{if(J.options.every((q)=>q._zod.pattern)){let q=J.options.map((G)=>G._zod.pattern);return new RegExp(`^(${q.map((G)=>s$(G.source)).join("|")})$`)}return});let Q=J.options.length===1,X=J.options[0]._zod.run;Y._zod.parse=(q,G)=>{if(Q)return X(q,G);let $=!1,W=[];for(let j of J.options){let K=j._zod.run({value:q.value,issues:[]},G);if(K instanceof Promise)W.push(K),$=!0;else{if(K.issues.length===0)return K;W.push(K)}}if(!$)return rN(W,q,Y,G);return Promise.all(W).then((j)=>{return rN(j,q,Y,G)})}});function sN(Y,J,Q,X){let q=Y.filter((G)=>G.issues.length===0);if(q.length===1)return J.value=q[0].value,J;if(q.length===0)J.issues.push({code:"invalid_union",input:J.value,inst:Q,errors:Y.map((G)=>G.issues.map(($)=>o8($,X,z8())))});else J.issues.push({code:"invalid_union",input:J.value,inst:Q,errors:[],inclusive:!1});return J}var VB=V("$ZodXor",(Y,J)=>{n$.init(Y,J),J.inclusive=!1;let Q=J.options.length===1,X=J.options[0]._zod.run;Y._zod.parse=(q,G)=>{if(Q)return X(q,G);let $=!1,W=[];for(let j of J.options){let K=j._zod.run({value:q.value,issues:[]},G);if(K instanceof Promise)W.push(K),$=!0;else W.push(K)}if(!$)return sN(W,q,Y,G);return Promise.all(W).then((j)=>{return sN(j,q,Y,G)})}}),LB=V("$ZodDiscriminatedUnion",(Y,J)=>{J.inclusive=!1,n$.init(Y,J);let Q=Y._zod.parse;M0(Y._zod,"propValues",()=>{let q={};for(let G of J.options){let $=G._zod.propValues;if(!$||Object.keys($).length===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf(G)}"`);for(let[W,j]of Object.entries($)){if(!q[W])q[W]=new Set;for(let K of j)q[W].add(K)}}return q});let X=TX(()=>{let q=J.options,G=new Map;for(let $ of q){let W=$._zod.propValues?.[J.discriminator];if(!W||W.size===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf($)}"`);for(let j of W){if(G.has(j))throw Error(`Duplicate discriminator value "${String(j)}"`);G.set(j,$)}}return G});Y._zod.parse=(q,G)=>{let $=q.value;if(!oQ($))return q.issues.push({code:"invalid_type",expected:"object",input:$,inst:Y}),q;let W=X.value.get($?.[J.discriminator]);if(W)return W._zod.run(q,G);if(J.unionFallback)return Q(q,G);return q.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:J.discriminator,input:$,path:[J.discriminator],inst:Y}),q}}),EB=V("$ZodIntersection",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value,G=J.left._zod.run({value:q,issues:[]},X),$=J.right._zod.run({value:q,issues:[]},X);if(G instanceof Promise||$ instanceof Promise)return Promise.all([G,$]).then(([W,j])=>{return iN(Q,W,j)});return iN(Q,G,$)}});function O5(Y,J){if(Y===J)return{valid:!0,data:Y};if(Y instanceof Date&&J instanceof Date&&+Y===+J)return{valid:!0,data:Y};if(qQ(Y)&&qQ(J)){let Q=Object.keys(J),X=Object.keys(Y).filter((G)=>Q.indexOf(G)!==-1),q={...Y,...J};for(let G of X){let $=O5(Y[G],J[G]);if(!$.valid)return{valid:!1,mergeErrorPath:[G,...$.mergeErrorPath]};q[G]=$.data}return{valid:!0,data:q}}if(Array.isArray(Y)&&Array.isArray(J)){if(Y.length!==J.length)return{valid:!1,mergeErrorPath:[]};let Q=[];for(let X=0;X<Y.length;X++){let q=Y[X],G=J[X],$=O5(q,G);if(!$.valid)return{valid:!1,mergeErrorPath:[X,...$.mergeErrorPath]};Q.push($.data)}return{valid:!0,data:Q}}return{valid:!1,mergeErrorPath:[]}}function iN(Y,J,Q){let X=new Map,q;for(let W of J.issues)if(W.code==="unrecognized_keys"){q??(q=W);for(let j of W.keys){if(!X.has(j))X.set(j,{});X.get(j).l=!0}}else Y.issues.push(W);for(let W of Q.issues)if(W.code==="unrecognized_keys")for(let j of W.keys){if(!X.has(j))X.set(j,{});X.get(j).r=!0}else Y.issues.push(W);let G=[...X].filter(([,W])=>W.l&&W.r).map(([W])=>W);if(G.length&&q)Y.issues.push({...q,keys:G});if(rJ(Y))return Y;let $=O5(J.value,Q.value);if(!$.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify($.mergeErrorPath)}`);return Y.value=$.data,Y}var dj=V("$ZodTuple",(Y,J)=>{G0.init(Y,J);let Q=J.items;Y._zod.parse=(X,q)=>{let G=X.value;if(!Array.isArray(G))return X.issues.push({input:G,inst:Y,expected:"tuple",code:"invalid_type"}),X;X.value=[];let $=[],W=[...Q].reverse().findIndex((z)=>z._zod.optin!=="optional"),j=W===-1?0:Q.length-W;if(!J.rest){let z=G.length>Q.length,M=G.length<j-1;if(z||M)return X.issues.push({...z?{code:"too_big",maximum:Q.length,inclusive:!0}:{code:"too_small",minimum:Q.length},input:G,inst:Y,origin:"array"}),X}let K=-1;for(let z of Q){if(K++,K>=G.length){if(K>=j)continue}let M=z._zod.run({value:G[K],issues:[]},q);if(M instanceof Promise)$.push(M.then((N)=>cG(N,X,K)));else cG(M,X,K)}if(J.rest){let z=G.slice(Q.length);for(let M of z){K++;let N=J.rest._zod.run({value:M,issues:[]},q);if(N instanceof Promise)$.push(N.then((O)=>cG(O,X,K)));else cG(N,X,K)}}if($.length)return Promise.all($).then(()=>X);return X}});function cG(Y,J,Q){if(Y.issues.length)J.issues.push(...qY(Q,Y.issues));J.value[Q]=Y.value}var wB=V("$ZodRecord",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(!qQ(q))return Q.issues.push({expected:"record",code:"invalid_type",input:q,inst:Y}),Q;let G=[],$=J.keyType._zod.values;if($){Q.value={};let W=new Set;for(let K of $)if(typeof K==="string"||typeof K==="number"||typeof K==="symbol"){W.add(typeof K==="number"?K.toString():K);let z=J.valueType._zod.run({value:q[K],issues:[]},X);if(z instanceof Promise)G.push(z.then((M)=>{if(M.issues.length)Q.issues.push(...qY(K,M.issues));Q.value[K]=M.value}));else{if(z.issues.length)Q.issues.push(...qY(K,z.issues));Q.value[K]=z.value}}let j;for(let K in q)if(!W.has(K))j=j??[],j.push(K);if(j&&j.length>0)Q.issues.push({code:"unrecognized_keys",input:q,inst:Y,keys:j})}else{Q.value={};for(let W of Reflect.ownKeys(q)){if(W==="__proto__")continue;let j=J.keyType._zod.run({value:W,issues:[]},X);if(j instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof W==="string"&&mj.test(W)&&j.issues.length){let z=J.keyType._zod.run({value:Number(W),issues:[]},X);if(z instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(z.issues.length===0)j=z}if(j.issues.length){if(J.mode==="loose")Q.value[W]=q[W];else Q.issues.push({code:"invalid_key",origin:"record",issues:j.issues.map((z)=>o8(z,X,z8())),input:W,path:[W],inst:Y});continue}let K=J.valueType._zod.run({value:q[W],issues:[]},X);if(K instanceof Promise)G.push(K.then((z)=>{if(z.issues.length)Q.issues.push(...qY(W,z.issues));Q.value[j.value]=z.value}));else{if(K.issues.length)Q.issues.push(...qY(W,K.issues));Q.value[j.value]=K.value}}}if(G.length)return Promise.all(G).then(()=>Q);return Q}}),AB=V("$ZodMap",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(!(q instanceof Map))return Q.issues.push({expected:"map",code:"invalid_type",input:q,inst:Y}),Q;let G=[];Q.value=new Map;for(let[$,W]of q){let j=J.keyType._zod.run({value:$,issues:[]},X),K=J.valueType._zod.run({value:W,issues:[]},X);if(j instanceof Promise||K instanceof Promise)G.push(Promise.all([j,K]).then(([z,M])=>{tN(z,M,Q,$,q,Y,X)}));else tN(j,K,Q,$,q,Y,X)}if(G.length)return Promise.all(G).then(()=>Q);return Q}});function tN(Y,J,Q,X,q,G,$){if(Y.issues.length)if(I$.has(typeof X))Q.issues.push(...qY(X,Y.issues));else Q.issues.push({code:"invalid_key",origin:"map",input:q,inst:G,issues:Y.issues.map((W)=>o8(W,$,z8()))});if(J.issues.length)if(I$.has(typeof X))Q.issues.push(...qY(X,J.issues));else Q.issues.push({origin:"map",code:"invalid_element",input:q,inst:G,key:X,issues:J.issues.map((W)=>o8(W,$,z8()))});Q.value.set(Y.value,J.value)}var CB=V("$ZodSet",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(!(q instanceof Set))return Q.issues.push({input:q,inst:Y,expected:"set",code:"invalid_type"}),Q;let G=[];Q.value=new Set;for(let $ of q){let W=J.valueType._zod.run({value:$,issues:[]},X);if(W instanceof Promise)G.push(W.then((j)=>nN(j,Q)));else nN(W,Q)}if(G.length)return Promise.all(G).then(()=>Q);return Q}});function nN(Y,J){if(Y.issues.length)J.issues.push(...Y.issues);J.value.add(Y.value)}var IB=V("$ZodEnum",(Y,J)=>{G0.init(Y,J);let Q=Cj(J.entries),X=new Set(Q);Y._zod.values=X,Y._zod.pattern=new RegExp(`^(${Q.filter((q)=>I$.has(typeof q)).map((q)=>typeof q==="string"?dY(q):q.toString()).join("|")})$`),Y._zod.parse=(q,G)=>{let $=q.value;if(X.has($))return q;return q.issues.push({code:"invalid_value",values:Q,input:$,inst:Y}),q}}),SB=V("$ZodLiteral",(Y,J)=>{if(G0.init(Y,J),J.values.length===0)throw Error("Cannot create literal schema with no valid values");let Q=new Set(J.values);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${J.values.map((X)=>typeof X==="string"?dY(X):X?dY(X.toString()):String(X)).join("|")})$`),Y._zod.parse=(X,q)=>{let G=X.value;if(Q.has(G))return X;return X.issues.push({code:"invalid_value",values:J.values,input:G,inst:Y}),X}}),vB=V("$ZodFile",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{let q=Q.value;if(q instanceof File)return Q;return Q.issues.push({expected:"file",code:"invalid_type",input:q,inst:Y}),Q}}),_B=V("$ZodTransform",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")throw new PX(Y.constructor.name);let q=J.transform(Q.value,Q);if(X.async)return(q instanceof Promise?q:Promise.resolve(q)).then((G)=>{return Q.value=G,Q});if(q instanceof Promise)throw new UJ;return Q.value=q,Q}});function aN(Y,J){if(Y.issues.length&&J===void 0)return{issues:[],value:void 0};return Y}var rj=V("$ZodOptional",(Y,J)=>{G0.init(Y,J),Y._zod.optin="optional",Y._zod.optout="optional",M0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,void 0]):void 0}),M0(Y._zod,"pattern",()=>{let Q=J.innerType._zod.pattern;return Q?new RegExp(`^(${s$(Q.source)})?$`):void 0}),Y._zod.parse=(Q,X)=>{if(J.innerType._zod.optin==="optional"){let q=J.innerType._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>aN(G,Q.value));return aN(q,Q.value)}if(Q.value===void 0)return Q;return J.innerType._zod.run(Q,X)}}),kB=V("$ZodExactOptional",(Y,J)=>{rj.init(Y,J),M0(Y._zod,"values",()=>J.innerType._zod.values),M0(Y._zod,"pattern",()=>J.innerType._zod.pattern),Y._zod.parse=(Q,X)=>{return J.innerType._zod.run(Q,X)}}),FB=V("$ZodNullable",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"optin",()=>J.innerType._zod.optin),M0(Y._zod,"optout",()=>J.innerType._zod.optout),M0(Y._zod,"pattern",()=>{let Q=J.innerType._zod.pattern;return Q?new RegExp(`^(${s$(Q.source)}|null)$`):void 0}),M0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,null]):void 0}),Y._zod.parse=(Q,X)=>{if(Q.value===null)return Q;return J.innerType._zod.run(Q,X)}}),PB=V("$ZodDefault",(Y,J)=>{G0.init(Y,J),Y._zod.optin="optional",M0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")return J.innerType._zod.run(Q,X);if(Q.value===void 0)return Q.value=J.defaultValue,Q;let q=J.innerType._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>eN(G,J));return eN(q,J)}});function eN(Y,J){if(Y.value===void 0)Y.value=J.defaultValue;return Y}var TB=V("$ZodPrefault",(Y,J)=>{G0.init(Y,J),Y._zod.optin="optional",M0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")return J.innerType._zod.run(Q,X);if(Q.value===void 0)Q.value=J.defaultValue;return J.innerType._zod.run(Q,X)}}),ZB=V("$ZodNonOptional",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"values",()=>{let Q=J.innerType._zod.values;return Q?new Set([...Q].filter((X)=>X!==void 0)):void 0}),Y._zod.parse=(Q,X)=>{let q=J.innerType._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>YO(G,Y));return YO(q,Y)}});function YO(Y,J){if(!Y.issues.length&&Y.value===void 0)Y.issues.push({code:"invalid_type",expected:"nonoptional",input:Y.value,inst:J});return Y}var xB=V("$ZodSuccess",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")throw new PX("ZodSuccess");let q=J.innerType._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>{return Q.value=G.issues.length===0,Q});return Q.value=q.issues.length===0,Q}}),gB=V("$ZodCatch",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"optin",()=>J.innerType._zod.optin),M0(Y._zod,"optout",()=>J.innerType._zod.optout),M0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")return J.innerType._zod.run(Q,X);let q=J.innerType._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>{if(Q.value=G.value,G.issues.length)Q.value=J.catchValue({...Q,error:{issues:G.issues.map(($)=>o8($,X,z8()))},input:Q.value}),Q.issues=[];return Q});if(Q.value=q.value,q.issues.length)Q.value=J.catchValue({...Q,error:{issues:q.issues.map((G)=>o8(G,X,z8()))},input:Q.value}),Q.issues=[];return Q}}),fB=V("$ZodNaN",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{if(typeof Q.value!=="number"||!Number.isNaN(Q.value))return Q.issues.push({input:Q.value,inst:Y,expected:"nan",code:"invalid_type"}),Q;return Q}}),hB=V("$ZodPipe",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"values",()=>J.in._zod.values),M0(Y._zod,"optin",()=>J.in._zod.optin),M0(Y._zod,"optout",()=>J.out._zod.optout),M0(Y._zod,"propValues",()=>J.in._zod.propValues),Y._zod.parse=(Q,X)=>{if(X.direction==="backward"){let G=J.out._zod.run(Q,X);if(G instanceof Promise)return G.then(($)=>bG($,J.in,X));return bG(G,J.in,X)}let q=J.in._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>bG(G,J.out,X));return bG(q,J.out,X)}});function bG(Y,J,Q){if(Y.issues.length)return Y.aborted=!0,Y;return J._zod.run({value:Y.value,issues:Y.issues},Q)}var sj=V("$ZodCodec",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"values",()=>J.in._zod.values),M0(Y._zod,"optin",()=>J.in._zod.optin),M0(Y._zod,"optout",()=>J.out._zod.optout),M0(Y._zod,"propValues",()=>J.in._zod.propValues),Y._zod.parse=(Q,X)=>{if((X.direction||"forward")==="forward"){let q=J.in._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>pG(G,J,X));return pG(q,J,X)}else{let q=J.out._zod.run(Q,X);if(q instanceof Promise)return q.then((G)=>pG(G,J,X));return pG(q,J,X)}}});function pG(Y,J,Q){if(Y.issues.length)return Y.aborted=!0,Y;if((Q.direction||"forward")==="forward"){let X=J.transform(Y.value,Y);if(X instanceof Promise)return X.then((q)=>oG(Y,q,J.out,Q));return oG(Y,X,J.out,Q)}else{let X=J.reverseTransform(Y.value,Y);if(X instanceof Promise)return X.then((q)=>oG(Y,q,J.in,Q));return oG(Y,X,J.in,Q)}}function oG(Y,J,Q,X){if(Y.issues.length)return Y.aborted=!0,Y;return Q._zod.run({value:J,issues:Y.issues},X)}var mB=V("$ZodReadonly",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"propValues",()=>J.innerType._zod.propValues),M0(Y._zod,"values",()=>J.innerType._zod.values),M0(Y._zod,"optin",()=>J.innerType?._zod?.optin),M0(Y._zod,"optout",()=>J.innerType?._zod?.optout),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")return J.innerType._zod.run(Q,X);let q=J.innerType._zod.run(Q,X);if(q instanceof Promise)return q.then(JO);return JO(q)}});function JO(Y){return Y.value=Object.freeze(Y.value),Y}var yB=V("$ZodTemplateLiteral",(Y,J)=>{G0.init(Y,J);let Q=[];for(let X of J.parts)if(typeof X==="object"&&X!==null){if(!X._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...X._zod.traits].shift()}`);let q=X._zod.pattern instanceof RegExp?X._zod.pattern.source:X._zod.pattern;if(!q)throw Error(`Invalid template literal part: ${X._zod.traits}`);let G=q.startsWith("^")?1:0,$=q.endsWith("$")?q.length-1:q.length;Q.push(q.slice(G,$))}else if(X===null||EU.has(typeof X))Q.push(dY(`${X}`));else throw Error(`Invalid template literal part: ${X}`);Y._zod.pattern=new RegExp(`^${Q.join("")}$`),Y._zod.parse=(X,q)=>{if(typeof X.value!=="string")return X.issues.push({input:X.value,inst:Y,expected:"string",code:"invalid_type"}),X;if(Y._zod.pattern.lastIndex=0,!Y._zod.pattern.test(X.value))return X.issues.push({input:X.value,inst:Y,code:"invalid_format",format:J.format??"template_literal",pattern:Y._zod.pattern.source}),X;return X}}),lB=V("$ZodFunction",(Y,J)=>{return G0.init(Y,J),Y._def=J,Y._zod.def=J,Y.implement=(Q)=>{if(typeof Q!=="function")throw Error("implement() must be called with a function");return function(...X){let q=Y._def.input?M5(Y._def.input,X):X,G=Reflect.apply(Q,this,q);if(Y._def.output)return M5(Y._def.output,G);return G}},Y.implementAsync=(Q)=>{if(typeof Q!=="function")throw Error("implementAsync() must be called with a function");return async function(...X){let q=Y._def.input?await N5(Y._def.input,X):X,G=await Reflect.apply(Q,this,q);if(Y._def.output)return await N5(Y._def.output,G);return G}},Y._zod.parse=(Q,X)=>{if(typeof Q.value!=="function")return Q.issues.push({code:"invalid_type",expected:"function",input:Q.value,inst:Y}),Q;if(Y._def.output&&Y._def.output._zod.def.type==="promise")Q.value=Y.implementAsync(Q.value);else Q.value=Y.implement(Q.value);return Q},Y.input=(...Q)=>{let X=Y.constructor;if(Array.isArray(Q[0]))return new X({type:"function",input:new dj({type:"tuple",items:Q[0],rest:Q[1]}),output:Y._def.output});return new X({type:"function",input:Q[0],output:Y._def.output})},Y.output=(Q)=>{return new Y.constructor({type:"function",input:Y._def.input,output:Q})},Y}),uB=V("$ZodPromise",(Y,J)=>{G0.init(Y,J),Y._zod.parse=(Q,X)=>{return Promise.resolve(Q.value).then((q)=>J.innerType._zod.run({value:q,issues:[]},X))}}),cB=V("$ZodLazy",(Y,J)=>{G0.init(Y,J),M0(Y._zod,"innerType",()=>J.getter()),M0(Y._zod,"pattern",()=>Y._zod.innerType?._zod?.pattern),M0(Y._zod,"propValues",()=>Y._zod.innerType?._zod?.propValues),M0(Y._zod,"optin",()=>Y._zod.innerType?._zod?.optin??void 0),M0(Y._zod,"optout",()=>Y._zod.innerType?._zod?.optout??void 0),Y._zod.parse=(Q,X)=>{return Y._zod.innerType._zod.run(Q,X)}}),bB=V("$ZodCustom",(Y,J)=>{x0.init(Y,J),G0.init(Y,J),Y._zod.parse=(Q,X)=>{return Q},Y._zod.check=(Q)=>{let X=Q.value,q=J.fn(X);if(q instanceof Promise)return q.then((G)=>QO(G,Q,X,Y));QO(q,Q,X,Y);return}});function QO(Y,J,Q,X){if(!Y){let q={code:"custom",input:Q,inst:X,path:[...X._zod.def.path??[]],continue:!X._zod.def.abort};if(X._zod.def.params)q.params=X._zod.def.params;J.issues.push(S$(q))}}var ij={};XY(ij,{zhTW:()=>QF,zhCN:()=>YF,yo:()=>XF,vi:()=>ak,uz:()=>tk,ur:()=>sk,uk:()=>dB,ua:()=>dk,tr:()=>pk,th:()=>ck,ta:()=>lk,sv:()=>mk,sl:()=>fk,ru:()=>xk,pt:()=>Tk,ps:()=>_k,pl:()=>Fk,ota:()=>Sk,no:()=>Ck,nl:()=>wk,ms:()=>Lk,mk:()=>Rk,lt:()=>Hk,ko:()=>Dk,km:()=>oB,kh:()=>Nk,ka:()=>zk,ja:()=>jk,it:()=>$k,is:()=>Xk,id:()=>Qk,hy:()=>Yk,hu:()=>a_,he:()=>t_,frCA:()=>s_,fr:()=>d_,fi:()=>p_,fa:()=>c_,es:()=>l_,eo:()=>m_,en:()=>pB,de:()=>g_,da:()=>Z_,cs:()=>P_,ca:()=>k_,bg:()=>v_,be:()=>I_,az:()=>A_,ar:()=>E_});var L_=()=>{let Y={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function J(q){return Y[q]??null}let Q={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`مدخلات غير مقبولة: يفترض إدخال instanceof ${q.expected}، ولكن تم إدخال ${W}`;return`مدخلات غير مقبولة: يفترض إدخال ${G}، ولكن تم إدخال ${W}`}case"invalid_value":if(q.values.length===1)return`مدخلات غير مقبولة: يفترض إدخال ${Q0(q.values[0])}`;return`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return` أكبر من اللازم: يفترض أن تكون ${q.origin??"القيمة"} ${G} ${q.maximum.toString()} ${$.unit??"عنصر"}`;return`أكبر من اللازم: يفترض أن تكون ${q.origin??"القيمة"} ${G} ${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`أصغر من اللازم: يفترض لـ ${q.origin} أن يكون ${G} ${q.minimum.toString()} ${$.unit}`;return`أصغر من اللازم: يفترض لـ ${q.origin} أن يكون ${G} ${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`نَص غير مقبول: يجب أن يبدأ بـ "${q.prefix}"`;if(G.format==="ends_with")return`نَص غير مقبول: يجب أن ينتهي بـ "${G.suffix}"`;if(G.format==="includes")return`نَص غير مقبول: يجب أن يتضمَّن "${G.includes}"`;if(G.format==="regex")return`نَص غير مقبول: يجب أن يطابق النمط ${G.pattern}`;return`${Q[G.format]??q.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${q.divisor}`;case"unrecognized_keys":return`معرف${q.keys.length>1?"ات":""} غريب${q.keys.length>1?"ة":""}: ${P(q.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${q.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${q.origin}`;default:return"مدخل غير مقبول"}}};function E_(){return{localeError:L_()}}var w_=()=>{let Y={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Yanlış dəyər: gözlənilən instanceof ${q.expected}, daxil olan ${W}`;return`Yanlış dəyər: gözlənilən ${G}, daxil olan ${W}`}case"invalid_value":if(q.values.length===1)return`Yanlış dəyər: gözlənilən ${Q0(q.values[0])}`;return`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Çox böyük: gözlənilən ${q.origin??"dəyər"} ${G}${q.maximum.toString()} ${$.unit??"element"}`;return`Çox böyük: gözlənilən ${q.origin??"dəyər"} ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Çox kiçik: gözlənilən ${q.origin} ${G}${q.minimum.toString()} ${$.unit}`;return`Çox kiçik: gözlənilən ${q.origin} ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Yanlış mətn: "${G.prefix}" ilə başlamalıdır`;if(G.format==="ends_with")return`Yanlış mətn: "${G.suffix}" ilə bitməlidir`;if(G.format==="includes")return`Yanlış mətn: "${G.includes}" daxil olmalıdır`;if(G.format==="regex")return`Yanlış mətn: ${G.pattern} şablonuna uyğun olmalıdır`;return`Yanlış ${Q[G.format]??q.format}`}case"not_multiple_of":return`Yanlış ədəd: ${q.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${q.keys.length>1?"lar":""}: ${P(q.keys,", ")}`;case"invalid_key":return`${q.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${q.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function A_(){return{localeError:w_()}}function qO(Y,J,Q,X){let q=Math.abs(Y),G=q%10,$=q%100;if($>=11&&$<=19)return X;if(G===1)return J;if(G>=2&&G<=4)return Q;return X}var C_=()=>{let Y={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function J(q){return Y[q]??null}let Q={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"},X={nan:"NaN",number:"лік",array:"масіў"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Няправільны ўвод: чакаўся instanceof ${q.expected}, атрымана ${W}`;return`Няправільны ўвод: чакаўся ${G}, атрымана ${W}`}case"invalid_value":if(q.values.length===1)return`Няправільны ўвод: чакалася ${Q0(q.values[0])}`;return`Няправільны варыянт: чакаўся адзін з ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($){let W=Number(q.maximum),j=qO(W,$.unit.one,$.unit.few,$.unit.many);return`Занадта вялікі: чакалася, што ${q.origin??"значэнне"} павінна ${$.verb} ${G}${q.maximum.toString()} ${j}`}return`Занадта вялікі: чакалася, што ${q.origin??"значэнне"} павінна быць ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($){let W=Number(q.minimum),j=qO(W,$.unit.one,$.unit.few,$.unit.many);return`Занадта малы: чакалася, што ${q.origin} павінна ${$.verb} ${G}${q.minimum.toString()} ${j}`}return`Занадта малы: чакалася, што ${q.origin} павінна быць ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Няправільны радок: павінен пачынацца з "${G.prefix}"`;if(G.format==="ends_with")return`Няправільны радок: павінен заканчвацца на "${G.suffix}"`;if(G.format==="includes")return`Няправільны радок: павінен змяшчаць "${G.includes}"`;if(G.format==="regex")return`Няправільны радок: павінен адпавядаць шаблону ${G.pattern}`;return`Няправільны ${Q[G.format]??q.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${q.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${q.keys.length>1?"ключы":"ключ"}: ${P(q.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${q.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${q.origin}`;default:return"Няправільны ўвод"}}};function I_(){return{localeError:C_()}}var S_=()=>{let Y={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function J(q){return Y[q]??null}let Q={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"},X={nan:"NaN",number:"число",array:"масив"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Невалиден вход: очакван instanceof ${q.expected}, получен ${W}`;return`Невалиден вход: очакван ${G}, получен ${W}`}case"invalid_value":if(q.values.length===1)return`Невалиден вход: очакван ${Q0(q.values[0])}`;return`Невалидна опция: очаквано едно от ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Твърде голямо: очаква се ${q.origin??"стойност"} да съдържа ${G}${q.maximum.toString()} ${$.unit??"елемента"}`;return`Твърде голямо: очаква се ${q.origin??"стойност"} да бъде ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Твърде малко: очаква се ${q.origin} да съдържа ${G}${q.minimum.toString()} ${$.unit}`;return`Твърде малко: очаква се ${q.origin} да бъде ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Невалиден низ: трябва да започва с "${G.prefix}"`;if(G.format==="ends_with")return`Невалиден низ: трябва да завършва с "${G.suffix}"`;if(G.format==="includes")return`Невалиден низ: трябва да включва "${G.includes}"`;if(G.format==="regex")return`Невалиден низ: трябва да съвпада с ${G.pattern}`;let $="Невалиден";if(G.format==="emoji")$="Невалидно";if(G.format==="datetime")$="Невалидно";if(G.format==="date")$="Невалидна";if(G.format==="time")$="Невалидно";if(G.format==="duration")$="Невалидна";return`${$} ${Q[G.format]??q.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${q.divisor}`;case"unrecognized_keys":return`Неразпознат${q.keys.length>1?"и":""} ключ${q.keys.length>1?"ове":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${q.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${q.origin}`;default:return"Невалиден вход"}}};function v_(){return{localeError:S_()}}var __=()=>{let Y={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function J(q){return Y[q]??null}let Q={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Tipus invàlid: s'esperava instanceof ${q.expected}, s'ha rebut ${W}`;return`Tipus invàlid: s'esperava ${G}, s'ha rebut ${W}`}case"invalid_value":if(q.values.length===1)return`Valor invàlid: s'esperava ${Q0(q.values[0])}`;return`Opció invàlida: s'esperava una de ${P(q.values," o ")}`;case"too_big":{let G=q.inclusive?"com a màxim":"menys de",$=J(q.origin);if($)return`Massa gran: s'esperava que ${q.origin??"el valor"} contingués ${G} ${q.maximum.toString()} ${$.unit??"elements"}`;return`Massa gran: s'esperava que ${q.origin??"el valor"} fos ${G} ${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?"com a mínim":"més de",$=J(q.origin);if($)return`Massa petit: s'esperava que ${q.origin} contingués ${G} ${q.minimum.toString()} ${$.unit}`;return`Massa petit: s'esperava que ${q.origin} fos ${G} ${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Format invàlid: ha de començar amb "${G.prefix}"`;if(G.format==="ends_with")return`Format invàlid: ha d'acabar amb "${G.suffix}"`;if(G.format==="includes")return`Format invàlid: ha d'incloure "${G.includes}"`;if(G.format==="regex")return`Format invàlid: ha de coincidir amb el patró ${G.pattern}`;return`Format invàlid per a ${Q[G.format]??q.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${q.divisor}`;case"unrecognized_keys":return`Clau${q.keys.length>1?"s":""} no reconeguda${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${q.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${q.origin}`;default:return"Entrada invàlida"}}};function k_(){return{localeError:__()}}var F_=()=>{let Y={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function J(q){return Y[q]??null}let Q={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"},X={nan:"NaN",number:"číslo",string:"řetězec",function:"funkce",array:"pole"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Neplatný vstup: očekáváno instanceof ${q.expected}, obdrženo ${W}`;return`Neplatný vstup: očekáváno ${G}, obdrženo ${W}`}case"invalid_value":if(q.values.length===1)return`Neplatný vstup: očekáváno ${Q0(q.values[0])}`;return`Neplatná možnost: očekávána jedna z hodnot ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Hodnota je příliš velká: ${q.origin??"hodnota"} musí mít ${G}${q.maximum.toString()} ${$.unit??"prvků"}`;return`Hodnota je příliš velká: ${q.origin??"hodnota"} musí být ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Hodnota je příliš malá: ${q.origin??"hodnota"} musí mít ${G}${q.minimum.toString()} ${$.unit??"prvků"}`;return`Hodnota je příliš malá: ${q.origin??"hodnota"} musí být ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Neplatný řetězec: musí začínat na "${G.prefix}"`;if(G.format==="ends_with")return`Neplatný řetězec: musí končit na "${G.suffix}"`;if(G.format==="includes")return`Neplatný řetězec: musí obsahovat "${G.includes}"`;if(G.format==="regex")return`Neplatný řetězec: musí odpovídat vzoru ${G.pattern}`;return`Neplatný formát ${Q[G.format]??q.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${q.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${P(q.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${q.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${q.origin}`;default:return"Neplatný vstup"}}};function P_(){return{localeError:F_()}}var T_=()=>{let Y={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},X={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Ugyldigt input: forventede instanceof ${q.expected}, fik ${W}`;return`Ugyldigt input: forventede ${G}, fik ${W}`}case"invalid_value":if(q.values.length===1)return`Ugyldig værdi: forventede ${Q0(q.values[0])}`;return`Ugyldigt valg: forventede en af følgende ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin),W=X[q.origin]??q.origin;if($)return`For stor: forventede ${W??"value"} ${$.verb} ${G} ${q.maximum.toString()} ${$.unit??"elementer"}`;return`For stor: forventede ${W??"value"} havde ${G} ${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin),W=X[q.origin]??q.origin;if($)return`For lille: forventede ${W} ${$.verb} ${G} ${q.minimum.toString()} ${$.unit}`;return`For lille: forventede ${W} havde ${G} ${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ugyldig streng: skal starte med "${G.prefix}"`;if(G.format==="ends_with")return`Ugyldig streng: skal ende med "${G.suffix}"`;if(G.format==="includes")return`Ugyldig streng: skal indeholde "${G.includes}"`;if(G.format==="regex")return`Ugyldig streng: skal matche mønsteret ${G.pattern}`;return`Ugyldig ${Q[G.format]??q.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${q.divisor}`;case"unrecognized_keys":return`${q.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${P(q.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${q.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${q.origin}`;default:return"Ugyldigt input"}}};function Z_(){return{localeError:T_()}}var x_=()=>{let Y={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function J(q){return Y[q]??null}let Q={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},X={nan:"NaN",number:"Zahl",array:"Array"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Ungültige Eingabe: erwartet instanceof ${q.expected}, erhalten ${W}`;return`Ungültige Eingabe: erwartet ${G}, erhalten ${W}`}case"invalid_value":if(q.values.length===1)return`Ungültige Eingabe: erwartet ${Q0(q.values[0])}`;return`Ungültige Option: erwartet eine von ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Zu groß: erwartet, dass ${q.origin??"Wert"} ${G}${q.maximum.toString()} ${$.unit??"Elemente"} hat`;return`Zu groß: erwartet, dass ${q.origin??"Wert"} ${G}${q.maximum.toString()} ist`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Zu klein: erwartet, dass ${q.origin} ${G}${q.minimum.toString()} ${$.unit} hat`;return`Zu klein: erwartet, dass ${q.origin} ${G}${q.minimum.toString()} ist`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ungültiger String: muss mit "${G.prefix}" beginnen`;if(G.format==="ends_with")return`Ungültiger String: muss mit "${G.suffix}" enden`;if(G.format==="includes")return`Ungültiger String: muss "${G.includes}" enthalten`;if(G.format==="regex")return`Ungültiger String: muss dem Muster ${G.pattern} entsprechen`;return`Ungültig: ${Q[G.format]??q.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${q.divisor} sein`;case"unrecognized_keys":return`${q.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${P(q.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${q.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${q.origin}`;default:return"Ungültige Eingabe"}}};function g_(){return{localeError:x_()}}var f_=()=>{let Y={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;return`Invalid input: expected ${G}, received ${W}`}case"invalid_value":if(q.values.length===1)return`Invalid input: expected ${Q0(q.values[0])}`;return`Invalid option: expected one of ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Too big: expected ${q.origin??"value"} to have ${G}${q.maximum.toString()} ${$.unit??"elements"}`;return`Too big: expected ${q.origin??"value"} to be ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Too small: expected ${q.origin} to have ${G}${q.minimum.toString()} ${$.unit}`;return`Too small: expected ${q.origin} to be ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Invalid string: must start with "${G.prefix}"`;if(G.format==="ends_with")return`Invalid string: must end with "${G.suffix}"`;if(G.format==="includes")return`Invalid string: must include "${G.includes}"`;if(G.format==="regex")return`Invalid string: must match pattern ${G.pattern}`;return`Invalid ${Q[G.format]??q.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${q.divisor}`;case"unrecognized_keys":return`Unrecognized key${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Invalid key in ${q.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${q.origin}`;default:return"Invalid input"}}};function pB(){return{localeError:f_()}}var h_=()=>{let Y={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function J(q){return Y[q]??null}let Q={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},X={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Nevalida enigo: atendiĝis instanceof ${q.expected}, riceviĝis ${W}`;return`Nevalida enigo: atendiĝis ${G}, riceviĝis ${W}`}case"invalid_value":if(q.values.length===1)return`Nevalida enigo: atendiĝis ${Q0(q.values[0])}`;return`Nevalida opcio: atendiĝis unu el ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Tro granda: atendiĝis ke ${q.origin??"valoro"} havu ${G}${q.maximum.toString()} ${$.unit??"elementojn"}`;return`Tro granda: atendiĝis ke ${q.origin??"valoro"} havu ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Tro malgranda: atendiĝis ke ${q.origin} havu ${G}${q.minimum.toString()} ${$.unit}`;return`Tro malgranda: atendiĝis ke ${q.origin} estu ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Nevalida karaktraro: devas komenciĝi per "${G.prefix}"`;if(G.format==="ends_with")return`Nevalida karaktraro: devas finiĝi per "${G.suffix}"`;if(G.format==="includes")return`Nevalida karaktraro: devas inkluzivi "${G.includes}"`;if(G.format==="regex")return`Nevalida karaktraro: devas kongrui kun la modelo ${G.pattern}`;return`Nevalida ${Q[G.format]??q.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${q.divisor}`;case"unrecognized_keys":return`Nekonata${q.keys.length>1?"j":""} ŝlosilo${q.keys.length>1?"j":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${q.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${q.origin}`;default:return"Nevalida enigo"}}};function m_(){return{localeError:h_()}}var y_=()=>{let Y={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function J(q){return Y[q]??null}let Q={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},X={nan:"NaN",string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Entrada inválida: se esperaba instanceof ${q.expected}, recibido ${W}`;return`Entrada inválida: se esperaba ${G}, recibido ${W}`}case"invalid_value":if(q.values.length===1)return`Entrada inválida: se esperaba ${Q0(q.values[0])}`;return`Opción inválida: se esperaba una de ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin),W=X[q.origin]??q.origin;if($)return`Demasiado grande: se esperaba que ${W??"valor"} tuviera ${G}${q.maximum.toString()} ${$.unit??"elementos"}`;return`Demasiado grande: se esperaba que ${W??"valor"} fuera ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin),W=X[q.origin]??q.origin;if($)return`Demasiado pequeño: se esperaba que ${W} tuviera ${G}${q.minimum.toString()} ${$.unit}`;return`Demasiado pequeño: se esperaba que ${W} fuera ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Cadena inválida: debe comenzar con "${G.prefix}"`;if(G.format==="ends_with")return`Cadena inválida: debe terminar en "${G.suffix}"`;if(G.format==="includes")return`Cadena inválida: debe incluir "${G.includes}"`;if(G.format==="regex")return`Cadena inválida: debe coincidir con el patrón ${G.pattern}`;return`Inválido ${Q[G.format]??q.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${q.divisor}`;case"unrecognized_keys":return`Llave${q.keys.length>1?"s":""} desconocida${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Llave inválida en ${X[q.origin]??q.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${X[q.origin]??q.origin}`;default:return"Entrada inválida"}}};function l_(){return{localeError:y_()}}var u_=()=>{let Y={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function J(q){return Y[q]??null}let Q={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"},X={nan:"NaN",number:"عدد",array:"آرایه"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`ورودی نامعتبر: می‌بایست instanceof ${q.expected} می‌بود، ${W} دریافت شد`;return`ورودی نامعتبر: می‌بایست ${G} می‌بود، ${W} دریافت شد`}case"invalid_value":if(q.values.length===1)return`ورودی نامعتبر: می‌بایست ${Q0(q.values[0])} می‌بود`;return`گزینه نامعتبر: می‌بایست یکی از ${P(q.values,"|")} می‌بود`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`خیلی بزرگ: ${q.origin??"مقدار"} باید ${G}${q.maximum.toString()} ${$.unit??"عنصر"} باشد`;return`خیلی بزرگ: ${q.origin??"مقدار"} باید ${G}${q.maximum.toString()} باشد`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`خیلی کوچک: ${q.origin} باید ${G}${q.minimum.toString()} ${$.unit} باشد`;return`خیلی کوچک: ${q.origin} باید ${G}${q.minimum.toString()} باشد`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`رشته نامعتبر: باید با "${G.prefix}" شروع شود`;if(G.format==="ends_with")return`رشته نامعتبر: باید با "${G.suffix}" تمام شود`;if(G.format==="includes")return`رشته نامعتبر: باید شامل "${G.includes}" باشد`;if(G.format==="regex")return`رشته نامعتبر: باید با الگوی ${G.pattern} مطابقت داشته باشد`;return`${Q[G.format]??q.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${q.divisor} باشد`;case"unrecognized_keys":return`کلید${q.keys.length>1?"های":""} ناشناس: ${P(q.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${q.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${q.origin}`;default:return"ورودی نامعتبر"}}};function c_(){return{localeError:u_()}}var b_=()=>{let Y={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function J(q){return Y[q]??null}let Q={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Virheellinen tyyppi: odotettiin instanceof ${q.expected}, oli ${W}`;return`Virheellinen tyyppi: odotettiin ${G}, oli ${W}`}case"invalid_value":if(q.values.length===1)return`Virheellinen syöte: täytyy olla ${Q0(q.values[0])}`;return`Virheellinen valinta: täytyy olla yksi seuraavista: ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Liian suuri: ${$.subject} täytyy olla ${G}${q.maximum.toString()} ${$.unit}`.trim();return`Liian suuri: arvon täytyy olla ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Liian pieni: ${$.subject} täytyy olla ${G}${q.minimum.toString()} ${$.unit}`.trim();return`Liian pieni: arvon täytyy olla ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Virheellinen syöte: täytyy alkaa "${G.prefix}"`;if(G.format==="ends_with")return`Virheellinen syöte: täytyy loppua "${G.suffix}"`;if(G.format==="includes")return`Virheellinen syöte: täytyy sisältää "${G.includes}"`;if(G.format==="regex")return`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${G.pattern}`;return`Virheellinen ${Q[G.format]??q.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${q.divisor} monikerta`;case"unrecognized_keys":return`${q.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${P(q.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function p_(){return{localeError:b_()}}var o_=()=>{let Y={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function J(q){return Y[q]??null}let Q={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},X={nan:"NaN",number:"nombre",array:"tableau"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Entrée invalide : instanceof ${q.expected} attendu, ${W} reçu`;return`Entrée invalide : ${G} attendu, ${W} reçu`}case"invalid_value":if(q.values.length===1)return`Entrée invalide : ${Q0(q.values[0])} attendu`;return`Option invalide : une valeur parmi ${P(q.values,"|")} attendue`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Trop grand : ${q.origin??"valeur"} doit ${$.verb} ${G}${q.maximum.toString()} ${$.unit??"élément(s)"}`;return`Trop grand : ${q.origin??"valeur"} doit être ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Trop petit : ${q.origin} doit ${$.verb} ${G}${q.minimum.toString()} ${$.unit}`;return`Trop petit : ${q.origin} doit être ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Chaîne invalide : doit commencer par "${G.prefix}"`;if(G.format==="ends_with")return`Chaîne invalide : doit se terminer par "${G.suffix}"`;if(G.format==="includes")return`Chaîne invalide : doit inclure "${G.includes}"`;if(G.format==="regex")return`Chaîne invalide : doit correspondre au modèle ${G.pattern}`;return`${Q[G.format]??q.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${q.divisor}`;case"unrecognized_keys":return`Clé${q.keys.length>1?"s":""} non reconnue${q.keys.length>1?"s":""} : ${P(q.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${q.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${q.origin}`;default:return"Entrée invalide"}}};function d_(){return{localeError:o_()}}var r_=()=>{let Y={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function J(q){return Y[q]??null}let Q={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Entrée invalide : attendu instanceof ${q.expected}, reçu ${W}`;return`Entrée invalide : attendu ${G}, reçu ${W}`}case"invalid_value":if(q.values.length===1)return`Entrée invalide : attendu ${Q0(q.values[0])}`;return`Option invalide : attendu l'une des valeurs suivantes ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"≤":"<",$=J(q.origin);if($)return`Trop grand : attendu que ${q.origin??"la valeur"} ait ${G}${q.maximum.toString()} ${$.unit}`;return`Trop grand : attendu que ${q.origin??"la valeur"} soit ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?"≥":">",$=J(q.origin);if($)return`Trop petit : attendu que ${q.origin} ait ${G}${q.minimum.toString()} ${$.unit}`;return`Trop petit : attendu que ${q.origin} soit ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Chaîne invalide : doit commencer par "${G.prefix}"`;if(G.format==="ends_with")return`Chaîne invalide : doit se terminer par "${G.suffix}"`;if(G.format==="includes")return`Chaîne invalide : doit inclure "${G.includes}"`;if(G.format==="regex")return`Chaîne invalide : doit correspondre au motif ${G.pattern}`;return`${Q[G.format]??q.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${q.divisor}`;case"unrecognized_keys":return`Clé${q.keys.length>1?"s":""} non reconnue${q.keys.length>1?"s":""} : ${P(q.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${q.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${q.origin}`;default:return"Entrée invalide"}}};function s_(){return{localeError:r_()}}var i_=()=>{let Y={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},J={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},Q=(K)=>K?Y[K]:void 0,X=(K)=>{let z=Q(K);if(z)return z.label;return K??Y.unknown.label},q=(K)=>`ה${X(K)}`,G=(K)=>{return(Q(K)?.gender??"m")==="f"?"צריכה להיות":"צריך להיות"},$=(K)=>{if(!K)return null;return J[K]??null},W={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}},j={nan:"NaN"};return(K)=>{switch(K.code){case"invalid_type":{let z=K.expected,M=j[z??""]??X(z),N=X0(K.input),O=j[N]??Y[N]?.label??N;if(/^[A-Z]/.test(K.expected))return`קלט לא תקין: צריך להיות instanceof ${K.expected}, התקבל ${O}`;return`קלט לא תקין: צריך להיות ${M}, התקבל ${O}`}case"invalid_value":{if(K.values.length===1)return`ערך לא תקין: הערך חייב להיות ${Q0(K.values[0])}`;let z=K.values.map((N)=>Q0(N));if(K.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${z[0]} או ${z[1]}`;let M=z[z.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${z.slice(0,-1).join(", ")} או ${M}`}case"too_big":{let z=$(K.origin),M=q(K.origin??"value");if(K.origin==="string")return`${z?.longLabel??"ארוך"} מדי: ${M} צריכה להכיל ${K.maximum.toString()} ${z?.unit??""} ${K.inclusive?"או פחות":"לכל היותר"}`.trim();if(K.origin==="number"){let D=K.inclusive?`קטן או שווה ל-${K.maximum}`:`קטן מ-${K.maximum}`;return`גדול מדי: ${M} צריך להיות ${D}`}if(K.origin==="array"||K.origin==="set"){let D=K.origin==="set"?"צריכה":"צריך",U=K.inclusive?`${K.maximum} ${z?.unit??""} או פחות`:`פחות מ-${K.maximum} ${z?.unit??""}`;return`גדול מדי: ${M} ${D} להכיל ${U}`.trim()}let N=K.inclusive?"<=":"<",O=G(K.origin??"value");if(z?.unit)return`${z.longLabel} מדי: ${M} ${O} ${N}${K.maximum.toString()} ${z.unit}`;return`${z?.longLabel??"גדול"} מדי: ${M} ${O} ${N}${K.maximum.toString()}`}case"too_small":{let z=$(K.origin),M=q(K.origin??"value");if(K.origin==="string")return`${z?.shortLabel??"קצר"} מדי: ${M} צריכה להכיל ${K.minimum.toString()} ${z?.unit??""} ${K.inclusive?"או יותר":"לפחות"}`.trim();if(K.origin==="number"){let D=K.inclusive?`גדול או שווה ל-${K.minimum}`:`גדול מ-${K.minimum}`;return`קטן מדי: ${M} צריך להיות ${D}`}if(K.origin==="array"||K.origin==="set"){let D=K.origin==="set"?"צריכה":"צריך";if(K.minimum===1&&K.inclusive){let A=K.origin==="set"?"לפחות פריט אחד":"לפחות פריט אחד";return`קטן מדי: ${M} ${D} להכיל ${A}`}let U=K.inclusive?`${K.minimum} ${z?.unit??""} או יותר`:`יותר מ-${K.minimum} ${z?.unit??""}`;return`קטן מדי: ${M} ${D} להכיל ${U}`.trim()}let N=K.inclusive?">=":">",O=G(K.origin??"value");if(z?.unit)return`${z.shortLabel} מדי: ${M} ${O} ${N}${K.minimum.toString()} ${z.unit}`;return`${z?.shortLabel??"קטן"} מדי: ${M} ${O} ${N}${K.minimum.toString()}`}case"invalid_format":{let z=K;if(z.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${z.prefix}"`;if(z.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${z.suffix}"`;if(z.format==="includes")return`המחרוזת חייבת לכלול "${z.includes}"`;if(z.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${z.pattern}`;let M=W[z.format],N=M?.label??z.format,O=(M?.gender??"m")==="f"?"תקינה":"תקין";return`${N} לא ${O}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${K.divisor}`;case"unrecognized_keys":return`מפתח${K.keys.length>1?"ות":""} לא מזוה${K.keys.length>1?"ים":"ה"}: ${P(K.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${q(K.origin??"array")}`;default:return"קלט לא תקין"}}};function t_(){return{localeError:i_()}}var n_=()=>{let Y={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function J(q){return Y[q]??null}let Q={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"},X={nan:"NaN",number:"szám",array:"tömb"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Érvénytelen bemenet: a várt érték instanceof ${q.expected}, a kapott érték ${W}`;return`Érvénytelen bemenet: a várt érték ${G}, a kapott érték ${W}`}case"invalid_value":if(q.values.length===1)return`Érvénytelen bemenet: a várt érték ${Q0(q.values[0])}`;return`Érvénytelen opció: valamelyik érték várt ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Túl nagy: ${q.origin??"érték"} mérete túl nagy ${G}${q.maximum.toString()} ${$.unit??"elem"}`;return`Túl nagy: a bemeneti érték ${q.origin??"érték"} túl nagy: ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Túl kicsi: a bemeneti érték ${q.origin} mérete túl kicsi ${G}${q.minimum.toString()} ${$.unit}`;return`Túl kicsi: a bemeneti érték ${q.origin} túl kicsi ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Érvénytelen string: "${G.prefix}" értékkel kell kezdődnie`;if(G.format==="ends_with")return`Érvénytelen string: "${G.suffix}" értékkel kell végződnie`;if(G.format==="includes")return`Érvénytelen string: "${G.includes}" értéket kell tartalmaznia`;if(G.format==="regex")return`Érvénytelen string: ${G.pattern} mintának kell megfelelnie`;return`Érvénytelen ${Q[G.format]??q.format}`}case"not_multiple_of":return`Érvénytelen szám: ${q.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${q.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${q.origin}`;default:return"Érvénytelen bemenet"}}};function a_(){return{localeError:n_()}}function XO(Y,J,Q){return Math.abs(Y)===1?J:Q}function PQ(Y){if(!Y)return"";let J=["ա","ե","ը","ի","ո","ու","օ"],Q=Y[Y.length-1];return Y+(J.includes(Q)?"ն":"ը")}var e_=()=>{let Y={string:{unit:{one:"նշան",many:"նշաններ"},verb:"ունենալ"},file:{unit:{one:"բայթ",many:"բայթեր"},verb:"ունենալ"},array:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},set:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"}};function J(q){return Y[q]??null}let Q={regex:"մուտք",email:"էլ. հասցե",url:"URL",emoji:"էմոջի",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ամսաթիվ և ժամ",date:"ISO ամսաթիվ",time:"ISO ժամ",duration:"ISO տևողություն",ipv4:"IPv4 հասցե",ipv6:"IPv6 հասցե",cidrv4:"IPv4 միջակայք",cidrv6:"IPv6 միջակայք",base64:"base64 ձևաչափով տող",base64url:"base64url ձևաչափով տող",json_string:"JSON տող",e164:"E.164 համար",jwt:"JWT",template_literal:"մուտք"},X={nan:"NaN",number:"թիվ",array:"զանգված"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Սխալ մուտքագրում․ սպասվում էր instanceof ${q.expected}, ստացվել է ${W}`;return`Սխալ մուտքագրում․ սպասվում էր ${G}, ստացվել է ${W}`}case"invalid_value":if(q.values.length===1)return`Սխալ մուտքագրում․ սպասվում էր ${Q0(q.values[1])}`;return`Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($){let W=Number(q.maximum),j=XO(W,$.unit.one,$.unit.many);return`Չափազանց մեծ արժեք․ սպասվում է, որ ${PQ(q.origin??"արժեք")} կունենա ${G}${q.maximum.toString()} ${j}`}return`Չափազանց մեծ արժեք․ սպասվում է, որ ${PQ(q.origin??"արժեք")} լինի ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($){let W=Number(q.minimum),j=XO(W,$.unit.one,$.unit.many);return`Չափազանց փոքր արժեք․ սպասվում է, որ ${PQ(q.origin)} կունենա ${G}${q.minimum.toString()} ${j}`}return`Չափազանց փոքր արժեք․ սպասվում է, որ ${PQ(q.origin)} լինի ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Սխալ տող․ պետք է սկսվի "${G.prefix}"-ով`;if(G.format==="ends_with")return`Սխալ տող․ պետք է ավարտվի "${G.suffix}"-ով`;if(G.format==="includes")return`Սխալ տող․ պետք է պարունակի "${G.includes}"`;if(G.format==="regex")return`Սխալ տող․ պետք է համապատասխանի ${G.pattern} ձևաչափին`;return`Սխալ ${Q[G.format]??q.format}`}case"not_multiple_of":return`Սխալ թիվ․ պետք է բազմապատիկ լինի ${q.divisor}-ի`;case"unrecognized_keys":return`Չճանաչված բանալի${q.keys.length>1?"ներ":""}. ${P(q.keys,", ")}`;case"invalid_key":return`Սխալ բանալի ${PQ(q.origin)}-ում`;case"invalid_union":return"Սխալ մուտքագրում";case"invalid_element":return`Սխալ արժեք ${PQ(q.origin)}-ում`;default:return"Սխալ մուտքագրում"}}};function Yk(){return{localeError:e_()}}var Jk=()=>{let Y={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Input tidak valid: diharapkan instanceof ${q.expected}, diterima ${W}`;return`Input tidak valid: diharapkan ${G}, diterima ${W}`}case"invalid_value":if(q.values.length===1)return`Input tidak valid: diharapkan ${Q0(q.values[0])}`;return`Pilihan tidak valid: diharapkan salah satu dari ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Terlalu besar: diharapkan ${q.origin??"value"} memiliki ${G}${q.maximum.toString()} ${$.unit??"elemen"}`;return`Terlalu besar: diharapkan ${q.origin??"value"} menjadi ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Terlalu kecil: diharapkan ${q.origin} memiliki ${G}${q.minimum.toString()} ${$.unit}`;return`Terlalu kecil: diharapkan ${q.origin} menjadi ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`String tidak valid: harus dimulai dengan "${G.prefix}"`;if(G.format==="ends_with")return`String tidak valid: harus berakhir dengan "${G.suffix}"`;if(G.format==="includes")return`String tidak valid: harus menyertakan "${G.includes}"`;if(G.format==="regex")return`String tidak valid: harus sesuai pola ${G.pattern}`;return`${Q[G.format]??q.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${q.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${q.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${q.origin}`;default:return"Input tidak valid"}}};function Qk(){return{localeError:Jk()}}var qk=()=>{let Y={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function J(q){return Y[q]??null}let Q={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"},X={nan:"NaN",number:"númer",array:"fylki"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Rangt gildi: Þú slóst inn ${W} þar sem á að vera instanceof ${q.expected}`;return`Rangt gildi: Þú slóst inn ${W} þar sem á að vera ${G}`}case"invalid_value":if(q.values.length===1)return`Rangt gildi: gert ráð fyrir ${Q0(q.values[0])}`;return`Ógilt val: má vera eitt af eftirfarandi ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Of stórt: gert er ráð fyrir að ${q.origin??"gildi"} hafi ${G}${q.maximum.toString()} ${$.unit??"hluti"}`;return`Of stórt: gert er ráð fyrir að ${q.origin??"gildi"} sé ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Of lítið: gert er ráð fyrir að ${q.origin} hafi ${G}${q.minimum.toString()} ${$.unit}`;return`Of lítið: gert er ráð fyrir að ${q.origin} sé ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ógildur strengur: verður að byrja á "${G.prefix}"`;if(G.format==="ends_with")return`Ógildur strengur: verður að enda á "${G.suffix}"`;if(G.format==="includes")return`Ógildur strengur: verður að innihalda "${G.includes}"`;if(G.format==="regex")return`Ógildur strengur: verður að fylgja mynstri ${G.pattern}`;return`Rangt ${Q[G.format]??q.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${q.divisor}`;case"unrecognized_keys":return`Óþekkt ${q.keys.length>1?"ir lyklar":"ur lykill"}: ${P(q.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${q.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${q.origin}`;default:return"Rangt gildi"}}};function Xk(){return{localeError:qk()}}var Gk=()=>{let Y={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},X={nan:"NaN",number:"numero",array:"vettore"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Input non valido: atteso instanceof ${q.expected}, ricevuto ${W}`;return`Input non valido: atteso ${G}, ricevuto ${W}`}case"invalid_value":if(q.values.length===1)return`Input non valido: atteso ${Q0(q.values[0])}`;return`Opzione non valida: atteso uno tra ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Troppo grande: ${q.origin??"valore"} deve avere ${G}${q.maximum.toString()} ${$.unit??"elementi"}`;return`Troppo grande: ${q.origin??"valore"} deve essere ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Troppo piccolo: ${q.origin} deve avere ${G}${q.minimum.toString()} ${$.unit}`;return`Troppo piccolo: ${q.origin} deve essere ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Stringa non valida: deve iniziare con "${G.prefix}"`;if(G.format==="ends_with")return`Stringa non valida: deve terminare con "${G.suffix}"`;if(G.format==="includes")return`Stringa non valida: deve includere "${G.includes}"`;if(G.format==="regex")return`Stringa non valida: deve corrispondere al pattern ${G.pattern}`;return`Invalid ${Q[G.format]??q.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${q.divisor}`;case"unrecognized_keys":return`Chiav${q.keys.length>1?"i":"e"} non riconosciut${q.keys.length>1?"e":"a"}: ${P(q.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${q.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${q.origin}`;default:return"Input non valido"}}};function $k(){return{localeError:Gk()}}var Wk=()=>{let Y={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function J(q){return Y[q]??null}let Q={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"},X={nan:"NaN",number:"数値",array:"配列"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`無効な入力: instanceof ${q.expected}が期待されましたが、${W}が入力されました`;return`無効な入力: ${G}が期待されましたが、${W}が入力されました`}case"invalid_value":if(q.values.length===1)return`無効な入力: ${Q0(q.values[0])}が期待されました`;return`無効な選択: ${P(q.values,"、")}のいずれかである必要があります`;case"too_big":{let G=q.inclusive?"以下である":"より小さい",$=J(q.origin);if($)return`大きすぎる値: ${q.origin??"値"}は${q.maximum.toString()}${$.unit??"要素"}${G}必要があります`;return`大きすぎる値: ${q.origin??"値"}は${q.maximum.toString()}${G}必要があります`}case"too_small":{let G=q.inclusive?"以上である":"より大きい",$=J(q.origin);if($)return`小さすぎる値: ${q.origin}は${q.minimum.toString()}${$.unit}${G}必要があります`;return`小さすぎる値: ${q.origin}は${q.minimum.toString()}${G}必要があります`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`無効な文字列: "${G.prefix}"で始まる必要があります`;if(G.format==="ends_with")return`無効な文字列: "${G.suffix}"で終わる必要があります`;if(G.format==="includes")return`無効な文字列: "${G.includes}"を含む必要があります`;if(G.format==="regex")return`無効な文字列: パターン${G.pattern}に一致する必要があります`;return`無効な${Q[G.format]??q.format}`}case"not_multiple_of":return`無効な数値: ${q.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${q.keys.length>1?"群":""}: ${P(q.keys,"、")}`;case"invalid_key":return`${q.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${q.origin}内の無効な値`;default:return"無効な入力"}}};function jk(){return{localeError:Wk()}}var Kk=()=>{let Y={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function J(q){return Y[q]??null}let Q={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"},X={nan:"NaN",number:"რიცხვი",string:"სტრინგი",boolean:"ბულეანი",function:"ფუნქცია",array:"მასივი"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`არასწორი შეყვანა: მოსალოდნელი instanceof ${q.expected}, მიღებული ${W}`;return`არასწორი შეყვანა: მოსალოდნელი ${G}, მიღებული ${W}`}case"invalid_value":if(q.values.length===1)return`არასწორი შეყვანა: მოსალოდნელი ${Q0(q.values[0])}`;return`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${P(q.values,"|")}-დან`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`ზედმეტად დიდი: მოსალოდნელი ${q.origin??"მნიშვნელობა"} ${$.verb} ${G}${q.maximum.toString()} ${$.unit}`;return`ზედმეტად დიდი: მოსალოდნელი ${q.origin??"მნიშვნელობა"} იყოს ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`ზედმეტად პატარა: მოსალოდნელი ${q.origin} ${$.verb} ${G}${q.minimum.toString()} ${$.unit}`;return`ზედმეტად პატარა: მოსალოდნელი ${q.origin} იყოს ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`არასწორი სტრინგი: უნდა იწყებოდეს "${G.prefix}"-ით`;if(G.format==="ends_with")return`არასწორი სტრინგი: უნდა მთავრდებოდეს "${G.suffix}"-ით`;if(G.format==="includes")return`არასწორი სტრინგი: უნდა შეიცავდეს "${G.includes}"-ს`;if(G.format==="regex")return`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${G.pattern}`;return`არასწორი ${Q[G.format]??q.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${q.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${q.keys.length>1?"ები":"ი"}: ${P(q.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${q.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${q.origin}-ში`;default:return"არასწორი შეყვანა"}}};function zk(){return{localeError:Kk()}}var Mk=()=>{let Y={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function J(q){return Y[q]??null}let Q={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"},X={nan:"NaN",number:"លេខ",array:"អារេ (Array)",null:"គ្មានតម្លៃ (null)"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${q.expected} ប៉ុន្តែទទួលបាន ${W}`;return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${G} ប៉ុន្តែទទួលបាន ${W}`}case"invalid_value":if(q.values.length===1)return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${Q0(q.values[0])}`;return`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`ធំពេក៖ ត្រូវការ ${q.origin??"តម្លៃ"} ${G} ${q.maximum.toString()} ${$.unit??"ធាតុ"}`;return`ធំពេក៖ ត្រូវការ ${q.origin??"តម្លៃ"} ${G} ${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`តូចពេក៖ ត្រូវការ ${q.origin} ${G} ${q.minimum.toString()} ${$.unit}`;return`តូចពេក៖ ត្រូវការ ${q.origin} ${G} ${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${G.prefix}"`;if(G.format==="ends_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${G.suffix}"`;if(G.format==="includes")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${G.includes}"`;if(G.format==="regex")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${G.pattern}`;return`មិនត្រឹមត្រូវ៖ ${Q[G.format]??q.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${q.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${P(q.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${q.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${q.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function oB(){return{localeError:Mk()}}function Nk(){return oB()}var Ok=()=>{let Y={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function J(q){return Y[q]??null}let Q={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`잘못된 입력: 예상 타입은 instanceof ${q.expected}, 받은 타입은 ${W}입니다`;return`잘못된 입력: 예상 타입은 ${G}, 받은 타입은 ${W}입니다`}case"invalid_value":if(q.values.length===1)return`잘못된 입력: 값은 ${Q0(q.values[0])} 이어야 합니다`;return`잘못된 옵션: ${P(q.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{let G=q.inclusive?"이하":"미만",$=G==="미만"?"이어야 합니다":"여야 합니다",W=J(q.origin),j=W?.unit??"요소";if(W)return`${q.origin??"값"}이 너무 큽니다: ${q.maximum.toString()}${j} ${G}${$}`;return`${q.origin??"값"}이 너무 큽니다: ${q.maximum.toString()} ${G}${$}`}case"too_small":{let G=q.inclusive?"이상":"초과",$=G==="이상"?"이어야 합니다":"여야 합니다",W=J(q.origin),j=W?.unit??"요소";if(W)return`${q.origin??"값"}이 너무 작습니다: ${q.minimum.toString()}${j} ${G}${$}`;return`${q.origin??"값"}이 너무 작습니다: ${q.minimum.toString()} ${G}${$}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`잘못된 문자열: "${G.prefix}"(으)로 시작해야 합니다`;if(G.format==="ends_with")return`잘못된 문자열: "${G.suffix}"(으)로 끝나야 합니다`;if(G.format==="includes")return`잘못된 문자열: "${G.includes}"을(를) 포함해야 합니다`;if(G.format==="regex")return`잘못된 문자열: 정규식 ${G.pattern} 패턴과 일치해야 합니다`;return`잘못된 ${Q[G.format]??q.format}`}case"not_multiple_of":return`잘못된 숫자: ${q.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${P(q.keys,", ")}`;case"invalid_key":return`잘못된 키: ${q.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${q.origin}`;default:return"잘못된 입력"}}};function Dk(){return{localeError:Ok()}}var dq=(Y)=>{return Y.charAt(0).toUpperCase()+Y.slice(1)};function GO(Y){let J=Math.abs(Y),Q=J%10,X=J%100;if(X>=11&&X<=19||Q===0)return"many";if(Q===1)return"one";return"few"}var Uk=()=>{let Y={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function J(q,G,$,W){let j=Y[q]??null;if(j===null)return j;return{unit:j.unit[G],verb:j.verb[W][$?"inclusive":"notInclusive"]}}let Q={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"},X={nan:"NaN",number:"skaičius",bigint:"sveikasis skaičius",string:"eilutė",boolean:"loginė reikšmė",undefined:"neapibrėžta reikšmė",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulinė reikšmė"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Gautas tipas ${W}, o tikėtasi - instanceof ${q.expected}`;return`Gautas tipas ${W}, o tikėtasi - ${G}`}case"invalid_value":if(q.values.length===1)return`Privalo būti ${Q0(q.values[0])}`;return`Privalo būti vienas iš ${P(q.values,"|")} pasirinkimų`;case"too_big":{let G=X[q.origin]??q.origin,$=J(q.origin,GO(Number(q.maximum)),q.inclusive??!1,"smaller");if($?.verb)return`${dq(G??q.origin??"reikšmė")} ${$.verb} ${q.maximum.toString()} ${$.unit??"elementų"}`;let W=q.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${dq(G??q.origin??"reikšmė")} turi būti ${W} ${q.maximum.toString()} ${$?.unit}`}case"too_small":{let G=X[q.origin]??q.origin,$=J(q.origin,GO(Number(q.minimum)),q.inclusive??!1,"bigger");if($?.verb)return`${dq(G??q.origin??"reikšmė")} ${$.verb} ${q.minimum.toString()} ${$.unit??"elementų"}`;let W=q.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${dq(G??q.origin??"reikšmė")} turi būti ${W} ${q.minimum.toString()} ${$?.unit}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Eilutė privalo prasidėti "${G.prefix}"`;if(G.format==="ends_with")return`Eilutė privalo pasibaigti "${G.suffix}"`;if(G.format==="includes")return`Eilutė privalo įtraukti "${G.includes}"`;if(G.format==="regex")return`Eilutė privalo atitikti ${G.pattern}`;return`Neteisingas ${Q[G.format]??q.format}`}case"not_multiple_of":return`Skaičius privalo būti ${q.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${q.keys.length>1?"i":"as"} rakt${q.keys.length>1?"ai":"as"}: ${P(q.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{let G=X[q.origin]??q.origin;return`${dq(G??q.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function Hk(){return{localeError:Uk()}}var Bk=()=>{let Y={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function J(q){return Y[q]??null}let Q={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"},X={nan:"NaN",number:"број",array:"низа"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Грешен внес: се очекува instanceof ${q.expected}, примено ${W}`;return`Грешен внес: се очекува ${G}, примено ${W}`}case"invalid_value":if(q.values.length===1)return`Invalid input: expected ${Q0(q.values[0])}`;return`Грешана опција: се очекува една ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Премногу голем: се очекува ${q.origin??"вредноста"} да има ${G}${q.maximum.toString()} ${$.unit??"елементи"}`;return`Премногу голем: се очекува ${q.origin??"вредноста"} да биде ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Премногу мал: се очекува ${q.origin} да има ${G}${q.minimum.toString()} ${$.unit}`;return`Премногу мал: се очекува ${q.origin} да биде ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Неважечка низа: мора да започнува со "${G.prefix}"`;if(G.format==="ends_with")return`Неважечка низа: мора да завршува со "${G.suffix}"`;if(G.format==="includes")return`Неважечка низа: мора да вклучува "${G.includes}"`;if(G.format==="regex")return`Неважечка низа: мора да одгоара на патернот ${G.pattern}`;return`Invalid ${Q[G.format]??q.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${q.divisor}`;case"unrecognized_keys":return`${q.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${P(q.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${q.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${q.origin}`;default:return"Грешен внес"}}};function Rk(){return{localeError:Bk()}}var Vk=()=>{let Y={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},X={nan:"NaN",number:"nombor"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Input tidak sah: dijangka instanceof ${q.expected}, diterima ${W}`;return`Input tidak sah: dijangka ${G}, diterima ${W}`}case"invalid_value":if(q.values.length===1)return`Input tidak sah: dijangka ${Q0(q.values[0])}`;return`Pilihan tidak sah: dijangka salah satu daripada ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Terlalu besar: dijangka ${q.origin??"nilai"} ${$.verb} ${G}${q.maximum.toString()} ${$.unit??"elemen"}`;return`Terlalu besar: dijangka ${q.origin??"nilai"} adalah ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Terlalu kecil: dijangka ${q.origin} ${$.verb} ${G}${q.minimum.toString()} ${$.unit}`;return`Terlalu kecil: dijangka ${q.origin} adalah ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`String tidak sah: mesti bermula dengan "${G.prefix}"`;if(G.format==="ends_with")return`String tidak sah: mesti berakhir dengan "${G.suffix}"`;if(G.format==="includes")return`String tidak sah: mesti mengandungi "${G.includes}"`;if(G.format==="regex")return`String tidak sah: mesti sepadan dengan corak ${G.pattern}`;return`${Q[G.format]??q.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${q.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${P(q.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${q.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${q.origin}`;default:return"Input tidak sah"}}};function Lk(){return{localeError:Vk()}}var Ek=()=>{let Y={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function J(q){return Y[q]??null}let Q={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},X={nan:"NaN",number:"getal"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Ongeldige invoer: verwacht instanceof ${q.expected}, ontving ${W}`;return`Ongeldige invoer: verwacht ${G}, ontving ${W}`}case"invalid_value":if(q.values.length===1)return`Ongeldige invoer: verwacht ${Q0(q.values[0])}`;return`Ongeldige optie: verwacht één van ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin),W=q.origin==="date"?"laat":q.origin==="string"?"lang":"groot";if($)return`Te ${W}: verwacht dat ${q.origin??"waarde"} ${G}${q.maximum.toString()} ${$.unit??"elementen"} ${$.verb}`;return`Te ${W}: verwacht dat ${q.origin??"waarde"} ${G}${q.maximum.toString()} is`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin),W=q.origin==="date"?"vroeg":q.origin==="string"?"kort":"klein";if($)return`Te ${W}: verwacht dat ${q.origin} ${G}${q.minimum.toString()} ${$.unit} ${$.verb}`;return`Te ${W}: verwacht dat ${q.origin} ${G}${q.minimum.toString()} is`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ongeldige tekst: moet met "${G.prefix}" beginnen`;if(G.format==="ends_with")return`Ongeldige tekst: moet op "${G.suffix}" eindigen`;if(G.format==="includes")return`Ongeldige tekst: moet "${G.includes}" bevatten`;if(G.format==="regex")return`Ongeldige tekst: moet overeenkomen met patroon ${G.pattern}`;return`Ongeldig: ${Q[G.format]??q.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${q.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${q.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${q.origin}`;default:return"Ongeldige invoer"}}};function wk(){return{localeError:Ek()}}var Ak=()=>{let Y={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function J(q){return Y[q]??null}let Q={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},X={nan:"NaN",number:"tall",array:"liste"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Ugyldig input: forventet instanceof ${q.expected}, fikk ${W}`;return`Ugyldig input: forventet ${G}, fikk ${W}`}case"invalid_value":if(q.values.length===1)return`Ugyldig verdi: forventet ${Q0(q.values[0])}`;return`Ugyldig valg: forventet en av ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`For stor(t): forventet ${q.origin??"value"} til å ha ${G}${q.maximum.toString()} ${$.unit??"elementer"}`;return`For stor(t): forventet ${q.origin??"value"} til å ha ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`For lite(n): forventet ${q.origin} til å ha ${G}${q.minimum.toString()} ${$.unit}`;return`For lite(n): forventet ${q.origin} til å ha ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ugyldig streng: må starte med "${G.prefix}"`;if(G.format==="ends_with")return`Ugyldig streng: må ende med "${G.suffix}"`;if(G.format==="includes")return`Ugyldig streng: må inneholde "${G.includes}"`;if(G.format==="regex")return`Ugyldig streng: må matche mønsteret ${G.pattern}`;return`Ugyldig ${Q[G.format]??q.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${q.divisor}`;case"unrecognized_keys":return`${q.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${P(q.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${q.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${q.origin}`;default:return"Ugyldig input"}}};function Ck(){return{localeError:Ak()}}var Ik=()=>{let Y={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function J(q){return Y[q]??null}let Q={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"},X={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Fâsit giren: umulan instanceof ${q.expected}, alınan ${W}`;return`Fâsit giren: umulan ${G}, alınan ${W}`}case"invalid_value":if(q.values.length===1)return`Fâsit giren: umulan ${Q0(q.values[0])}`;return`Fâsit tercih: mûteberler ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Fazla büyük: ${q.origin??"value"}, ${G}${q.maximum.toString()} ${$.unit??"elements"} sahip olmalıydı.`;return`Fazla büyük: ${q.origin??"value"}, ${G}${q.maximum.toString()} olmalıydı.`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Fazla küçük: ${q.origin}, ${G}${q.minimum.toString()} ${$.unit} sahip olmalıydı.`;return`Fazla küçük: ${q.origin}, ${G}${q.minimum.toString()} olmalıydı.`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Fâsit metin: "${G.prefix}" ile başlamalı.`;if(G.format==="ends_with")return`Fâsit metin: "${G.suffix}" ile bitmeli.`;if(G.format==="includes")return`Fâsit metin: "${G.includes}" ihtivâ etmeli.`;if(G.format==="regex")return`Fâsit metin: ${G.pattern} nakşına uymalı.`;return`Fâsit ${Q[G.format]??q.format}`}case"not_multiple_of":return`Fâsit sayı: ${q.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`${q.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${q.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function Sk(){return{localeError:Ik()}}var vk=()=>{let Y={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function J(q){return Y[q]??null}let Q={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"},X={nan:"NaN",number:"عدد",array:"ارې"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`ناسم ورودي: باید instanceof ${q.expected} وای, مګر ${W} ترلاسه شو`;return`ناسم ورودي: باید ${G} وای, مګر ${W} ترلاسه شو`}case"invalid_value":if(q.values.length===1)return`ناسم ورودي: باید ${Q0(q.values[0])} وای`;return`ناسم انتخاب: باید یو له ${P(q.values,"|")} څخه وای`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`ډیر لوی: ${q.origin??"ارزښت"} باید ${G}${q.maximum.toString()} ${$.unit??"عنصرونه"} ولري`;return`ډیر لوی: ${q.origin??"ارزښت"} باید ${G}${q.maximum.toString()} وي`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`ډیر کوچنی: ${q.origin} باید ${G}${q.minimum.toString()} ${$.unit} ولري`;return`ډیر کوچنی: ${q.origin} باید ${G}${q.minimum.toString()} وي`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`ناسم متن: باید د "${G.prefix}" سره پیل شي`;if(G.format==="ends_with")return`ناسم متن: باید د "${G.suffix}" سره پای ته ورسيږي`;if(G.format==="includes")return`ناسم متن: باید "${G.includes}" ولري`;if(G.format==="regex")return`ناسم متن: باید د ${G.pattern} سره مطابقت ولري`;return`${Q[G.format]??q.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${q.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${q.keys.length>1?"کلیډونه":"کلیډ"}: ${P(q.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${q.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${q.origin} کې`;default:return"ناسمه ورودي"}}};function _k(){return{localeError:vk()}}var kk=()=>{let Y={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function J(q){return Y[q]??null}let Q={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"},X={nan:"NaN",number:"liczba",array:"tablica"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Nieprawidłowe dane wejściowe: oczekiwano instanceof ${q.expected}, otrzymano ${W}`;return`Nieprawidłowe dane wejściowe: oczekiwano ${G}, otrzymano ${W}`}case"invalid_value":if(q.values.length===1)return`Nieprawidłowe dane wejściowe: oczekiwano ${Q0(q.values[0])}`;return`Nieprawidłowa opcja: oczekiwano jednej z wartości ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Za duża wartość: oczekiwano, że ${q.origin??"wartość"} będzie mieć ${G}${q.maximum.toString()} ${$.unit??"elementów"}`;return`Zbyt duż(y/a/e): oczekiwano, że ${q.origin??"wartość"} będzie wynosić ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Za mała wartość: oczekiwano, że ${q.origin??"wartość"} będzie mieć ${G}${q.minimum.toString()} ${$.unit??"elementów"}`;return`Zbyt mał(y/a/e): oczekiwano, że ${q.origin??"wartość"} będzie wynosić ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Nieprawidłowy ciąg znaków: musi zaczynać się od "${G.prefix}"`;if(G.format==="ends_with")return`Nieprawidłowy ciąg znaków: musi kończyć się na "${G.suffix}"`;if(G.format==="includes")return`Nieprawidłowy ciąg znaków: musi zawierać "${G.includes}"`;if(G.format==="regex")return`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${G.pattern}`;return`Nieprawidłow(y/a/e) ${Q[G.format]??q.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${q.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${q.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${q.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function Fk(){return{localeError:kk()}}var Pk=()=>{let Y={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function J(q){return Y[q]??null}let Q={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},X={nan:"NaN",number:"número",null:"nulo"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Tipo inválido: esperado instanceof ${q.expected}, recebido ${W}`;return`Tipo inválido: esperado ${G}, recebido ${W}`}case"invalid_value":if(q.values.length===1)return`Entrada inválida: esperado ${Q0(q.values[0])}`;return`Opção inválida: esperada uma das ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Muito grande: esperado que ${q.origin??"valor"} tivesse ${G}${q.maximum.toString()} ${$.unit??"elementos"}`;return`Muito grande: esperado que ${q.origin??"valor"} fosse ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Muito pequeno: esperado que ${q.origin} tivesse ${G}${q.minimum.toString()} ${$.unit}`;return`Muito pequeno: esperado que ${q.origin} fosse ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Texto inválido: deve começar com "${G.prefix}"`;if(G.format==="ends_with")return`Texto inválido: deve terminar com "${G.suffix}"`;if(G.format==="includes")return`Texto inválido: deve incluir "${G.includes}"`;if(G.format==="regex")return`Texto inválido: deve corresponder ao padrão ${G.pattern}`;return`${Q[G.format]??q.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${q.divisor}`;case"unrecognized_keys":return`Chave${q.keys.length>1?"s":""} desconhecida${q.keys.length>1?"s":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Chave inválida em ${q.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${q.origin}`;default:return"Campo inválido"}}};function Tk(){return{localeError:Pk()}}function $O(Y,J,Q,X){let q=Math.abs(Y),G=q%10,$=q%100;if($>=11&&$<=19)return X;if(G===1)return J;if(G>=2&&G<=4)return Q;return X}var Zk=()=>{let Y={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function J(q){return Y[q]??null}let Q={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"},X={nan:"NaN",number:"число",array:"массив"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Неверный ввод: ожидалось instanceof ${q.expected}, получено ${W}`;return`Неверный ввод: ожидалось ${G}, получено ${W}`}case"invalid_value":if(q.values.length===1)return`Неверный ввод: ожидалось ${Q0(q.values[0])}`;return`Неверный вариант: ожидалось одно из ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($){let W=Number(q.maximum),j=$O(W,$.unit.one,$.unit.few,$.unit.many);return`Слишком большое значение: ожидалось, что ${q.origin??"значение"} будет иметь ${G}${q.maximum.toString()} ${j}`}return`Слишком большое значение: ожидалось, что ${q.origin??"значение"} будет ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($){let W=Number(q.minimum),j=$O(W,$.unit.one,$.unit.few,$.unit.many);return`Слишком маленькое значение: ожидалось, что ${q.origin} будет иметь ${G}${q.minimum.toString()} ${j}`}return`Слишком маленькое значение: ожидалось, что ${q.origin} будет ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Неверная строка: должна начинаться с "${G.prefix}"`;if(G.format==="ends_with")return`Неверная строка: должна заканчиваться на "${G.suffix}"`;if(G.format==="includes")return`Неверная строка: должна содержать "${G.includes}"`;if(G.format==="regex")return`Неверная строка: должна соответствовать шаблону ${G.pattern}`;return`Неверный ${Q[G.format]??q.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${q.divisor}`;case"unrecognized_keys":return`Нераспознанн${q.keys.length>1?"ые":"ый"} ключ${q.keys.length>1?"и":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${q.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${q.origin}`;default:return"Неверные входные данные"}}};function xk(){return{localeError:Zk()}}var gk=()=>{let Y={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function J(q){return Y[q]??null}let Q={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"},X={nan:"NaN",number:"število",array:"tabela"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Neveljaven vnos: pričakovano instanceof ${q.expected}, prejeto ${W}`;return`Neveljaven vnos: pričakovano ${G}, prejeto ${W}`}case"invalid_value":if(q.values.length===1)return`Neveljaven vnos: pričakovano ${Q0(q.values[0])}`;return`Neveljavna možnost: pričakovano eno izmed ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Preveliko: pričakovano, da bo ${q.origin??"vrednost"} imelo ${G}${q.maximum.toString()} ${$.unit??"elementov"}`;return`Preveliko: pričakovano, da bo ${q.origin??"vrednost"} ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Premajhno: pričakovano, da bo ${q.origin} imelo ${G}${q.minimum.toString()} ${$.unit}`;return`Premajhno: pričakovano, da bo ${q.origin} ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Neveljaven niz: mora se začeti z "${G.prefix}"`;if(G.format==="ends_with")return`Neveljaven niz: mora se končati z "${G.suffix}"`;if(G.format==="includes")return`Neveljaven niz: mora vsebovati "${G.includes}"`;if(G.format==="regex")return`Neveljaven niz: mora ustrezati vzorcu ${G.pattern}`;return`Neveljaven ${Q[G.format]??q.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${q.divisor}`;case"unrecognized_keys":return`Neprepoznan${q.keys.length>1?"i ključi":" ključ"}: ${P(q.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${q.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${q.origin}`;default:return"Neveljaven vnos"}}};function fk(){return{localeError:gk()}}var hk=()=>{let Y={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function J(q){return Y[q]??null}let Q={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},X={nan:"NaN",number:"antal",array:"lista"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Ogiltig inmatning: förväntat instanceof ${q.expected}, fick ${W}`;return`Ogiltig inmatning: förväntat ${G}, fick ${W}`}case"invalid_value":if(q.values.length===1)return`Ogiltig inmatning: förväntat ${Q0(q.values[0])}`;return`Ogiltigt val: förväntade en av ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`För stor(t): förväntade ${q.origin??"värdet"} att ha ${G}${q.maximum.toString()} ${$.unit??"element"}`;return`För stor(t): förväntat ${q.origin??"värdet"} att ha ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`För lite(t): förväntade ${q.origin??"värdet"} att ha ${G}${q.minimum.toString()} ${$.unit}`;return`För lite(t): förväntade ${q.origin??"värdet"} att ha ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ogiltig sträng: måste börja med "${G.prefix}"`;if(G.format==="ends_with")return`Ogiltig sträng: måste sluta med "${G.suffix}"`;if(G.format==="includes")return`Ogiltig sträng: måste innehålla "${G.includes}"`;if(G.format==="regex")return`Ogiltig sträng: måste matcha mönstret "${G.pattern}"`;return`Ogiltig(t) ${Q[G.format]??q.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${q.divisor}`;case"unrecognized_keys":return`${q.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${P(q.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${q.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${q.origin??"värdet"}`;default:return"Ogiltig input"}}};function mk(){return{localeError:hk()}}var yk=()=>{let Y={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function J(q){return Y[q]??null}let Q={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"},X={nan:"NaN",number:"எண்",array:"அணி",null:"வெறுமை"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${q.expected}, பெறப்பட்டது ${W}`;return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${G}, பெறப்பட்டது ${W}`}case"invalid_value":if(q.values.length===1)return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${Q0(q.values[0])}`;return`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${P(q.values,"|")} இல் ஒன்று`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${q.origin??"மதிப்பு"} ${G}${q.maximum.toString()} ${$.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`;return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${q.origin??"மதிப்பு"} ${G}${q.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${q.origin} ${G}${q.minimum.toString()} ${$.unit} ஆக இருக்க வேண்டும்`;return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${q.origin} ${G}${q.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`தவறான சரம்: "${G.prefix}" இல் தொடங்க வேண்டும்`;if(G.format==="ends_with")return`தவறான சரம்: "${G.suffix}" இல் முடிவடைய வேண்டும்`;if(G.format==="includes")return`தவறான சரம்: "${G.includes}" ஐ உள்ளடக்க வேண்டும்`;if(G.format==="regex")return`தவறான சரம்: ${G.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;return`தவறான ${Q[G.format]??q.format}`}case"not_multiple_of":return`தவறான எண்: ${q.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${q.keys.length>1?"கள்":""}: ${P(q.keys,", ")}`;case"invalid_key":return`${q.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${q.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function lk(){return{localeError:yk()}}var uk=()=>{let Y={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function J(q){return Y[q]??null}let Q={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"},X={nan:"NaN",number:"ตัวเลข",array:"อาร์เรย์ (Array)",null:"ไม่มีค่า (null)"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${q.expected} แต่ได้รับ ${W}`;return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${G} แต่ได้รับ ${W}`}case"invalid_value":if(q.values.length===1)return`ค่าไม่ถูกต้อง: ควรเป็น ${Q0(q.values[0])}`;return`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"ไม่เกิน":"น้อยกว่า",$=J(q.origin);if($)return`เกินกำหนด: ${q.origin??"ค่า"} ควรมี${G} ${q.maximum.toString()} ${$.unit??"รายการ"}`;return`เกินกำหนด: ${q.origin??"ค่า"} ควรมี${G} ${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?"อย่างน้อย":"มากกว่า",$=J(q.origin);if($)return`น้อยกว่ากำหนด: ${q.origin} ควรมี${G} ${q.minimum.toString()} ${$.unit}`;return`น้อยกว่ากำหนด: ${q.origin} ควรมี${G} ${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${G.prefix}"`;if(G.format==="ends_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${G.suffix}"`;if(G.format==="includes")return`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${G.includes}" อยู่ในข้อความ`;if(G.format==="regex")return`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${G.pattern}`;return`รูปแบบไม่ถูกต้อง: ${Q[G.format]??q.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${q.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${P(q.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${q.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${q.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function ck(){return{localeError:uk()}}var bk=()=>{let Y={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function J(q){return Y[q]??null}let Q={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Geçersiz değer: beklenen instanceof ${q.expected}, alınan ${W}`;return`Geçersiz değer: beklenen ${G}, alınan ${W}`}case"invalid_value":if(q.values.length===1)return`Geçersiz değer: beklenen ${Q0(q.values[0])}`;return`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Çok büyük: beklenen ${q.origin??"değer"} ${G}${q.maximum.toString()} ${$.unit??"öğe"}`;return`Çok büyük: beklenen ${q.origin??"değer"} ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Çok küçük: beklenen ${q.origin} ${G}${q.minimum.toString()} ${$.unit}`;return`Çok küçük: beklenen ${q.origin} ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Geçersiz metin: "${G.prefix}" ile başlamalı`;if(G.format==="ends_with")return`Geçersiz metin: "${G.suffix}" ile bitmeli`;if(G.format==="includes")return`Geçersiz metin: "${G.includes}" içermeli`;if(G.format==="regex")return`Geçersiz metin: ${G.pattern} desenine uymalı`;return`Geçersiz ${Q[G.format]??q.format}`}case"not_multiple_of":return`Geçersiz sayı: ${q.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${q.keys.length>1?"lar":""}: ${P(q.keys,", ")}`;case"invalid_key":return`${q.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${q.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function pk(){return{localeError:bk()}}var ok=()=>{let Y={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function J(q){return Y[q]??null}let Q={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"},X={nan:"NaN",number:"число",array:"масив"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Неправильні вхідні дані: очікується instanceof ${q.expected}, отримано ${W}`;return`Неправильні вхідні дані: очікується ${G}, отримано ${W}`}case"invalid_value":if(q.values.length===1)return`Неправильні вхідні дані: очікується ${Q0(q.values[0])}`;return`Неправильна опція: очікується одне з ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Занадто велике: очікується, що ${q.origin??"значення"} ${$.verb} ${G}${q.maximum.toString()} ${$.unit??"елементів"}`;return`Занадто велике: очікується, що ${q.origin??"значення"} буде ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Занадто мале: очікується, що ${q.origin} ${$.verb} ${G}${q.minimum.toString()} ${$.unit}`;return`Занадто мале: очікується, що ${q.origin} буде ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Неправильний рядок: повинен починатися з "${G.prefix}"`;if(G.format==="ends_with")return`Неправильний рядок: повинен закінчуватися на "${G.suffix}"`;if(G.format==="includes")return`Неправильний рядок: повинен містити "${G.includes}"`;if(G.format==="regex")return`Неправильний рядок: повинен відповідати шаблону ${G.pattern}`;return`Неправильний ${Q[G.format]??q.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${q.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${q.keys.length>1?"і":""}: ${P(q.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${q.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${q.origin}`;default:return"Неправильні вхідні дані"}}};function dB(){return{localeError:ok()}}function dk(){return dB()}var rk=()=>{let Y={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function J(q){return Y[q]??null}let Q={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"},X={nan:"NaN",number:"نمبر",array:"آرے",null:"نل"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`غلط ان پٹ: instanceof ${q.expected} متوقع تھا، ${W} موصول ہوا`;return`غلط ان پٹ: ${G} متوقع تھا، ${W} موصول ہوا`}case"invalid_value":if(q.values.length===1)return`غلط ان پٹ: ${Q0(q.values[0])} متوقع تھا`;return`غلط آپشن: ${P(q.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`بہت بڑا: ${q.origin??"ویلیو"} کے ${G}${q.maximum.toString()} ${$.unit??"عناصر"} ہونے متوقع تھے`;return`بہت بڑا: ${q.origin??"ویلیو"} کا ${G}${q.maximum.toString()} ہونا متوقع تھا`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`بہت چھوٹا: ${q.origin} کے ${G}${q.minimum.toString()} ${$.unit} ہونے متوقع تھے`;return`بہت چھوٹا: ${q.origin} کا ${G}${q.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`غلط سٹرنگ: "${G.prefix}" سے شروع ہونا چاہیے`;if(G.format==="ends_with")return`غلط سٹرنگ: "${G.suffix}" پر ختم ہونا چاہیے`;if(G.format==="includes")return`غلط سٹرنگ: "${G.includes}" شامل ہونا چاہیے`;if(G.format==="regex")return`غلط سٹرنگ: پیٹرن ${G.pattern} سے میچ ہونا چاہیے`;return`غلط ${Q[G.format]??q.format}`}case"not_multiple_of":return`غلط نمبر: ${q.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${q.keys.length>1?"ز":""}: ${P(q.keys,"، ")}`;case"invalid_key":return`${q.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${q.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function sk(){return{localeError:rk()}}var ik=()=>{let Y={string:{unit:"belgi",verb:"bo‘lishi kerak"},file:{unit:"bayt",verb:"bo‘lishi kerak"},array:{unit:"element",verb:"bo‘lishi kerak"},set:{unit:"element",verb:"bo‘lishi kerak"}};function J(q){return Y[q]??null}let Q={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},X={nan:"NaN",number:"raqam",array:"massiv"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Noto‘g‘ri kirish: kutilgan instanceof ${q.expected}, qabul qilingan ${W}`;return`Noto‘g‘ri kirish: kutilgan ${G}, qabul qilingan ${W}`}case"invalid_value":if(q.values.length===1)return`Noto‘g‘ri kirish: kutilgan ${Q0(q.values[0])}`;return`Noto‘g‘ri variant: quyidagilardan biri kutilgan ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Juda katta: kutilgan ${q.origin??"qiymat"} ${G}${q.maximum.toString()} ${$.unit} ${$.verb}`;return`Juda katta: kutilgan ${q.origin??"qiymat"} ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Juda kichik: kutilgan ${q.origin} ${G}${q.minimum.toString()} ${$.unit} ${$.verb}`;return`Juda kichik: kutilgan ${q.origin} ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Noto‘g‘ri satr: "${G.prefix}" bilan boshlanishi kerak`;if(G.format==="ends_with")return`Noto‘g‘ri satr: "${G.suffix}" bilan tugashi kerak`;if(G.format==="includes")return`Noto‘g‘ri satr: "${G.includes}" ni o‘z ichiga olishi kerak`;if(G.format==="regex")return`Noto‘g‘ri satr: ${G.pattern} shabloniga mos kelishi kerak`;return`Noto‘g‘ri ${Q[G.format]??q.format}`}case"not_multiple_of":return`Noto‘g‘ri raqam: ${q.divisor} ning karralisi bo‘lishi kerak`;case"unrecognized_keys":return`Noma’lum kalit${q.keys.length>1?"lar":""}: ${P(q.keys,", ")}`;case"invalid_key":return`${q.origin} dagi kalit noto‘g‘ri`;case"invalid_union":return"Noto‘g‘ri kirish";case"invalid_element":return`${q.origin} da noto‘g‘ri qiymat`;default:return"Noto‘g‘ri kirish"}}};function tk(){return{localeError:ik()}}var nk=()=>{let Y={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function J(q){return Y[q]??null}let Q={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"},X={nan:"NaN",number:"số",array:"mảng"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Đầu vào không hợp lệ: mong đợi instanceof ${q.expected}, nhận được ${W}`;return`Đầu vào không hợp lệ: mong đợi ${G}, nhận được ${W}`}case"invalid_value":if(q.values.length===1)return`Đầu vào không hợp lệ: mong đợi ${Q0(q.values[0])}`;return`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Quá lớn: mong đợi ${q.origin??"giá trị"} ${$.verb} ${G}${q.maximum.toString()} ${$.unit??"phần tử"}`;return`Quá lớn: mong đợi ${q.origin??"giá trị"} ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Quá nhỏ: mong đợi ${q.origin} ${$.verb} ${G}${q.minimum.toString()} ${$.unit}`;return`Quá nhỏ: mong đợi ${q.origin} ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Chuỗi không hợp lệ: phải bắt đầu bằng "${G.prefix}"`;if(G.format==="ends_with")return`Chuỗi không hợp lệ: phải kết thúc bằng "${G.suffix}"`;if(G.format==="includes")return`Chuỗi không hợp lệ: phải bao gồm "${G.includes}"`;if(G.format==="regex")return`Chuỗi không hợp lệ: phải khớp với mẫu ${G.pattern}`;return`${Q[G.format]??q.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${q.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${P(q.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${q.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${q.origin}`;default:return"Đầu vào không hợp lệ"}}};function ak(){return{localeError:nk()}}var ek=()=>{let Y={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function J(q){return Y[q]??null}let Q={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"},X={nan:"NaN",number:"数字",array:"数组",null:"空值(null)"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`无效输入:期望 instanceof ${q.expected},实际接收 ${W}`;return`无效输入:期望 ${G},实际接收 ${W}`}case"invalid_value":if(q.values.length===1)return`无效输入:期望 ${Q0(q.values[0])}`;return`无效选项:期望以下之一 ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`数值过大:期望 ${q.origin??"值"} ${G}${q.maximum.toString()} ${$.unit??"个元素"}`;return`数值过大:期望 ${q.origin??"值"} ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`数值过小:期望 ${q.origin} ${G}${q.minimum.toString()} ${$.unit}`;return`数值过小:期望 ${q.origin} ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`无效字符串:必须以 "${G.prefix}" 开头`;if(G.format==="ends_with")return`无效字符串:必须以 "${G.suffix}" 结尾`;if(G.format==="includes")return`无效字符串:必须包含 "${G.includes}"`;if(G.format==="regex")return`无效字符串:必须满足正则表达式 ${G.pattern}`;return`无效${Q[G.format]??q.format}`}case"not_multiple_of":return`无效数字:必须是 ${q.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${P(q.keys,", ")}`;case"invalid_key":return`${q.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${q.origin} 中包含无效值(value)`;default:return"无效输入"}}};function YF(){return{localeError:ek()}}var JF=()=>{let Y={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function J(q){return Y[q]??null}let Q={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"},X={nan:"NaN"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`無效的輸入值:預期為 instanceof ${q.expected},但收到 ${W}`;return`無效的輸入值:預期為 ${G},但收到 ${W}`}case"invalid_value":if(q.values.length===1)return`無效的輸入值:預期為 ${Q0(q.values[0])}`;return`無效的選項:預期為以下其中之一 ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`數值過大:預期 ${q.origin??"值"} 應為 ${G}${q.maximum.toString()} ${$.unit??"個元素"}`;return`數值過大:預期 ${q.origin??"值"} 應為 ${G}${q.maximum.toString()}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`數值過小:預期 ${q.origin} 應為 ${G}${q.minimum.toString()} ${$.unit}`;return`數值過小:預期 ${q.origin} 應為 ${G}${q.minimum.toString()}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`無效的字串:必須以 "${G.prefix}" 開頭`;if(G.format==="ends_with")return`無效的字串:必須以 "${G.suffix}" 結尾`;if(G.format==="includes")return`無效的字串:必須包含 "${G.includes}"`;if(G.format==="regex")return`無效的字串:必須符合格式 ${G.pattern}`;return`無效的 ${Q[G.format]??q.format}`}case"not_multiple_of":return`無效的數字:必須為 ${q.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${q.keys.length>1?"們":""}:${P(q.keys,"、")}`;case"invalid_key":return`${q.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${q.origin} 中有無效的值`;default:return"無效的輸入值"}}};function QF(){return{localeError:JF()}}var qF=()=>{let Y={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function J(q){return Y[q]??null}let Q={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"},X={nan:"NaN",number:"nọ́mbà",array:"akopọ"};return(q)=>{switch(q.code){case"invalid_type":{let G=X[q.expected]??q.expected,$=X0(q.input),W=X[$]??$;if(/^[A-Z]/.test(q.expected))return`Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${q.expected}, àmọ̀ a rí ${W}`;return`Ìbáwọlé aṣìṣe: a ní láti fi ${G}, àmọ̀ a rí ${W}`}case"invalid_value":if(q.values.length===1)return`Ìbáwọlé aṣìṣe: a ní láti fi ${Q0(q.values[0])}`;return`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${P(q.values,"|")}`;case"too_big":{let G=q.inclusive?"<=":"<",$=J(q.origin);if($)return`Tó pọ̀ jù: a ní láti jẹ́ pé ${q.origin??"iye"} ${$.verb} ${G}${q.maximum} ${$.unit}`;return`Tó pọ̀ jù: a ní láti jẹ́ ${G}${q.maximum}`}case"too_small":{let G=q.inclusive?">=":">",$=J(q.origin);if($)return`Kéré ju: a ní láti jẹ́ pé ${q.origin} ${$.verb} ${G}${q.minimum} ${$.unit}`;return`Kéré ju: a ní láti jẹ́ ${G}${q.minimum}`}case"invalid_format":{let G=q;if(G.format==="starts_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${G.prefix}"`;if(G.format==="ends_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${G.suffix}"`;if(G.format==="includes")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${G.includes}"`;if(G.format==="regex")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${G.pattern}`;return`Aṣìṣe: ${Q[G.format]??q.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${q.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${P(q.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${q.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${q.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function XF(){return{localeError:qF()}}var WO,rB=Symbol("ZodOutput"),sB=Symbol("ZodInput");class tj{constructor(){this._map=new WeakMap,this._idmap=new Map}add(Y,...J){let Q=J[0];if(this._map.set(Y,Q),Q&&typeof Q==="object"&&"id"in Q)this._idmap.set(Q.id,Y);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(Y){let J=this._map.get(Y);if(J&&typeof J==="object"&&"id"in J)this._idmap.delete(J.id);return this._map.delete(Y),this}get(Y){let J=Y._zod.parent;if(J){let Q={...this.get(J)??{}};delete Q.id;let X={...Q,...this._map.get(Y)};return Object.keys(X).length?X:void 0}return this._map.get(Y)}has(Y){return this._map.has(Y)}}function nj(){return new tj}(WO=globalThis).__zod_globalRegistry??(WO.__zod_globalRegistry=nj());var b8=globalThis.__zod_globalRegistry;function iB(Y,J){return new Y({type:"string",...T(J)})}function tB(Y,J){return new Y({type:"string",coerce:!0,...T(J)})}function aj(Y,J){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...T(J)})}function _$(Y,J){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...T(J)})}function ej(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...T(J)})}function YK(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...T(J)})}function JK(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...T(J)})}function QK(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...T(J)})}function a$(Y,J){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...T(J)})}function qK(Y,J){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...T(J)})}function XK(Y,J){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...T(J)})}function GK(Y,J){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...T(J)})}function $K(Y,J){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...T(J)})}function WK(Y,J){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...T(J)})}function jK(Y,J){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...T(J)})}function KK(Y,J){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...T(J)})}function zK(Y,J){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...T(J)})}function MK(Y,J){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...T(J)})}function nB(Y,J){return new Y({type:"string",format:"mac",check:"string_format",abort:!1,...T(J)})}function NK(Y,J){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...T(J)})}function OK(Y,J){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...T(J)})}function DK(Y,J){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...T(J)})}function UK(Y,J){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...T(J)})}function HK(Y,J){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...T(J)})}function BK(Y,J){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...T(J)})}var aB={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function eB(Y,J){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...T(J)})}function YR(Y,J){return new Y({type:"string",format:"date",check:"string_format",...T(J)})}function JR(Y,J){return new Y({type:"string",format:"time",check:"string_format",precision:null,...T(J)})}function QR(Y,J){return new Y({type:"string",format:"duration",check:"string_format",...T(J)})}function qR(Y,J){return new Y({type:"number",checks:[],...T(J)})}function XR(Y,J){return new Y({type:"number",coerce:!0,checks:[],...T(J)})}function GR(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...T(J)})}function $R(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"float32",...T(J)})}function WR(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"float64",...T(J)})}function jR(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"int32",...T(J)})}function KR(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"uint32",...T(J)})}function zR(Y,J){return new Y({type:"boolean",...T(J)})}function MR(Y,J){return new Y({type:"boolean",coerce:!0,...T(J)})}function NR(Y,J){return new Y({type:"bigint",...T(J)})}function OR(Y,J){return new Y({type:"bigint",coerce:!0,...T(J)})}function DR(Y,J){return new Y({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...T(J)})}function UR(Y,J){return new Y({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...T(J)})}function HR(Y,J){return new Y({type:"symbol",...T(J)})}function BR(Y,J){return new Y({type:"undefined",...T(J)})}function RR(Y,J){return new Y({type:"null",...T(J)})}function VR(Y){return new Y({type:"any"})}function LR(Y){return new Y({type:"unknown"})}function ER(Y,J){return new Y({type:"never",...T(J)})}function wR(Y,J){return new Y({type:"void",...T(J)})}function AR(Y,J){return new Y({type:"date",...T(J)})}function CR(Y,J){return new Y({type:"date",coerce:!0,...T(J)})}function IR(Y,J){return new Y({type:"nan",...T(J)})}function RJ(Y,J){return new yj({check:"less_than",...T(J),value:Y,inclusive:!1})}function p8(Y,J){return new yj({check:"less_than",...T(J),value:Y,inclusive:!0})}function VJ(Y,J){return new lj({check:"greater_than",...T(J),value:Y,inclusive:!1})}function I8(Y,J){return new lj({check:"greater_than",...T(J),value:Y,inclusive:!0})}function RK(Y){return VJ(0,Y)}function VK(Y){return RJ(0,Y)}function LK(Y){return p8(0,Y)}function EK(Y){return I8(0,Y)}function rQ(Y,J){return new NH({check:"multiple_of",...T(J),value:Y})}function Mq(Y,J){return new UH({check:"max_size",...T(J),maximum:Y})}function LJ(Y,J){return new HH({check:"min_size",...T(J),minimum:Y})}function uX(Y,J){return new BH({check:"size_equals",...T(J),size:Y})}function cX(Y,J){return new RH({check:"max_length",...T(J),maximum:Y})}function XQ(Y,J){return new VH({check:"min_length",...T(J),minimum:Y})}function bX(Y,J){return new LH({check:"length_equals",...T(J),length:Y})}function e$(Y,J){return new EH({check:"string_format",format:"regex",...T(J),pattern:Y})}function Y9(Y){return new wH({check:"string_format",format:"lowercase",...T(Y)})}function J9(Y){return new AH({check:"string_format",format:"uppercase",...T(Y)})}function Q9(Y,J){return new CH({check:"string_format",format:"includes",...T(J),includes:Y})}function q9(Y,J){return new IH({check:"string_format",format:"starts_with",...T(J),prefix:Y})}function X9(Y,J){return new SH({check:"string_format",format:"ends_with",...T(J),suffix:Y})}function wK(Y,J,Q){return new vH({check:"property",property:Y,schema:J,...T(Q)})}function G9(Y,J){return new _H({check:"mime_type",mime:Y,...T(J)})}function nY(Y){return new kH({check:"overwrite",tx:Y})}function $9(Y){return nY((J)=>J.normalize(Y))}function W9(){return nY((Y)=>Y.trim())}function j9(){return nY((Y)=>Y.toLowerCase())}function K9(){return nY((Y)=>Y.toUpperCase())}function z9(){return nY((Y)=>RU(Y))}function SR(Y,J,Q){return new Y({type:"array",element:J,...T(Q)})}function GF(Y,J,Q){return new Y({type:"union",options:J,...T(Q)})}function $F(Y,J,Q){return new Y({type:"union",options:J,inclusive:!1,...T(Q)})}function WF(Y,J,Q,X){return new Y({type:"union",options:Q,discriminator:J,...T(X)})}function jF(Y,J,Q){return new Y({type:"intersection",left:J,right:Q})}function KF(Y,J,Q,X){let q=Q instanceof G0;return new Y({type:"tuple",items:J,rest:q?Q:null,...T(q?X:Q)})}function zF(Y,J,Q,X){return new Y({type:"record",keyType:J,valueType:Q,...T(X)})}function MF(Y,J,Q,X){return new Y({type:"map",keyType:J,valueType:Q,...T(X)})}function NF(Y,J,Q){return new Y({type:"set",valueType:J,...T(Q)})}function OF(Y,J,Q){let X=Array.isArray(J)?Object.fromEntries(J.map((q)=>[q,q])):J;return new Y({type:"enum",entries:X,...T(Q)})}function DF(Y,J,Q){return new Y({type:"enum",entries:J,...T(Q)})}function UF(Y,J,Q){return new Y({type:"literal",values:Array.isArray(J)?J:[J],...T(Q)})}function vR(Y,J){return new Y({type:"file",...T(J)})}function HF(Y,J){return new Y({type:"transform",transform:J})}function BF(Y,J){return new Y({type:"optional",innerType:J})}function RF(Y,J){return new Y({type:"nullable",innerType:J})}function VF(Y,J,Q){return new Y({type:"default",innerType:J,get defaultValue(){return typeof Q==="function"?Q():LU(Q)}})}function LF(Y,J,Q){return new Y({type:"nonoptional",innerType:J,...T(Q)})}function EF(Y,J){return new Y({type:"success",innerType:J})}function wF(Y,J,Q){return new Y({type:"catch",innerType:J,catchValue:typeof Q==="function"?Q:()=>Q})}function AF(Y,J,Q){return new Y({type:"pipe",in:J,out:Q})}function CF(Y,J){return new Y({type:"readonly",innerType:J})}function IF(Y,J,Q){return new Y({type:"template_literal",parts:J,...T(Q)})}function SF(Y,J){return new Y({type:"lazy",getter:J})}function vF(Y,J){return new Y({type:"promise",innerType:J})}function _R(Y,J,Q){let X=T(Q);return X.abort??(X.abort=!0),new Y({type:"custom",check:"custom",fn:J,...X})}function kR(Y,J,Q){return new Y({type:"custom",check:"custom",fn:J,...T(Q)})}function FR(Y){let J=PR((Q)=>{return Q.addIssue=(X)=>{if(typeof X==="string")Q.issues.push(S$(X,Q.value,J._zod.def));else{let q=X;if(q.fatal)q.continue=!1;q.code??(q.code="custom"),q.input??(q.input=Q.value),q.inst??(q.inst=J),q.continue??(q.continue=!J._zod.def.abort),Q.issues.push(S$(q))}},Y(Q.value,Q)});return J}function PR(Y,J){let Q=new x0({check:"custom",...T(J)});return Q._zod.check=Y,Q}function TR(Y){let J=new x0({check:"describe"});return J._zod.onattach=[(Q)=>{let X=b8.get(Q)??{};b8.add(Q,{...X,description:Y})}],J._zod.check=()=>{},J}function ZR(Y){let J=new x0({check:"meta"});return J._zod.onattach=[(Q)=>{let X=b8.get(Q)??{};b8.add(Q,{...X,...Y})}],J._zod.check=()=>{},J}function xR(Y,J){let Q=T(J),X=Q.truthy??["true","1","yes","on","y","enabled"],q=Q.falsy??["false","0","no","off","n","disabled"];if(Q.case!=="sensitive")X=X.map((N)=>typeof N==="string"?N.toLowerCase():N),q=q.map((N)=>typeof N==="string"?N.toLowerCase():N);let G=new Set(X),$=new Set(q),W=Y.Codec??sj,j=Y.Boolean??pj,K=new(Y.String??lX)({type:"string",error:Q.error}),z=new j({type:"boolean",error:Q.error}),M=new W({type:"pipe",in:K,out:z,transform:(N,O)=>{let D=N;if(Q.case!=="sensitive")D=D.toLowerCase();if(G.has(D))return!0;else if($.has(D))return!1;else return O.issues.push({code:"invalid_value",expected:"stringbool",values:[...G,...$],input:O.value,inst:M,continue:!1}),{}},reverseTransform:(N,O)=>{if(N===!0)return X[0]||"true";else return q[0]||"false"},error:Q.error});return M}function pX(Y,J,Q,X={}){let q=T(X),G={...T(X),check:"string_format",type:"string",format:J,fn:typeof Q==="function"?Q:($)=>Q.test($),...q};if(Q instanceof RegExp)G.pattern=Q;return new Y(G)}function sQ(Y){let J=Y?.target??"draft-2020-12";if(J==="draft-4")J="draft-04";if(J==="draft-7")J="draft-07";return{processors:Y.processors??{},metadataRegistry:Y?.metadata??b8,target:J,unrepresentable:Y?.unrepresentable??"throw",override:Y?.override??(()=>{}),io:Y?.io??"output",counter:0,seen:new Map,cycles:Y?.cycles??"ref",reused:Y?.reused??"inline",external:Y?.external??void 0}}function A0(Y,J,Q={path:[],schemaPath:[]}){var X;let q=Y._zod.def,G=J.seen.get(Y);if(G){if(G.count++,Q.schemaPath.includes(Y))G.cycle=Q.path;return G.schema}let $={schema:{},count:1,cycle:void 0,path:Q.path};J.seen.set(Y,$);let W=Y._zod.toJSONSchema?.();if(W)$.schema=W;else{let K={...Q,schemaPath:[...Q.schemaPath,Y],path:Q.path};if(Y._zod.processJSONSchema)Y._zod.processJSONSchema(J,$.schema,K);else{let M=$.schema,N=J.processors[q.type];if(!N)throw Error(`[toJSONSchema]: Non-representable type encountered: ${q.type}`);N(Y,J,M,K)}let z=Y._zod.parent;if(z){if(!$.ref)$.ref=z;A0(z,J,K),J.seen.get(z).isParent=!0}}let j=J.metadataRegistry.get(Y);if(j)Object.assign($.schema,j);if(J.io==="input"&&D8(Y))delete $.schema.examples,delete $.schema.default;if(J.io==="input"&&$.schema._prefault)(X=$.schema).default??(X.default=$.schema._prefault);return delete $.schema._prefault,J.seen.get(Y).schema}function iQ(Y,J){let Q=Y.seen.get(J);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let X=new Map;for(let $ of Y.seen.entries()){let W=Y.metadataRegistry.get($[0])?.id;if(W){let j=X.get(W);if(j&&j!==$[0])throw Error(`Duplicate schema id "${W}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);X.set(W,$[0])}}let q=($)=>{let W=Y.target==="draft-2020-12"?"$defs":"definitions";if(Y.external){let z=Y.external.registry.get($[0])?.id,M=Y.external.uri??((O)=>O);if(z)return{ref:M(z)};let N=$[1].defId??$[1].schema.id??`schema${Y.counter++}`;return $[1].defId=N,{defId:N,ref:`${M("__shared")}#/${W}/${N}`}}if($[1]===Q)return{ref:"#"};let j=`#/${W}/`,K=$[1].schema.id??`__schema${Y.counter++}`;return{defId:K,ref:j+K}},G=($)=>{if($[1].schema.$ref)return;let W=$[1],{ref:j,defId:K}=q($);if(W.def={...W.schema},K)W.defId=K;let z=W.schema;for(let M in z)delete z[M];z.$ref=j};if(Y.cycles==="throw")for(let $ of Y.seen.entries()){let W=$[1];if(W.cycle)throw Error(`Cycle detected: #/${W.cycle?.join("/")}/<root>
73
+
74
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let $ of Y.seen.entries()){let W=$[1];if(J===$[0]){G($);continue}if(Y.external){let j=Y.external.registry.get($[0])?.id;if(J!==$[0]&&j){G($);continue}}if(Y.metadataRegistry.get($[0])?.id){G($);continue}if(W.cycle){G($);continue}if(W.count>1){if(Y.reused==="ref"){G($);continue}}}}function tQ(Y,J){let Q=Y.seen.get(J);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let X=($)=>{let W=Y.seen.get($);if(W.ref===null)return;let j=W.def??W.schema,K={...j},z=W.ref;if(W.ref=null,z){X(z);let N=Y.seen.get(z),O=N.schema;if(O.$ref&&(Y.target==="draft-07"||Y.target==="draft-04"||Y.target==="openapi-3.0"))j.allOf=j.allOf??[],j.allOf.push(O);else Object.assign(j,O);if(Object.assign(j,K),$._zod.parent===z)for(let D in j){if(D==="$ref"||D==="allOf")continue;if(!(D in K))delete j[D]}if(O.$ref&&N.def)for(let D in j){if(D==="$ref"||D==="allOf")continue;if(D in N.def&&JSON.stringify(j[D])===JSON.stringify(N.def[D]))delete j[D]}}let M=$._zod.parent;if(M&&M!==z){X(M);let N=Y.seen.get(M);if(N?.schema.$ref){if(j.$ref=N.schema.$ref,N.def)for(let O in j){if(O==="$ref"||O==="allOf")continue;if(O in N.def&&JSON.stringify(j[O])===JSON.stringify(N.def[O]))delete j[O]}}}Y.override({zodSchema:$,jsonSchema:j,path:W.path??[]})};for(let $ of[...Y.seen.entries()].reverse())X($[0]);let q={};if(Y.target==="draft-2020-12")q.$schema="https://json-schema.org/draft/2020-12/schema";else if(Y.target==="draft-07")q.$schema="http://json-schema.org/draft-07/schema#";else if(Y.target==="draft-04")q.$schema="http://json-schema.org/draft-04/schema#";else if(Y.target==="openapi-3.0");if(Y.external?.uri){let $=Y.external.registry.get(J)?.id;if(!$)throw Error("Schema is missing an `id` property");q.$id=Y.external.uri($)}Object.assign(q,Q.def??Q.schema);let G=Y.external?.defs??{};for(let $ of Y.seen.entries()){let W=$[1];if(W.def&&W.defId)G[W.defId]=W.def}if(Y.external);else if(Object.keys(G).length>0)if(Y.target==="draft-2020-12")q.$defs=G;else q.definitions=G;try{let $=JSON.parse(JSON.stringify(q));return Object.defineProperty($,"~standard",{value:{...J["~standard"],jsonSchema:{input:KX(J,"input",Y.processors),output:KX(J,"output",Y.processors)}},enumerable:!1,writable:!1}),$}catch($){throw Error("Error converting schema to JSON.")}}function D8(Y,J){let Q=J??{seen:new Set};if(Q.seen.has(Y))return!1;Q.seen.add(Y);let X=Y._zod.def;if(X.type==="transform")return!0;if(X.type==="array")return D8(X.element,Q);if(X.type==="set")return D8(X.valueType,Q);if(X.type==="lazy")return D8(X.getter(),Q);if(X.type==="promise"||X.type==="optional"||X.type==="nonoptional"||X.type==="nullable"||X.type==="readonly"||X.type==="default"||X.type==="prefault")return D8(X.innerType,Q);if(X.type==="intersection")return D8(X.left,Q)||D8(X.right,Q);if(X.type==="record"||X.type==="map")return D8(X.keyType,Q)||D8(X.valueType,Q);if(X.type==="pipe")return D8(X.in,Q)||D8(X.out,Q);if(X.type==="object"){for(let q in X.shape)if(D8(X.shape[q],Q))return!0;return!1}if(X.type==="union"){for(let q of X.options)if(D8(q,Q))return!0;return!1}if(X.type==="tuple"){for(let q of X.items)if(D8(q,Q))return!0;if(X.rest&&D8(X.rest,Q))return!0;return!1}return!1}var gR=(Y,J={})=>(Q)=>{let X=sQ({...Q,processors:J});return A0(Y,X),iQ(X,Y),tQ(X,Y)},KX=(Y,J,Q={})=>(X)=>{let{libraryOptions:q,target:G}=X??{},$=sQ({...q??{},target:G,io:J,processors:Q});return A0(Y,$),iQ($,Y),tQ($,Y)},_F={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},fR=(Y,J,Q,X)=>{let q=Q;q.type="string";let{minimum:G,maximum:$,format:W,patterns:j,contentEncoding:K}=Y._zod.bag;if(typeof G==="number")q.minLength=G;if(typeof $==="number")q.maxLength=$;if(W){if(q.format=_F[W]??W,q.format==="")delete q.format;if(W==="time")delete q.format}if(K)q.contentEncoding=K;if(j&&j.size>0){let z=[...j];if(z.length===1)q.pattern=z[0].source;else if(z.length>1)q.allOf=[...z.map((M)=>({...J.target==="draft-07"||J.target==="draft-04"||J.target==="openapi-3.0"?{type:"string"}:{},pattern:M.source}))]}},hR=(Y,J,Q,X)=>{let q=Q,{minimum:G,maximum:$,format:W,multipleOf:j,exclusiveMaximum:K,exclusiveMinimum:z}=Y._zod.bag;if(typeof W==="string"&&W.includes("int"))q.type="integer";else q.type="number";if(typeof z==="number")if(J.target==="draft-04"||J.target==="openapi-3.0")q.minimum=z,q.exclusiveMinimum=!0;else q.exclusiveMinimum=z;if(typeof G==="number"){if(q.minimum=G,typeof z==="number"&&J.target!=="draft-04")if(z>=G)delete q.minimum;else delete q.exclusiveMinimum}if(typeof K==="number")if(J.target==="draft-04"||J.target==="openapi-3.0")q.maximum=K,q.exclusiveMaximum=!0;else q.exclusiveMaximum=K;if(typeof $==="number"){if(q.maximum=$,typeof K==="number"&&J.target!=="draft-04")if(K<=$)delete q.maximum;else delete q.exclusiveMaximum}if(typeof j==="number")q.multipleOf=j},mR=(Y,J,Q,X)=>{Q.type="boolean"},yR=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},lR=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},uR=(Y,J,Q,X)=>{if(J.target==="openapi-3.0")Q.type="string",Q.nullable=!0,Q.enum=[null];else Q.type="null"},cR=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},bR=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},pR=(Y,J,Q,X)=>{Q.not={}},oR=(Y,J,Q,X)=>{},dR=(Y,J,Q,X)=>{},rR=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},sR=(Y,J,Q,X)=>{let q=Y._zod.def,G=Cj(q.entries);if(G.every(($)=>typeof $==="number"))Q.type="number";if(G.every(($)=>typeof $==="string"))Q.type="string";Q.enum=G},iR=(Y,J,Q,X)=>{let q=Y._zod.def,G=[];for(let $ of q.values)if($===void 0){if(J.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof $==="bigint")if(J.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else G.push(Number($));else G.push($);if(G.length===0);else if(G.length===1){let $=G[0];if(Q.type=$===null?"null":typeof $,J.target==="draft-04"||J.target==="openapi-3.0")Q.enum=[$];else Q.const=$}else{if(G.every(($)=>typeof $==="number"))Q.type="number";if(G.every(($)=>typeof $==="string"))Q.type="string";if(G.every(($)=>typeof $==="boolean"))Q.type="boolean";if(G.every(($)=>$===null))Q.type="null";Q.enum=G}},tR=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},nR=(Y,J,Q,X)=>{let q=Q,G=Y._zod.pattern;if(!G)throw Error("Pattern not found in template literal");q.type="string",q.pattern=G.source},aR=(Y,J,Q,X)=>{let q=Q,G={type:"string",format:"binary",contentEncoding:"binary"},{minimum:$,maximum:W,mime:j}=Y._zod.bag;if($!==void 0)G.minLength=$;if(W!==void 0)G.maxLength=W;if(j)if(j.length===1)G.contentMediaType=j[0],Object.assign(q,G);else Object.assign(q,G),q.anyOf=j.map((K)=>({contentMediaType:K}));else Object.assign(q,G)},eR=(Y,J,Q,X)=>{Q.type="boolean"},YV=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},JV=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},QV=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},qV=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},XV=(Y,J,Q,X)=>{if(J.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},GV=(Y,J,Q,X)=>{let q=Q,G=Y._zod.def,{minimum:$,maximum:W}=Y._zod.bag;if(typeof $==="number")q.minItems=$;if(typeof W==="number")q.maxItems=W;q.type="array",q.items=A0(G.element,J,{...X,path:[...X.path,"items"]})},$V=(Y,J,Q,X)=>{let q=Q,G=Y._zod.def;q.type="object",q.properties={};let $=G.shape;for(let K in $)q.properties[K]=A0($[K],J,{...X,path:[...X.path,"properties",K]});let W=new Set(Object.keys($)),j=new Set([...W].filter((K)=>{let z=G.shape[K]._zod;if(J.io==="input")return z.optin===void 0;else return z.optout===void 0}));if(j.size>0)q.required=Array.from(j);if(G.catchall?._zod.def.type==="never")q.additionalProperties=!1;else if(!G.catchall){if(J.io==="output")q.additionalProperties=!1}else if(G.catchall)q.additionalProperties=A0(G.catchall,J,{...X,path:[...X.path,"additionalProperties"]})},AK=(Y,J,Q,X)=>{let q=Y._zod.def,G=q.inclusive===!1,$=q.options.map((W,j)=>A0(W,J,{...X,path:[...X.path,G?"oneOf":"anyOf",j]}));if(G)Q.oneOf=$;else Q.anyOf=$},WV=(Y,J,Q,X)=>{let q=Y._zod.def,G=A0(q.left,J,{...X,path:[...X.path,"allOf",0]}),$=A0(q.right,J,{...X,path:[...X.path,"allOf",1]}),W=(K)=>("allOf"in K)&&Object.keys(K).length===1,j=[...W(G)?G.allOf:[G],...W($)?$.allOf:[$]];Q.allOf=j},jV=(Y,J,Q,X)=>{let q=Q,G=Y._zod.def;q.type="array";let $=J.target==="draft-2020-12"?"prefixItems":"items",W=J.target==="draft-2020-12"?"items":J.target==="openapi-3.0"?"items":"additionalItems",j=G.items.map((N,O)=>A0(N,J,{...X,path:[...X.path,$,O]})),K=G.rest?A0(G.rest,J,{...X,path:[...X.path,W,...J.target==="openapi-3.0"?[G.items.length]:[]]}):null;if(J.target==="draft-2020-12"){if(q.prefixItems=j,K)q.items=K}else if(J.target==="openapi-3.0"){if(q.items={anyOf:j},K)q.items.anyOf.push(K);if(q.minItems=j.length,!K)q.maxItems=j.length}else if(q.items=j,K)q.additionalItems=K;let{minimum:z,maximum:M}=Y._zod.bag;if(typeof z==="number")q.minItems=z;if(typeof M==="number")q.maxItems=M},KV=(Y,J,Q,X)=>{let q=Q,G=Y._zod.def;q.type="object";let $=G.keyType,W=$._zod.bag?.patterns;if(G.mode==="loose"&&W&&W.size>0){let K=A0(G.valueType,J,{...X,path:[...X.path,"patternProperties","*"]});q.patternProperties={};for(let z of W)q.patternProperties[z.source]=K}else{if(J.target==="draft-07"||J.target==="draft-2020-12")q.propertyNames=A0(G.keyType,J,{...X,path:[...X.path,"propertyNames"]});q.additionalProperties=A0(G.valueType,J,{...X,path:[...X.path,"additionalProperties"]})}let j=$._zod.values;if(j){let K=[...j].filter((z)=>typeof z==="string"||typeof z==="number");if(K.length>0)q.required=K}},zV=(Y,J,Q,X)=>{let q=Y._zod.def,G=A0(q.innerType,J,X),$=J.seen.get(Y);if(J.target==="openapi-3.0")$.ref=q.innerType,Q.nullable=!0;else Q.anyOf=[G,{type:"null"}]},MV=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);G.ref=q.innerType},NV=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);G.ref=q.innerType,Q.default=JSON.parse(JSON.stringify(q.defaultValue))},OV=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);if(G.ref=q.innerType,J.io==="input")Q._prefault=JSON.parse(JSON.stringify(q.defaultValue))},DV=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);G.ref=q.innerType;let $;try{$=q.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}Q.default=$},UV=(Y,J,Q,X)=>{let q=Y._zod.def,G=J.io==="input"?q.in._zod.def.type==="transform"?q.out:q.in:q.out;A0(G,J,X);let $=J.seen.get(Y);$.ref=G},HV=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);G.ref=q.innerType,Q.readOnly=!0},BV=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);G.ref=q.innerType},CK=(Y,J,Q,X)=>{let q=Y._zod.def;A0(q.innerType,J,X);let G=J.seen.get(Y);G.ref=q.innerType},RV=(Y,J,Q,X)=>{let q=Y._zod.innerType;A0(q,J,X);let G=J.seen.get(Y);G.ref=q},D5={string:fR,number:hR,boolean:mR,bigint:yR,symbol:lR,null:uR,undefined:cR,void:bR,never:pR,any:oR,unknown:dR,date:rR,enum:sR,literal:iR,nan:tR,template_literal:nR,file:aR,success:eR,custom:YV,function:JV,transform:QV,map:qV,set:XV,array:GV,object:$V,union:AK,intersection:WV,tuple:jV,record:KV,nullable:zV,nonoptional:MV,default:NV,prefault:OV,catch:DV,pipe:UV,readonly:HV,promise:BV,optional:CK,lazy:RV};function VV(Y,J){if("_idmap"in Y){let X=Y,q=sQ({...J,processors:D5}),G={};for(let j of X._idmap.entries()){let[K,z]=j;A0(z,q)}let $={},W={registry:X,uri:J?.uri,defs:G};q.external=W;for(let j of X._idmap.entries()){let[K,z]=j;iQ(q,z),$[K]=tQ(q,z)}if(Object.keys(G).length>0){let j=q.target==="draft-2020-12"?"$defs":"definitions";$.__shared={[j]:G}}return{schemas:$}}let Q=sQ({...J,processors:D5});return A0(Y,Q),iQ(Q,Y),tQ(Q,Y)}class LV{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(Y){this.ctx.counter=Y}get seen(){return this.ctx.seen}constructor(Y){let J=Y?.target??"draft-2020-12";if(J==="draft-4")J="draft-04";if(J==="draft-7")J="draft-07";this.ctx=sQ({processors:D5,target:J,...Y?.metadata&&{metadata:Y.metadata},...Y?.unrepresentable&&{unrepresentable:Y.unrepresentable},...Y?.override&&{override:Y.override},...Y?.io&&{io:Y.io}})}process(Y,J={path:[],schemaPath:[]}){return A0(Y,this.ctx,J)}emit(Y,J){if(J){if(J.cycles)this.ctx.cycles=J.cycles;if(J.reused)this.ctx.reused=J.reused;if(J.external)this.ctx.external=J.external}iQ(this.ctx,Y);let Q=tQ(this.ctx,Y),{"~standard":X,...q}=Q;return q}}var kF={},EV={};XY(EV,{xor:()=>F6,xid:()=>eV,void:()=>C6,uuidv7:()=>oV,uuidv6:()=>pV,uuidv4:()=>bV,uuid:()=>cV,url:()=>dV,unknown:()=>GQ,union:()=>P9,undefined:()=>w6,ulid:()=>aV,uint64:()=>L6,uint32:()=>B6,tuple:()=>rK,transform:()=>Z9,templateLiteral:()=>b6,symbol:()=>E6,superRefine:()=>Lz,success:()=>l6,stringbool:()=>t6,stringFormat:()=>z6,string:()=>k$,strictObject:()=>_6,set:()=>g6,refine:()=>Vz,record:()=>sK,readonly:()=>Oz,promise:()=>p6,preprocess:()=>a6,prefault:()=>$z,pipe:()=>OX,partialRecord:()=>T6,optional:()=>MX,object:()=>v6,number:()=>PK,nullish:()=>y6,nullable:()=>NX,null:()=>fK,nonoptional:()=>Wz,never:()=>k9,nativeEnum:()=>f6,nanoid:()=>iV,nan:()=>u6,meta:()=>s6,map:()=>x6,mac:()=>Q6,looseRecord:()=>Z6,looseObject:()=>k6,literal:()=>h6,lazy:()=>Hz,ksuid:()=>Y6,keyof:()=>S6,jwt:()=>K6,json:()=>n6,ipv6:()=>q6,ipv4:()=>J6,intersection:()=>oK,int64:()=>V6,int32:()=>H6,int:()=>F$,instanceof:()=>i6,httpUrl:()=>rV,hostname:()=>M6,hex:()=>N6,hash:()=>O6,guid:()=>uV,function:()=>P$,float64:()=>U6,float32:()=>D6,file:()=>m6,exactOptional:()=>Jz,enum:()=>T9,emoji:()=>sV,email:()=>lV,e164:()=>j6,discriminatedUnion:()=>P6,describe:()=>r6,date:()=>I6,custom:()=>d6,cuid2:()=>nV,cuid:()=>tV,codec:()=>c6,cidrv6:()=>G6,cidrv4:()=>X6,check:()=>o6,catch:()=>zz,boolean:()=>TK,bigint:()=>R6,base64url:()=>W6,base64:()=>$6,array:()=>tX,any:()=>A6,_function:()=>P$,_default:()=>Xz,_ZodString:()=>M9,ZodXor:()=>cK,ZodXID:()=>R9,ZodVoid:()=>lK,ZodUnknown:()=>mK,ZodUnion:()=>aX,ZodUndefined:()=>xK,ZodUUID:()=>VY,ZodURL:()=>dX,ZodULID:()=>B9,ZodType:()=>$0,ZodTuple:()=>dK,ZodTransform:()=>eK,ZodTemplateLiteral:()=>Dz,ZodSymbol:()=>ZK,ZodSuccess:()=>jz,ZodStringFormat:()=>v0,ZodString:()=>oX,ZodSet:()=>tK,ZodRecord:()=>eX,ZodReadonly:()=>Nz,ZodPromise:()=>Bz,ZodPrefault:()=>Gz,ZodPipe:()=>f9,ZodOptional:()=>x9,ZodObject:()=>nX,ZodNumberFormat:()=>DQ,ZodNumber:()=>rX,ZodNullable:()=>Qz,ZodNull:()=>gK,ZodNonOptional:()=>g9,ZodNever:()=>yK,ZodNanoID:()=>D9,ZodNaN:()=>Mz,ZodMap:()=>iK,ZodMAC:()=>FK,ZodLiteral:()=>nK,ZodLazy:()=>Uz,ZodKSUID:()=>V9,ZodJWT:()=>v9,ZodIntersection:()=>pK,ZodIPv6:()=>E9,ZodIPv4:()=>L9,ZodGUID:()=>zX,ZodFunction:()=>Rz,ZodFile:()=>aK,ZodExactOptional:()=>Yz,ZodEnum:()=>nQ,ZodEmoji:()=>O9,ZodEmail:()=>N9,ZodE164:()=>S9,ZodDiscriminatedUnion:()=>bK,ZodDefault:()=>qz,ZodDate:()=>F9,ZodCustomStringFormat:()=>Nq,ZodCustom:()=>YG,ZodCodec:()=>h9,ZodCatch:()=>Kz,ZodCUID2:()=>H9,ZodCUID:()=>U9,ZodCIDRv6:()=>A9,ZodCIDRv4:()=>w9,ZodBoolean:()=>sX,ZodBigIntFormat:()=>_9,ZodBigInt:()=>iX,ZodBase64URL:()=>I9,ZodBase64:()=>C9,ZodArray:()=>uK,ZodAny:()=>hK});var wV={};XY(wV,{uppercase:()=>J9,trim:()=>W9,toUpperCase:()=>K9,toLowerCase:()=>j9,startsWith:()=>q9,slugify:()=>z9,size:()=>uX,regex:()=>e$,property:()=>wK,positive:()=>RK,overwrite:()=>nY,normalize:()=>$9,nonpositive:()=>LK,nonnegative:()=>EK,negative:()=>VK,multipleOf:()=>rQ,minSize:()=>LJ,minLength:()=>XQ,mime:()=>G9,maxSize:()=>Mq,maxLength:()=>cX,lte:()=>p8,lt:()=>RJ,lowercase:()=>Y9,length:()=>bX,includes:()=>Q9,gte:()=>I8,gt:()=>VJ,endsWith:()=>X9});var IK={};XY(IK,{time:()=>IV,duration:()=>SV,datetime:()=>AV,date:()=>CV,ZodISOTime:()=>_K,ZodISODuration:()=>kK,ZodISODateTime:()=>SK,ZodISODate:()=>vK});var SK=V("ZodISODateTime",(Y,J)=>{cH.init(Y,J),v0.init(Y,J)});function AV(Y){return eB(SK,Y)}var vK=V("ZodISODate",(Y,J)=>{bH.init(Y,J),v0.init(Y,J)});function CV(Y){return YR(vK,Y)}var _K=V("ZodISOTime",(Y,J)=>{pH.init(Y,J),v0.init(Y,J)});function IV(Y){return JR(_K,Y)}var kK=V("ZodISODuration",(Y,J)=>{oH.init(Y,J),v0.init(Y,J)});function SV(Y){return QR(kK,Y)}var vV=(Y,J)=>{Sj.init(Y,J),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(Q)=>_j(Y,Q)},flatten:{value:(Q)=>vj(Y,Q)},addIssue:{value:(Q)=>{Y.issues.push(Q),Y.message=JSON.stringify(Y.issues,C$,2)}},addIssues:{value:(Q)=>{Y.issues.push(...Q),Y.message=JSON.stringify(Y.issues,C$,2)}},isEmpty:{get(){return Y.issues.length===0}}})},FF=V("ZodError",vV),h8=V("ZodError",vV,{Parent:Error}),_V=ZX(h8),kV=xX(h8),FV=gX(h8),PV=fX(h8),TV=kj(h8),ZV=Fj(h8),xV=Pj(h8),gV=Tj(h8),fV=Zj(h8),hV=xj(h8),mV=gj(h8),yV=fj(h8),$0=V("ZodType",(Y,J)=>{return G0.init(Y,J),Object.assign(Y["~standard"],{jsonSchema:{input:KX(Y,"input"),output:KX(Y,"output")}}),Y.toJSONSchema=gR(Y,{}),Y.def=J,Y.type=J.type,Object.defineProperty(Y,"_def",{value:J}),Y.check=(...Q)=>{return Y.clone(O0.mergeDefs(J,{checks:[...J.checks??[],...Q.map((X)=>typeof X==="function"?{_zod:{check:X,def:{check:"custom"},onattach:[]}}:X)]}),{parent:!0})},Y.with=Y.check,Y.clone=(Q,X)=>r8(Y,Q,X),Y.brand=()=>Y,Y.register=(Q,X)=>{return Q.add(Y,X),Y},Y.parse=(Q,X)=>_V(Y,Q,X,{callee:Y.parse}),Y.safeParse=(Q,X)=>FV(Y,Q,X),Y.parseAsync=async(Q,X)=>kV(Y,Q,X,{callee:Y.parseAsync}),Y.safeParseAsync=async(Q,X)=>PV(Y,Q,X),Y.spa=Y.safeParseAsync,Y.encode=(Q,X)=>TV(Y,Q,X),Y.decode=(Q,X)=>ZV(Y,Q,X),Y.encodeAsync=async(Q,X)=>xV(Y,Q,X),Y.decodeAsync=async(Q,X)=>gV(Y,Q,X),Y.safeEncode=(Q,X)=>fV(Y,Q,X),Y.safeDecode=(Q,X)=>hV(Y,Q,X),Y.safeEncodeAsync=async(Q,X)=>mV(Y,Q,X),Y.safeDecodeAsync=async(Q,X)=>yV(Y,Q,X),Y.refine=(Q,X)=>Y.check(Vz(Q,X)),Y.superRefine=(Q)=>Y.check(Lz(Q)),Y.overwrite=(Q)=>Y.check(nY(Q)),Y.optional=()=>MX(Y),Y.exactOptional=()=>Jz(Y),Y.nullable=()=>NX(Y),Y.nullish=()=>MX(NX(Y)),Y.nonoptional=(Q)=>Wz(Y,Q),Y.array=()=>tX(Y),Y.or=(Q)=>P9([Y,Q]),Y.and=(Q)=>oK(Y,Q),Y.transform=(Q)=>OX(Y,Z9(Q)),Y.default=(Q)=>Xz(Y,Q),Y.prefault=(Q)=>$z(Y,Q),Y.catch=(Q)=>zz(Y,Q),Y.pipe=(Q)=>OX(Y,Q),Y.readonly=()=>Oz(Y),Y.describe=(Q)=>{let X=Y.clone();return b8.add(X,{description:Q}),X},Object.defineProperty(Y,"description",{get(){return b8.get(Y)?.description},configurable:!0}),Y.meta=(...Q)=>{if(Q.length===0)return b8.get(Y);let X=Y.clone();return b8.add(X,Q[0]),X},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y.apply=(Q)=>Q(Y),Y}),M9=V("_ZodString",(Y,J)=>{lX.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(X,q,G)=>fR(Y,X,q,G);let Q=Y._zod.bag;Y.format=Q.format??null,Y.minLength=Q.minimum??null,Y.maxLength=Q.maximum??null,Y.regex=(...X)=>Y.check(e$(...X)),Y.includes=(...X)=>Y.check(Q9(...X)),Y.startsWith=(...X)=>Y.check(q9(...X)),Y.endsWith=(...X)=>Y.check(X9(...X)),Y.min=(...X)=>Y.check(XQ(...X)),Y.max=(...X)=>Y.check(cX(...X)),Y.length=(...X)=>Y.check(bX(...X)),Y.nonempty=(...X)=>Y.check(XQ(1,...X)),Y.lowercase=(X)=>Y.check(Y9(X)),Y.uppercase=(X)=>Y.check(J9(X)),Y.trim=()=>Y.check(W9()),Y.normalize=(...X)=>Y.check($9(...X)),Y.toLowerCase=()=>Y.check(j9()),Y.toUpperCase=()=>Y.check(K9()),Y.slugify=()=>Y.check(z9())}),oX=V("ZodString",(Y,J)=>{lX.init(Y,J),M9.init(Y,J),Y.email=(Q)=>Y.check(aj(N9,Q)),Y.url=(Q)=>Y.check(a$(dX,Q)),Y.jwt=(Q)=>Y.check(BK(v9,Q)),Y.emoji=(Q)=>Y.check(qK(O9,Q)),Y.guid=(Q)=>Y.check(_$(zX,Q)),Y.uuid=(Q)=>Y.check(ej(VY,Q)),Y.uuidv4=(Q)=>Y.check(YK(VY,Q)),Y.uuidv6=(Q)=>Y.check(JK(VY,Q)),Y.uuidv7=(Q)=>Y.check(QK(VY,Q)),Y.nanoid=(Q)=>Y.check(XK(D9,Q)),Y.guid=(Q)=>Y.check(_$(zX,Q)),Y.cuid=(Q)=>Y.check(GK(U9,Q)),Y.cuid2=(Q)=>Y.check($K(H9,Q)),Y.ulid=(Q)=>Y.check(WK(B9,Q)),Y.base64=(Q)=>Y.check(DK(C9,Q)),Y.base64url=(Q)=>Y.check(UK(I9,Q)),Y.xid=(Q)=>Y.check(jK(R9,Q)),Y.ksuid=(Q)=>Y.check(KK(V9,Q)),Y.ipv4=(Q)=>Y.check(zK(L9,Q)),Y.ipv6=(Q)=>Y.check(MK(E9,Q)),Y.cidrv4=(Q)=>Y.check(NK(w9,Q)),Y.cidrv6=(Q)=>Y.check(OK(A9,Q)),Y.e164=(Q)=>Y.check(HK(S9,Q)),Y.datetime=(Q)=>Y.check(AV(Q)),Y.date=(Q)=>Y.check(CV(Q)),Y.time=(Q)=>Y.check(IV(Q)),Y.duration=(Q)=>Y.check(SV(Q))});function k$(Y){return iB(oX,Y)}var v0=V("ZodStringFormat",(Y,J)=>{S0.init(Y,J),M9.init(Y,J)}),N9=V("ZodEmail",(Y,J)=>{ZH.init(Y,J),v0.init(Y,J)});function lV(Y){return aj(N9,Y)}var zX=V("ZodGUID",(Y,J)=>{PH.init(Y,J),v0.init(Y,J)});function uV(Y){return _$(zX,Y)}var VY=V("ZodUUID",(Y,J)=>{TH.init(Y,J),v0.init(Y,J)});function cV(Y){return ej(VY,Y)}function bV(Y){return YK(VY,Y)}function pV(Y){return JK(VY,Y)}function oV(Y){return QK(VY,Y)}var dX=V("ZodURL",(Y,J)=>{xH.init(Y,J),v0.init(Y,J)});function dV(Y){return a$(dX,Y)}function rV(Y){return a$(dX,{protocol:/^https?$/,hostname:OQ.domain,...O0.normalizeParams(Y)})}var O9=V("ZodEmoji",(Y,J)=>{gH.init(Y,J),v0.init(Y,J)});function sV(Y){return qK(O9,Y)}var D9=V("ZodNanoID",(Y,J)=>{fH.init(Y,J),v0.init(Y,J)});function iV(Y){return XK(D9,Y)}var U9=V("ZodCUID",(Y,J)=>{hH.init(Y,J),v0.init(Y,J)});function tV(Y){return GK(U9,Y)}var H9=V("ZodCUID2",(Y,J)=>{mH.init(Y,J),v0.init(Y,J)});function nV(Y){return $K(H9,Y)}var B9=V("ZodULID",(Y,J)=>{yH.init(Y,J),v0.init(Y,J)});function aV(Y){return WK(B9,Y)}var R9=V("ZodXID",(Y,J)=>{lH.init(Y,J),v0.init(Y,J)});function eV(Y){return jK(R9,Y)}var V9=V("ZodKSUID",(Y,J)=>{uH.init(Y,J),v0.init(Y,J)});function Y6(Y){return KK(V9,Y)}var L9=V("ZodIPv4",(Y,J)=>{dH.init(Y,J),v0.init(Y,J)});function J6(Y){return zK(L9,Y)}var FK=V("ZodMAC",(Y,J)=>{sH.init(Y,J),v0.init(Y,J)});function Q6(Y){return nB(FK,Y)}var E9=V("ZodIPv6",(Y,J)=>{rH.init(Y,J),v0.init(Y,J)});function q6(Y){return MK(E9,Y)}var w9=V("ZodCIDRv4",(Y,J)=>{iH.init(Y,J),v0.init(Y,J)});function X6(Y){return NK(w9,Y)}var A9=V("ZodCIDRv6",(Y,J)=>{tH.init(Y,J),v0.init(Y,J)});function G6(Y){return OK(A9,Y)}var C9=V("ZodBase64",(Y,J)=>{nH.init(Y,J),v0.init(Y,J)});function $6(Y){return DK(C9,Y)}var I9=V("ZodBase64URL",(Y,J)=>{eH.init(Y,J),v0.init(Y,J)});function W6(Y){return UK(I9,Y)}var S9=V("ZodE164",(Y,J)=>{YB.init(Y,J),v0.init(Y,J)});function j6(Y){return HK(S9,Y)}var v9=V("ZodJWT",(Y,J)=>{QB.init(Y,J),v0.init(Y,J)});function K6(Y){return BK(v9,Y)}var Nq=V("ZodCustomStringFormat",(Y,J)=>{qB.init(Y,J),v0.init(Y,J)});function z6(Y,J,Q={}){return pX(Nq,Y,J,Q)}function M6(Y){return pX(Nq,"hostname",OQ.hostname,Y)}function N6(Y){return pX(Nq,"hex",OQ.hex,Y)}function O6(Y,J){let Q=J?.enc??"hex",X=`${Y}_${Q}`,q=OQ[X];if(!q)throw Error(`Unrecognized hash format: ${X}`);return pX(Nq,X,q,J)}var rX=V("ZodNumber",(Y,J)=>{bj.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(X,q,G)=>hR(Y,X,q,G),Y.gt=(X,q)=>Y.check(VJ(X,q)),Y.gte=(X,q)=>Y.check(I8(X,q)),Y.min=(X,q)=>Y.check(I8(X,q)),Y.lt=(X,q)=>Y.check(RJ(X,q)),Y.lte=(X,q)=>Y.check(p8(X,q)),Y.max=(X,q)=>Y.check(p8(X,q)),Y.int=(X)=>Y.check(F$(X)),Y.safe=(X)=>Y.check(F$(X)),Y.positive=(X)=>Y.check(VJ(0,X)),Y.nonnegative=(X)=>Y.check(I8(0,X)),Y.negative=(X)=>Y.check(RJ(0,X)),Y.nonpositive=(X)=>Y.check(p8(0,X)),Y.multipleOf=(X,q)=>Y.check(rQ(X,q)),Y.step=(X,q)=>Y.check(rQ(X,q)),Y.finite=()=>Y;let Q=Y._zod.bag;Y.minValue=Math.max(Q.minimum??Number.NEGATIVE_INFINITY,Q.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,Y.maxValue=Math.min(Q.maximum??Number.POSITIVE_INFINITY,Q.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,Y.isInt=(Q.format??"").includes("int")||Number.isSafeInteger(Q.multipleOf??0.5),Y.isFinite=!0,Y.format=Q.format??null});function PK(Y){return qR(rX,Y)}var DQ=V("ZodNumberFormat",(Y,J)=>{XB.init(Y,J),rX.init(Y,J)});function F$(Y){return GR(DQ,Y)}function D6(Y){return $R(DQ,Y)}function U6(Y){return WR(DQ,Y)}function H6(Y){return jR(DQ,Y)}function B6(Y){return KR(DQ,Y)}var sX=V("ZodBoolean",(Y,J)=>{pj.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>mR(Y,Q,X,q)});function TK(Y){return zR(sX,Y)}var iX=V("ZodBigInt",(Y,J)=>{oj.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(X,q,G)=>yR(Y,X,q,G),Y.gte=(X,q)=>Y.check(I8(X,q)),Y.min=(X,q)=>Y.check(I8(X,q)),Y.gt=(X,q)=>Y.check(VJ(X,q)),Y.gte=(X,q)=>Y.check(I8(X,q)),Y.min=(X,q)=>Y.check(I8(X,q)),Y.lt=(X,q)=>Y.check(RJ(X,q)),Y.lte=(X,q)=>Y.check(p8(X,q)),Y.max=(X,q)=>Y.check(p8(X,q)),Y.positive=(X)=>Y.check(VJ(BigInt(0),X)),Y.negative=(X)=>Y.check(RJ(BigInt(0),X)),Y.nonpositive=(X)=>Y.check(p8(BigInt(0),X)),Y.nonnegative=(X)=>Y.check(I8(BigInt(0),X)),Y.multipleOf=(X,q)=>Y.check(rQ(X,q));let Q=Y._zod.bag;Y.minValue=Q.minimum??null,Y.maxValue=Q.maximum??null,Y.format=Q.format??null});function R6(Y){return NR(iX,Y)}var _9=V("ZodBigIntFormat",(Y,J)=>{GB.init(Y,J),iX.init(Y,J)});function V6(Y){return DR(_9,Y)}function L6(Y){return UR(_9,Y)}var ZK=V("ZodSymbol",(Y,J)=>{$B.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>lR(Y,Q,X,q)});function E6(Y){return HR(ZK,Y)}var xK=V("ZodUndefined",(Y,J)=>{WB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>cR(Y,Q,X,q)});function w6(Y){return BR(xK,Y)}var gK=V("ZodNull",(Y,J)=>{jB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>uR(Y,Q,X,q)});function fK(Y){return RR(gK,Y)}var hK=V("ZodAny",(Y,J)=>{KB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>oR(Y,Q,X,q)});function A6(){return VR(hK)}var mK=V("ZodUnknown",(Y,J)=>{zB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>dR(Y,Q,X,q)});function GQ(){return LR(mK)}var yK=V("ZodNever",(Y,J)=>{MB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>pR(Y,Q,X,q)});function k9(Y){return ER(yK,Y)}var lK=V("ZodVoid",(Y,J)=>{NB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>bR(Y,Q,X,q)});function C6(Y){return wR(lK,Y)}var F9=V("ZodDate",(Y,J)=>{OB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(X,q,G)=>rR(Y,X,q,G),Y.min=(X,q)=>Y.check(I8(X,q)),Y.max=(X,q)=>Y.check(p8(X,q));let Q=Y._zod.bag;Y.minDate=Q.minimum?new Date(Q.minimum):null,Y.maxDate=Q.maximum?new Date(Q.maximum):null});function I6(Y){return AR(F9,Y)}var uK=V("ZodArray",(Y,J)=>{DB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>GV(Y,Q,X,q),Y.element=J.element,Y.min=(Q,X)=>Y.check(XQ(Q,X)),Y.nonempty=(Q)=>Y.check(XQ(1,Q)),Y.max=(Q,X)=>Y.check(cX(Q,X)),Y.length=(Q,X)=>Y.check(bX(Q,X)),Y.unwrap=()=>Y.element});function tX(Y,J){return SR(uK,Y,J)}function S6(Y){let J=Y._zod.def.shape;return T9(Object.keys(J))}var nX=V("ZodObject",(Y,J)=>{RB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>$V(Y,Q,X,q),O0.defineLazy(Y,"shape",()=>{return J.shape}),Y.keyof=()=>T9(Object.keys(Y._zod.def.shape)),Y.catchall=(Q)=>Y.clone({...Y._zod.def,catchall:Q}),Y.passthrough=()=>Y.clone({...Y._zod.def,catchall:GQ()}),Y.loose=()=>Y.clone({...Y._zod.def,catchall:GQ()}),Y.strict=()=>Y.clone({...Y._zod.def,catchall:k9()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(Q)=>{return O0.extend(Y,Q)},Y.safeExtend=(Q)=>{return O0.safeExtend(Y,Q)},Y.merge=(Q)=>O0.merge(Y,Q),Y.pick=(Q)=>O0.pick(Y,Q),Y.omit=(Q)=>O0.omit(Y,Q),Y.partial=(...Q)=>O0.partial(x9,Y,Q[0]),Y.required=(...Q)=>O0.required(g9,Y,Q[0])});function v6(Y,J){let Q={type:"object",shape:Y??{},...O0.normalizeParams(J)};return new nX(Q)}function _6(Y,J){return new nX({type:"object",shape:Y,catchall:k9(),...O0.normalizeParams(J)})}function k6(Y,J){return new nX({type:"object",shape:Y,catchall:GQ(),...O0.normalizeParams(J)})}var aX=V("ZodUnion",(Y,J)=>{n$.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>AK(Y,Q,X,q),Y.options=J.options});function P9(Y,J){return new aX({type:"union",options:Y,...O0.normalizeParams(J)})}var cK=V("ZodXor",(Y,J)=>{aX.init(Y,J),VB.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>AK(Y,Q,X,q),Y.options=J.options});function F6(Y,J){return new cK({type:"union",options:Y,inclusive:!1,...O0.normalizeParams(J)})}var bK=V("ZodDiscriminatedUnion",(Y,J)=>{aX.init(Y,J),LB.init(Y,J)});function P6(Y,J,Q){return new bK({type:"union",options:J,discriminator:Y,...O0.normalizeParams(Q)})}var pK=V("ZodIntersection",(Y,J)=>{EB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>WV(Y,Q,X,q)});function oK(Y,J){return new pK({type:"intersection",left:Y,right:J})}var dK=V("ZodTuple",(Y,J)=>{dj.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>jV(Y,Q,X,q),Y.rest=(Q)=>Y.clone({...Y._zod.def,rest:Q})});function rK(Y,J,Q){let X=J instanceof G0,q=X?Q:J;return new dK({type:"tuple",items:Y,rest:X?J:null,...O0.normalizeParams(q)})}var eX=V("ZodRecord",(Y,J)=>{wB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>KV(Y,Q,X,q),Y.keyType=J.keyType,Y.valueType=J.valueType});function sK(Y,J,Q){return new eX({type:"record",keyType:Y,valueType:J,...O0.normalizeParams(Q)})}function T6(Y,J,Q){let X=r8(Y);return X._zod.values=void 0,new eX({type:"record",keyType:X,valueType:J,...O0.normalizeParams(Q)})}function Z6(Y,J,Q){return new eX({type:"record",keyType:Y,valueType:J,mode:"loose",...O0.normalizeParams(Q)})}var iK=V("ZodMap",(Y,J)=>{AB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>qV(Y,Q,X,q),Y.keyType=J.keyType,Y.valueType=J.valueType,Y.min=(...Q)=>Y.check(LJ(...Q)),Y.nonempty=(Q)=>Y.check(LJ(1,Q)),Y.max=(...Q)=>Y.check(Mq(...Q)),Y.size=(...Q)=>Y.check(uX(...Q))});function x6(Y,J,Q){return new iK({type:"map",keyType:Y,valueType:J,...O0.normalizeParams(Q)})}var tK=V("ZodSet",(Y,J)=>{CB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>XV(Y,Q,X,q),Y.min=(...Q)=>Y.check(LJ(...Q)),Y.nonempty=(Q)=>Y.check(LJ(1,Q)),Y.max=(...Q)=>Y.check(Mq(...Q)),Y.size=(...Q)=>Y.check(uX(...Q))});function g6(Y,J){return new tK({type:"set",valueType:Y,...O0.normalizeParams(J)})}var nQ=V("ZodEnum",(Y,J)=>{IB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(X,q,G)=>sR(Y,X,q,G),Y.enum=J.entries,Y.options=Object.values(J.entries);let Q=new Set(Object.keys(J.entries));Y.extract=(X,q)=>{let G={};for(let $ of X)if(Q.has($))G[$]=J.entries[$];else throw Error(`Key ${$} not found in enum`);return new nQ({...J,checks:[],...O0.normalizeParams(q),entries:G})},Y.exclude=(X,q)=>{let G={...J.entries};for(let $ of X)if(Q.has($))delete G[$];else throw Error(`Key ${$} not found in enum`);return new nQ({...J,checks:[],...O0.normalizeParams(q),entries:G})}});function T9(Y,J){let Q=Array.isArray(Y)?Object.fromEntries(Y.map((X)=>[X,X])):Y;return new nQ({type:"enum",entries:Q,...O0.normalizeParams(J)})}function f6(Y,J){return new nQ({type:"enum",entries:Y,...O0.normalizeParams(J)})}var nK=V("ZodLiteral",(Y,J)=>{SB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>iR(Y,Q,X,q),Y.values=new Set(J.values),Object.defineProperty(Y,"value",{get(){if(J.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return J.values[0]}})});function h6(Y,J){return new nK({type:"literal",values:Array.isArray(Y)?Y:[Y],...O0.normalizeParams(J)})}var aK=V("ZodFile",(Y,J)=>{vB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>aR(Y,Q,X,q),Y.min=(Q,X)=>Y.check(LJ(Q,X)),Y.max=(Q,X)=>Y.check(Mq(Q,X)),Y.mime=(Q,X)=>Y.check(G9(Array.isArray(Q)?Q:[Q],X))});function m6(Y){return vR(aK,Y)}var eK=V("ZodTransform",(Y,J)=>{_B.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>QV(Y,Q,X,q),Y._zod.parse=(Q,X)=>{if(X.direction==="backward")throw new PX(Y.constructor.name);Q.addIssue=(G)=>{if(typeof G==="string")Q.issues.push(O0.issue(G,Q.value,J));else{let $=G;if($.fatal)$.continue=!1;$.code??($.code="custom"),$.input??($.input=Q.value),$.inst??($.inst=Y),Q.issues.push(O0.issue($))}};let q=J.transform(Q.value,Q);if(q instanceof Promise)return q.then((G)=>{return Q.value=G,Q});return Q.value=q,Q}});function Z9(Y){return new eK({type:"transform",transform:Y})}var x9=V("ZodOptional",(Y,J)=>{rj.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>CK(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function MX(Y){return new x9({type:"optional",innerType:Y})}var Yz=V("ZodExactOptional",(Y,J)=>{kB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>CK(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function Jz(Y){return new Yz({type:"optional",innerType:Y})}var Qz=V("ZodNullable",(Y,J)=>{FB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>zV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function NX(Y){return new Qz({type:"nullable",innerType:Y})}function y6(Y){return MX(NX(Y))}var qz=V("ZodDefault",(Y,J)=>{PB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>NV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function Xz(Y,J){return new qz({type:"default",innerType:Y,get defaultValue(){return typeof J==="function"?J():O0.shallowClone(J)}})}var Gz=V("ZodPrefault",(Y,J)=>{TB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>OV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function $z(Y,J){return new Gz({type:"prefault",innerType:Y,get defaultValue(){return typeof J==="function"?J():O0.shallowClone(J)}})}var g9=V("ZodNonOptional",(Y,J)=>{ZB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>MV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function Wz(Y,J){return new g9({type:"nonoptional",innerType:Y,...O0.normalizeParams(J)})}var jz=V("ZodSuccess",(Y,J)=>{xB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>eR(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function l6(Y){return new jz({type:"success",innerType:Y})}var Kz=V("ZodCatch",(Y,J)=>{gB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>DV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function zz(Y,J){return new Kz({type:"catch",innerType:Y,catchValue:typeof J==="function"?J:()=>J})}var Mz=V("ZodNaN",(Y,J)=>{fB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>tR(Y,Q,X,q)});function u6(Y){return IR(Mz,Y)}var f9=V("ZodPipe",(Y,J)=>{hB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>UV(Y,Q,X,q),Y.in=J.in,Y.out=J.out});function OX(Y,J){return new f9({type:"pipe",in:Y,out:J})}var h9=V("ZodCodec",(Y,J)=>{f9.init(Y,J),sj.init(Y,J)});function c6(Y,J,Q){return new h9({type:"pipe",in:Y,out:J,transform:Q.decode,reverseTransform:Q.encode})}var Nz=V("ZodReadonly",(Y,J)=>{mB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>HV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function Oz(Y){return new Nz({type:"readonly",innerType:Y})}var Dz=V("ZodTemplateLiteral",(Y,J)=>{yB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>nR(Y,Q,X,q)});function b6(Y,J){return new Dz({type:"template_literal",parts:Y,...O0.normalizeParams(J)})}var Uz=V("ZodLazy",(Y,J)=>{cB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>RV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.getter()});function Hz(Y){return new Uz({type:"lazy",getter:Y})}var Bz=V("ZodPromise",(Y,J)=>{uB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>BV(Y,Q,X,q),Y.unwrap=()=>Y._zod.def.innerType});function p6(Y){return new Bz({type:"promise",innerType:Y})}var Rz=V("ZodFunction",(Y,J)=>{lB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>JV(Y,Q,X,q)});function P$(Y){return new Rz({type:"function",input:Array.isArray(Y?.input)?rK(Y?.input):Y?.input??tX(GQ()),output:Y?.output??GQ()})}var YG=V("ZodCustom",(Y,J)=>{bB.init(Y,J),$0.init(Y,J),Y._zod.processJSONSchema=(Q,X,q)=>YV(Y,Q,X,q)});function o6(Y){let J=new x0({check:"custom"});return J._zod.check=Y,J}function d6(Y,J){return _R(YG,Y??(()=>!0),J)}function Vz(Y,J={}){return kR(YG,Y,J)}function Lz(Y){return FR(Y)}var r6=TR,s6=ZR;function i6(Y,J={}){let Q=new YG({type:"custom",check:"custom",fn:(X)=>X instanceof Y,abort:!0,...O0.normalizeParams(J)});return Q._zod.bag.Class=Y,Q._zod.check=(X)=>{if(!(X.value instanceof Y))X.issues.push({code:"invalid_type",expected:Y.name,input:X.value,inst:Q,path:[...Q._zod.def.path??[]]})},Q}var t6=(...Y)=>xR({Codec:h9,Boolean:sX,String:oX},...Y);function n6(Y){let J=Hz(()=>{return P9([k$(Y),PK(),TK(),fK(),tX(J),sK(k$(),J)])});return J}function a6(Y,J){return OX(Z9(Y),J)}var PF={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function TF(Y){z8({customError:Y})}function ZF(){return z8().customError}var U5;(function(Y){})(U5||(U5={}));var y={...EV,...wV,iso:IK},xF=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function gF(Y,J){let Q=Y.$schema;if(Q==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(Q==="http://json-schema.org/draft-07/schema#")return"draft-7";if(Q==="http://json-schema.org/draft-04/schema#")return"draft-4";return J??"draft-2020-12"}function fF(Y,J){if(!Y.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let Q=Y.slice(1).split("/").filter(Boolean);if(Q.length===0)return J.rootSchema;let X=J.version==="draft-2020-12"?"$defs":"definitions";if(Q[0]===X){let q=Q[1];if(!q||!J.defs[q])throw Error(`Reference not found: ${Y}`);return J.defs[q]}throw Error(`Reference not found: ${Y}`)}function e6(Y,J){if(Y.not!==void 0){if(typeof Y.not==="object"&&Object.keys(Y.not).length===0)return y.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(Y.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(Y.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(Y.if!==void 0||Y.then!==void 0||Y.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(Y.dependentSchemas!==void 0||Y.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(Y.$ref){let q=Y.$ref;if(J.refs.has(q))return J.refs.get(q);if(J.processing.has(q))return y.lazy(()=>{if(!J.refs.has(q))throw Error(`Circular reference not resolved: ${q}`);return J.refs.get(q)});J.processing.add(q);let G=fF(q,J),$=W8(G,J);return J.refs.set(q,$),J.processing.delete(q),$}if(Y.enum!==void 0){let q=Y.enum;if(J.version==="openapi-3.0"&&Y.nullable===!0&&q.length===1&&q[0]===null)return y.null();if(q.length===0)return y.never();if(q.length===1)return y.literal(q[0]);if(q.every(($)=>typeof $==="string"))return y.enum(q);let G=q.map(($)=>y.literal($));if(G.length<2)return G[0];return y.union([G[0],G[1],...G.slice(2)])}if(Y.const!==void 0)return y.literal(Y.const);let Q=Y.type;if(Array.isArray(Q)){let q=Q.map((G)=>{let $={...Y,type:G};return e6($,J)});if(q.length===0)return y.never();if(q.length===1)return q[0];return y.union(q)}if(!Q)return y.any();let X;switch(Q){case"string":{let q=y.string();if(Y.format){let G=Y.format;if(G==="email")q=q.check(y.email());else if(G==="uri"||G==="uri-reference")q=q.check(y.url());else if(G==="uuid"||G==="guid")q=q.check(y.uuid());else if(G==="date-time")q=q.check(y.iso.datetime());else if(G==="date")q=q.check(y.iso.date());else if(G==="time")q=q.check(y.iso.time());else if(G==="duration")q=q.check(y.iso.duration());else if(G==="ipv4")q=q.check(y.ipv4());else if(G==="ipv6")q=q.check(y.ipv6());else if(G==="mac")q=q.check(y.mac());else if(G==="cidr")q=q.check(y.cidrv4());else if(G==="cidr-v6")q=q.check(y.cidrv6());else if(G==="base64")q=q.check(y.base64());else if(G==="base64url")q=q.check(y.base64url());else if(G==="e164")q=q.check(y.e164());else if(G==="jwt")q=q.check(y.jwt());else if(G==="emoji")q=q.check(y.emoji());else if(G==="nanoid")q=q.check(y.nanoid());else if(G==="cuid")q=q.check(y.cuid());else if(G==="cuid2")q=q.check(y.cuid2());else if(G==="ulid")q=q.check(y.ulid());else if(G==="xid")q=q.check(y.xid());else if(G==="ksuid")q=q.check(y.ksuid())}if(typeof Y.minLength==="number")q=q.min(Y.minLength);if(typeof Y.maxLength==="number")q=q.max(Y.maxLength);if(Y.pattern)q=q.regex(new RegExp(Y.pattern));X=q;break}case"number":case"integer":{let q=Q==="integer"?y.number().int():y.number();if(typeof Y.minimum==="number")q=q.min(Y.minimum);if(typeof Y.maximum==="number")q=q.max(Y.maximum);if(typeof Y.exclusiveMinimum==="number")q=q.gt(Y.exclusiveMinimum);else if(Y.exclusiveMinimum===!0&&typeof Y.minimum==="number")q=q.gt(Y.minimum);if(typeof Y.exclusiveMaximum==="number")q=q.lt(Y.exclusiveMaximum);else if(Y.exclusiveMaximum===!0&&typeof Y.maximum==="number")q=q.lt(Y.maximum);if(typeof Y.multipleOf==="number")q=q.multipleOf(Y.multipleOf);X=q;break}case"boolean":{X=y.boolean();break}case"null":{X=y.null();break}case"object":{let q={},G=Y.properties||{},$=new Set(Y.required||[]);for(let[j,K]of Object.entries(G)){let z=W8(K,J);q[j]=$.has(j)?z:z.optional()}if(Y.propertyNames){let j=W8(Y.propertyNames,J),K=Y.additionalProperties&&typeof Y.additionalProperties==="object"?W8(Y.additionalProperties,J):y.any();if(Object.keys(q).length===0){X=y.record(j,K);break}let z=y.object(q).passthrough(),M=y.looseRecord(j,K);X=y.intersection(z,M);break}if(Y.patternProperties){let j=Y.patternProperties,K=Object.keys(j),z=[];for(let N of K){let O=W8(j[N],J),D=y.string().regex(new RegExp(N));z.push(y.looseRecord(D,O))}let M=[];if(Object.keys(q).length>0)M.push(y.object(q).passthrough());if(M.push(...z),M.length===0)X=y.object({}).passthrough();else if(M.length===1)X=M[0];else{let N=y.intersection(M[0],M[1]);for(let O=2;O<M.length;O++)N=y.intersection(N,M[O]);X=N}break}let W=y.object(q);if(Y.additionalProperties===!1)X=W.strict();else if(typeof Y.additionalProperties==="object")X=W.catchall(W8(Y.additionalProperties,J));else X=W.passthrough();break}case"array":{let{prefixItems:q,items:G}=Y;if(q&&Array.isArray(q)){let $=q.map((j)=>W8(j,J)),W=G&&typeof G==="object"&&!Array.isArray(G)?W8(G,J):void 0;if(W)X=y.tuple($).rest(W);else X=y.tuple($);if(typeof Y.minItems==="number")X=X.check(y.minLength(Y.minItems));if(typeof Y.maxItems==="number")X=X.check(y.maxLength(Y.maxItems))}else if(Array.isArray(G)){let $=G.map((j)=>W8(j,J)),W=Y.additionalItems&&typeof Y.additionalItems==="object"?W8(Y.additionalItems,J):void 0;if(W)X=y.tuple($).rest(W);else X=y.tuple($);if(typeof Y.minItems==="number")X=X.check(y.minLength(Y.minItems));if(typeof Y.maxItems==="number")X=X.check(y.maxLength(Y.maxItems))}else if(G!==void 0){let $=W8(G,J),W=y.array($);if(typeof Y.minItems==="number")W=W.min(Y.minItems);if(typeof Y.maxItems==="number")W=W.max(Y.maxItems);X=W}else X=y.array(y.any());break}default:throw Error(`Unsupported type: ${Q}`)}if(Y.description)X=X.describe(Y.description);if(Y.default!==void 0)X=X.default(Y.default);return X}function W8(Y,J){if(typeof Y==="boolean")return Y?y.any():y.never();let Q=e6(Y,J),X=Y.type||Y.enum!==void 0||Y.const!==void 0;if(Y.anyOf&&Array.isArray(Y.anyOf)){let W=Y.anyOf.map((K)=>W8(K,J)),j=y.union(W);Q=X?y.intersection(Q,j):j}if(Y.oneOf&&Array.isArray(Y.oneOf)){let W=Y.oneOf.map((K)=>W8(K,J)),j=y.xor(W);Q=X?y.intersection(Q,j):j}if(Y.allOf&&Array.isArray(Y.allOf))if(Y.allOf.length===0)Q=X?Q:y.any();else{let W=X?Q:W8(Y.allOf[0],J),j=X?0:1;for(let K=j;K<Y.allOf.length;K++)W=y.intersection(W,W8(Y.allOf[K],J));Q=W}if(Y.nullable===!0&&J.version==="openapi-3.0")Q=y.nullable(Q);if(Y.readOnly===!0)Q=y.readonly(Q);let q={},G=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let W of G)if(W in Y)q[W]=Y[W];let $=["contentEncoding","contentMediaType","contentSchema"];for(let W of $)if(W in Y)q[W]=Y[W];for(let W of Object.keys(Y))if(!xF.has(W))q[W]=Y[W];if(Object.keys(q).length>0)J.registry.add(Q,q);return Q}function hF(Y,J){if(typeof Y==="boolean")return Y?y.any():y.never();let Q=gF(Y,J?.defaultTarget),X=Y.$defs||Y.definitions||{},q={version:Q,defs:X,refs:new Map,processing:new Set,rootSchema:Y,registry:J?.registry??b8};return W8(Y,q)}var Y7={};XY(Y7,{string:()=>mF,number:()=>yF,date:()=>cF,boolean:()=>lF,bigint:()=>uF});function mF(Y){return tB(oX,Y)}function yF(Y){return XR(rX,Y)}function lF(Y){return MR(sX,Y)}function uF(Y){return OR(iX,Y)}function cF(Y){return CR(F9,Y)}z8(pB());var TQ=L,s=L.string().regex(/^0x[a-fA-F0-9]+$/),Oq=L.object({from:s,to_address:s,to_identity:L.string(),token:s,amount:L.bigint(),priorityFee:L.bigint().optional(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),isAsyncExec:L.boolean(),signature:L.string()}),Mh=L.object({from:s,toData:L.array(L.object({amount:L.bigint(),to_address:s,to_identity:L.string()})),token:s,amount:L.bigint(),priorityFee:L.bigint().optional(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),isAsyncExec:L.boolean(),signature:L.string()}),Nh=L.object({user:s,tokenA:s,tokenB:s,amountA:L.bigint(),amountB:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint(),signaturePay:L.string()}),Oh=L.object({user:s,tokenA:s,tokenB:s,orderId:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),bF=L.object({user:s,tokenA:s,tokenB:s,orderId:L.bigint(),amountOfTokenBToFill:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint(),signaturePay:L.string()}),Dh=bF.extend({maxFillFixedFee:L.bigint()}),Uh=L.object({user:s,username:L.string(),offerID:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Hh=L.object({user:s,identity:L.string(),value:L.string(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Bh=L.object({user:s,identity:L.string(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Rh=L.object({user:s,username:L.string(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Vh=L.object({user:s,username:L.string(),amount:L.bigint(),expirationDate:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Lh=L.object({user:s,hashPreRegisteredUsername:L.string(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Eh=L.object({user:s,username:L.string(),lockNumber:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),wh=L.object({user:s,identity:L.string(),key:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Ah=L.object({user:s,username:L.string(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Ch=L.object({user:s,username:L.string(),offerID:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Ih=L.object({user:s,isStaking:L.boolean(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Sh=L.object({user:s,isStaking:L.boolean(),amountOfStaking:L.bigint(),senderExecutor:s,originExecutor:s,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),vh=L.object({isStaking:L.boolean(),amountOfStaking:L.bigint(),signaturePay:L.string().optional()}),J7=L.enum(["pure","view","nonpayable","payable"]),aQ=L.lazy(()=>L.object({name:L.string(),type:L.string(),internalType:L.string().optional(),components:L.array(aQ).optional(),indexed:L.boolean().optional()})),pF=L.object({type:L.literal("function"),name:L.string(),inputs:L.array(aQ),outputs:L.array(aQ),stateMutability:J7}),oF=L.object({type:L.literal("event"),name:L.string(),inputs:L.array(aQ),anonymous:L.boolean().optional()}),dF=L.object({type:L.literal("error"),name:L.string(),inputs:L.array(aQ)}),rF=L.object({type:L.literal("constructor"),inputs:L.array(aQ),stateMutability:J7}),Q7=L.discriminatedUnion("type",[pF,oF,dF,rF]),_h=L.array(Q7),K0="0x0000000000000000000000000000000000000000";zQ();a5();class JG{address;abi;chainId;evvmId;signer;constructor({signer:Y,address:J,abi:Q,evvmId:X,chainId:q}){this.signer=Y,this.address=J,this.abi=Q,this.chainId=q,this.evvmId=X}async view(Y,J,Q){let X=await this.signer.getChainId();if(this.chainId!=X)await this.signer.switchChain(this.chainId);return this.signer.readContract({functionName:Y,contractAddress:this.address,contractAbi:Q?.abi||this.abi,args:J||[]})}getFunctionAbi(Y){let J=this.abi.find((Q)=>Q.type==="function"&&Q.name===Y);if(!J)throw Error(`No function signature with name ${Y}`);return J}buildHashPayload(Y,J,Q){let X=[...this.getFunctionAbi(Y).inputs];if(Q?.customAbiParams)Q.customAbiParams.forEach((z)=>{let M=X.findIndex((N)=>N.name==z.insertAfter);if(M==-1){console.warn("[WARN]: custom abi insertion couldn't find insertAfter abi");return}X.splice(M+1,0,{type:z.type,name:z.name})});let q=X.filter((z)=>Object.prototype.hasOwnProperty.call(J,z.name)),G=q.map((z)=>J[z.name]),$=/dispatchOrder/.test(Y)?"dispatchOrder":Y,W=[{type:"string"},...q],j=[$,...G],K=zq(W,j);return n5(K)}buildMessageToSign(Y,J,Q,X,q,G){return`${Y.toString()},${J.toLowerCase()},${Q},${X.toLowerCase()},${q.toString()},${JSON.stringify(G)}`}async getEvvmID(){if(this.evvmId!==void 0)return this.evvmId;return this.evvmId=await this.view("getEvvmID",[],{abi:[{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}]}),this.evvmId}}function n0(Y,J,Q){let X=Q.value;if(!X)throw Error(`@SignMethod decorator applied to undefined method ${J}`);return Q.value=async function(...q){return await X.apply(this,q)},Q}var Dq=(Y)=>TQ.object({functionName:TQ.string(),functionAbi:Q7,contractAddress:s,chainId:TQ.number(),evvmId:TQ.string(),data:Y,args:TQ.array(TQ.any())}).loose();class b0{service;evvmId;functionName;data;functionAbi;args;constructor(Y,J,Q,X){this.service=Y,this.evvmId=J,this.functionName=Q,this.data=X,this.functionAbi=this.service.getFunctionAbi(Q),this.args=this.getArgs()}toJSON(){let Y=this.serializeData();return{chainId:this.service.chainId,evvmId:this.evvmId.toString(),functionName:this.functionName,functionAbi:this.functionAbi,contractAddress:this.service.address,data:Y,args:this.args}}getArgs(){let Y=[],J=this.serializeData();return this.functionAbi.inputs.forEach((Q,X)=>{if(!Q.name||Q.name.length===0)throw Error(`ABI input at index ${X} for function ${this.functionName} has empty name`);if(!Object.prototype.hasOwnProperty.call(J,Q.name))throw Error(`Missing data property '${Q.name}' for function '${this.functionName}'`);Y[X]=J[Q.name]}),Y}serializeData(){let Y=(J)=>{if(typeof J==="bigint")return J.toString();if(Array.isArray(J))return J.map((Q)=>Y(Q));if(J&&typeof J==="object")return Object.fromEntries(Object.entries(J).map(([Q,X])=>[Q,Y(X)]));return J};return Y(this.data)}}var sF={abi:[{type:"constructor",inputs:[{name:"_activator",type:"address",internalType:"address"},{name:"_coreAddress",type:"address",internalType:"address"},{name:"_addressStaking",type:"address",internalType:"address"},{name:"_admin",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptActivatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptAddressStakingProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptAdminProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptEvvmAddressProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelActivatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelAddressStakingProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelAdminProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelEvvmAddressProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getActivatorMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getActualEpochInFormat",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getActualEpochInUint",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAddressStakingMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAdminMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getCoreAddressMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getEpochMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.EpochMetadata",components:[{name:"tokenPool",type:"address",internalType:"address"},{name:"totalPool",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"},{name:"tFinal",type:"uint256",internalType:"uint256"},{name:"tStart",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"makeEstimation",inputs:[{name:"_user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwrite",type:"uint256",internalType:"uint256"},{name:"timestampToOverwrite",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"notifyNewEpoch",inputs:[{name:"tokenPool",type:"address",internalType:"address"},{name:"totalPool",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"},{name:"tStart",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setActivatorProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAddressStakingProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAdminProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setEvvmAddressProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"simulteEstimation",inputs:[{name:"_user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwrite",type:"uint256",internalType:"uint256"},{name:"timestampToOverwrite",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],bytecode:{object:"0x60803460c257601f610f5338819003918201601f19168301916001600160401b0383118484101760c65780849260809460405283398101031260c25760428160da565b90604d6020820160da565b60616060605b6040850160da565b930160da565b6003601155600580546001600160a01b03199081166001600160a01b039687161790915560088054821693861693909317909255600b8054831693851693909317909255600e805490911691909216179055604051610e6590816100ee8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360c25756fe60806040526004361015610011575f80fd5b5f3560e01c80630f9d8a70146107ab578063112c1d5a1461070f5780631fa75673146106b957806333a61fc3146106955780634cc05f461461065d57806355dbb311146106195780635637455a146105ef5780635b65a897146105995780635fd99c5914610510578063608bd0bf146104cc5780636e14f5591461047157806370b170da1461043957806379eb30f0146103e05780637aa84eae146103a85780637fa80f081461034f5780639da2bb11146102f4578063a9131e2314610287578063b1fc6a911461022c578063c1a53583146101d1578063c9ed28e9146101b4578063f7027207146101475763fd3607d01461010b575f80fd5b34610143575f366003190112610143576001600160a01b0360055416330361014357600680546001600160a01b03191690555f600755005b5f80fd5b3461014357602036600319011261014357610160610804565b6001600160a01b03600b541633036101435761017e6101b091610bef565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015290819060a0820190565b0390f35b34610143575f366003190112610143576020601154604051908152f35b34610143575f366003190112610143576101e9610bd1565b506101b06040516101f9816108a5565b6001600160a01b03600e541681526001600160a01b03600f5416602082015260105460408201526040519182918261081a565b34610143575f36600319011261014357610244610bd1565b506101b0604051610254816108a5565b6001600160a01b036005541681526001600160a01b0360065416602082015260075460408201526040519182918261081a565b34610143576020366003190112610143576102a0610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b60095416176009556201518042018042116102e057600a55005b634e487b7160e01b5f52601160045260245ffd5b34610143575f3660031901126101435761030c610bd1565b506101b060405161031c816108a5565b6001600160a01b036008541681526001600160a01b03600954166020820152600a5460408201526040519182918261081a565b3461014357602036600319011261014357610368610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600f541617600f556201518042018042116102e057601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600c80546001600160a01b03191690555f600d55005b34610143576020366003190112610143576103f9610804565b6001600160a01b03600554163303610143576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116102e057600755005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600980546001600160a01b03191690555f600a55005b34610143575f36600319011261014357610489610bd1565b506101b0604051610499816108a5565b6001600160a01b03600b541681526001600160a01b03600c54166020820152600d5460408201526040519182918261081a565b34610143575f3660031901126101435760075442106101435760068054600580546001600160a01b03199081166001600160a01b038416179091551690555f600755005b3461014357608036600319011261014357610529610804565b60243560443590606435926001600160a01b03600554163303610143578360806001600160a01b036040519361055e85610859565b169283815284602082015285604082015242606082015201526001600160601b0360a01b5f5416175f55600155600255426003556004555f80f35b34610143575f366003190112610143576001600160a01b03600e5416330361014357600d54421061014357600c8054600b80546001600160a01b03199081166001600160a01b038416179091551690555f600d55005b34610143575f3660031901126101435760115460011981019081116102e057602090604051908152f35b34610143575f36600319011261014357601054421061014357600f8054600e80546001600160a01b03199081166001600160a01b038416179091551690555f601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600f80546001600160a01b03191690555f601055005b34610143576020366003190112610143576101b061017e6106b4610804565b610981565b34610143575f366003190112610143576001600160a01b03600e5416330361014357600a5442106101435760098054600880546001600160a01b03199081166001600160a01b038416179091551690555f600a55005b34610143575f366003190112610143575f608060405161072e81610859565b828152826020820152826040820152826060820152015260a060405161075381610859565b6001600160a01b035f5416908181526001546020820190815260025460408301908152600354916060840192835260806004549401938452604051948552516020850152516040840152516060830152516080820152f35b34610143576020366003190112610143576107c4610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600c541617600c556201518042018042116102e057600d55005b600435906001600160a01b038216820361014357565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b919082018092116102e057565b60a0810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761087557604052565b6060810190811067ffffffffffffffff82111761087557604052565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b604051906108f082610889565b5f6060838281528260208201528260408201520152565b908160809103126101435760606040519161092183610889565b8051835260208101516020840152604081015160408401520151606082015290565b919082039182116102e057565b818102929181159184041417156102e057565b811561096d570490565b634e487b7160e01b5f52601260045260245ffd5b905f915f915f905f925f60045491826109986108e3565b506001600160a01b03600b54169660405190637e17f55960e11b82526001600160a01b03841660048301526020826024818c5afa918215610b92575f92610b9d575b50929197905f9360035499601154915b838710610a54575b50505050505050670de0b6b3a7640000810290808204670de0b6b3a764000014901517156102e057610a3a610a4f91610a34670de0b6b3a76400009488610943565b90610963565b610a4960015460025490610963565b90610950565b049290565b60405163120a744b60e31b81526001600160a01b038716600482015260248101889052969a509495939492939192608083604481895afa928315610b92575f93610b62575b5060408301918c835111610b125784845114610af75781610ace575b5050516060919091015160018a019594939291906109ea565b97610ae9610aef92610ae4859b60609651610943565b610950565b9061084c565b96905f610ab5565b5050505050505050505093505050505f905f905f905f905f90565b9550955050916001915097949714610b56575b5081610b3b575b5050925f8080808080806109f2565b610b4e929591610ae4610ae99289610943565b925f80610b2c565b6060015191505f610b25565b610b8491935060803d8111610b8b575b610b7c81836108c1565b810190610907565b915f610a99565b503d610b72565b6040513d5f823e3d90fd5b9091506020813d602011610bc9575b81610bb9602093836108c1565b810103126101435751905f6109da565b3d9150610bac565b60405190610bde826108a5565b5f6040838281528260208201520152565b5f915f915f905f925f600454928390610c066108e3565b946001600160a01b03600b54169760405190637e17f55960e11b82526001600160a01b03841660048301526020826024818d5afa918215610b92575f92610dfb575b5091985f93916003549a601154905b828710610cd4575b50505050505050670de0b6b3a7640000820291808304670de0b6b3a764000014901517156102e057610ccf91610a34610c989288610943565b606060015494610cc4670de0b6b3a7640000610cbb60025495610a49878b610963565b04809997610943565b600155015190610943565b600255565b60405163120a744b60e31b81526001600160a01b038616600482015260248101889052969b509499509294919390929190608082604481885afa918215610b92575f92610ddb575b50819960018514610dd0575b60408301918d835111610d955784845114610d7a5781610d5c575b5050606090519101519160018b01959391949294610c57565b98610ae9610d7292610ae4859c60609651610943565b97905f610d43565b505f9e508e9d508d9c508c9b508b9a50505050505050505050565b955095505050505081969296610db5575b5050935f808080808080610c5f565b610dc8929391610ae4610ae9928a610943565b905f80610da6565b506060820151610d28565b610df491925060803d8111610b8b57610b7c81836108c1565b905f610d1c565b9091506020813d602011610e27575b81610e17602093836108c1565b810103126101435751905f610c48565b3d9150610e0a56fea2646970667358221220c735d624f83faa268abe1416ff68fae91ab044af7434d8859bd70c0fe6194e0d64736f6c63430008210033",sourceMap:"1271:15128:67:-:0;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;3258:1;3242:19;1271:15128;4296:9;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;4335:11;1271:15128;;;;;;;;;;;;;;4378:14;1271:15128;;;;;;;;;;;;;;4427:5;1271:15128;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1271:15128:67;;;;;;-1:-1:-1;1271:15128:67;;;;;-1:-1:-1;1271:15128:67;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x60806040526004361015610011575f80fd5b5f3560e01c80630f9d8a70146107ab578063112c1d5a1461070f5780631fa75673146106b957806333a61fc3146106955780634cc05f461461065d57806355dbb311146106195780635637455a146105ef5780635b65a897146105995780635fd99c5914610510578063608bd0bf146104cc5780636e14f5591461047157806370b170da1461043957806379eb30f0146103e05780637aa84eae146103a85780637fa80f081461034f5780639da2bb11146102f4578063a9131e2314610287578063b1fc6a911461022c578063c1a53583146101d1578063c9ed28e9146101b4578063f7027207146101475763fd3607d01461010b575f80fd5b34610143575f366003190112610143576001600160a01b0360055416330361014357600680546001600160a01b03191690555f600755005b5f80fd5b3461014357602036600319011261014357610160610804565b6001600160a01b03600b541633036101435761017e6101b091610bef565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015290819060a0820190565b0390f35b34610143575f366003190112610143576020601154604051908152f35b34610143575f366003190112610143576101e9610bd1565b506101b06040516101f9816108a5565b6001600160a01b03600e541681526001600160a01b03600f5416602082015260105460408201526040519182918261081a565b34610143575f36600319011261014357610244610bd1565b506101b0604051610254816108a5565b6001600160a01b036005541681526001600160a01b0360065416602082015260075460408201526040519182918261081a565b34610143576020366003190112610143576102a0610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b60095416176009556201518042018042116102e057600a55005b634e487b7160e01b5f52601160045260245ffd5b34610143575f3660031901126101435761030c610bd1565b506101b060405161031c816108a5565b6001600160a01b036008541681526001600160a01b03600954166020820152600a5460408201526040519182918261081a565b3461014357602036600319011261014357610368610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600f541617600f556201518042018042116102e057601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600c80546001600160a01b03191690555f600d55005b34610143576020366003190112610143576103f9610804565b6001600160a01b03600554163303610143576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116102e057600755005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600980546001600160a01b03191690555f600a55005b34610143575f36600319011261014357610489610bd1565b506101b0604051610499816108a5565b6001600160a01b03600b541681526001600160a01b03600c54166020820152600d5460408201526040519182918261081a565b34610143575f3660031901126101435760075442106101435760068054600580546001600160a01b03199081166001600160a01b038416179091551690555f600755005b3461014357608036600319011261014357610529610804565b60243560443590606435926001600160a01b03600554163303610143578360806001600160a01b036040519361055e85610859565b169283815284602082015285604082015242606082015201526001600160601b0360a01b5f5416175f55600155600255426003556004555f80f35b34610143575f366003190112610143576001600160a01b03600e5416330361014357600d54421061014357600c8054600b80546001600160a01b03199081166001600160a01b038416179091551690555f600d55005b34610143575f3660031901126101435760115460011981019081116102e057602090604051908152f35b34610143575f36600319011261014357601054421061014357600f8054600e80546001600160a01b03199081166001600160a01b038416179091551690555f601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600f80546001600160a01b03191690555f601055005b34610143576020366003190112610143576101b061017e6106b4610804565b610981565b34610143575f366003190112610143576001600160a01b03600e5416330361014357600a5442106101435760098054600880546001600160a01b03199081166001600160a01b038416179091551690555f600a55005b34610143575f366003190112610143575f608060405161072e81610859565b828152826020820152826040820152826060820152015260a060405161075381610859565b6001600160a01b035f5416908181526001546020820190815260025460408301908152600354916060840192835260806004549401938452604051948552516020850152516040840152516060830152516080820152f35b34610143576020366003190112610143576107c4610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600c541617600c556201518042018042116102e057600d55005b600435906001600160a01b038216820361014357565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b919082018092116102e057565b60a0810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761087557604052565b6060810190811067ffffffffffffffff82111761087557604052565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b604051906108f082610889565b5f6060838281528260208201528260408201520152565b908160809103126101435760606040519161092183610889565b8051835260208101516020840152604081015160408401520151606082015290565b919082039182116102e057565b818102929181159184041417156102e057565b811561096d570490565b634e487b7160e01b5f52601260045260245ffd5b905f915f915f905f925f60045491826109986108e3565b506001600160a01b03600b54169660405190637e17f55960e11b82526001600160a01b03841660048301526020826024818c5afa918215610b92575f92610b9d575b50929197905f9360035499601154915b838710610a54575b50505050505050670de0b6b3a7640000810290808204670de0b6b3a764000014901517156102e057610a3a610a4f91610a34670de0b6b3a76400009488610943565b90610963565b610a4960015460025490610963565b90610950565b049290565b60405163120a744b60e31b81526001600160a01b038716600482015260248101889052969a509495939492939192608083604481895afa928315610b92575f93610b62575b5060408301918c835111610b125784845114610af75781610ace575b5050516060919091015160018a019594939291906109ea565b97610ae9610aef92610ae4859b60609651610943565b610950565b9061084c565b96905f610ab5565b5050505050505050505093505050505f905f905f905f905f90565b9550955050916001915097949714610b56575b5081610b3b575b5050925f8080808080806109f2565b610b4e929591610ae4610ae99289610943565b925f80610b2c565b6060015191505f610b25565b610b8491935060803d8111610b8b575b610b7c81836108c1565b810190610907565b915f610a99565b503d610b72565b6040513d5f823e3d90fd5b9091506020813d602011610bc9575b81610bb9602093836108c1565b810103126101435751905f6109da565b3d9150610bac565b60405190610bde826108a5565b5f6040838281528260208201520152565b5f915f915f905f925f600454928390610c066108e3565b946001600160a01b03600b54169760405190637e17f55960e11b82526001600160a01b03841660048301526020826024818d5afa918215610b92575f92610dfb575b5091985f93916003549a601154905b828710610cd4575b50505050505050670de0b6b3a7640000820291808304670de0b6b3a764000014901517156102e057610ccf91610a34610c989288610943565b606060015494610cc4670de0b6b3a7640000610cbb60025495610a49878b610963565b04809997610943565b600155015190610943565b600255565b60405163120a744b60e31b81526001600160a01b038616600482015260248101889052969b509499509294919390929190608082604481885afa918215610b92575f92610ddb575b50819960018514610dd0575b60408301918d835111610d955784845114610d7a5781610d5c575b5050606090519101519160018b01959391949294610c57565b98610ae9610d7292610ae4859c60609651610943565b97905f610d43565b505f9e508e9d508d9c508c9b508b9a50505050505050505050565b955095505050505081969296610db5575b5050935f808080808080610c5f565b610dc8929391610ae4610ae9928a610943565b905f80610da6565b506060820151610d28565b610df491925060803d8111610b8b57610b7c81836108c1565b905f610d1c565b9091506020813d602011610e27575b81610e17602093836108c1565b810103126101435751905f610c48565b3d9150610e0a56fea2646970667358221220c735d624f83faa268abe1416ff68fae91ab044af7434d8859bd70c0fe6194e0d64736f6c63430008210033",sourceMap:"1271:15128:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;9128:18;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;9169:22:67;1271:15128;;3546:44;1271:15128;3582:8;;1271:15128;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3387:14:67;1271:15128;;3373:10;:35;3369:49;;6009:2190;1271:15128;6009:2190;;:::i;:::-;1271:15128;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;13190:7;1271:15128;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14317:5:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13471:9:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;9731:20;1271:15128;;;9731:20;1271:15128;9818:6;9800:15;1271:15128;9800:15;;1271:15128;;;9773:24;1271:15128;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13746:11:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;11499:14;1271:15128;;;11499:14;1271:15128;11574:6;11556:15;1271:15128;11556:15;;1271:15128;;;11535:18;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;10853:23;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;10899:27:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;8903:18;1271:15128;;;8903:18;1271:15128;8986:6;8968:15;1271:15128;8968:15;;1271:15128;;;8943:22;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;9961:20;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;10004:24:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14041:14:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;9348:22;1271:15128;9330:15;:40;9326:54;;9410:18;1271:15128;;9348:9;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;9348:22:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;1271:15128;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::i;:::-;;;;;;5105:196;1271:15128;5105:196;;1271:15128;5105:196;1271:15128;5105:196;;1271:15128;5247:15;1271:15128;5105:196;;1271:15128;5105:196;1271:15128;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;5247:15;1271:15128;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;11104:27;1271:15128;11086:15;:45;11082:59;;11176:23;1271:15128;;11104:14;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;11104:27:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;12970:7;1271:15128;-1:-1:-1;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;11908:18;1271:15128;11890:15;:36;11886:50;;11962:14;1271:15128;;11908:5;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;11908:18:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;11704:14;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;11741:18:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;10200:24;1271:15128;10182:15;:42;10178:56;;10266:20;1271:15128;;10200:11;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;10200:24:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;10611:23;1271:15128;;;10611:23;1271:15128;10704:6;10686:15;1271:15128;10686:15;;1271:15128;;;10656:27;1271:15128;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1271:15128:67;;;;;-1:-1:-1;1271:15128:67;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1271:15128:67;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;14876:1521;;1271:15128;15025:20;1271:15128;15104:21;1271:15128;15192:17;1271:15128;15219:14;1271:15128;15260:12;1271:15128;;;;;:::i;:::-;;-1:-1:-1;;;;;15354:14:67;1271:15128;;;;;;;;;15346:83;;-1:-1:-1;;;;;1271:15128:67;;15260:12;15346:83;;1271:15128;;15346:83;;;;;;;;;;;1271:15128;15346:83;;;14876:1521;15445:13;;;;;1271:15128;;15637:12;1271:15128;;15905:7;1271:15128;15440:708;15460:8;;;;;;15440:708;1271:15128;;;;;;;16188:4;1271:15128;;;;;;16188:4;1271:15128;;;;;;;16178:47;16275:49;16197:27;;16188:4;16197:27;;;:::i;:::-;16178:47;;:::i;:::-;16288:35;1271:15128;;16306:17;1271:15128;16288:35;;:::i;:::-;16275:49;;:::i;:::-;1271:15128;16355:35;14876:1521;:::o;15470:3::-;1271:15128;;-1:-1:-1;;;15493:111:67;;-1:-1:-1;;;;;1271:15128:67;;15260:12;15493:111;;1271:15128;;;;;;;;;-1:-1:-1;1271:15128:67;;;;;;;;15493:111;1271:15128;;;;15493:111;;;;;;;1271:15128;15493:111;;;15470:3;15623:11;1271:15128;15623:11;;1271:15128;;;;15623:26;15619:247;;1271:15128;;;15884:28;15880:65;;15975:13;15971:62;;15470:3;-1:-1:-1;;1271:15128:67;16093:13;;;;;1271:15128;;;;;15445:13;;;16120:17;1271:15128;15445:13;;15971:62;1271:15128;16000:33;15990:43;1271:15128;16001:19;1271:15128;;16093:13;1271:15128;;16001:19;:::i;:::-;16000:33;:::i;:::-;15990:43;;:::i;:::-;15971:62;;;;;15880:65;15914:31;;;;;;;;;;;;;;;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;:::o;15619:247::-;15673:9;;;;;;1271:15128;15673:9;;;;;;15669:40;;15619:247;15732:13;;15728:63;;15619:247;15810:17;;15846:5;;;;;;;;;;15728:63;15747:44;15758:20;;;;15757:34;15758:20;;;:::i;15747:44::-;15728:63;;;;;15669:40;16093:13;15696;1271:15128;;-1:-1:-1;15669:40:67;;;15493:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1271:15128;;;;;;;;;15346:83;;;;1271:15128;15346:83;;1271:15128;15346:83;;;;;;1271:15128;15346:83;;;:::i;:::-;;;1271:15128;;;;;15346:83;;;;;;;-1:-1:-1;15346:83:67;;1271:15128;;;;;;;:::i;:::-;-1:-1:-1;1271:15128:67;;;;;;;;;;;;:::o;6009:2190::-;1271:15128;6009:2190;1271:15128;6009:2190;1271:15128;6329:17;1271:15128;6356:14;1271:15128;6397:12;1271:15128;;;6419:39;1271:15128;;:::i;:::-;;-1:-1:-1;;;;;6491:14:67;1271:15128;;;;;;;;;6483:83;;-1:-1:-1;;;;;1271:15128:67;;6397:12;6483:83;;1271:15128;;6483:83;;;;;;;;;;;1271:15128;6483:83;;;6009:2190;6582:13;;;1271:15128;6582:13;;6829:12;1271:15128;;7038:7;1271:15128;6577:704;6597:8;;;;;;6577:704;1271:15128;;;;;;;7893:4;1271:15128;;;;;;7893:4;1271:15128;;;;;;;8158:34;7902:27;;7883:47;7902:27;;;:::i;7883:47::-;7226:13;6768:1;1271:15128;;8106:42;7893:4;7980:49;8011:17;1271:15128;7993:35;;;;;:::i;7980:49::-;1271:15128;8060:35;;8106:42;;:::i;:::-;6768:1;1271:15128;8179:13;1271:15128;8158:34;;:::i;:::-;8011:17;1271:15128;6009:2190::o;6607:3::-;1271:15128;;-1:-1:-1;;;6630:111:67;;-1:-1:-1;;;;;1271:15128:67;;6397:12;6630:111;;1271:15128;;;;;;;;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;;;;;;;6630:111;1271:15128;;;;6630:111;;;;;;;1271:15128;6630:111;;;6607:3;6626:115;;6760:9;6768:1;6760:9;;6756:40;;6607:3;1271:15128;6815:11;;1271:15128;;;;6815:26;6811:188;;1271:15128;;;7017:28;7013:65;;7108:13;7104:62;;6607:3;1271:15128;;7226:13;1271:15128;;7226:13;;1271:15128;7253:17;6768:1;7253:17;1271:15128;6582:13;;;;;;;;7104:62;1271:15128;7133:33;7123:43;1271:15128;7134:19;1271:15128;;7226:13;1271:15128;;7134:19;:::i;7123:43::-;7104:62;;;;;7013:65;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;;;;;;;;;;7047:31:67:o;6811:188::-;6865:13;;;;;;;;;;;;6861:63;;6811:188;6943:17;;6979:5;;;;;;;;;;6861:63;6880:44;6891:20;;;;6890:34;6891:20;;;:::i;6880:44::-;6861:63;;;;;6756:40;6783:13;7226;6783;;1271:15128;6756:40;;6630:111;;;;;;;;;;;;;;;:::i;:::-;;;;;6483:83;;;;1271:15128;6483:83;;1271:15128;6483:83;;;;;;1271:15128;6483:83;;;:::i;:::-;;;1271:15128;;;;;6483:83;;;;;;;-1:-1:-1;6483:83:67;",linkReferences:{}},methodIdentifiers:{"acceptActivatorProposal()":"608bd0bf","acceptAddressStakingProposal()":"5b65a897","acceptAdminProposal()":"55dbb311","acceptEvvmAddressProposal()":"1fa75673","cancelActivatorProposal()":"fd3607d0","cancelAddressStakingProposal()":"7aa84eae","cancelAdminProposal()":"4cc05f46","cancelEvvmAddressProposal()":"70b170da","getActivatorMetadata()":"b1fc6a91","getActualEpochInFormat()":"c9ed28e9","getActualEpochInUint()":"5637455a","getAddressStakingMetadata()":"6e14f559","getAdminMetadata()":"c1a53583","getCoreAddressMetadata()":"9da2bb11","getEpochMetadata()":"112c1d5a","makeEstimation(address)":"f7027207","notifyNewEpoch(address,uint256,uint256,uint256)":"5fd99c59","setActivatorProposal(address)":"79eb30f0","setAddressStakingProposal(address)":"0f9d8a70","setAdminProposal(address)":"7fa80f08","setEvvmAddressProposal(address)":"a9131e23","simulteEstimation(address)":"33a61fc3"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_activator","type":"address"},{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_addressStaking","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"acceptActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActivatorMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActualEpochInFormat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActualEpochInUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressStakingMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdminMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddressMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEpochMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenPool","type":"address"},{"internalType":"uint256","name":"totalPool","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"tFinal","type":"uint256"},{"internalType":"uint256","name":"tStart","type":"uint256"}],"internalType":"struct Estimator.EpochMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"makeEstimation","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwrite","type":"uint256"},{"internalType":"uint256","name":"timestampToOverwrite","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenPool","type":"address"},{"internalType":"uint256","name":"totalPool","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"tStart","type":"uint256"}],"name":"notifyNewEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"simulteEstimation","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwrite","type":"uint256"},{"internalType":"uint256","name":"timestampToOverwrite","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Mate Labs","details":"Collaborates with Staking.sol to track epochs, total staked amounts, and distribution pools. Features time-delayed governance for administrative changes.","kind":"dev","methods":{"constructor":{"details":"Sets up all required addresses for contract operation","params":{"_activator":"Address authorized to start new epochs","_addressStaking":"Address of the Staking contract","_admin":"Address with administrative privileges","_coreAddress":"Address of the EVVM core contract"}},"getActivatorMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for activator"}},"getActualEpochInFormat()":{"returns":{"_0":"Current epoch identifier"}},"getActualEpochInUint()":{"returns":{"_0":"Current epoch number (epochId - 2)"}},"getAddressStakingMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for Staking"}},"getAdminMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for admin"}},"getCoreAddressMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for EVVM"}},"getEpochMetadata()":{"returns":{"_0":"Complete EpochMetadata struct with pool and timing information"}},"makeEstimation(address)":{"details":"Only callable by the Staking contract. Uses time-weighted average calculation to determine proportional rewards based on staking duration and amount.","params":{"_user":"Address of the user to calculate rewards for"},"returns":{"amountTotalToBeRewarded":"Calculated reward amount for the user","epochAnswer":"Epoch identifier to record in user history","idToOverwrite":"Index in user history to update with reward info","timestampToOverwrite":"Timestamp to record for the reward transaction","tokenAddress":"Address of the reward token"}},"notifyNewEpoch(address,uint256,uint256,uint256)":{"details":"Only callable by the activator address. Records epoch metadata for reward calculations.","params":{"tStart":"Timestamp when the epoch started","tokenPool":"Address of the token to be distributed as rewards","totalPool":"Total amount of tokens available for distribution this epoch","totalStaked":"Total staking tokens staked at epoch start"}},"setActivatorProposal(address)":{"params":{"_proposal":"Address of the proposed new activator"}},"setAddressStakingProposal(address)":{"params":{"_proposal":"Address of the proposed new Staking contract"}},"setAdminProposal(address)":{"params":{"_proposal":"Address of the proposed new admin"}},"setEvvmAddressProposal(address)":{"params":{"_proposal":"Address of the proposed new EVVM contract"}},"simulteEstimation(address)":{"details":"View function for previewing rewards before claiming","params":{"_user":"Address of the user to simulate rewards for"},"returns":{"amountTotalToBeRewarded":"Calculated reward amount","epochAnswer":"Epoch identifier that would be recorded","idToOverwrite":"Index in user history that would be updated","timestampToOverwrite":"Timestamp that would be recorded","tokenAddress":"Address of the reward token"}}},"stateVariables":{"BEGUIN_IDENTIFIER":{"details":"Beginning identifier same as withdraw for epoch tracking"},"DEPOSIT_IDENTIFIER":{"details":"Transaction type identifier for deposit (staking) operations"},"WITHDRAW_IDENTIFIER":{"details":"Transaction type identifier for withdraw (unstaking) operations"},"activator":{"details":"Proposal system for activator address changes"},"addressStaking":{"details":"Proposal system for Staking contract address changes"},"admin":{"details":"Proposal system for admin address changes"},"coreAddress":{"details":"Proposal system for EVVM address changes"},"epoch":{"details":"Current epoch metadata storage"},"epochId":{"details":"Current epoch identifier, increments with each new epoch"}},"title":"EVVM Staking Estimator","version":1},"userdoc":{"kind":"user","methods":{"acceptActivatorProposal()":{"notice":"Accepts the activator proposal after time delay"},"acceptAddressStakingProposal()":{"notice":"Accepts the Staking address proposal after time delay"},"acceptAdminProposal()":{"notice":"Accepts the admin proposal after time delay"},"acceptEvvmAddressProposal()":{"notice":"Accepts the EVVM address proposal after time delay"},"cancelActivatorProposal()":{"notice":"Cancels the pending activator proposal"},"cancelAddressStakingProposal()":{"notice":"Cancels the pending Staking address proposal"},"cancelAdminProposal()":{"notice":"Cancels the pending admin proposal"},"cancelEvvmAddressProposal()":{"notice":"Cancels the pending EVVM address proposal"},"constructor":{"notice":"Initializes the Estimator contract"},"getActivatorMetadata()":{"notice":"Returns the activator address proposal information"},"getActualEpochInFormat()":{"notice":"Returns the current epoch identifier in bytes32 format"},"getActualEpochInUint()":{"notice":"Returns the current epoch number as uint256"},"getAddressStakingMetadata()":{"notice":"Returns the Staking contract address proposal information"},"getAdminMetadata()":{"notice":"Returns the admin address proposal information"},"getCoreAddressMetadata()":{"notice":"Returns the EVVM address proposal information"},"getEpochMetadata()":{"notice":"Returns the current epoch metadata"},"makeEstimation(address)":{"notice":"Calculates and returns the reward amount for a specific user"},"notifyNewEpoch(address,uint256,uint256,uint256)":{"notice":"Starts a new reward epoch with the provided parameters"},"setActivatorProposal(address)":{"notice":"Proposes a new activator address with 1-day time delay"},"setAddressStakingProposal(address)":{"notice":"Proposes a new Staking contract address with 1-day time delay"},"setAdminProposal(address)":{"notice":"Proposes a new admin address with 1-day time delay"},"setEvvmAddressProposal(address)":{"notice":"Proposes a new EVVM address with 1-day time delay"},"simulteEstimation(address)":{"notice":"Simulates reward estimation without modifying state"}},"notice":"MM\\"\\"\\"\\"\\"\\"\\"\\"`M dP oo dP MM mmmmmmmM 88 88 M` MMMM .d8888b. d8888P dP 88d8b.d8b. .d8888b. d8888P .d8888b. 88d888b. MM MMMMMMMM Y8ooooo. 88 88 88\'`88\'`88 88\' `88 88 88\' `88 88\' `88 MM MMMMMMMM 88 88 88 88 88 88 88. .88 88 88. .88 88 MM .M `88888P\' dP dP dP dP dP `88888P8 dP `88888P\' dP MMMMMMMMMMMM Calculates validator rewards using time-weighted averages.","version":1}},"settings":{"compilationTarget":{"src/contracts/staking/Estimator.sol":"Estimator"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_activator",type:"address"},{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_addressStaking",type:"address"},{internalType:"address",name:"_admin",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptActivatorProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAddressStakingProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAdminProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptEvvmAddressProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelActivatorProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelAddressStakingProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelAdminProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelEvvmAddressProposal"},{inputs:[],stateMutability:"view",type:"function",name:"getActivatorMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getActualEpochInFormat",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}]},{inputs:[],stateMutability:"view",type:"function",name:"getActualEpochInUint",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getAddressStakingMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAdminMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddressMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getEpochMetadata",outputs:[{internalType:"struct Estimator.EpochMetadata",name:"",type:"tuple",components:[{internalType:"address",name:"tokenPool",type:"address"},{internalType:"uint256",name:"totalPool",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"},{internalType:"uint256",name:"tFinal",type:"uint256"},{internalType:"uint256",name:"tStart",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"_user",type:"address"}],stateMutability:"nonpayable",type:"function",name:"makeEstimation",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwrite",type:"uint256"},{internalType:"uint256",name:"timestampToOverwrite",type:"uint256"}]},{inputs:[{internalType:"address",name:"tokenPool",type:"address"},{internalType:"uint256",name:"totalPool",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"},{internalType:"uint256",name:"tStart",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"notifyNewEpoch"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setActivatorProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setAddressStakingProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setAdminProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setEvvmAddressProposal"},{inputs:[{internalType:"address",name:"_user",type:"address"}],stateMutability:"view",type:"function",name:"simulteEstimation",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwrite",type:"uint256"},{internalType:"uint256",name:"timestampToOverwrite",type:"uint256"}]}],devdoc:{kind:"dev",methods:{constructor:{details:"Sets up all required addresses for contract operation",params:{_activator:"Address authorized to start new epochs",_addressStaking:"Address of the Staking contract",_admin:"Address with administrative privileges",_coreAddress:"Address of the EVVM core contract"}},"getActivatorMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for activator"}},"getActualEpochInFormat()":{returns:{_0:"Current epoch identifier"}},"getActualEpochInUint()":{returns:{_0:"Current epoch number (epochId - 2)"}},"getAddressStakingMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for Staking"}},"getAdminMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for admin"}},"getCoreAddressMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for EVVM"}},"getEpochMetadata()":{returns:{_0:"Complete EpochMetadata struct with pool and timing information"}},"makeEstimation(address)":{details:"Only callable by the Staking contract. Uses time-weighted average calculation to determine proportional rewards based on staking duration and amount.",params:{_user:"Address of the user to calculate rewards for"},returns:{amountTotalToBeRewarded:"Calculated reward amount for the user",epochAnswer:"Epoch identifier to record in user history",idToOverwrite:"Index in user history to update with reward info",timestampToOverwrite:"Timestamp to record for the reward transaction",tokenAddress:"Address of the reward token"}},"notifyNewEpoch(address,uint256,uint256,uint256)":{details:"Only callable by the activator address. Records epoch metadata for reward calculations.",params:{tStart:"Timestamp when the epoch started",tokenPool:"Address of the token to be distributed as rewards",totalPool:"Total amount of tokens available for distribution this epoch",totalStaked:"Total staking tokens staked at epoch start"}},"setActivatorProposal(address)":{params:{_proposal:"Address of the proposed new activator"}},"setAddressStakingProposal(address)":{params:{_proposal:"Address of the proposed new Staking contract"}},"setAdminProposal(address)":{params:{_proposal:"Address of the proposed new admin"}},"setEvvmAddressProposal(address)":{params:{_proposal:"Address of the proposed new EVVM contract"}},"simulteEstimation(address)":{details:"View function for previewing rewards before claiming",params:{_user:"Address of the user to simulate rewards for"},returns:{amountTotalToBeRewarded:"Calculated reward amount",epochAnswer:"Epoch identifier that would be recorded",idToOverwrite:"Index in user history that would be updated",timestampToOverwrite:"Timestamp that would be recorded",tokenAddress:"Address of the reward token"}}},version:1},userdoc:{kind:"user",methods:{"acceptActivatorProposal()":{notice:"Accepts the activator proposal after time delay"},"acceptAddressStakingProposal()":{notice:"Accepts the Staking address proposal after time delay"},"acceptAdminProposal()":{notice:"Accepts the admin proposal after time delay"},"acceptEvvmAddressProposal()":{notice:"Accepts the EVVM address proposal after time delay"},"cancelActivatorProposal()":{notice:"Cancels the pending activator proposal"},"cancelAddressStakingProposal()":{notice:"Cancels the pending Staking address proposal"},"cancelAdminProposal()":{notice:"Cancels the pending admin proposal"},"cancelEvvmAddressProposal()":{notice:"Cancels the pending EVVM address proposal"},constructor:{notice:"Initializes the Estimator contract"},"getActivatorMetadata()":{notice:"Returns the activator address proposal information"},"getActualEpochInFormat()":{notice:"Returns the current epoch identifier in bytes32 format"},"getActualEpochInUint()":{notice:"Returns the current epoch number as uint256"},"getAddressStakingMetadata()":{notice:"Returns the Staking contract address proposal information"},"getAdminMetadata()":{notice:"Returns the admin address proposal information"},"getCoreAddressMetadata()":{notice:"Returns the EVVM address proposal information"},"getEpochMetadata()":{notice:"Returns the current epoch metadata"},"makeEstimation(address)":{notice:"Calculates and returns the reward amount for a specific user"},"notifyNewEpoch(address,uint256,uint256,uint256)":{notice:"Starts a new reward epoch with the provided parameters"},"setActivatorProposal(address)":{notice:"Proposes a new activator address with 1-day time delay"},"setAddressStakingProposal(address)":{notice:"Proposes a new Staking contract address with 1-day time delay"},"setAdminProposal(address)":{notice:"Proposes a new admin address with 1-day time delay"},"setEvvmAddressProposal(address)":{notice:"Proposes a new EVVM address with 1-day time delay"},"simulteEstimation(address)":{notice:"Simulates reward estimation without modifying state"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/staking/Estimator.sol":"Estimator"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:67},iF={abi:[{type:"constructor",inputs:[{name:"_initialOwner",type:"address",internalType:"address"},{name:"_stakingContractAddress",type:"address",internalType:"address"},{name:"_evvmMetadata",type:"tuple",internalType:"struct CoreStructs.EvvmMetadata",components:[{name:"EvvmName",type:"string",internalType:"string"},{name:"EvvmID",type:"uint256",internalType:"uint256"},{name:"principalTokenName",type:"string",internalType:"string"},{name:"principalTokenSymbol",type:"string",internalType:"string"},{name:"principalTokenAddress",type:"address",internalType:"address"},{name:"totalSupply",type:"uint256",internalType:"uint256"},{name:"eraTokens",type:"uint256",internalType:"uint256"},{name:"reward",type:"uint256",internalType:"uint256"}]}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",name:"acceptAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeBaseRewardAmount",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptImplementation",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptListStatusProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptUserValidatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addAmountToUser",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addBalance",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"quantity",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"asyncNonceStatus",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes1",internalType:"bytes1"}],stateMutability:"view"},{type:"function",name:"batchPay",inputs:[{name:"batchData",type:"tuple[]",internalType:"struct CoreStructs.BatchData[]",components:[{name:"from",type:"address",internalType:"address"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"successfulTransactions",type:"uint256",internalType:"uint256"},{name:"results",type:"bool[]",internalType:"bool[]"}],stateMutability:"nonpayable"},{type:"function",name:"caPay",inputs:[{name:"to",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"canExecuteUserTransaction",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelUserValidatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disperseCaPay",inputs:[{name:"toData",type:"tuple[]",internalType:"struct CoreStructs.DisperseCaPayMetadata[]",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"toAddress",type:"address",internalType:"address"}]},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispersePay",inputs:[{name:"from",type:"address",internalType:"address"},{name:"toData",type:"tuple[]",internalType:"struct CoreStructs.DispersePayMetadata[]",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"}]},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAllowListStatus",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getAsyncNonceReservation",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getBalance",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainHostCoinAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"pure"},{type:"function",name:"getCurrentAdmin",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentListStatus",inputs:[],outputs:[{name:"",type:"bytes1",internalType:"bytes1"}],stateMutability:"view"},{type:"function",name:"getCurrentSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDenyListStatus",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct CoreStructs.EvvmMetadata",components:[{name:"EvvmName",type:"string",internalType:"string"},{name:"EvvmID",type:"uint256",internalType:"uint256"},{name:"principalTokenName",type:"string",internalType:"string"},{name:"principalTokenSymbol",type:"string",internalType:"string"},{name:"principalTokenAddress",type:"address",internalType:"address"},{name:"totalSupply",type:"uint256",internalType:"uint256"},{name:"eraTokens",type:"uint256",internalType:"uint256"},{name:"reward",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailAdmin",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailImplementation",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailListStatus",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.Bytes1TypeProposal",components:[{name:"current",type:"bytes1",internalType:"bytes1"},{name:"proposal",type:"bytes1",internalType:"bytes1"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailReward",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.UintTypeProposal",components:[{name:"current",type:"uint256",internalType:"uint256"},{name:"proposal",type:"uint256",internalType:"uint256"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailRewardFlowDistribution",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailUserValidator",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNameServiceAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNextCurrentSyncNonce",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenTotalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardAmount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardFlowDistributionFlag",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getStakingContractAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTimeToDeleteMaxSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserValidatorAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"initializeSystemContracts",inputs:[{name:"_nameServiceAddress",type:"address",internalType:"address"},{name:"_treasuryAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isAddressStaker",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"pay",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pointStaker",inputs:[{name:"user",type:"address",internalType:"address"},{name:"answer",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeAdmin",inputs:[{name:"_newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeBaseRewardAmount",inputs:[{name:"newBaseReward",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeImplementation",inputs:[{name:"_newImpl",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeListStatus",inputs:[{name:"newStatus",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeUserValidator",inputs:[{name:"newValidator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"recalculateReward",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectChangeBaseRewardAmount",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectListStatusProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectUpgrade",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeAmountFromUser",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reserveAsyncNonce",inputs:[{name:"nonce",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"revokeAsyncNonce",inputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setEvvmID",inputs:[{name:"newEvvmID",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPointStaker",inputs:[{name:"user",type:"address",internalType:"address"},{name:"answer",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTokenStatusOnAllowList",inputs:[{name:"token",type:"address",internalType:"address"},{name:"status",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTokenStatusOnDenyList",inputs:[{name:"token",type:"address",internalType:"address"},{name:"status",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateAndConsumeNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"hashPayload",type:"bytes32",internalType:"bytes32"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AddressCantBeZero",inputs:[]},{type:"error",name:"AsyncNonceAlreadyReserved",inputs:[]},{type:"error",name:"AsyncNonceAlreadyUsed",inputs:[]},{type:"error",name:"AsyncNonceIsReservedByAnotherService",inputs:[]},{type:"error",name:"AsyncNonceNotReserved",inputs:[]},{type:"error",name:"BaseRewardIncreaseNotAllowed",inputs:[]},{type:"error",name:"BreakerExploded",inputs:[]},{type:"error",name:"ImplementationIsNotActive",inputs:[]},{type:"error",name:"IncorrectAddressInput",inputs:[]},{type:"error",name:"InsufficientBalance",inputs:[]},{type:"error",name:"InvalidAmount",inputs:[]},{type:"error",name:"InvalidListStatus",inputs:[]},{type:"error",name:"InvalidServiceAddress",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"MaxSupplyDeletionNotAllowed",inputs:[]},{type:"error",name:"NotAnCA",inputs:[]},{type:"error",name:"OriginIsNotTheOriginExecutor",inputs:[]},{type:"error",name:"ProposalNotReadyToAccept",inputs:[]},{type:"error",name:"RewardFlowDistributionChangeNotAllowed",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotTheProposedAdmin",inputs:[]},{type:"error",name:"SenderIsNotTreasury",inputs:[]},{type:"error",name:"ServiceSenderMismatch",inputs:[]},{type:"error",name:"SyncNonceMismatch",inputs:[]},{type:"error",name:"TokenIsDeniedForExecution",inputs:[]},{type:"error",name:"UserCannotExecuteTransaction",inputs:[]},{type:"error",name:"WindowExpired",inputs:[]}],bytecode:{object:"0x60806040523461061c576144f38038038061001981610620565b92833981019060608183031261061c5761003281610645565b9061003f60208201610645565b604082015190916001600160401b03821161061c5701916101008385031261061c576040519261010084016001600160401b038111858210176104065760405280516001600160401b03811161061c578561009b918301610659565b845260208181015190850190815260408201516001600160401b03811161061c57866100c8918401610659565b60408601908152606083015190966001600160401b03821161061c576100ef918401610659565b6060860190815261010260808401610645565b966080870197885260a08401519260a0880193845260e060c08601519560c08a0196875201519560e0890196875260018060a01b0316978815801561060b575b6105fc57518051906001600160401b0382116104065760095490600182811c921680156105f2575b60208310146103e85781601f84931161057c575b50602090601f8311600114610516575f9261050b575b50508160011b915f199060031b1c1916176009555b51600a55518051906001600160401b03821161040657600b5490600182811c92168015610501575b60208310146103e85781601f84931161048b575b50602090601f8311600114610425575f9261041a575b50508160011b915f199060031b1c191617600b555b5180519096906001600160401b03811161040657600c54600181811c911680156103fc575b60208210146103e857601f811161037a575b506020601f82116001146103125781906102d598995f92610307575b50508160011b915f199060031b1c191617600c555b51600d80546001600160a01b03199081166001600160a01b03938416179091559151600e559151600f5591516010556001805483169184169182178155601180549093169095179091556014805460ff19169094179093556106cb565b5f52601b60205260405f20600160ff19825416179055600160ff19601a541617601a55604051613da9908161074a8239f35b015190505f80610263565b601f19821698600c5f52815f20995f5b8181106103625750916102d5999a9184600195941061034a575b505050811b01600c55610278565b01515f1960f88460031b161c191690555f808061033c565b838301518c556001909b019a60209384019301610322565b8181111561024757600c5f52601f820160051c7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7602084106103e0575b81601f9101920160051c03905f5b8281106103d3575050610247565b5f828201556001016103c5565b5f91506103b7565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610235565b634e487b7160e01b5f52604160045260245ffd5b015190505f806101fb565b600b5f9081528281209350601f198516905b818110610473575090846001959493921061045b575b505050811b01600b55610210565b01515f1960f88460031b161c191690555f808061044d565b92936020600181928786015181550195019301610437565b828111156101e557600b5f52909150601f830160051c7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9602085106104f9575b849392601f0160051c82900391015f5b8281106104e95750506101e5565b5f818301558594506001016104db565b5f91506104cb565b91607f16916101d1565b015190505f80610194565b60095f9081528281209350601f198516905b818110610564575090846001959493921061054c575b505050811b016009556101a9565b01515f1960f88460031b161c191690555f808061053e565b92936020600181928786015181550195019301610528565b8281111561017e5760095f52909150601f830160051c7f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af602085106105ea575b849392601f0160051c82900391015f5b8281106105da57505061017e565b5f818301558594506001016105cc565b5f91506105bc565b91607f169161016a565b632582a64160e11b5f5260045ffd5b506001600160a01b03881615610142565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761040657604052565b51906001600160a01b038216820361061c57565b81601f8201121561061c578051906001600160401b03821161040657610688601f8301601f1916602001610620565b928284526020838301011161061c57815f9260208093018386015e8301015290565b919082018092116106b757565b634e487b7160e01b5f52601160045260245ffd5b60ff6014541615801561073b575b610738576010548060011b90808204600214901517156106b7576107339160018060a01b03165f52601c60205260405f2060018060a01b03600d54165f5260205260405f206107298282546106aa565b90556008546106aa565b600855565b50565b50600854600e5411156106d956fe60806040526004361015610019575b341561323d575b5f80fd5b5f3560e01c806301ed3f51146104685780630211de41146104635780630761a3ad1461045e57806308351bdd1461045957806309a69f571461045457806309fc69711461044f5780630e18b6811461044a5780630f1f38b2146104455780630faff8e814610440578063147bf6c41461043b57806315ba56e51461043657806317c85152146104315780631d3a4e2d1461042c57806325e3243b14610427578063280e32fb14610422578063286b4b441461041d57806329cca5691461041857806332e26fdc146104135780633625c9011461040e5780633a8cd872146104095780633f54542a14610404578063401dffee146103ff57806347ecd0f6146103fa5780634b366ccc146103f55780634c3b7bdb146103f05780634f3e1efc146103eb5780635300e162146103e657806354a12357146103e157806355160ea6146103dc578063563b6170146103d75780635a2cba27146103d2578063643d430c146103cd5780636a230fb4146103c85780636afe5795146103c35780636c9fa638146103be5780636cd30148146103b9578063766dd07b146103b457806376e6eb7e146103af5780637797e97d146103aa5780637a975c80146103a5578063804ef86f146103a0578063862b37371461039b5780638b62e507146103965780638e0c71ad1461039157806390fcb4ee1461038c57806392ab1f24146103875780639dd18c1514610382578063a574aac41461037d578063a7a096f614610378578063ab82aa0a14610373578063adb6233f1461036e578063ae63d1a714610369578063b139c79714610364578063b38c950a1461035f578063b517ac7d1461035a578063bd26035e14610355578063be726ffd14610350578063c898a6e91461034b578063cd654e3e14610346578063d0e3692d14610341578063d3bca8841461033c578063d4fac45d14610337578063e08290ee14610332578063e4e3cfee1461032d578063e7816eb814610328578063e8163dda14610323578063ef0035291461031e578063ef802613146103195763fa7a2e2a0361000e57612251565b6121b1565b61218b565b61213f565b611ca2565b611c03565b611ba6565b611b60565b611aeb565b611a9d565b611a42565b6119db565b6119be565b611991565b61193b565b6118ba565b611894565b61181f565b6117c1565b611738565b611699565b611653565b6115f0565b611588565b6114e6565b6114cc565b6113b8565b611365565b6112fd565b611281565b61123b565b6111dc565b611193565b611157565b6110ca565b611078565b61103b565b611015565b610fd4565b610f80565b610ea2565b610e4b565b610d86565b610d69565b610d20565b610cba565b610c9d565b610c65565b610c2d565b610c08565b610be0565b610b46565b610a9d565b610a4e565b610a28565b6109b4565b610992565b610975565b61091f565b610873565b6107a5565b6106c6565b610648565b610620565b610603565b6105c2565b61051a565b6104e2565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600a546104b0575b600a556201518042018042116104ab57600755005b6122c6565b60075442111561049657633ddfdb7f60e11b5f5260045ffd5b636587b01b60e11b5f5260045ffd5b5f91031261001557565b34610015575f366003190112610015576001600160a01b036011541633036104c95761051461ff001960185416601855565b5f601955005b34610015575f366003190112610015576105326123ca565b506060601054601654601754906040805161054c81612333565b8481526020810192835201918252604051928352516020830152516040820152f35b6001600160a01b0381160361001557565b60a4359061058c8261056e565b565b60c4359061058c8261056e565b6024359061058c8261056e565b6064359061058c8261056e565b60e4359061058c8261056e565b34610015576020366003190112610015576001600160a01b036004356105e78161056e565b165f526023602052602060ff60405f2054166040519015158152f35b34610015575f366003190112610015576020601054604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c9575f601555005b34610015575f3660031901126100155760135442106106b7576001600160a01b03601254168033036106a8576106a6906106956040519161068883612333565b6001600160a01b03168252565b5f60208201525f60408201526123e8565b005b63036834cf60e51b5f5260045ffd5b633ec513fd60e01b5f5260045ffd5b346100155760203660031901126100155760206106ed6004356106e88161056e565b612451565b6040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815261010060e061077661076061074086518560208801526101208701906106f7565b602087015160408701526040870151601f198783030160608801526106f7565b6060860151858203601f190160808701526106f7565b60808501516001600160a01b031660a08501529360a081015160c085015260c081015182850152015191015290565b34610015575f366003190112610015575f60e06040516107c481612353565b60608152826020820152606060408201526060808201528260808201528260a08201528260c0820152015261086f6107fa6123ab565b6108026124cf565b8152600a5460208201526108146125a4565b604082015261082161264b565b606082015261084b61083b600d546001600160a01b031690565b6001600160a01b03166080830152565b600e5460a0820152600f5460c082015260105460e08201526040519182918261071b565b0390f35b34610015576020366003190112610015576004356108908161056e565b6001600160a01b03601154168033036104c9576001600160a01b038216818115918215610915575b5050610906576201518042018042116104ab576108fc6106a6936108ec6108dd6123bb565b6001600160a01b039095168552565b6001600160a01b03166020840152565b60408201526123e8565b630f107a8160e11b5f5260045ffd5b149050815f6108b8565b34610015575f366003190112610015576001600160a01b036011541633036104c95760055442106106b75760048054600380546001600160a01b03199081166001600160a01b038416179091551690555f600555005b34610015575f366003190112610015576020600a54604051908152f35b34610015575f36600319011261001557602060ff601454166040519015158152f35b34610015575f366003190112610015576109cc6123ca565b506040516109d981612333565b6018546001600160f81b031960f882901b811680845260f09290921b81166020808501918252601954604095860190815285519485529151909216918301919091525191810191909152606090f35b34610015575f3660031901126100155760206001600160a01b03600d5416604051908152f35b346100155760203660031901126100155760206106ed600435610a708161056e565b6001600160a01b03165f908152601b602052604090205460f81b6001600160f81b031916600160f81b1490565b34610015575f3660031901126100155760206001600160a01b0360035416604051908152f35b9181601f84011215610015578235916001600160401b038311610015576020808501948460051b01011161001557565b8015150361001557565b610104359061058c82610af3565b610124359061058c82610af3565b9181601f84011215610015578235916001600160401b038311610015576020838186019501011161001557565b346100155761014036600319011261001557600435610b648161056e565b6024356001600160401b03811161001557610b83903690600401610ac3565b91604435610b908161056e565b606435608435610b9e61057f565b610ba661058e565b9160e43593610bb3610afd565b9561012435996001600160401b038b1161001557610bd86106a69b3690600401610b19565b9a90996128fd565b34610015575f366003190112610015576001600160a01b036011541633036104c9575f600655005b34610015575f3660031901126100155760206001600160a01b035f5416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c957600480546001600160a01b03191690555f600555005b34610015575f366003190112610015576001600160a01b036011541633036104c957601e80546001600160a01b03191690555f601f55005b34610015575f366003190112610015576020600e54604051908152f35b34610015576040366003190112610015576020610ce5600435610cdc8161056e565b60243590612bed565b6040516001600160f81b03199091168152f35b604090600319011261001557600435610d108161056e565b90602435610d1d81610af3565b90565b3461001557610d2e36610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602460205260405f209060ff801983541691151516179055565b34610015575f366003190112610015576020600854604051908152f35b34610015575f36600319011261001557600e54600f549081811180610e40575b15610015578181039081116104ab57610dcb91610dc69160011c90612312565b600f55565b610ddf601054610dd96135ce565b90612c86565b610e2a610e22610e00336001600160a01b03165f52601c60205260405f2090565b600d546001600160a01b03165b6001600160a01b03165f5260205260405f2090565b918254612312565b90556106a6610e3b60105460011c90565b601055565b505f19811415610da6565b34610015575f366003190112610015576001600160a01b036011541633036104c95760065442106106b7575f19600e55005b604090600319011261001557600435610e958161056e565b90602435610d1d8161056e565b3461001557610eb036610e7d565b60ff601a541615610f71576001600160a01b038216158015610f60575b610f5157610ef8826001600160a01b036106a694166001600160601b0360a01b5f5416175f55613440565b610f33610f26610f0f5f546001600160a01b031690565b6001600160a01b03165f52601b60205260405f2090565b805460ff19166001179055565b6001600160a01b03166001600160601b0360a01b6002541617600255565b632582a64160e11b5f5260045ffd5b506001600160a01b03811615610ecd565b630169759360e61b5f5260045ffd5b34610015575f366003190112610015575f6020604051610f9f8161236f565b828152015260408051610fb18161236f565b60ff60145416151590818152602060155491019081528251918252516020820152f35b34610015576020366003190112610015576001600160a01b03600435610ff98161056e565b165f526024602052602060ff60405f2054166040519015158152f35b34610015575f3660031901126100155760206001600160a01b0360115416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c95760175442106106b7576016546010555f6016555f6017555f80f35b34610015575f3660031901126100155760206001600160a01b0360015416604051908152f35b6060906003190112610015576004356110b68161056e565b906024356110c38161056e565b9060443590565b34610015576110d83661109e565b919060ff60f81b60185460f81b16611149575b6001600160a01b0360025416330361113a576001600160a01b0361112b92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182018092116104ab5755005b63aab0382b60e01b5f5260045ffd5b61115281613366565b6110eb565b34610015576020366003190112610015576001600160a01b0360043561117c8161056e565b165f526022602052602060405f2054604051908152f35b34610015576111a136610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602360205260405f209060ff801983541691151516179055565b34610015576111ea3661109e565b91906001600160a01b0360025416330361113a576001600160a01b0361122c92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182039182116104ab5755005b34610015575f366003190112610015576001600160a01b036011541633036104c95760195442106106b7576018805461ffff19811660089190911c60ff16179055610514565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e549061270f820282810461270f14831517156104ab576127109004119081156112f2575b506112e3576201518042018042116104ab57600655005b633cfd42e960e01b5f5260045ffd5b5f191490505f6112cc565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600e545f1914801590611359575b61134a576016556201518042018042116104ab57601755005b633527678960e01b5f5260045ffd5b50601054811015611331565b34610015576040366003190112610015576004356113828161056e565b6001600160a01b0360243591165f52602160205260405f20905f5260205260206001600160a01b0360405f205416604051908152f35b34610015576040366003190112610015576004356024356113d88161056e565b6001600160a01b038116156114bd57335f526020805261140d6114068360405f20905f5260205260405f2090565b5460ff1690565b6114ae5761145c61145061144384611436336001600160a01b03165f52602160205260405f2090565b905f5260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b61149f576114826106a692611436336001600160a01b03165f52602160205260405f2090565b906001600160a01b03166001600160601b0360a01b825416179055565b632e81b29360e01b5f5260045ffd5b632a0c4a2360e01b5f5260045ffd5b635ece24d960e11b5f5260045ffd5b34610015575f3660031901126100155760206040515f8152f35b3461001557610160366003190112610015576004356115048161056e565b61150c61059b565b6044356001600160401b0381116100155761152b903690600401610b19565b6115369391936105a8565b60843560a43561154461058e565b9061154d6105b5565b92610104359461155b610b0b565b96610144359a6001600160401b038c11610015576115806106a69c3690600401610b19565b9b909a612ce2565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e5461270f81029080820461270f14901517156104ab576127109004116115e1576201518042018042116104ab57601555005b63228f257f60e11b5f5260045ffd5b346100155760203660031901126100155760043561160d8161056e565b6001600160a01b036011541633036104c9576001600160a01b03168015610906576001600160601b0360a01b600454161760045562278d0042018042116104ab57600555005b34610015575f366003190112610015576001600160a01b036011541633036104c95760155442106106b75760145460ff80821615169060ff1916176014555f6015555f80f35b34610015576060366003190112610015576004356001600160401b0381116100155736602382011215610015578060040135906001600160401b038211610015573660248360061b83010111610015576106a691602435906116fa8261056e565b60246044359301612e6a565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b34610015575f366003190112610015576117506123ca565b5061086f60405161176081612333565b6001600160a01b036011541681526001600160a01b03601254166020820152601354604082015260405191829182611706565b602435906001600160f81b03198216820361001557565b600435906001600160f81b03198216820361001557565b34610015576040366003190112610015576004356117de8161056e565b6117e6611793565b6001600160a01b03600154163303610015576001600160a01b036106a692165f52601b60205260405f209060f81c60ff19825416179055565b34610015576020366003190112610015576118386117aa565b6001600160a01b036011541633036104c95760038160f81c1015611885576118739061ff00806018549260f01c16169061ff00191617601855565b6201518042018042116104ab57601955005b631fd8bc0560e11b5f5260045ffd5b34610015575f3660031901126100155760206001600160a01b03601d5416604051908152f35b34610015575f366003190112610015576001600160a01b03601154168033036104c9576001600160a01b03905f604080516118f481612333565b8381528260208201520152166001600160601b0360a01b60115416176011556119355f6001600160a01b03166001600160601b0360a01b6012541617601255565b5f601355005b34610015575f366003190112610015576001600160a01b036011541633036104c957601f5442106106b757601e8054601d80546001600160a01b03199081166001600160a01b038416179091551690555f601f55005b34610015575f366003190112610015576001600160a01b036011541633036104c9575f6016819055601755005b34610015575f366003190112610015576020600654604051908152f35b34610015576119e93661109e565b906119f333612451565b15611a3357611a029233613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14611a2a57005b6106a6336134c5565b630296e8bf60e61b5f5260045ffd5b34610015575f36600319011261001557611a5a6123ca565b5061086f604051611a6a81612333565b6001600160a01b03601d541681526001600160a01b03601e54166020820152601f54604082015260405191829182611706565b3461001557604036600319011261001557600435611aba8161056e565b6001600160a01b0360243591165f526020805260405f20905f52602052602060ff60405f2054166040519015158152f35b34610015576001600160a01b03611b013661109e565b929091165f52601c602052611b2a8160405f20906001600160a01b03165f5260205260405f2090565b8054908382018092116104ab57556001600160a01b0380600d5416911614611b4e57005b6008549081018091116104ab57600855005b34610015576020611b9d6001600160a01b03611b7b36610e7d565b91165f52601c835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610015575f36600319011261001557611bbe6123ca565b5061086f6001600160a01b03600354166001600160a01b03600454166005549060405192611beb84612333565b83526020830152604082015260405191829182611706565b3461001557602036600319011261001557600435611c208161056e565b6001600160a01b036011541633036104c9576001600160a01b03166001600160601b0360a01b601e541617601e556201518042018042116104ab57601f55005b6060602091604081019381526040838201528451809452019201905f5b818110611c8a5750505090565b82511515845260209384019390920191600101611c7d565b34610015576020366003190112610015576004356001600160401b03811161001557611cd2903690600401610ac3565b335f908152601b60205260408120549192909160f81b6001600160f81b031916600160f81b1490611d0284612f84565b9373__$4eed29582e89dabffcea3de7fdb0d1406e$__905f5b818110611d495750505050611d3a575b61086f60405192839283611c60565b611d448133613528565b611d2b565b611d54818386612fb6565b611d5d816128ad565b611d6960c083016128ad565b6020830191611d77836128ad565b926040850190611d878287612867565b909360608801956020611d99886128ad565b938d60808c01359860a08d01359b611dc98d8c6040519a8b9788968796634c09e2c960e01b885260048801612ca8565b03915af4928315612039575f9361210f575b50611de860e08a016128ad565b916101008a013592611dfd6101208c01612fd9565b611e0b6101408d018d612867565b91303b15610015575f96611e3494604051998a988998637d3d171560e11b8a5260048a01612fe3565b038183305af190816120f5575b50611e6257505050505050805f611e5a6001938a613026565b525b01611d1b565b601854969b9660f81b600160f81b6001600160f81b031982161490816120c4575b811561207a575b5061205b578a1561207057611e9f8386612312565b611ece611ec5611eae896128ad565b6001600160a01b03165f52601c60205260405f2090565b610e0d876128ad565b541061205b57611f00611efc611eee611ee7858a612867565b3691612724565b611ef6612899565b90613413565b1590565b1561203e57506020611f4c91611f2d611f266114506114505f546001600160a01b031690565b9188612867565b604051630d3dcb9f60e01b8152948593928492839291600484016128d7565b03915afa908115612039575f9161200b575b506001600160a01b03811615611ff15791611f966001969492611fac96945b611f86866128ad565b90611f90856128ad565b91613644565b81151580611fea575b611fc5575b50505061303a565b95611fc0611fba828a613026565b60019052565b611e5c565b611fda611fd4611fe2946128ad565b916128ad565b903390613644565b5f8080611fa4565b5089611f9f565b505050505094805f6120056001938a613026565b52611e5c565b61202c915060203d8111612032575b612024818361238a565b8101906128e8565b5f611f5e565b503d61201a565b612446565b611fac959391506001969492612056611f96926128ad565b611f7d565b50505050505094805f6120056001938a613026565b611e9f835f612312565b6001600160f81b031916600160f91b14905080612098575b5f611e8a565b506120bf6114066120a8866128ad565b6001600160a01b03165f52602360205260405f2090565b612092565b90506120ef611efc6114066120d8886128ad565b6001600160a01b03165f52602460205260405f2090565b90611e83565b806121035f6121099361238a565b806104d8565b5f611e41565b61213191935060203d8111612138575b612129818361238a565b810190612c99565b915f611ddb565b503d61211f565b34610015576040366003190112610015576106a660043561215f8161056e565b6001600160a01b0361216f611793565b91165f52601b60205260405f209060f81c60ff19825416179055565b34610015575f36600319011261001557602060185460f81b6040519060ff60f81b168152f35b3461001557602036600319011261001557600435335f526020805260405f20815f5260205260ff60405f2054166114ae57335f5260216020526001600160a01b0361220a6114438360405f20905f5260205260405f2090565b1615612242576122326106a691611436336001600160a01b03165f52602160205260405f2090565b80546001600160a01b0319169055565b63eb54a44d60e01b5f5260045ffd5b346100155760e03660031901126100155760043561226e8161056e565b6024359061227b8261056e565b606435916122888361056e565b60a43560843561229782610af3565b60c435946001600160401b038611610015576122ba6106a6963690600401610b19565b95909460443591613048565b634e487b7160e01b5f52601160045260245ffd5b90600182018092116104ab57565b60020190816002116104ab57565b60030190816003116104ab57565b90600c82018092116104ab57565b919082018092116104ab57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761234e57604052565b61231f565b61010081019081106001600160401b0382111761234e57604052565b604081019081106001600160401b0382111761234e57604052565b90601f801991011681019081106001600160401b0382111761234e57604052565b6040519061058c6101008361238a565b6040519061058c60608361238a565b604051906123d782612333565b5f6040838281528260208201520152565b6040906001600160a01b038151166001600160601b0360a01b60115416176011556001600160a01b036020820151166001600160601b0360a01b60125416176012550151601355565b908160209103126100155751610d1d81610af3565b6040513d5f823e3d90fd5b6001600160a01b03601d541680156124c8576040516385c99e2b60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115612039575f9161249f575090565b610d1d915060203d6020116124c1575b6124b9818361238a565b810190612431565b503d6124af565b5050600190565b604051905f6009548060011c9160018216801561259a575b602084108114612586578386528592602084019190811561256d5750600114612518575b5061058c9250038361238a565b60095f90815291507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b848310612556575061058c9350015f61250b565b805482840152869350602090920191600101612542565b60ff191682525061058c93151560051b0190505f61250b565b634e487b7160e01b5f52602260045260245ffd5b92607f16926124e7565b604051905f600b548060011c91600182168015612641575b602084108114612586578386528592602084019190811561256d57506001146125ec575061058c9250038361238a565b600b5f90815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b84831061262a575061058c9350015f61250b565b805482840152869350602090920191600101612616565b92607f16926125bc565b604051905f600c548060011c916001821680156126e8575b602084108114612586578386528592602084019190811561256d5750600114612693575061058c9250038361238a565b600c5f90815291507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8483106126d1575061058c9350015f61250b565b8054828401528693506020909201916001016126bd565b92607f1692612663565b6001600160401b03811161234e5760051b60200190565b6001600160401b03811161234e57601f01601f191660200190565b92919261273082612709565b9161273e604051938461238a565b829481845281830111610015578281602093845f960137010152565b929192612766826126f2565b93612774604051958661238a565b602085848152019260051b8201918183116100155780935b83851061279a575050505050565b84356001600160401b0381116100155782019060608285031261001557604051916127c483612333565b8035835260208101356127d68161056e565b60208401526040810135906001600160401b03821161001557019084601f830112156100155760209261280f8684868096359101612724565b604082015281520194019361278c565b919082039182116104ab57565b634e487b7160e01b5f52603260045260245ffd5b91908110156128625760051b81013590605e1981360301821215610015570190565b61282c565b903590601e198136030182121561001557018035906001600160401b0382116100155760200191813603831361001557565b604051906128a860208361238a565b5f8252565b35610d1d8161056e565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610d1d9381815201916128b7565b908160209103126100155751610d1d8161056e565b9681999296612925878761292c999f989c95979e978f90612920908d369161275a565b61327b565b9089613048565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14936129848661296e856001600160a01b03165f52601c60205260405f2090565b906001600160a01b03165f5260205260405f2090565b548515612be457612996885b86612312565b11612bd55760185460f81b6001600160f81b031916612bc7575b5f928515612bb1576129f06129e88861296e6129d08c9796975b8a612312565b946001600160a01b03165f52601c60205260405f2090565b91825461281f565b90555f91825b828410612a44575050505003612a3557612a0e575050565b610e22612a3191612a1e336134c5565b335f908152601c6020526040902061296e565b9055565b63162908e360e11b5f5260045ffd5b90919293612a5e90612a57868686612840565b3590612312565b93612a80611efc611eee611ee7612a76858989612840565b6040810190612867565b15612b9157612a9c6114506114505f546001600160a01b031690565b612acb6020612aaf612a76858989612840565b6040516310d9158b60e31b8152938492839290600484016128d7565b0381855afa908115612039575f91612b73575b50612b22575b506001905b612af4818686612840565b35612b17610e228b61296e876001600160a01b03165f52601c60205260405f2090565b9055019291906129f6565b819250602090611f2d612a76612b39948888612840565b03915afa8015612039576001915f91612b55575b509190612ae4565b612b6d915060203d811161203257612024818361238a565b5f612b4d565b612b8b915060203d81116124c1576124b9818361238a565b5f612ade565b90506001612bab6020612ba5848787612840565b016128ad565b91612ae9565b6129f06129e88861296e6129d05f9796976129ca565b612bd086613366565b6129b0565b631e9acf1760e31b5f5260045ffd5b6129965f612990565b6001600160a01b0381165f526020805260405f20825f5260205260ff60405f2054165f14612c205750600160f81b919050565b612c3b906001600160a01b03165f52602160205260405f2090565b905f526020526001600160a01b03612c5e60405f206001600160a01b0390541690565b1615612c6c57600160f91b90565b5f90565b908160011b91808304600214901517156104ab57565b818102929181159184041417156104ab57565b90816020910312610015575190565b9260809497969592612cd2916001600160a01b03809416865260a0602087015260a08601916128b7565b9616604083015260608201520152565b9b92988598602084848a9f969b9a899f969a908f9a91612d17926040519c8d968796634c09e2c960e01b885260048801612ca8565b038173__$4eed29582e89dabffcea3de7fdb0d1406e$__5af48015612039578c988f612d4a985f93612e39575b50613048565b612d5b611efc611eee368887612724565b15612e2c575050612d9d92602091612d806114506114505f546001600160a01b031690565b9060405180968194829363063c696360e11b8452600484016128d7565b03915afa91821561203957612dbd9284915f91612e0d575b505b86613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612de857505050565b81612dfa575b50505061058c336134c5565b612e05923390613644565b5f8080612dee565b612e26915060203d60201161203257612024818361238a565b5f612db5565b909150612dbd9350612db7565b612e5391935060203d60201161213857612129818361238a565b915f612d44565b91908110156128625760061b0190565b60185460f81b6001600160f81b031916612f76575b333b15612f675783612ea68461296e336001600160a01b03165f52601c60205260405f2090565b5410612bd55791905f92612ecf8361296e336001600160a01b03165f52601c60205260405f2090565b612eda86825461281f565b90555f925b828410612f20575050505003612a3557335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612f1757565b61058c336134c5565b90919293612f35600191612a57878787612e5a565b94612f41818686612e5a565b35612f5c610e228561296e611eae6020612ba5888d8d612e5a565b905501929190612edf565b633d0c12e760e21b5f5260045ffd5b612f7f83613366565b612e7f565b90612f8e826126f2565b612f9b604051918261238a565b8281528092612fac601f19916126f2565b0190602036910137565b91908110156128625760051b8101359061015e1981360301821215610015570190565b35610d1d81610af3565b93610d1d9896936001600160a01b0360e0979481809516885216602087015260408601521660608401526080830152151560a08201528160c082015201916128b7565b80518210156128625760209160051b010190565b5f1981146104ab5760010190565b9590919396926001600160a01b0381168015159081613232575b50613223576001600160a01b0383168015159081613218575b50613209578588613096926130a49761309e96600a54613791565b923691612724565b906138a1565b6001600160a01b038084169116036131fa576130c2611efc83612451565b611a3357156131a5576130d58282612bed565b600160f81b6001600160f81b03196130ed8585612bed565b16146114ae576001600160f81b031916600160f91b148061313d575b61312e5761058c91611436610f26926001600160a01b03165f526020805260405f2090565b633d83838160e21b5f5260045ffd5b50336001600160a01b0361316961144385611436866001600160a01b03165f52602160205260405f2090565b161415806131095750326001600160a01b0361319d61144385611436866001600160a01b03165f52602160205260405f2090565b161415613109565b906131c1826001600160a01b03165f52602260205260405f2090565b54036131eb576131e2906001600160a01b03165f52602260205260405f2090565b80546001019055565b63193ec5c960e01b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b631c92090760e01b5f5260045ffd5b90503314155f61307b565b63018cc8b960e11b5f5260045ffd5b90503214155f613062565b6003546001600160a01b0381161561326c575f8091368280378136915af43d5f803e15613268573d5ff35b3d5ffd5b6332cea9e160e11b5f5260045ffd5b919092604051928391602083019560a08752600b60c08501526a646973706572736550617960a81b60e0850152610100840160e06040860152835180915261012085019060206101208260051b8801019501915f905b82821061330c57505050506001600160a01b0316606084015261330693608084015260a083015203601f19810183528261238a565b51902090565b919394965091969460208061335260019361011f198d8203018652606060408d51805184526001600160a01b0386820151168685015201519181604082015201906106f7565b9901920192018896949391929795976132d1565b60185460f881901b6001600160f81b031916600160f81b149190826133f0575b82156133a4575b505061339557565b6379d0112560e11b5f5260045ffd5b6001600160f81b031960f89190911b16600160f91b149150816133ca575b505f8061338d565b6133ea9150611406906001600160a01b03165f52602360205260405f2090565b5f6133c2565b6001600160a01b0382165f9081526024602052604090205460ff16159250613386565b908151815190818114938461342a575b5050505090565b602092939450820120920120145f808080613423565b60ff601454161580156134b7575b6134b457601054906014820291808304601414901517156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b6134a5828254612312565b9055600854612312565b600855565b50565b50600854600e54111561344e565b60ff6014541615801561351a575b6134b45760105490811582800460011417156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b50600854600e5411156134d3565b9060ff601454161580156135a2575b61359e5761354f6001600160a01b0391601054612c86565b91165f52601c60205261358060405f206001600160a01b03600d54166001600160a01b03165f5260205260405f2090565b8054918083018093116104ab5761058c926134af9255600854612312565b5050565b50600854600e541115613537565b81156135ba570690565b634e487b7160e01b5f52601260045260245ffd5b5f1943014381116104ab5761363d610d1d915a6040519060208201924083524260408301524460608301523360601b60808301523260601b609483015260a882015260a8815261361f60c88261238a565b51902061363761363260016113db61281f565b6122da565b906135b0565b6001612312565b6018549192916001600160a01b03919060f81b6001600160f81b0319166136e6575b1691825f52601c60205261368e8260405f20906001600160a01b03165f5260205260405f2090565b5490848210612bd5578461296e926136de955f52601c602052036136c68460405f20906001600160a01b03165f5260205260405f2090565b556001600160a01b03165f52601c60205260405f2090565b908154019055565b6136ef83613366565b613666565b805191908290602001825e015f815290565b9391959492909560405196879560208701613720916136f4565b600b60fa1b8152600101613733916136f4565b600b60fa1b8152600101613746916136f4565b600b60fa1b8152600101613759916136f4565b600b60fa1b815260010161376c916136f4565b600b60fa1b815260010161377f916136f4565b03601f198101835261058c908361238a565b6137a56137ab919796949795939295613a13565b94613bdb565b6137b3613b69565b9160306137bf84613bad565b5360786137cb84613bba565b535f5b602081106137fd5750506137f76137f16137eb610d1d9899613bdb565b94613a13565b94613ccb565b94613706565b81811a61381e61381860f483901b600f60f81b165b60f81c90565b60ff1690565b90601082101561286257600f916f181899199a1a9b1b9c1cb0b131b232b360811b901a61385b61385561385086612c70565b6122e8565b88613bca565b5316906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a61389a61389461388f84612c70565b6122f6565b87613bca565b53016137ce565b6138f36139016138b18351613a13565b926040519283916138ed60208401967f19457468657265756d205369676e6564204d6573736167653a0a0000000000008852603a8501906136f4565b906136f4565b03601f19810183528261238a565b51902060418251036139a657815f916020809401519160606040820151910151841a92601b841061398f575b906139719161394b60ff8616601b8114908115613984575b50613d27565b604051948594859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15612039575f5190565b601c9150145f613945565b929061399d61397192613d15565b9390915061392d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b906139f582612709565b613a02604051918261238a565b8281528092612fac601f1991612709565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613b46575b806d04ee2d6d415b85acef8100000000600a921015613b2a575b662386f26fc10000811015613b15575b6305f5e100811015613b03575b612710811015613af3575b6064811015613ae4575b1015613ad9575b613ac46021613a99600185016139eb565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b8015613ad457613ac49091613a9e565b505090565b600190910190613a88565b60029060649004930192613a81565b6004906127109004930192613a77565b6008906305f5e1009004930192613a6c565b601090662386f26fc100009004930192613a5f565b6020906d04ee2d6d415b85acef81000000009004930192613a4f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613a35565b60405160809190613b7a838261238a565b6042815291601f1901366020840137565b60405160609190613b9c838261238a565b602a815291601f1901366020840137565b8051156128625760200190565b8051600110156128625760210190565b908151811015612862570160200190565b6001600160a01b0316613bec613b8b565b906030613bf883613bad565b536078613c0483613bba565b535f5b60148110613c1457505090565b613c1d81612304565b602081101561286257613c3f906138189084901a60f41b600f60f81b16613812565b6010811015612862576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c73613c6d61385084612c70565b85613bca565b53613c7d81612304565b60208110156128625782600f911a16906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a613cc4613cbe61388f84612c70565b86613bca565b5301613c07565b15613cf257604051613cde60408261238a565b60048152637472756560e01b602082015290565b604051613d0060408261238a565b600581526466616c736560d81b602082015290565b60ff601b9116019060ff82116104ab57565b15613d2e57565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207369676e61747572652076616c75650000000000000000006044820152606490fdfea2646970667358221220feaa3592c21e9294557b92cf22bc225736906f3c7c922eb1e93819f6e0e9e29e64736f6c63430008210033",sourceMap:"3502:52503:62:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4210:27;;;:68;;;;-1:-1:-1;4193:128:62;;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;4332:28;3502:52503;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;4332:28;3502:52503;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4515:39;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4430:5;3502:52503;;;;;;;;;;;4470:22;3502:52503;;-1:-1:-1;;3502:52503:62;;;;;;;4515:39;:::i;:::-;-1:-1:-1;1240:4:63;4565:10:62;3502:52503;1240:4:63;3502:52503:62;-1:-1:-1;1240:4:63;3502:52503:62;;;1240:4:63;;3502:52503:62;;1240:4:63;;3502:52503:62;;;4628:37;3502:52503;;;4628:37;3502:52503;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;;;;4515:39;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;4332:28;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:28;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:28;-1:-1:-1;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;4193:128;4296:25;;;-1:-1:-1;4296:25:62;;-1:-1:-1;4296:25:62;4210:68;-1:-1:-1;;;;;;3502:52503:62;;4241:37;4210:68;;3502:52503;-1:-1:-1;3502:52503:62;;;;;;;;;-1:-1:-1;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;55070:382;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;;;;;;;;;;;;;;;;55413:32;3502:52503;;;;;;;-1:-1:-1;1240:4:63;55334:8:62;1240:4:63;;;-1:-1:-1;1240:4:63;3502:52503:62;;;;;55349:34;3502:52503;;-1:-1:-1;1240:4:63;;;;-1:-1:-1;1240:4:63;55334:69:62;3502:52503;;;55334:69;:::i;:::-;3502:52503;;55413:32;3502:52503;55413:32;:::i;:::-;;3502:52503;55070:382::o;55140:120::-;55253:7;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;",linkReferences:{"src/library/utils/signature/CoreHashUtils.sol":{CoreHashUtils:[{start:9295,length:20},{start:13413,length:20}]}}},deployedBytecode:{object:"0x60806040526004361015610019575b341561323d575b5f80fd5b5f3560e01c806301ed3f51146104685780630211de41146104635780630761a3ad1461045e57806308351bdd1461045957806309a69f571461045457806309fc69711461044f5780630e18b6811461044a5780630f1f38b2146104455780630faff8e814610440578063147bf6c41461043b57806315ba56e51461043657806317c85152146104315780631d3a4e2d1461042c57806325e3243b14610427578063280e32fb14610422578063286b4b441461041d57806329cca5691461041857806332e26fdc146104135780633625c9011461040e5780633a8cd872146104095780633f54542a14610404578063401dffee146103ff57806347ecd0f6146103fa5780634b366ccc146103f55780634c3b7bdb146103f05780634f3e1efc146103eb5780635300e162146103e657806354a12357146103e157806355160ea6146103dc578063563b6170146103d75780635a2cba27146103d2578063643d430c146103cd5780636a230fb4146103c85780636afe5795146103c35780636c9fa638146103be5780636cd30148146103b9578063766dd07b146103b457806376e6eb7e146103af5780637797e97d146103aa5780637a975c80146103a5578063804ef86f146103a0578063862b37371461039b5780638b62e507146103965780638e0c71ad1461039157806390fcb4ee1461038c57806392ab1f24146103875780639dd18c1514610382578063a574aac41461037d578063a7a096f614610378578063ab82aa0a14610373578063adb6233f1461036e578063ae63d1a714610369578063b139c79714610364578063b38c950a1461035f578063b517ac7d1461035a578063bd26035e14610355578063be726ffd14610350578063c898a6e91461034b578063cd654e3e14610346578063d0e3692d14610341578063d3bca8841461033c578063d4fac45d14610337578063e08290ee14610332578063e4e3cfee1461032d578063e7816eb814610328578063e8163dda14610323578063ef0035291461031e578063ef802613146103195763fa7a2e2a0361000e57612251565b6121b1565b61218b565b61213f565b611ca2565b611c03565b611ba6565b611b60565b611aeb565b611a9d565b611a42565b6119db565b6119be565b611991565b61193b565b6118ba565b611894565b61181f565b6117c1565b611738565b611699565b611653565b6115f0565b611588565b6114e6565b6114cc565b6113b8565b611365565b6112fd565b611281565b61123b565b6111dc565b611193565b611157565b6110ca565b611078565b61103b565b611015565b610fd4565b610f80565b610ea2565b610e4b565b610d86565b610d69565b610d20565b610cba565b610c9d565b610c65565b610c2d565b610c08565b610be0565b610b46565b610a9d565b610a4e565b610a28565b6109b4565b610992565b610975565b61091f565b610873565b6107a5565b6106c6565b610648565b610620565b610603565b6105c2565b61051a565b6104e2565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600a546104b0575b600a556201518042018042116104ab57600755005b6122c6565b60075442111561049657633ddfdb7f60e11b5f5260045ffd5b636587b01b60e11b5f5260045ffd5b5f91031261001557565b34610015575f366003190112610015576001600160a01b036011541633036104c95761051461ff001960185416601855565b5f601955005b34610015575f366003190112610015576105326123ca565b506060601054601654601754906040805161054c81612333565b8481526020810192835201918252604051928352516020830152516040820152f35b6001600160a01b0381160361001557565b60a4359061058c8261056e565b565b60c4359061058c8261056e565b6024359061058c8261056e565b6064359061058c8261056e565b60e4359061058c8261056e565b34610015576020366003190112610015576001600160a01b036004356105e78161056e565b165f526023602052602060ff60405f2054166040519015158152f35b34610015575f366003190112610015576020601054604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c9575f601555005b34610015575f3660031901126100155760135442106106b7576001600160a01b03601254168033036106a8576106a6906106956040519161068883612333565b6001600160a01b03168252565b5f60208201525f60408201526123e8565b005b63036834cf60e51b5f5260045ffd5b633ec513fd60e01b5f5260045ffd5b346100155760203660031901126100155760206106ed6004356106e88161056e565b612451565b6040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815261010060e061077661076061074086518560208801526101208701906106f7565b602087015160408701526040870151601f198783030160608801526106f7565b6060860151858203601f190160808701526106f7565b60808501516001600160a01b031660a08501529360a081015160c085015260c081015182850152015191015290565b34610015575f366003190112610015575f60e06040516107c481612353565b60608152826020820152606060408201526060808201528260808201528260a08201528260c0820152015261086f6107fa6123ab565b6108026124cf565b8152600a5460208201526108146125a4565b604082015261082161264b565b606082015261084b61083b600d546001600160a01b031690565b6001600160a01b03166080830152565b600e5460a0820152600f5460c082015260105460e08201526040519182918261071b565b0390f35b34610015576020366003190112610015576004356108908161056e565b6001600160a01b03601154168033036104c9576001600160a01b038216818115918215610915575b5050610906576201518042018042116104ab576108fc6106a6936108ec6108dd6123bb565b6001600160a01b039095168552565b6001600160a01b03166020840152565b60408201526123e8565b630f107a8160e11b5f5260045ffd5b149050815f6108b8565b34610015575f366003190112610015576001600160a01b036011541633036104c95760055442106106b75760048054600380546001600160a01b03199081166001600160a01b038416179091551690555f600555005b34610015575f366003190112610015576020600a54604051908152f35b34610015575f36600319011261001557602060ff601454166040519015158152f35b34610015575f366003190112610015576109cc6123ca565b506040516109d981612333565b6018546001600160f81b031960f882901b811680845260f09290921b81166020808501918252601954604095860190815285519485529151909216918301919091525191810191909152606090f35b34610015575f3660031901126100155760206001600160a01b03600d5416604051908152f35b346100155760203660031901126100155760206106ed600435610a708161056e565b6001600160a01b03165f908152601b602052604090205460f81b6001600160f81b031916600160f81b1490565b34610015575f3660031901126100155760206001600160a01b0360035416604051908152f35b9181601f84011215610015578235916001600160401b038311610015576020808501948460051b01011161001557565b8015150361001557565b610104359061058c82610af3565b610124359061058c82610af3565b9181601f84011215610015578235916001600160401b038311610015576020838186019501011161001557565b346100155761014036600319011261001557600435610b648161056e565b6024356001600160401b03811161001557610b83903690600401610ac3565b91604435610b908161056e565b606435608435610b9e61057f565b610ba661058e565b9160e43593610bb3610afd565b9561012435996001600160401b038b1161001557610bd86106a69b3690600401610b19565b9a90996128fd565b34610015575f366003190112610015576001600160a01b036011541633036104c9575f600655005b34610015575f3660031901126100155760206001600160a01b035f5416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c957600480546001600160a01b03191690555f600555005b34610015575f366003190112610015576001600160a01b036011541633036104c957601e80546001600160a01b03191690555f601f55005b34610015575f366003190112610015576020600e54604051908152f35b34610015576040366003190112610015576020610ce5600435610cdc8161056e565b60243590612bed565b6040516001600160f81b03199091168152f35b604090600319011261001557600435610d108161056e565b90602435610d1d81610af3565b90565b3461001557610d2e36610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602460205260405f209060ff801983541691151516179055565b34610015575f366003190112610015576020600854604051908152f35b34610015575f36600319011261001557600e54600f549081811180610e40575b15610015578181039081116104ab57610dcb91610dc69160011c90612312565b600f55565b610ddf601054610dd96135ce565b90612c86565b610e2a610e22610e00336001600160a01b03165f52601c60205260405f2090565b600d546001600160a01b03165b6001600160a01b03165f5260205260405f2090565b918254612312565b90556106a6610e3b60105460011c90565b601055565b505f19811415610da6565b34610015575f366003190112610015576001600160a01b036011541633036104c95760065442106106b7575f19600e55005b604090600319011261001557600435610e958161056e565b90602435610d1d8161056e565b3461001557610eb036610e7d565b60ff601a541615610f71576001600160a01b038216158015610f60575b610f5157610ef8826001600160a01b036106a694166001600160601b0360a01b5f5416175f55613440565b610f33610f26610f0f5f546001600160a01b031690565b6001600160a01b03165f52601b60205260405f2090565b805460ff19166001179055565b6001600160a01b03166001600160601b0360a01b6002541617600255565b632582a64160e11b5f5260045ffd5b506001600160a01b03811615610ecd565b630169759360e61b5f5260045ffd5b34610015575f366003190112610015575f6020604051610f9f8161236f565b828152015260408051610fb18161236f565b60ff60145416151590818152602060155491019081528251918252516020820152f35b34610015576020366003190112610015576001600160a01b03600435610ff98161056e565b165f526024602052602060ff60405f2054166040519015158152f35b34610015575f3660031901126100155760206001600160a01b0360115416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c95760175442106106b7576016546010555f6016555f6017555f80f35b34610015575f3660031901126100155760206001600160a01b0360015416604051908152f35b6060906003190112610015576004356110b68161056e565b906024356110c38161056e565b9060443590565b34610015576110d83661109e565b919060ff60f81b60185460f81b16611149575b6001600160a01b0360025416330361113a576001600160a01b0361112b92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182018092116104ab5755005b63aab0382b60e01b5f5260045ffd5b61115281613366565b6110eb565b34610015576020366003190112610015576001600160a01b0360043561117c8161056e565b165f526022602052602060405f2054604051908152f35b34610015576111a136610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602360205260405f209060ff801983541691151516179055565b34610015576111ea3661109e565b91906001600160a01b0360025416330361113a576001600160a01b0361122c92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182039182116104ab5755005b34610015575f366003190112610015576001600160a01b036011541633036104c95760195442106106b7576018805461ffff19811660089190911c60ff16179055610514565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e549061270f820282810461270f14831517156104ab576127109004119081156112f2575b506112e3576201518042018042116104ab57600655005b633cfd42e960e01b5f5260045ffd5b5f191490505f6112cc565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600e545f1914801590611359575b61134a576016556201518042018042116104ab57601755005b633527678960e01b5f5260045ffd5b50601054811015611331565b34610015576040366003190112610015576004356113828161056e565b6001600160a01b0360243591165f52602160205260405f20905f5260205260206001600160a01b0360405f205416604051908152f35b34610015576040366003190112610015576004356024356113d88161056e565b6001600160a01b038116156114bd57335f526020805261140d6114068360405f20905f5260205260405f2090565b5460ff1690565b6114ae5761145c61145061144384611436336001600160a01b03165f52602160205260405f2090565b905f5260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b61149f576114826106a692611436336001600160a01b03165f52602160205260405f2090565b906001600160a01b03166001600160601b0360a01b825416179055565b632e81b29360e01b5f5260045ffd5b632a0c4a2360e01b5f5260045ffd5b635ece24d960e11b5f5260045ffd5b34610015575f3660031901126100155760206040515f8152f35b3461001557610160366003190112610015576004356115048161056e565b61150c61059b565b6044356001600160401b0381116100155761152b903690600401610b19565b6115369391936105a8565b60843560a43561154461058e565b9061154d6105b5565b92610104359461155b610b0b565b96610144359a6001600160401b038c11610015576115806106a69c3690600401610b19565b9b909a612ce2565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e5461270f81029080820461270f14901517156104ab576127109004116115e1576201518042018042116104ab57601555005b63228f257f60e11b5f5260045ffd5b346100155760203660031901126100155760043561160d8161056e565b6001600160a01b036011541633036104c9576001600160a01b03168015610906576001600160601b0360a01b600454161760045562278d0042018042116104ab57600555005b34610015575f366003190112610015576001600160a01b036011541633036104c95760155442106106b75760145460ff80821615169060ff1916176014555f6015555f80f35b34610015576060366003190112610015576004356001600160401b0381116100155736602382011215610015578060040135906001600160401b038211610015573660248360061b83010111610015576106a691602435906116fa8261056e565b60246044359301612e6a565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b34610015575f366003190112610015576117506123ca565b5061086f60405161176081612333565b6001600160a01b036011541681526001600160a01b03601254166020820152601354604082015260405191829182611706565b602435906001600160f81b03198216820361001557565b600435906001600160f81b03198216820361001557565b34610015576040366003190112610015576004356117de8161056e565b6117e6611793565b6001600160a01b03600154163303610015576001600160a01b036106a692165f52601b60205260405f209060f81c60ff19825416179055565b34610015576020366003190112610015576118386117aa565b6001600160a01b036011541633036104c95760038160f81c1015611885576118739061ff00806018549260f01c16169061ff00191617601855565b6201518042018042116104ab57601955005b631fd8bc0560e11b5f5260045ffd5b34610015575f3660031901126100155760206001600160a01b03601d5416604051908152f35b34610015575f366003190112610015576001600160a01b03601154168033036104c9576001600160a01b03905f604080516118f481612333565b8381528260208201520152166001600160601b0360a01b60115416176011556119355f6001600160a01b03166001600160601b0360a01b6012541617601255565b5f601355005b34610015575f366003190112610015576001600160a01b036011541633036104c957601f5442106106b757601e8054601d80546001600160a01b03199081166001600160a01b038416179091551690555f601f55005b34610015575f366003190112610015576001600160a01b036011541633036104c9575f6016819055601755005b34610015575f366003190112610015576020600654604051908152f35b34610015576119e93661109e565b906119f333612451565b15611a3357611a029233613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14611a2a57005b6106a6336134c5565b630296e8bf60e61b5f5260045ffd5b34610015575f36600319011261001557611a5a6123ca565b5061086f604051611a6a81612333565b6001600160a01b03601d541681526001600160a01b03601e54166020820152601f54604082015260405191829182611706565b3461001557604036600319011261001557600435611aba8161056e565b6001600160a01b0360243591165f526020805260405f20905f52602052602060ff60405f2054166040519015158152f35b34610015576001600160a01b03611b013661109e565b929091165f52601c602052611b2a8160405f20906001600160a01b03165f5260205260405f2090565b8054908382018092116104ab57556001600160a01b0380600d5416911614611b4e57005b6008549081018091116104ab57600855005b34610015576020611b9d6001600160a01b03611b7b36610e7d565b91165f52601c835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610015575f36600319011261001557611bbe6123ca565b5061086f6001600160a01b03600354166001600160a01b03600454166005549060405192611beb84612333565b83526020830152604082015260405191829182611706565b3461001557602036600319011261001557600435611c208161056e565b6001600160a01b036011541633036104c9576001600160a01b03166001600160601b0360a01b601e541617601e556201518042018042116104ab57601f55005b6060602091604081019381526040838201528451809452019201905f5b818110611c8a5750505090565b82511515845260209384019390920191600101611c7d565b34610015576020366003190112610015576004356001600160401b03811161001557611cd2903690600401610ac3565b335f908152601b60205260408120549192909160f81b6001600160f81b031916600160f81b1490611d0284612f84565b9373__$4eed29582e89dabffcea3de7fdb0d1406e$__905f5b818110611d495750505050611d3a575b61086f60405192839283611c60565b611d448133613528565b611d2b565b611d54818386612fb6565b611d5d816128ad565b611d6960c083016128ad565b6020830191611d77836128ad565b926040850190611d878287612867565b909360608801956020611d99886128ad565b938d60808c01359860a08d01359b611dc98d8c6040519a8b9788968796634c09e2c960e01b885260048801612ca8565b03915af4928315612039575f9361210f575b50611de860e08a016128ad565b916101008a013592611dfd6101208c01612fd9565b611e0b6101408d018d612867565b91303b15610015575f96611e3494604051998a988998637d3d171560e11b8a5260048a01612fe3565b038183305af190816120f5575b50611e6257505050505050805f611e5a6001938a613026565b525b01611d1b565b601854969b9660f81b600160f81b6001600160f81b031982161490816120c4575b811561207a575b5061205b578a1561207057611e9f8386612312565b611ece611ec5611eae896128ad565b6001600160a01b03165f52601c60205260405f2090565b610e0d876128ad565b541061205b57611f00611efc611eee611ee7858a612867565b3691612724565b611ef6612899565b90613413565b1590565b1561203e57506020611f4c91611f2d611f266114506114505f546001600160a01b031690565b9188612867565b604051630d3dcb9f60e01b8152948593928492839291600484016128d7565b03915afa908115612039575f9161200b575b506001600160a01b03811615611ff15791611f966001969492611fac96945b611f86866128ad565b90611f90856128ad565b91613644565b81151580611fea575b611fc5575b50505061303a565b95611fc0611fba828a613026565b60019052565b611e5c565b611fda611fd4611fe2946128ad565b916128ad565b903390613644565b5f8080611fa4565b5089611f9f565b505050505094805f6120056001938a613026565b52611e5c565b61202c915060203d8111612032575b612024818361238a565b8101906128e8565b5f611f5e565b503d61201a565b612446565b611fac959391506001969492612056611f96926128ad565b611f7d565b50505050505094805f6120056001938a613026565b611e9f835f612312565b6001600160f81b031916600160f91b14905080612098575b5f611e8a565b506120bf6114066120a8866128ad565b6001600160a01b03165f52602360205260405f2090565b612092565b90506120ef611efc6114066120d8886128ad565b6001600160a01b03165f52602460205260405f2090565b90611e83565b806121035f6121099361238a565b806104d8565b5f611e41565b61213191935060203d8111612138575b612129818361238a565b810190612c99565b915f611ddb565b503d61211f565b34610015576040366003190112610015576106a660043561215f8161056e565b6001600160a01b0361216f611793565b91165f52601b60205260405f209060f81c60ff19825416179055565b34610015575f36600319011261001557602060185460f81b6040519060ff60f81b168152f35b3461001557602036600319011261001557600435335f526020805260405f20815f5260205260ff60405f2054166114ae57335f5260216020526001600160a01b0361220a6114438360405f20905f5260205260405f2090565b1615612242576122326106a691611436336001600160a01b03165f52602160205260405f2090565b80546001600160a01b0319169055565b63eb54a44d60e01b5f5260045ffd5b346100155760e03660031901126100155760043561226e8161056e565b6024359061227b8261056e565b606435916122888361056e565b60a43560843561229782610af3565b60c435946001600160401b038611610015576122ba6106a6963690600401610b19565b95909460443591613048565b634e487b7160e01b5f52601160045260245ffd5b90600182018092116104ab57565b60020190816002116104ab57565b60030190816003116104ab57565b90600c82018092116104ab57565b919082018092116104ab57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761234e57604052565b61231f565b61010081019081106001600160401b0382111761234e57604052565b604081019081106001600160401b0382111761234e57604052565b90601f801991011681019081106001600160401b0382111761234e57604052565b6040519061058c6101008361238a565b6040519061058c60608361238a565b604051906123d782612333565b5f6040838281528260208201520152565b6040906001600160a01b038151166001600160601b0360a01b60115416176011556001600160a01b036020820151166001600160601b0360a01b60125416176012550151601355565b908160209103126100155751610d1d81610af3565b6040513d5f823e3d90fd5b6001600160a01b03601d541680156124c8576040516385c99e2b60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115612039575f9161249f575090565b610d1d915060203d6020116124c1575b6124b9818361238a565b810190612431565b503d6124af565b5050600190565b604051905f6009548060011c9160018216801561259a575b602084108114612586578386528592602084019190811561256d5750600114612518575b5061058c9250038361238a565b60095f90815291507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b848310612556575061058c9350015f61250b565b805482840152869350602090920191600101612542565b60ff191682525061058c93151560051b0190505f61250b565b634e487b7160e01b5f52602260045260245ffd5b92607f16926124e7565b604051905f600b548060011c91600182168015612641575b602084108114612586578386528592602084019190811561256d57506001146125ec575061058c9250038361238a565b600b5f90815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b84831061262a575061058c9350015f61250b565b805482840152869350602090920191600101612616565b92607f16926125bc565b604051905f600c548060011c916001821680156126e8575b602084108114612586578386528592602084019190811561256d5750600114612693575061058c9250038361238a565b600c5f90815291507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8483106126d1575061058c9350015f61250b565b8054828401528693506020909201916001016126bd565b92607f1692612663565b6001600160401b03811161234e5760051b60200190565b6001600160401b03811161234e57601f01601f191660200190565b92919261273082612709565b9161273e604051938461238a565b829481845281830111610015578281602093845f960137010152565b929192612766826126f2565b93612774604051958661238a565b602085848152019260051b8201918183116100155780935b83851061279a575050505050565b84356001600160401b0381116100155782019060608285031261001557604051916127c483612333565b8035835260208101356127d68161056e565b60208401526040810135906001600160401b03821161001557019084601f830112156100155760209261280f8684868096359101612724565b604082015281520194019361278c565b919082039182116104ab57565b634e487b7160e01b5f52603260045260245ffd5b91908110156128625760051b81013590605e1981360301821215610015570190565b61282c565b903590601e198136030182121561001557018035906001600160401b0382116100155760200191813603831361001557565b604051906128a860208361238a565b5f8252565b35610d1d8161056e565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610d1d9381815201916128b7565b908160209103126100155751610d1d8161056e565b9681999296612925878761292c999f989c95979e978f90612920908d369161275a565b61327b565b9089613048565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14936129848661296e856001600160a01b03165f52601c60205260405f2090565b906001600160a01b03165f5260205260405f2090565b548515612be457612996885b86612312565b11612bd55760185460f81b6001600160f81b031916612bc7575b5f928515612bb1576129f06129e88861296e6129d08c9796975b8a612312565b946001600160a01b03165f52601c60205260405f2090565b91825461281f565b90555f91825b828410612a44575050505003612a3557612a0e575050565b610e22612a3191612a1e336134c5565b335f908152601c6020526040902061296e565b9055565b63162908e360e11b5f5260045ffd5b90919293612a5e90612a57868686612840565b3590612312565b93612a80611efc611eee611ee7612a76858989612840565b6040810190612867565b15612b9157612a9c6114506114505f546001600160a01b031690565b612acb6020612aaf612a76858989612840565b6040516310d9158b60e31b8152938492839290600484016128d7565b0381855afa908115612039575f91612b73575b50612b22575b506001905b612af4818686612840565b35612b17610e228b61296e876001600160a01b03165f52601c60205260405f2090565b9055019291906129f6565b819250602090611f2d612a76612b39948888612840565b03915afa8015612039576001915f91612b55575b509190612ae4565b612b6d915060203d811161203257612024818361238a565b5f612b4d565b612b8b915060203d81116124c1576124b9818361238a565b5f612ade565b90506001612bab6020612ba5848787612840565b016128ad565b91612ae9565b6129f06129e88861296e6129d05f9796976129ca565b612bd086613366565b6129b0565b631e9acf1760e31b5f5260045ffd5b6129965f612990565b6001600160a01b0381165f526020805260405f20825f5260205260ff60405f2054165f14612c205750600160f81b919050565b612c3b906001600160a01b03165f52602160205260405f2090565b905f526020526001600160a01b03612c5e60405f206001600160a01b0390541690565b1615612c6c57600160f91b90565b5f90565b908160011b91808304600214901517156104ab57565b818102929181159184041417156104ab57565b90816020910312610015575190565b9260809497969592612cd2916001600160a01b03809416865260a0602087015260a08601916128b7565b9616604083015260608201520152565b9b92988598602084848a9f969b9a899f969a908f9a91612d17926040519c8d968796634c09e2c960e01b885260048801612ca8565b038173__$4eed29582e89dabffcea3de7fdb0d1406e$__5af48015612039578c988f612d4a985f93612e39575b50613048565b612d5b611efc611eee368887612724565b15612e2c575050612d9d92602091612d806114506114505f546001600160a01b031690565b9060405180968194829363063c696360e11b8452600484016128d7565b03915afa91821561203957612dbd9284915f91612e0d575b505b86613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612de857505050565b81612dfa575b50505061058c336134c5565b612e05923390613644565b5f8080612dee565b612e26915060203d60201161203257612024818361238a565b5f612db5565b909150612dbd9350612db7565b612e5391935060203d60201161213857612129818361238a565b915f612d44565b91908110156128625760061b0190565b60185460f81b6001600160f81b031916612f76575b333b15612f675783612ea68461296e336001600160a01b03165f52601c60205260405f2090565b5410612bd55791905f92612ecf8361296e336001600160a01b03165f52601c60205260405f2090565b612eda86825461281f565b90555f925b828410612f20575050505003612a3557335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612f1757565b61058c336134c5565b90919293612f35600191612a57878787612e5a565b94612f41818686612e5a565b35612f5c610e228561296e611eae6020612ba5888d8d612e5a565b905501929190612edf565b633d0c12e760e21b5f5260045ffd5b612f7f83613366565b612e7f565b90612f8e826126f2565b612f9b604051918261238a565b8281528092612fac601f19916126f2565b0190602036910137565b91908110156128625760051b8101359061015e1981360301821215610015570190565b35610d1d81610af3565b93610d1d9896936001600160a01b0360e0979481809516885216602087015260408601521660608401526080830152151560a08201528160c082015201916128b7565b80518210156128625760209160051b010190565b5f1981146104ab5760010190565b9590919396926001600160a01b0381168015159081613232575b50613223576001600160a01b0383168015159081613218575b50613209578588613096926130a49761309e96600a54613791565b923691612724565b906138a1565b6001600160a01b038084169116036131fa576130c2611efc83612451565b611a3357156131a5576130d58282612bed565b600160f81b6001600160f81b03196130ed8585612bed565b16146114ae576001600160f81b031916600160f91b148061313d575b61312e5761058c91611436610f26926001600160a01b03165f526020805260405f2090565b633d83838160e21b5f5260045ffd5b50336001600160a01b0361316961144385611436866001600160a01b03165f52602160205260405f2090565b161415806131095750326001600160a01b0361319d61144385611436866001600160a01b03165f52602160205260405f2090565b161415613109565b906131c1826001600160a01b03165f52602260205260405f2090565b54036131eb576131e2906001600160a01b03165f52602260205260405f2090565b80546001019055565b63193ec5c960e01b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b631c92090760e01b5f5260045ffd5b90503314155f61307b565b63018cc8b960e11b5f5260045ffd5b90503214155f613062565b6003546001600160a01b0381161561326c575f8091368280378136915af43d5f803e15613268573d5ff35b3d5ffd5b6332cea9e160e11b5f5260045ffd5b919092604051928391602083019560a08752600b60c08501526a646973706572736550617960a81b60e0850152610100840160e06040860152835180915261012085019060206101208260051b8801019501915f905b82821061330c57505050506001600160a01b0316606084015261330693608084015260a083015203601f19810183528261238a565b51902090565b919394965091969460208061335260019361011f198d8203018652606060408d51805184526001600160a01b0386820151168685015201519181604082015201906106f7565b9901920192018896949391929795976132d1565b60185460f881901b6001600160f81b031916600160f81b149190826133f0575b82156133a4575b505061339557565b6379d0112560e11b5f5260045ffd5b6001600160f81b031960f89190911b16600160f91b149150816133ca575b505f8061338d565b6133ea9150611406906001600160a01b03165f52602360205260405f2090565b5f6133c2565b6001600160a01b0382165f9081526024602052604090205460ff16159250613386565b908151815190818114938461342a575b5050505090565b602092939450820120920120145f808080613423565b60ff601454161580156134b7575b6134b457601054906014820291808304601414901517156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b6134a5828254612312565b9055600854612312565b600855565b50565b50600854600e54111561344e565b60ff6014541615801561351a575b6134b45760105490811582800460011417156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b50600854600e5411156134d3565b9060ff601454161580156135a2575b61359e5761354f6001600160a01b0391601054612c86565b91165f52601c60205261358060405f206001600160a01b03600d54166001600160a01b03165f5260205260405f2090565b8054918083018093116104ab5761058c926134af9255600854612312565b5050565b50600854600e541115613537565b81156135ba570690565b634e487b7160e01b5f52601260045260245ffd5b5f1943014381116104ab5761363d610d1d915a6040519060208201924083524260408301524460608301523360601b60808301523260601b609483015260a882015260a8815261361f60c88261238a565b51902061363761363260016113db61281f565b6122da565b906135b0565b6001612312565b6018549192916001600160a01b03919060f81b6001600160f81b0319166136e6575b1691825f52601c60205261368e8260405f20906001600160a01b03165f5260205260405f2090565b5490848210612bd5578461296e926136de955f52601c602052036136c68460405f20906001600160a01b03165f5260205260405f2090565b556001600160a01b03165f52601c60205260405f2090565b908154019055565b6136ef83613366565b613666565b805191908290602001825e015f815290565b9391959492909560405196879560208701613720916136f4565b600b60fa1b8152600101613733916136f4565b600b60fa1b8152600101613746916136f4565b600b60fa1b8152600101613759916136f4565b600b60fa1b815260010161376c916136f4565b600b60fa1b815260010161377f916136f4565b03601f198101835261058c908361238a565b6137a56137ab919796949795939295613a13565b94613bdb565b6137b3613b69565b9160306137bf84613bad565b5360786137cb84613bba565b535f5b602081106137fd5750506137f76137f16137eb610d1d9899613bdb565b94613a13565b94613ccb565b94613706565b81811a61381e61381860f483901b600f60f81b165b60f81c90565b60ff1690565b90601082101561286257600f916f181899199a1a9b1b9c1cb0b131b232b360811b901a61385b61385561385086612c70565b6122e8565b88613bca565b5316906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a61389a61389461388f84612c70565b6122f6565b87613bca565b53016137ce565b6138f36139016138b18351613a13565b926040519283916138ed60208401967f19457468657265756d205369676e6564204d6573736167653a0a0000000000008852603a8501906136f4565b906136f4565b03601f19810183528261238a565b51902060418251036139a657815f916020809401519160606040820151910151841a92601b841061398f575b906139719161394b60ff8616601b8114908115613984575b50613d27565b604051948594859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15612039575f5190565b601c9150145f613945565b929061399d61397192613d15565b9390915061392d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b906139f582612709565b613a02604051918261238a565b8281528092612fac601f1991612709565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613b46575b806d04ee2d6d415b85acef8100000000600a921015613b2a575b662386f26fc10000811015613b15575b6305f5e100811015613b03575b612710811015613af3575b6064811015613ae4575b1015613ad9575b613ac46021613a99600185016139eb565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b8015613ad457613ac49091613a9e565b505090565b600190910190613a88565b60029060649004930192613a81565b6004906127109004930192613a77565b6008906305f5e1009004930192613a6c565b601090662386f26fc100009004930192613a5f565b6020906d04ee2d6d415b85acef81000000009004930192613a4f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613a35565b60405160809190613b7a838261238a565b6042815291601f1901366020840137565b60405160609190613b9c838261238a565b602a815291601f1901366020840137565b8051156128625760200190565b8051600110156128625760210190565b908151811015612862570160200190565b6001600160a01b0316613bec613b8b565b906030613bf883613bad565b536078613c0483613bba565b535f5b60148110613c1457505090565b613c1d81612304565b602081101561286257613c3f906138189084901a60f41b600f60f81b16613812565b6010811015612862576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c73613c6d61385084612c70565b85613bca565b53613c7d81612304565b60208110156128625782600f911a16906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a613cc4613cbe61388f84612c70565b86613bca565b5301613c07565b15613cf257604051613cde60408261238a565b60048152637472756560e01b602082015290565b604051613d0060408261238a565b600581526466616c736560d81b602082015290565b60ff601b9116019060ff82116104ab57565b15613d2e57565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207369676e61747572652076616c75650000000000000000006044820152606490fdfea2646970667358221220feaa3592c21e9294557b92cf22bc225736906f3c7c922eb1e93819f6e0e9e29e64736f6c63430008210033",sourceMap:"3502:52503:62:-:0;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;5743:19;3502:52503;5739:147;;3502:52503;5743:19;3502:52503;5983:8;5965:15;3502:52503;5965:15;;3502:52503;;;5938:53;3502:52503;;;;:::i;5739:147::-;5805:24;3502:52503;5787:15;:42;5783:92;5739:147;5783:92;5854:21;;;-1:-1:-1;5854:21:62;3502:52503;-1:-1:-1;5854:21:62;3641:64;3681:24;;;-1:-1:-1;3681:24:62;3502:52503;-1:-1:-1;3681:24:62;3502:52503;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31975:26;3502:52503;;31975:10;3502:52503;;31975:10;3502:52503;;31975:26;3502:52503;32011:23;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;42752:19;3502:52503;42799:20;3502:52503;42851:24;3502:52503;;;;;;;;:::i;:::-;;;;42692:198;;;3502:52503;;;42692:198;3502:52503;;;;;;;;;42692:198;3502:52503;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;49468:8;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;42228:19;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;31110:35;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;35104:18;3502:52503;35086:15;:36;35082:93;;-1:-1:-1;;;;;35204:14:62;3502:52503;;35190:10;;:28;35186:88;;3502:52503;;35293:147;3502:52503;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;35293:147;3502:52503;35293:147;;;3502:52503;;;35293:147;;3502:52503;;:::i;:::-;;35186:88;35239:35;;;3502:52503;35239:35;3502:52503;;35239:35;35082:93;35143:32;;;3502:52503;35143:32;3502:52503;;35143:32;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;;34291:23;;;:53;;;;;3502:52503;34287:107;;;;1387:6:63;34546:15:62;3502:52503;34546:15;;3502:52503;;;34413:185;3502:52503;;34413:185;3502:52503;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;;34413:185;-1:-1:-1;;;;;3502:52503:62;;34413:185;;3502:52503;;34413:185;;;;3502:52503;;:::i;34287:107::-;34365:29;;;-1:-1:-1;34365:29:62;3502:52503;-1:-1:-1;34365:29:62;34291:53;34318:26;;-1:-1:-1;34291:53:62;;;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;33683:26;3502:52503;33665:15;:44;33661:101;;3502:52503;;;33773:46;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;33683:26:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;40372:19;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;49846:22;3502:52503;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;:::i;:::-;48754:10;3502:52503;-1:-1:-1;;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;39574:34:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;;41787:124;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;43816:21:62;3502:52503;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;29423:25;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;33467:30:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;25276:29;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;25328:33:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;43196:24;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;32465:25:62;3502:52503;;-1:-1:-1;3502:52503:62;32465:9;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;43483:13;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;36681:24;3502:52503;36708:22;3502:52503;36681:49;;;;:110;;;3502:52503;36664:507;;;3502:52503;;;;;;;;36816:99;3502:52503;36816:99;3502:52503;;;36816:99;;:::i;:::-;36708:22;3502:52503;;36816:99;37005:57;:19;3502:52503;37043:19;;:::i;:::-;37005:57;;:::i;:::-;36929:133;:56;:20;36938:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;36929:20;36950:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;36929:56;3502:52503;;;36929:133;:::i;:::-;3502:52503;;37076:45;37098:23;37005:19;3502:52503;;;;;37098:23;37005:19;3502:52503;;36681:110;-1:-1:-1;;;36746:45:62;;;36681:110;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29547:21;3502:52503;29529:15;:39;29525:96;;-1:-1:-1;;29632:24:62;3502:52503;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;5095:30;3502:52503;;5094:31;5090:67;;-1:-1:-1;;;;;3502:52503:62;;5172:33;:67;;;;3502:52503;5168:117;;5347:36;3502:52503;-1:-1:-1;;;;;5452:34:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;5203:1;3502:52503;;;5203:1;3502:52503;5347:36;:::i;:::-;5394:47;:30;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;5394:10;3502:52503;;;;;;;5394:30;3502:52503;;-1:-1:-1;;3502:52503:62;19834:19;3502:52503;;;;5394:47;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;5452:34;3502:52503;;;5452:34;3502:52503;;5168:117;5260:25;;;-1:-1:-1;5260:25:62;3502:52503;-1:-1:-1;5260:25:62;5172:67;3502:52503;-1:-1:-1;;;;;3502:52503:62;;5209:30;5172:67;;5090;5134:23;;;-1:-1:-1;5134:23:62;3502:52503;-1:-1:-1;5134:23:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;50289:22;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;49107:9;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;44810:5:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;30489:24;3502:52503;30471:15;:42;30467:99;;30599:20;3502:52503;30577:19;3502:52503;;30599:20;3502:52503;;30489:24;3502:52503;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;41031:22:62;3502:52503;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;27938:10;3502:52503;;;;27934:71;;3502:52503;-1:-1:-1;;;;;28034:15:62;3502:52503;;28020:10;:29;28016:69;;-1:-1:-1;;;;;28096:21:62;3502:52503;;-1:-1:-1;3502:52503:62;28096:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;28096:21;3502:52503;;28096:31;3502:52503;;;;;;;;;28016:69;28058:27;;;-1:-1:-1;28058:27:62;3502:52503;-1:-1:-1;28058:27:62;27934:71;27999:5;;;:::i;:::-;27934:71;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;47283:13;3502:52503;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;32616:24:62;3502:52503;;-1:-1:-1;3502:52503:62;32616:8;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;28529:15:62;3502:52503;;28515:10;:29;28511:69;;-1:-1:-1;;;;;28591:21:62;3502:52503;;-1:-1:-1;3502:52503:62;28591:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;28591:21;3502:52503;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;32138:23;3502:52503;32120:15;:41;32116:98;;32138:10;3502:52503;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;;32275:26;3502:52503;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29099:13;3502:52503;29116:24;3502:52503;;29143:4;3502:52503;;;;;29143:4;3502:52503;;;;;;;29151:5;3502:52503;;-1:-1:-1;29099:118:62;;;;;3502:52503;29082:188;;;1387:6:63;29305:15:62;3502:52503;29305:15;;3502:52503;;;29281:65;3502:52503;;29082:188;29235:35;;;3502:52503;29235:35;3502:52503;;29235:35;29099:118;-1:-1:-1;;29172:45:62;;-1:-1:-1;36774:17:62;29099:118;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29966:24;3502:52503;-1:-1:-1;;29966:45:62;;;;:97;;3502:52503;29949:168;;30127:36;3502:52503;1387:6:63;30200:15:62;3502:52503;30200:15;;3502:52503;;;30173:68;3502:52503;;29949:168;30081:36;;;-1:-1:-1;30081:36:62;3502:52503;-1:-1:-1;30081:36:62;29966:97;3502:52503;30044:19;3502:52503;30027:36;;;29966:97;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;3502:52503:62;45486:26;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;22238:28;22234:70;;22330:10;-1:-1:-1;3502:52503:62;;;;22319:29;;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;22319:29;3502:52503;;;;;22319:29;22315:71;;22401:59;:45;;22330:10;22401:38;22330:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;22401:38;3502:52503;;;;;;;;;;22401:45;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;22401:45;-1:-1:-1;;;;;3502:52503:62;;;22401:59;22397:117;;22525:45;:62;22330:10;22525:38;22330:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;22525:45;3502:52503;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;22397:117;22481:33;;;-1:-1:-1;22481:33:62;3502:52503;-1:-1:-1;22481:33:62;22315:71;22357:29;;;-1:-1:-1;22357:29:62;3502:52503;-1:-1:-1;22357:29:62;22234:70;22275:29;;;-1:-1:-1;22275:29:62;3502:52503;-1:-1:-1;22275:29:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;30784:13;3502:52503;30801:24;3502:52503;30828:4;3502:52503;;;;;;30828:4;3502:52503;;;;;;;30836:5;3502:52503;;-1:-1:-1;30780:128:62;;1387:6:63;30969:15:62;3502:52503;30969:15;;3502:52503;;;30919:35;3502:52503;;30780:128;30862:46;;;3502:52503;30862:46;3502:52503;;30862:46;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;33060:22;;33056:64;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;1554:7:63;33214:15:62;3502:52503;33214:15;;3502:52503;;;33173:100;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31259:35;3502:52503;31241:15;:53;31237:110;;31259:22;3502:52503;;;;;31388:28;3502:52503;;;;;;31259:22;3502:52503;;31259:35;3502:52503;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;44976:5:62;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;38155:22:62;3502:52503;;38141:10;:36;38137:50;;-1:-1:-1;;;;;38198:25:62;3502:52503;;-1:-1:-1;3502:52503:62;38198:10;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31739:4;3502:52503;;;31713:31;;31709:69;;31789:31;;3502:52503;;31789:10;3502:52503;;;;;;;;;;;31789:10;3502:52503;;31789:31;1387:6:63;31856:15:62;3502:52503;31856:15;;3502:52503;;;31830:23;3502:52503;;31709:69;31753:25;;;-1:-1:-1;31753:25:62;3502:52503;-1:-1:-1;31753:25:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;47596:20:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;:::i;:::-;;;;34751:146;;;;3502:52503;34751:146;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;3659:5;3502:52503;;;3659:5;3502:52503;;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;26108:33;3502:52503;26090:15;:51;26086:108;;26236:29;3502:52503;;26108:20;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;26108:33:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;30323:24;3502:52503;;;30357:28;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;50616:21;3502:52503;;;;;;;;;;;;;;:::i;:::-;16975:10;17001:31;16975:10;17001:31;:::i;:::-;17000:32;16996:93;;17138:6;16975:10;;17138:6;:::i;:::-;16975:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;17156:59;;3502:52503;17156:59;17189:26;16975:10;17189:26;:::i;16996:93::-;17053:36;;;-1:-1:-1;17053:36:62;3502:52503;-1:-1:-1;17053:36:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;48044:20:62;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;:::i;:::-;;;;;-1:-1:-1;3502:52503:62;8098:8;3502:52503;;8098:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;8098:21;3502:52503;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;8155:34;3502:52503;;;;8146:43;8142:86;;3502:52503;8142:86;8203:25;3502:52503;;;;;;;;;8203:25;3502:52503;;;;;;;41478:21;-1:-1:-1;;;;;3502:52503:62;;;:::i;:::-;;;-1:-1:-1;3502:52503:62;41478:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;41478:21;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;-1:-1:-1;;;;;44392:21:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;;44495:26;3502:52503;;;;;;;;:::i;:::-;;;44329:207;;;3502:52503;;44329:207;;3502:52503;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;24871:29;3502:52503;;;24871:29;3502:52503;1387:6:63;24973:15:62;3502:52503;24973:15;;3502:52503;;;24925:33;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;11294:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;11315:14;11393:28;;;:::i;:::-;11437:21;11710:4;;-1:-1:-1;11460:28:62;;;;;;13706:67;;;;;;11432:2264;3502:52503;11799:19;3502:52503;;;;;;:::i;13706:67::-;13750:22;11294:10;;13750:22;:::i;:::-;13706:67;;11490:11;11527:20;;;;;:::i;:::-;11632:12;;;:::i;:::-;11666:22;;;;;:::i;:::-;3502:52503;11755:18;;;;;;:::i;:::-;11799:19;;;;;;;;;:::i;:::-;11844:13;;;;;;3502:52503;11844:13;;;:::i;:::-;11883:14;;;;;3502:52503;11923:19;;;;3502:52503;;11710:254;3502:52503;;11799:19;3502:52503;;;;;;;;;;;11710:254;;3502:52503;11710:254;;;:::i;:::-;;;;;;;;;;-1:-1:-1;11710:254:62;;;11490:11;11986:22;;3502:52503;11986:22;;;:::i;:::-;12030:13;;;;3502:52503;12065:19;;;;;;:::i;:::-;12106:17;;;;;;:::i;:::-;11582:4;;:559;;;;-1:-1:-1;3502:52503:62;11582:559;3502:52503;11799:19;3502:52503;;;;;;;;;11582:559;;3502:52503;11582:559;;;:::i;:::-;;:4;;;:559;;;;;;11490:11;-1:-1:-1;11562:686:62;;12181:26;;;;;;;3502:52503;12181:26;12305:4;12181:26;;;:::i;:::-;3502:52503;11437:21;3502:52503;11437:21;;11562:686;12283:10;3502:52503;11562:686;;;3502:52503;;-1:-1:-1;;;;;;;;;3502:52503:62;;12283:26;:55;;;;11562:686;12282:132;;;;11562:686;12261:253;;;12551:40;;;;12550:59;12551:40;;12550:59;:::i;:::-;12632:37;:22;12641:12;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;12632:22;12655:13;;;:::i;12632:37::-;3502:52503;-1:-1:-1;12528:242:62;;12788:47;12789:46;3502:52503;12811:19;;;;:::i;:::-;3502:52503;;;:::i;:::-;;;:::i;:::-;12789:46;;:::i;:::-;12788:47;;3502:52503;12788:47;3502:52503;;;;;12864:109;3502:52503;12936:19;12864:50;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;12864:50;12936:19;;;:::i;:::-;11799;3502:52503;-1:-1:-1;;;12864:109:62;;3502:52503;;;;;;;;;;12864:109;;;:::i;:::-;;;;;;;;;;-1:-1:-1;12864:109:62;;;12784:410;12855:118;-1:-1:-1;;;;;12855:118:62;3502:52503;12995:20;12991:123;;12784:410;13340:14;12305:4;12784:410;;;13622:24;12784:410;;;13303:12;;;:::i;:::-;13325:13;;;;:::i;:::-;13340:14;;:::i;:::-;13374:23;;;:41;;;12784:410;13370:237;;12784:410;13622:24;;;;:::i;:::-;13660:25;;;;;;:::i;:::-;12305:4;3502:52503;;;13660:25;11490:11;;13370:237;13535:13;13469:12;13570:19;13469:12;;:::i;:::-;13535:13;;:::i;:::-;11294:10;;13570:19;;:::i;:::-;13370:237;;;;;13374:41;;;;;12991:123;13039:26;;;;;;;3502:52503;13039:26;12305:4;13039:26;;;:::i;:::-;3502:52503;13087:8;;12864:109;;;;3502:52503;12864:109;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;12784:410::-;13622:24;13161:18;;;;12305:4;13161:18;;;;13340:14;13161:18;;:::i;:::-;12784:410;;12528:242;12703:26;;;;;;;;3502:52503;12703:26;12305:4;12703:26;;;:::i;12551:40::-;12550:59;12551:40;-1:-1:-1;12550:59:62;:::i;12282:132::-;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;12360:26:62;;-1:-1:-1;12360:26:62;:53;;12282:132;;;;12360:53;12399:13;12390:23;;12399:13;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;12390:8;3502:52503;;;;;;;12390:23;12360:53;;12283:55;12324:13;;12313:25;12314:24;;12324:13;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;12314:9;3502:52503;;;;;;;12313:25;12283:55;;;11582:559;;;-1:-1:-1;11582:559:62;;;:::i;:::-;;;:::i;:::-;;;;11710:254;;;;;3502:52503;11710:254;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;8489:25;3502:52503;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;:::i;:::-;;;-1:-1:-1;3502:52503:62;8489:10;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;48430:10;3502:52503;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;23465:10;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;23450:71;;23465:10;-1:-1:-1;3502:52503:62;23536:26;3502:52503;;-1:-1:-1;;;;;23536:45:62;;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;23536:45;3502:52503;23536:59;23532:113;;23656:45;:58;23465:10;23656:38;23465:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;23656:45;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;;23532:113;23616:29;;;-1:-1:-1;23616:29:62;3502:52503;-1:-1:-1;23616:29:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;52553:1;3502:52503;;;;;;;:::o;:::-;3815:1:93;3502:52503:62;;;3815:1:93;3502:52503:62;;;:::o;:::-;3880:1:93;3502:52503:62;;;3880:1:93;3502:52503:62;;;:::o;:::-;;2114:2:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;3502:52503:62;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;35104:5;3502:52503;;;35104:5;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;51507:243;-1:-1:-1;;;;;51611:20:62;3502:52503;;51611:42;;51607:59;;3502:52503;;-1:-1:-1;;;51683:60:62;;-1:-1:-1;;;;;3502:52503:62;;;51683:60;;;3502:52503;;51683:60;;3502:52503;;;;;;;51683:60;;;;;;;3502:52503;51683:60;;;51676:67;51507:243;:::o;51683:60::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;51607:59;51655:11;;51662:4;51655:11;:::o;3502:52503::-;;;;-1:-1:-1;39095:12:62;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39095:12;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;14393:1966::-;;;;;;14822:63;14393:1966;;14971:9;14393:1966;;;;;;;;;;3502:52503;14393:1966;3502:52503;;;;:::i;:::-;14822:63;:::i;:::-;14971:9;;;:::i;:::-;15039:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;15065:14;:21;:14;;;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;15065:14;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;15065:21;3502:52503;15099:32;;;;15089:43;15099:32;;15089:43;;:::i;:::-;-1:-1:-1;15061:119:62;;15195:10;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;15191:71;;15099:32;-1:-1:-1;;15347:32:62;;;;15311:70;:21;15347:32;15311:14;15337:43;15347:32;;;;;15337:43;;:::i;:::-;15311:14;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;15311:21;3502:52503;;;15311:70;:::i;:::-;3502:52503;;-1:-1:-1;;;15435:17:62;;;;;;16159:26;;;;;16155:60;;16226:127;;14393:1966;;:::o;16226:127::-;16300:27;:42;15039:10;16260:26;15039:10;16260:26;:::i;:::-;15039:10;3502:52503;;;;36929:8;3502:52503;;;;;16300:20;3502:52503;16300:42;3502:52503;;14393:1966::o;16155:60::-;16194:21;;;-1:-1:-1;16194:21:62;;-1:-1:-1;16194:21:62;15420:13;15490:9;;;;15470:36;15490:9;;;;;;:::i;:::-;3502:52503;15470:36;;:::i;:::-;15548:9;15525:49;15526:48;3502:52503;15548:21;:9;;;;;:::i;:::-;:21;;;;;:::i;15525:49::-;3502:52503;;;15619:59;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;15619:59;:128;;15704:21;:9;;;;;:::i;:21::-;15548;3502:52503;-1:-1:-1;;;15619:128:62;;3502:52503;;;;;;15619:128;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;15619:128:62;;;15521:496;15594:341;;;15521:496;;3502:52503;15521:496;;16058:9;;;;;:::i;:::-;3502:52503;16031:43;:23;:16;;;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;16031:43;3502:52503;;;;15420:13;;;;15594:341;15873:9;;;15619:128;15873:9;:21;:9;15797:119;15873:9;;;;:::i;15797:119::-;;;;;;;;;3502:52503;15797:119;-1:-1:-1;15797:119:62;;;15594:341;15788:128;15594:341;;;;15797:119;;;;15619:128;15797:119;;;;;;;;;:::i;:::-;;;;15619:128;;;;;;;;;;;;;;:::i;:::-;;;;15521:496;15982:9;;3502:52503;15982:20;;:9;;;;;:::i;:::-;:20;;:::i;:::-;15521:496;;;15347:32;15311:70;:21;15347:32;15311:14;15337:43;-1:-1:-1;15347:32:62;;;;;15191:71;15256:5;;;:::i;:::-;15191:71;;15061:119;15153:27;;;-1:-1:-1;15153:27:62;;-1:-1:-1;15153:27:62;15099:32;15089:43;-1:-1:-1;15099:32:62;;46071:330;-1:-1:-1;;;;;3502:52503:62;;;;46191:10;3502:52503;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;46187:208;46191:23;;;-1:-1:-1;;;;3502:52503:62;46230:11;-1:-1:-1;46230:11:62:o;46187:208::-;46262:32;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;46262:32;:39;-1:-1:-1;3502:52503:62;;;-1:-1:-1;;;;;46262:39:62;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;46262:39;3502:52503;46262:53;3502:52503;;-1:-1:-1;;;3502:52503:62;46331:11::o;46258:137::-;3502:52503;46373:11;:::o;3502:52503::-;;;;;;;;;3815:1:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;9575:1168::-;;;;;;10006:166;9575:1168;;;;;;;;;;;;;;;10006:166;9575:1168;3502:52503;;;;;;;;;;10006:166;;;;;;:::i;:::-;;:4;;:166;;;;;;;;;10258:9;10006:166;-1:-1:-1;10006:166:62;;;9575:1168;10258:9;;:::i;:::-;10301:39;10302:38;3502:52503;;;;;:::i;10301:39::-;:187;;;3502:52503;;10355:108;3502:52503;10006:166;3502:52503;10355:65;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;10355:65;3502:52503;;;;;;;;;;;;10355:108;;10006:166;10355:108;;;:::i;:::-;;;;;;;;;;10531:6;10355:108;;;-1:-1:-1;10355:108:62;;;10301:187;;;10531:6;;:::i;:::-;10569:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;10549:188;;9575:1168;;;:::o;10549:188::-;10600:15;10596:89;;10549:188;10569:10;;;10700:26;10569:10;10700:26;:::i;10596:89::-;10673:11;10569:10;;10673:11;;:::i;:::-;10596:89;;;;;10355:108;;;;10006:166;10355:108;10006:166;10355:108;;;;;;;:::i;:::-;;;;10301:187;;;;10531:6;10301:187;;;;10006:166;;;;;;;;;;;;;;;:::i;:::-;;;;;3502:52503;;;;;;;;;;;;:::o;17491:863::-;17647:10;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;17643:71;;17491:863;17740:10;811:123:94;952:9;17761:53:62;;17740:10;17829:21;17740:10;17829:14;17740:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;17829:21;3502:52503;17829:30;17825:70;;17906:28;;17647:18;17740:10;17945:21;17740:10;17945:14;17740:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;17945:21;:31;3502:52503;;;17945:31;:::i;:::-;3502:52503;;17647:18;17987:232;18007:17;;;;;;18233:26;;;;;18229:60;;17740:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;18300:47;;17491:863::o;18300:47::-;18327:20;17740:10;18327:20;:::i;17992:13::-;18062:9;;;;18042:36;3502:52503;18062:9;;;;;;:::i;18042:36::-;18132:9;;;;;;:::i;:::-;3502:52503;18092:56;:36;18101:9;18092:29;18101:19;;:9;;;;;:::i;18092:56::-;3502:52503;;;17992:13;;;;;17761:53;17799:15;;;17647:18;17799:15;;17647:18;17799:15;17643:71;17708:5;;;:::i;:::-;17643:71;;3502:52503;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;3502:52503:62;;;;;;;:::o;19105:1843::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;19451:28;;;:63;;;;19105:1843;19447:124;;;-1:-1:-1;;;;;3502:52503:62;;19586:28;;;:63;;;;19105:1843;19582:117;;;3502:52503;;19775:261;3502:52503;19727:350;3502:52503;;;19834:19;3502:52503;19775:261;:::i;:::-;3502:52503;;;;:::i;:::-;19727:350;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;19727:358;19710:417;;20142:32;20143:31;;;:::i;20142:32::-;20138:93;;20242:700;;;20294:29;;;;:::i;:::-;-1:-1:-1;;;;;;;;;20341:29:62;;;;:::i;:::-;3502:52503;20341:37;20337:95;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;20468:19:62;;:177;;20242:700;20447:264;;20726:30;:16;;:23;:16;-1:-1:-1;;;;;3502:52503:62;;;20726:10;3502:52503;;;;;;;20447:264;20667:44;;;19477:1;20667:44;;19477:1;20667:44;20468:177;19383:10;;-1:-1:-1;;;;;20508:39:62;;:32;;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;20508:39;3502:52503;20508:56;;;20468:177;20508:136;19427:9;;-1:-1:-1;;;;;20588:39:62;;:32;;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;20588:39;3502:52503;20588:56;;20468:177;;20242:700;20800:19;;;-1:-1:-1;;;;;3502:52503:62;;;20800:13;3502:52503;;;;;;;20800:19;3502:52503;20791:28;20787:66;;20898:19;;-1:-1:-1;;;;;3502:52503:62;;;20800:13;3502:52503;;;;;;;20898:19;3502:52503;;;;;;14393:1966::o;20787:66::-;20828:25;;;19477:1;20828:25;;19477:1;20828:25;19710:417;20103:24;;;19477:1;20103:24;;19477:1;20103:24;19582:117;19670:29;;;19477:1;19670:29;;19477:1;19670:29;19586:63;19383:10;;;19618:31;;19586:63;;;19447:124;19535:36;;;19477:1;19535:36;;19477:1;19535:36;19451:63;19427:9;;;19483:31;;19451:63;;;6244:1312;6278:21;3502:52503;-1:-1:-1;;;;;3502:52503:62;;6278:35;6274:93;;-1:-1:-1;6378:1172:62;;;;;;;;;;;;-1:-1:-1;6378:1172:62;;;;;;-1:-1:-1;6378:1172:62;;;-1:-1:-1;6378:1172:62;6274:93;6334:33;;;-1:-1:-1;6334:33:62;;-1:-1:-1;6334:33:62;1876:459:100;;;;3502:52503:62;;2135:179:100;;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;2135:179:100;3502:52503:62;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;;;;;;;3502:52503:62;;;;;2135:179:100;;3502:52503:62;;;;;;;;2135:179:100;-1:-1:-1;;2135:179:100;;;;;;:::i;:::-;3502:52503:62;2108:220:100;;1876:459;:::o;3502:52503:62:-;;;;;;;;;2135:179:100;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;55735:268;55834:10;3502:52503;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;55834:26:62;;3502:52503;55834:26;:47;;55735:268;55833:112;;;;55735:268;55816:180;;;;55735:268::o;55816:180::-;55963:33;;;-1:-1:-1;55963:33:62;;-1:-1:-1;55963:33:62;55833:112;-1:-1:-1;;;;;;3502:52503:62;;;;;;-1:-1:-1;;;55899:26:62;;-1:-1:-1;55899:26:62;:45;;55833:112;;;;;;55899:45;55929:15;;;;;-1:-1:-1;;;;;3502:52503:62;;;12390:8;3502:52503;;;;;;;55929:15;55899:45;;;55834:47;-1:-1:-1;;;;;3502:52503:62;;-1:-1:-1;3502:52503:62;;;55865:9;3502:52503;;;;;;;;55864:17;;-1:-1:-1;55834:47:62;;2462:228:93;;3502:52503:62;;;;2591:34:93;;;;:92;;;;2462:228;2572:111;;;;2462:228;:::o;2591:92::-;3502:52503:62;;;;;;;2641:19:93;3502:52503:62;;2664:19:93;2641:42;2591:92;;;;;;55070:382:62;3502:52503;5380:2;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;55296:28;5380:2;3502:52503;;;;;;5380:2;3502:52503;;;;;;;55413:32;3502:52503;-1:-1:-1;;;;;55413:32:62;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;;55349:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;55334:50;:69;3502:52503;;;55334:69;:::i;:::-;3502:52503;;55413:32;3502:52503;55413:32;:::i;:::-;;3502:52503;;55140:120;55253:7;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;55070:382;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;;;;;;;17213:1;3502:52503;;;;;55413:32;3502:52503;-1:-1:-1;;;;;55413:32:62;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;;55349:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;55157:85;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;55070:382;;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:28;-1:-1:-1;;;;;3502:52503:62;55296:19;3502:52503;55296:28;:::i;:::-;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;55349:34:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;55334:50;3502:52503;;55334:69;3502:52503;;;;;;;;55413:32;3502:52503;55413:32;3502:52503;;55413:32;3502:52503;55413:32;:::i;55140:120::-;55253:7;;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;3502:52503;;;;;;;:::o;:::-;;;;;;;;;;;;52311:516;36774:17;;52538:12;3502:52503;52538:12;3502:52503;;;;52791:28;52784:36;52715:9;;3502:52503;;52490:252;;;;52528:27;;3502:52503;;52577:15;3502:52503;;;;52614:16;3502:52503;;;;52652:10;3502:52503;;;;;;52684:9;3502:52503;;;;;;;;;;;52490:252;;;;;;:::i;:::-;3502:52503;52463:293;;52805:13;:9;37054:1;37057:4;52805:9;:::i;:::-;:13;:::i;:::-;52791:28;;:::i;:::-;37054:1;52784:36;:::i;53797:468::-;53938:10;3502:52503;53797:468;;;-1:-1:-1;;;;;3502:52503:62;53797:468;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;53934:71;;53797:468;3502:52503;;;-1:-1:-1;3502:52503:62;54038:8;3502:52503;;54038:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;54038:21;3502:52503;54073:19;;;;54069:59;;3502:52503;54220:12;3502:52503;54220:19;3502:52503;-1:-1:-1;3502:52503:62;54038:8;3502:52503;;;54163:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;54163:21;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;54220:19;3502:52503;;;;;;53797:468::o;53934:71::-;53999:5;;;:::i;:::-;53934:71;;3502:52503;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;4851:673:93:-;5154:20;5213:31;4851:673;;;;;;;;;5154:20;:::i;:::-;5213:31;;:::i;:::-;3687:13;;:::i;:::-;3710:15;;;;;:::i;:::-;;3735;;;;:::i;:::-;;-1:-1:-1;3781:6:93;3785:2;3781:6;;;;5350:31;;5478:25;5420:19;5350:31;5123:394;5350:31;;;:::i;:::-;5420:19;;:::i;:::-;5478:25;;:::i;:::-;5123:394;;:::i;3789:3::-;3845:7;;;3828:31;3839:19;634:18;;;;-1:-1:-1;;;3502:52503:62;3845:12:93;3502:52503:62;;;;3839:19:93;3502:52503:62;;;;3828:31:93;;;;;;;;3920:4;;-1:-1:-1;;;3828:31:93;;3808:51;3815:9;3819:5;;;:::i;:::-;3815:9;:::i;:::-;3808:51;;:::i;:::-;;3502:52503:62;3893:33:93;3828:31;3893:33;;;;;3742:1;;-1:-1:-1;;;3893:33:93;;3873:53;3880:9;3884:5;;;:::i;:::-;3880:9;:::i;:::-;3873:53;;:::i;:::-;;3502:52503:62;3766:13:93;;1338:487:86;3502:52503:62;1517:174:86;1601:51;3502:52503:62;;1601:51:86;:::i;:::-;3502:52503:62;;;1517:174:86;;;3502:52503:62;1517:174:86;;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;1517:174:86;3502:52503:62;;1517:174:86;;;;;;:::i;:::-;3502:52503:62;1494:207:86;;2570:2;3502:52503:62;;2550:22:86;3502:52503:62;;2612:158:86;-1:-1:-1;2612:158:86;1517:174;2612:158;;;;;;3502:52503:62;2612:158:86;;;;;;;;2821:6;2825:2;2821:6;;2817:44;;1338:487;3502:52503:62;1787:31:86;3502:52503:62;2870:54:86;3502:52503:62;;;2825:2:86;2878:7;;:18;;;;;1338:487;2870:54;;:::i;:::-;3502:52503:62;;1787:31:86;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;1787:31:86;;;;;;;;;;;;-1:-1:-1;1787:31:86;1338:487;:::o;2878:18::-;2894:2;2889:7;;;2878:18;;;2817:44;2843:7;;;1787:31;2843:7;;:::i;:::-;2817:44;;;;;;3502:52503:62;;;-1:-1:-1;;;3502:52503:62;;1517:174:86;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;875:702:93:-;1001:17;-1:-1:-1;12342:17:85;-1:-1:-1;;;12342:17:85;;;12338:103;;875:702:93;12458:17:85;12467:8;13038:7;12458:17;;;12454:103;;875:702:93;12583:8:85;12574:17;;;12570:103;;875:702:93;12699:7:85;12690:16;;;12686:100;;875:702:93;12812:7:85;12803:16;;;12799:100;;875:702:93;12925:7:85;12916:16;;;12912:100;;875:702:93;13029:16:85;;13025:66;;875:702:93;1469:11;1163:76;1059:18;1021:1;3502:52503:62;;1059:18:93;:::i;:::-;1091:11;1163:76;;;1252:282;-1:-1:-1;;3502:52503:62;;-1:-1:-1;;;13038:7:85;1357:95:93;;;3502:52503:62;1357:95:93;13038:7:85;3502:52503:62;;;;1469:11:93;1502:10;;1498:21;;1469:11;1252:282;;;;1498:21;1514:5;;875:702;:::o;13025:66:85:-;13075:1;3502:52503:62;;;;13025:66:85;;12912:100;12996:1;;12925:7;3502:52503:62;;;;12912:100:85;;;12799;12883:1;;12812:7;3502:52503:62;;;;12799:100:85;;;12686;12770:1;;12699:7;3502:52503:62;;;;12686:100:85;;;12570:103;12656:2;;12583:8;3502:52503:62;;;;12570:103:85;;;12454;12540:2;;12467:8;3502:52503:62;;;;12454:103:85;;;12338;-1:-1:-1;12424:2:85;;-1:-1:-1;;;;3502:52503:62;;12338:103:85;;3502:52503:62;;;;;;;;;;:::i;:::-;3697:2:93;3502:52503:62;;;-1:-1:-1;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;1953:2:93;3502:52503:62;;;-1:-1:-1;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;3742:1:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1753:495:93:-;-1:-1:-1;;;;;3502:52503:62;1943:13:93;;:::i;:::-;1966:16;;;;;:::i;:::-;;1992;;;;:::i;:::-;;1974:1;2038:6;2042:2;2038:6;;;;2219:22;;1753:495;:::o;2046:3::-;2110:6;;;:::i;:::-;2103:14;;;;;;2086:38;;2097:26;;2103:14;;;634:18;;-1:-1:-1;;;3502:52503:62;2103:19:93;634:18;2086:38;;;;;;;-1:-1:-1;;;2086:38:93;;2065:59;2073:9;2077:5;;;:::i;2073:9::-;2065:59;;:::i;:::-;;2183:6;;;:::i;:::-;2103:14;2176;;;;;;2193:4;2176:14;;3502:52503:62;2159:40:93;2086:38;2159:40;;;;;2000:1;;-1:-1:-1;;;2159:40:93;;2138:61;2146:9;2150:5;;;:::i;2146:9::-;2138:61;;:::i;:::-;;3502:52503:62;2023:13:93;;4142:120;4231:24;;;3502:52503:62;;;;;;:::i;:::-;;;;-1:-1:-1;;;3502:52503:62;;;;4142:120:93;:::o;4231:24::-;3502:52503:62;;;;;;:::i;:::-;;;;-1:-1:-1;;;3502:52503:62;;;;4142:120:93;:::o;3502:52503:62:-;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;",linkReferences:{"src/library/utils/signature/CoreHashUtils.sol":{CoreHashUtils:[{start:7429,length:20},{start:11547,length:20}]}}},methodIdentifiers:{"acceptAdmin()":"0e18b681","acceptChangeBaseRewardAmount()":"6a230fb4","acceptChangeRewardFlowDistribution()":"a574aac4","acceptDeleteTotalSupply()":"54a12357","acceptImplementation()":"15ba56e5","acceptListStatusProposal()":"7797e97d","acceptUserValidatorProposal()":"b517ac7d","addAmountToUser(address,address,uint256)":"6c9fa638","addBalance(address,address,uint256)":"d3bca884","asyncNonceStatus(address,uint256)":"4b366ccc","batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":"e7816eb8","caPay(address,address,uint256)":"c898a6e9","canExecuteUserTransaction(address)":"0f1f38b2","cancelUserValidatorProposal()":"401dffee","disperseCaPay((uint256,address)[],address,uint256)":"a7a096f6","dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":"32e26fdc","getAllowListStatus(address)":"5a2cba27","getAsyncNonceReservation(address,uint256)":"862b3737","getBalance(address,address)":"d4fac45d","getChainHostCoinAddress()":"8e0c71ad","getCurrentAdmin()":"643d430c","getCurrentImplementation()":"29cca569","getCurrentListStatus()":"ef003529","getCurrentSupply()":"4f3e1efc","getDenyListStatus(address)":"08351bdd","getEvvmID()":"17c85152","getEvvmMetadata()":"0faff8e8","getFullDetailAdmin()":"ab82aa0a","getFullDetailImplementation()":"e08290ee","getFullDetailListStatus()":"25e3243b","getFullDetailReward()":"0761a3ad","getFullDetailRewardFlowDistribution()":"563b6170","getFullDetailUserValidator()":"cd654e3e","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getNameServiceAddress()":"3a8cd872","getNextCurrentSyncNonce(address)":"6cd30148","getPrincipalTokenAddress()":"280e32fb","getPrincipalTokenTotalSupply()":"47ecd0f6","getRewardAmount()":"09a69f57","getRewardFlowDistributionFlag()":"1d3a4e2d","getStakingContractAddress()":"6afe5795","getTimeToDeleteMaxSupply()":"be726ffd","getUserValidatorAddress()":"b139c797","initializeSystemContracts(address,address)":"55160ea6","isAddressStaker(address)":"286b4b44","pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":"90fcb4ee","pointStaker(address,bytes1)":"adb6233f","proposeAdmin(address)":"147bf6c4","proposeChangeBaseRewardAmount(uint256)":"804ef86f","proposeChangeRewardFlowDistribution()":"92ab1f24","proposeDeleteTotalSupply()":"7a975c80","proposeImplementation(address)":"9dd18c15","proposeListStatus(bytes1)":"ae63d1a7","proposeUserValidator(address)":"e4e3cfee","recalculateReward()":"5300e162","rejectChangeBaseRewardAmount()":"bd26035e","rejectChangeRewardFlowDistribution()":"09fc6971","rejectDeleteTotalSupply()":"3625c901","rejectListStatusProposal()":"0211de41","rejectProposalAdmin()":"b38c950a","rejectUpgrade()":"3f54542a","removeAmountFromUser(address,address,uint256)":"76e6eb7e","reserveAsyncNonce(uint256,address)":"8b62e507","revokeAsyncNonce(uint256)":"ef802613","setEvvmID(uint256)":"01ed3f51","setPointStaker(address,bytes1)":"e8163dda","setTokenStatusOnAllowList(address,bool)":"4c3b7bdb","setTokenStatusOnDenyList(address,bool)":"766dd07b","validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":"fa7a2e2a"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_stakingContractAddress","type":"address"},{"components":[{"internalType":"string","name":"EvvmName","type":"string"},{"internalType":"uint256","name":"EvvmID","type":"uint256"},{"internalType":"string","name":"principalTokenName","type":"string"},{"internalType":"string","name":"principalTokenSymbol","type":"string"},{"internalType":"address","name":"principalTokenAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"eraTokens","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"internalType":"struct CoreStructs.EvvmMetadata","name":"_evvmMetadata","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressCantBeZero","type":"error"},{"inputs":[],"name":"AsyncNonceAlreadyReserved","type":"error"},{"inputs":[],"name":"AsyncNonceAlreadyUsed","type":"error"},{"inputs":[],"name":"AsyncNonceIsReservedByAnotherService","type":"error"},{"inputs":[],"name":"AsyncNonceNotReserved","type":"error"},{"inputs":[],"name":"BaseRewardIncreaseNotAllowed","type":"error"},{"inputs":[],"name":"BreakerExploded","type":"error"},{"inputs":[],"name":"ImplementationIsNotActive","type":"error"},{"inputs":[],"name":"IncorrectAddressInput","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidListStatus","type":"error"},{"inputs":[],"name":"InvalidServiceAddress","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"MaxSupplyDeletionNotAllowed","type":"error"},{"inputs":[],"name":"NotAnCA","type":"error"},{"inputs":[],"name":"OriginIsNotTheOriginExecutor","type":"error"},{"inputs":[],"name":"ProposalNotReadyToAccept","type":"error"},{"inputs":[],"name":"RewardFlowDistributionChangeNotAllowed","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotTheProposedAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotTreasury","type":"error"},{"inputs":[],"name":"ServiceSenderMismatch","type":"error"},{"inputs":[],"name":"SyncNonceMismatch","type":"error"},{"inputs":[],"name":"TokenIsDeniedForExecution","type":"error"},{"inputs":[],"name":"UserCannotExecuteTransaction","type":"error"},{"inputs":[],"name":"WindowExpired","type":"error"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptListStatusProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptUserValidatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addAmountToUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"addBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"asyncNonceStatus","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct CoreStructs.BatchData[]","name":"batchData","type":"tuple[]"}],"name":"batchPay","outputs":[{"internalType":"uint256","name":"successfulTransactions","type":"uint256"},{"internalType":"bool[]","name":"results","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"caPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"canExecuteUserTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelUserValidatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"toAddress","type":"address"}],"internalType":"struct CoreStructs.DisperseCaPayMetadata[]","name":"toData","type":"tuple[]"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"disperseCaPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"}],"internalType":"struct CoreStructs.DispersePayMetadata[]","name":"toData","type":"tuple[]"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"dispersePay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getAllowListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getAsyncNonceReservation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainHostCoinAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCurrentAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentListStatus","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getDenyListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmMetadata","outputs":[{"components":[{"internalType":"string","name":"EvvmName","type":"string"},{"internalType":"uint256","name":"EvvmID","type":"uint256"},{"internalType":"string","name":"principalTokenName","type":"string"},{"internalType":"string","name":"principalTokenSymbol","type":"string"},{"internalType":"address","name":"principalTokenAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"eraTokens","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"internalType":"struct CoreStructs.EvvmMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailAdmin","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailImplementation","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailListStatus","outputs":[{"components":[{"internalType":"bytes1","name":"current","type":"bytes1"},{"internalType":"bytes1","name":"proposal","type":"bytes1"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.Bytes1TypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailReward","outputs":[{"components":[{"internalType":"uint256","name":"current","type":"uint256"},{"internalType":"uint256","name":"proposal","type":"uint256"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.UintTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailRewardFlowDistribution","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailUserValidator","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNameServiceAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNextCurrentSyncNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardFlowDistributionFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeToDeleteMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserValidatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nameServiceAddress","type":"address"},{"internalType":"address","name":"_treasuryAddress","type":"address"}],"name":"initializeSystemContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isAddressStaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes1","name":"answer","type":"bytes1"}],"name":"pointStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBaseReward","type":"uint256"}],"name":"proposeChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposeChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposeDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"}],"name":"proposeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes1","name":"newStatus","type":"bytes1"}],"name":"proposeListStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newValidator","type":"address"}],"name":"proposeUserValidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recalculateReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectListStatusProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeAmountFromUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"}],"name":"reserveAsyncNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"revokeAsyncNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newEvvmID","type":"uint256"}],"name":"setEvvmID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes1","name":"answer","type":"bytes1"}],"name":"setPointStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenStatusOnAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenStatusOnDenyList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"bytes32","name":"hashPayload","type":"bytes32"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"validateAndConsumeNonce","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Combines payment operations and nonce management. Features multi-token payments with EIP-191 signatures, dual nonce system (sync/async), and staker rewards. Governed by a time-delayed admin and implementation upgrade system.","errors":{"AddressCantBeZero()":[{"details":"Thrown when address(0) provided (constructor, setup)"}],"AsyncNonceAlreadyReserved()":[{"details":"Thrown when reserving already-reserved async nonce"}],"AsyncNonceAlreadyUsed()":[{"details":"Thrown when async nonce already consumed"}],"AsyncNonceIsReservedByAnotherService()":[{"details":"Thrown when using async nonce reserved by different service"}],"AsyncNonceNotReserved()":[{"details":"Thrown when revoking non-reserved async nonce"}],"BreakerExploded()":[{"details":"Thrown when one-time setup function called after breaker flag set"}],"ImplementationIsNotActive()":[{"details":"Thrown when proxy implementation == address(0)"}],"IncorrectAddressInput()":[{"details":"Thrown when address validation fails in proposals"}],"InsufficientBalance()":[{"details":"Thrown when balance < transfer amount"}],"InvalidAmount()":[{"details":"Thrown when amount validation fails (e.g., dispersePay total != sum)"}],"InvalidListStatus()":[{"details":"Thrown when list status is invalid (not 0x00, 0x01, or 0x02)"}],"InvalidServiceAddress()":[{"details":"Thrown when reserving nonce with service == address(0)"}],"InvalidSignature()":[{"details":"Thrown when EIP-191 signature invalid or signer mismatch"}],"NotAnCA()":[{"details":"Thrown when EOA calls caPay/disperseCaPay (contract-only functions)"}],"ProposalNotReadyToAccept()":[{"details":"Thrown when accepting before timelock"}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyAdmin modifier)"}],"SenderIsNotTheProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptAdmin before timelock"}],"SenderIsNotTreasury()":[{"details":"Thrown when non-treasury calls treasury-only function"}],"ServiceSenderMismatch()":[{"details":"Thrown when msg.sender != service address only if diferent to address(0)"}],"SyncNonceMismatch()":[{"details":"Thrown when sync nonce != expected sequential nonce"}],"TokenIsDeniedForExecution()":[{"details":"Thrown when a token is in - the denylist (if the denylist is active) - not in the allowlist (if the allowlist is active)"}],"UserCannotExecuteTransaction()":[{"details":"Thrown when UserValidator blocks user transaction"}],"WindowExpired()":[{"details":"Thrown when attempting EVVM ID change after 24h window"}]},"kind":"dev","methods":{"acceptAdmin()":{"details":"Must be called by the proposed admin."},"acceptUserValidatorProposal()":{"custom:access":"Admin only","custom:timelock":"Requires DELAY (1 day) to have passed","details":"Activates new validator after delay period expires Activation Process: - Validates time-lock period has passed - Sets new validator as current active validator - Clears proposal state - Validator becomes active immediately Impact: - All future transactions checked by new validator - Affects validateAndConsumeNonce behavior - Can block users from executing transactions"},"addAmountToUser(address,address,uint256)":{"custom:access-control":"Only treasury contract","custom:security":"No overflow protection needed due to controlled access","details":"Restricted function that can only be called by the authorized treasury contract Treasury Operations: - Allows treasury to mint or credit tokens to user accounts - Used for reward distributions, airdrops, or token bridging - Direct balance manipulation bypasses normal transfer restrictions - No signature verification required (treasury authorization) Access Control: - Only the registered treasury contract can call this function - Reverts with SenderIsNotTreasury error for unauthorized callers - Provides centralized token distribution mechanism Use Cases: - Cross-chain bridge token minting - Administrative reward distributions - System-level token allocations - Emergency balance corrections","params":{"amount":"Amount of tokens to add to the user\'s balance","token":"Address of the token contract to add balance for","user":"Address of the user to receive tokens"}},"addBalance(address,address,uint256)":{"params":{"quantity":"Amount to add.","token":"Token contract address.","user":"Recipient address."}},"asyncNonceStatus(address,uint256)":{"details":"Returns byte code indicating nonce state Status Codes: - 0x00: Available (can be used by any service) - 0x01: Used (already consumed, cannot be reused) - 0x02: Reserved (allocated to specific service)","params":{"nonce":"Async nonce to check status for","user":"Address of the user who owns the nonce"},"returns":{"_0":"Status code: 0x00 (available), 0x01 (used), or 0x02 (reserved)"}},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{"details":"Each payment is validated and executed independently.","params":{"batchData":"Array of payment details and signatures."},"returns":{"results":"Success status for each payment in the batch.","successfulTransactions":"Count of successful payments."}},"caPay(address,address,uint256)":{"details":"Allows registered contracts to distribute tokens without signature verification Authorization Model: /**No signature required as the contract itself is the caller.","params":{"amount":"Tokens to transfer.","to":"Recipient address.","token":"Token address."}},"canExecuteUserTransaction(address)":{"details":"Checks with UserValidator if configured, allows all if not Validation Logic: - If no validator configured: Returns true (all allowed) - If validator configured: Delegates to validator.canExecute - Used by validateAndConsumeNonce before nonce consumption Integration: - Called during every transaction validation - Allows external filtering of user transactions - Supports compliance and security requirements","params":{"user":"Address to check execution permission for"},"returns":{"_0":"True if user can execute, false if blocked"}},"cancelUserValidatorProposal()":{"custom:access":"Admin only","details":"Resets proposal state before time-lock expires"},"constructor":{"params":{"_evvmMetadata":"Initial configuration (token info, reward amounts, etc.).","_initialOwner":"Address granted administrative control.","_stakingContractAddress":"Address of the Staking contract."}},"disperseCaPay((uint256,address)[],address,uint256)":{"params":{"amount":"Total amount to distribute.","toData":"Array of recipient addresses/identities and amounts.","token":"Token address."}},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{"params":{"amount":"Total amount to distribute (sum of toData).","from":"Sender address.","isAsyncExec":"True for parallel nonces.","nonce":"Transaction nonce.","priorityFee":"Fee for the executor (if staker).","senderExecutor":"Optional authorized executor.","signature":"EIP-191 authorization signature.","toData":"Array of recipient addresses/identities and their respective amounts.","token":"Token address."}},"getAllowListStatus(address)":{"details":"Returns boolean indicating if token is allowed for execution - true if allowed - false if denied"},"getAsyncNonceReservation(address,uint256)":{"details":"Returns address(0) if nonce is not reserved","params":{"nonce":"Async nonce to check reservation for","user":"Address of the user who owns the nonce"},"returns":{"_0":"Service address that reserved the nonce, or address(0) if not reserved"}},"getBalance(address,address)":{"details":"Returns the current balance stored in the EVVM system","params":{"token":"Token contract address to check","user":"Address to check balance for"},"returns":{"_0":"Current token balance for the user"}},"getChainHostCoinAddress()":{"details":"Returns address(0) which is the standard sentinel for native blockchain tokens Use this address as the token parameter when dealing with ETH or chain-native assets","returns":{"_0":"address(0) representing the native chain currency"}},"getCurrentAdmin()":{"details":"Returns the address with administrative privileges over the contract","returns":{"_0":"Address of the current admin"}},"getCurrentImplementation()":{"details":"Returns the implementation used by the proxy for delegatecalls","returns":{"_0":"Address of the current implementation contract"}},"getCurrentListStatus()":{"details":"Returns byte code indicating current token restriction mode - 0x00: No restrictions - 0x01: Denylist active - 0x02: Allowlist active"},"getCurrentSupply()":{"details":"Returns the current circulating supply used for reward recalculations"},"getDenyListStatus(address)":{"details":"Returns boolean indicating if token is restricted for execution - true if denied - false if allowed"},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getEvvmMetadata()":{"details":"Provides access to system-wide configuration and economic parameters Metadata Contents: - Principal token address (Principal Token) - Current reward amount per transaction - Total supply tracking - Era tokens threshold for reward transitions - System configuration parameters","returns":{"_0":"Complete EvvmMetadata struct with all system parameters"}},"getFullDetailImplementation()":{"details":"Returns current, proposed implementation addresses and time-lock info","returns":{"_0":"Proposal struct with current implementation, proposed implementation, and time to accept the proposal"}},"getFullDetailListStatus()":{"details":"Returns current list status along with pending proposal info"},"getFullDetailReward()":{"details":"Returns current reward, proposed reward and time-lock info","returns":{"_0":"Proposal struct with current reward, proposed reward, and time to accept the proposal"}},"getFullDetailRewardFlowDistribution()":{"details":"Returns current flag, proposed flag, and time-lock info","returns":{"_0":"Proposal struct with current flag, proposed flag, and time to accept"}},"getFullDetailUserValidator()":{"details":"Returns current, proposed address and time-lock info","returns":{"_0":"Proposal struct with current validator address, proposed address, and time to accept"}},"getIfUsedAsyncNonce(address,uint256)":{"details":"Public view function for external queries and UI integration","params":{"nonce":"The nonce value to query","user":"Address of the user to check"},"returns":{"_0":"True if the nonce has been used, false if available"}},"getNameServiceAddress()":{"details":"Returns the address used for identity resolution in payments","returns":{"_0":"Address of the integrated NameService contract"}},"getNextCurrentSyncNonce(address)":{"details":"Public view function for external queries and transaction preparation","params":{"user":"Address of the user to query"},"returns":{"_0":"The next nonce value that must be used by the user"}},"getPrincipalTokenAddress()":{"details":"Returns the virtual address used to track Principal Token balances in the balances mapping This is not an ERC20 contract address but a sentinel value for the EVVM-native token","returns":{"_0":"Address used as the key for Principal Token balances"}},"getPrincipalTokenTotalSupply()":{"details":"Returns the current total supply used for era transition calculations","returns":{"_0":"Total supply of Principal Tokens"}},"getRewardAmount()":{"details":"Returns the base reward distributed to stakers for transaction processing","returns":{"_0":"Current reward amount in Principal Tokens"}},"getRewardFlowDistributionFlag()":{"details":"Returns boolean indicating if reward distribution is active - true if rewards are distributed to stakers - false if rewards are disabled"},"getStakingContractAddress()":{"details":"Returns the address that can modify staker status and receive rewards","returns":{"_0":"Address of the integrated staking contract"}},"getTimeToDeleteMaxSupply()":{"details":"Returns the timestamp when the max supply can be deleted","returns":{"_0":"Timestamp for max supply deletion"}},"getUserValidatorAddress()":{"details":"Returns address(0) if no validator is configured","returns":{"_0":"Address of active UserValidator contract"}},"initializeSystemContracts(address,address)":{"details":"Uses a breaker flag to prevent re-initialization.","params":{"_nameServiceAddress":"Address of the NameService contract.","_treasuryAddress":"Address of the Treasury contract."}},"isAddressStaker(address)":{"details":"Verifies staker status for transaction processing privileges and rewards","params":{"user":"Address to check staker status for"},"returns":{"_0":"True if the address is a registered staker"}},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{"details":"Validates nonce (sync/async), resolves identity (if provided), and updates balances. Rewarded if the executor is a staker.","params":{"amount":"Tokens to transfer.","from":"Sender address.","isAsyncExec":"True for parallel nonces, false for sequential.","nonce":"Transaction nonce.","priorityFee":"Fee paid to the executor (if staker).","senderExecutor":"Optional authorized executor (address(0) for any).","signature":"EIP-191 authorization signature.","to_address":"Recipient address (overridden if to_identity is set).","to_identity":"Recipient username (resolved via NameService).","token":"Token address (address(0) for ETH)."}},"pointStaker(address,bytes1)":{"details":"Can only be called by the authorized staking contract Staker Status Management: - Controls who can earn staking rewards and process transactions - Integrates with external staking contract for validation - Updates affect payment processing privileges and reward eligibility Access Control: - Only the registered staking contract can call this function - Ensures staker status changes are properly authorized","params":{"answer":"Bytes1 flag indicating staker status/type","user":"Address to update staker status for"}},"proposeAdmin(address)":{"params":{"_newOwner":"Address of the proposed admin."}},"proposeImplementation(address)":{"params":{"_newImpl":"Address of the new logic contract."}},"proposeUserValidator(address)":{"details":"Initiates time-delayed governance for validator changes Governance Process: - Admin proposes new validator contract address - 1-day delay enforced before acceptance - Allows community review of validator changes - Can be canceled before acceptance UserValidator Integration: - Optional contract for transaction filtering - Called during validateAndConsumeNonce execution - Can block specific users from executing transactions - Useful for compliance or security requirements Security Features: - Time-delayed governance (DELAY constant) - Admin-only proposal capability - Cancellation mechanism before activation","params":{"newValidator":"Address of proposed UserValidator"}},"recalculateReward()":{"details":"Implements deflationary tokenomics with halving mechanism and random rewards Era Transition Mechanism: - Activates when total supply exceeds current era token threshold - Moves half of remaining tokens to next era threshold - Halves the base reward amount for future transactions - Provides random Principal Token bonus to caller (1-5083x reward) Economic Impact: - Gradually reduces inflation through reward halving - Creates scarcity as era thresholds become harder to reach - Incentivizes early participation with higher rewards - Provides lottery-style bonus for triggering era transitions Requirements: - Total supply must exceed current era token threshold - Can be called by anyone when conditions are met"},"removeAmountFromUser(address,address,uint256)":{"details":"Restricted to the authorized Treasury contract.","params":{"amount":"Amount to remove.","token":"Token address.","user":"Account to debit."}},"reserveAsyncNonce(uint256,address)":{"details":"Allows users to pre-allocate nonces to specific services Reservation System: - Users reserve nonces for specific service addresses - Prevents other services from using reserved nonces - Useful for multi-step or delayed operations - Reservation persists until revoked or nonce is used Use Cases: - Cross-chain operations requiring coordination - Multi-signature workflows with specific executors - Service-specific transaction queues - Preventing front-running by other services Security Features: - User-controlled reservation (msg.sender) - Validates service address is not zero - Prevents double reservation of same nonce - Cannot reserve already-used nonces","params":{"nonce":"The async nonce value to reserve","senderExecutor":"Service contract that can use nonce"}},"revokeAsyncNonce(uint256)":{"details":"Allows clearing of nonce reservations for reuse Revocation Process: - Validates nonce has not been used yet - Checks that nonce is currently reserved - Clears the service address reservation - Nonce becomes available for any service Authorization: - Currently callable by anyone (potential security issue) - Should validate msg.sender is user or authorized - Allows cancellation of mistaken reservations Use Cases: - Canceling pending service operations - Correcting accidental reservations - Freeing nonces for different services","params":{"nonce":"The async nonce to revoke reservation for"}},"setEvvmID(uint256)":{"params":{"newEvvmID":"New unique identifier for EIP-191 signatures."}},"setPointStaker(address,bytes1)":{"params":{"answer":"Status flag (e.g., FLAG_IS_STAKER).","user":"User address."}},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{"details":"Only callable by smart contracts (EVVM services). Atomic verification/consumption.","params":{"hashPayload":"Hash of the transaction parameters.","isAsyncExec":"True for non-sequential nonces.","nonce":"Nonce to validate and consume.","originExecutor":"Optional tx.origin restriction (address(0) for none).","signature":"User\'s authorization signature.","user":"Address of the transaction signer."}}},"title":"EVVM Core","version":1},"userdoc":{"kind":"user","methods":{"acceptAdmin()":{"notice":"Finalizes the admin change after the time delay."},"acceptImplementation()":{"notice":"Finalizes the implementation upgrade after the time delay."},"acceptUserValidatorProposal()":{"notice":"Accepts UserValidator proposal after time-lock"},"addAmountToUser(address,address,uint256)":{"notice":"Adds tokens to a user\'s balance in the EVVM system"},"addBalance(address,address,uint256)":{"notice":"Faucet: Adds balance to a user for testing (Testnet only)."},"asyncNonceStatus(address,uint256)":{"notice":"Gets comprehensive status of an async nonce"},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{"notice":"Processes multiple payments in a single transaction."},"caPay(address,address,uint256)":{"notice":"Contract-to-address payment function for authorized smart contractsAllows a smart contract (CA) to pay a recipient directly."},"canExecuteUserTransaction(address)":{"notice":"Validates if user can execute transactions"},"cancelUserValidatorProposal()":{"notice":"Cancels pending UserValidator proposal"},"constructor":{"notice":"Initializes the EVVM Core with basic system parameters."},"disperseCaPay((uint256,address)[],address,uint256)":{"notice":"Allows a smart contract (CA) to distribute tokens to multiple recipients."},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{"notice":"Distributes tokens from one sender to multiple recipients with a single signature."},"getAllowListStatus(address)":{"notice":"Checks if a token is on the allowList or denyList based on current list status"},"getAsyncNonceReservation(address,uint256)":{"notice":"Gets service address that reserved an async nonce"},"getBalance(address,address)":{"notice":"Gets the balance of a specific token for a user"},"getChainHostCoinAddress()":{"notice":"Gets the address representing native chain currency (ETH/MATIC) in balance mappings"},"getCurrentAdmin()":{"notice":"Gets the current admin address"},"getCurrentImplementation()":{"notice":"Gets the current active implementation contract address"},"getCurrentListStatus()":{"notice":"Gets the current token list status (none, denylist, allowlist)"},"getCurrentSupply()":{"notice":"Gets the current supply of the Principal Token in circulation"},"getDenyListStatus(address)":{"notice":"Checks if a token is on the denylist or allowlist based on current list status"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getEvvmMetadata()":{"notice":"Returns the complete EVVM metadata configuration"},"getFullDetailImplementation()":{"notice":"Gets comprehensive details of the implementation upgrade proposal"},"getFullDetailListStatus()":{"notice":"Gets comprehensive token list status details"},"getFullDetailReward()":{"notice":"Gets comprehensive details of the reward change proposal"},"getFullDetailRewardFlowDistribution()":{"notice":"Gets full details of the reward flow distribution proposal"},"getFullDetailUserValidator()":{"notice":"Gets full UserValidator proposal details"},"getIfUsedAsyncNonce(address,uint256)":{"notice":"Checks if a specific nonce has been used by a user"},"getNameServiceAddress()":{"notice":"Gets the current NameService contract address"},"getNextCurrentSyncNonce(address)":{"notice":"Gets the current (next expected) nonce for a user"},"getPrincipalTokenAddress()":{"notice":"Gets the address representing the Principal Token in balance mappings"},"getPrincipalTokenTotalSupply()":{"notice":"Gets the total supply of the Principal Token"},"getRewardAmount()":{"notice":"Gets the current Principal Token reward amount per transaction"},"getRewardFlowDistributionFlag()":{"notice":"Gets the current status of the reward flow distribution flag"},"getStakingContractAddress()":{"notice":"Gets the authorized staking contract address"},"getTimeToDeleteMaxSupply()":{"notice":"Gets the time remaining to delete the maximum supply"},"getUserValidatorAddress()":{"notice":"Gets current UserValidator contract address"},"initializeSystemContracts(address,address)":{"notice":"Configures NameService and Treasury addresses once."},"isAddressStaker(address)":{"notice":"Checks if an address is registered as a staker"},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{"notice":"Processes a single token payment with signature verification."},"pointStaker(address,bytes1)":{"notice":"Updates staker status for a user address"},"proposeAdmin(address)":{"notice":"Proposes a new administrator (1-day delay)."},"proposeImplementation(address)":{"notice":"Proposes a new implementation contract for the proxy (30-day delay)."},"proposeUserValidator(address)":{"notice":"Proposes new UserValidator contract address"},"recalculateReward()":{"notice":"Triggers a reward recalculation and era transition in the token economy"},"rejectProposalAdmin()":{"notice":"Cancels a pending admin change proposal."},"rejectUpgrade()":{"notice":"Cancels a pending implementation upgrade proposal."},"removeAmountFromUser(address,address,uint256)":{"notice":"Deducts tokens from a user\'s system balance."},"reserveAsyncNonce(uint256,address)":{"notice":"Reserves an async nonce for exclusive service use"},"revokeAsyncNonce(uint256)":{"notice":"Revokes a previously reserved async nonce"},"setEvvmID(uint256)":{"notice":"Updates the EVVM ID within a 24-hour window after deployment or change."},"setPointStaker(address,bytes1)":{"notice":"Faucet: Sets staker status for testing (Testnet only)."},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{"notice":"Validates a user signature and consumes a nonce for an EVVM service."}},"notice":"\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Central logic for EVVM payments, token management, and nonce tracking.","version":1}},"settings":{"compilationTarget":{"src/contracts/core/Core.sol":"Core"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_initialOwner",type:"address"},{internalType:"address",name:"_stakingContractAddress",type:"address"},{internalType:"struct CoreStructs.EvvmMetadata",name:"_evvmMetadata",type:"tuple",components:[{internalType:"string",name:"EvvmName",type:"string"},{internalType:"uint256",name:"EvvmID",type:"uint256"},{internalType:"string",name:"principalTokenName",type:"string"},{internalType:"string",name:"principalTokenSymbol",type:"string"},{internalType:"address",name:"principalTokenAddress",type:"address"},{internalType:"uint256",name:"totalSupply",type:"uint256"},{internalType:"uint256",name:"eraTokens",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"}]}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AddressCantBeZero"},{inputs:[],type:"error",name:"AsyncNonceAlreadyReserved"},{inputs:[],type:"error",name:"AsyncNonceAlreadyUsed"},{inputs:[],type:"error",name:"AsyncNonceIsReservedByAnotherService"},{inputs:[],type:"error",name:"AsyncNonceNotReserved"},{inputs:[],type:"error",name:"BaseRewardIncreaseNotAllowed"},{inputs:[],type:"error",name:"BreakerExploded"},{inputs:[],type:"error",name:"ImplementationIsNotActive"},{inputs:[],type:"error",name:"IncorrectAddressInput"},{inputs:[],type:"error",name:"InsufficientBalance"},{inputs:[],type:"error",name:"InvalidAmount"},{inputs:[],type:"error",name:"InvalidListStatus"},{inputs:[],type:"error",name:"InvalidServiceAddress"},{inputs:[],type:"error",name:"InvalidSignature"},{inputs:[],type:"error",name:"MaxSupplyDeletionNotAllowed"},{inputs:[],type:"error",name:"NotAnCA"},{inputs:[],type:"error",name:"OriginIsNotTheOriginExecutor"},{inputs:[],type:"error",name:"ProposalNotReadyToAccept"},{inputs:[],type:"error",name:"RewardFlowDistributionChangeNotAllowed"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotTheProposedAdmin"},{inputs:[],type:"error",name:"SenderIsNotTreasury"},{inputs:[],type:"error",name:"ServiceSenderMismatch"},{inputs:[],type:"error",name:"SyncNonceMismatch"},{inputs:[],type:"error",name:"TokenIsDeniedForExecution"},{inputs:[],type:"error",name:"UserCannotExecuteTransaction"},{inputs:[],type:"error",name:"WindowExpired"},{inputs:[],stateMutability:"nonpayable",type:"fallback"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptDeleteTotalSupply"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptImplementation"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptListStatusProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptUserValidatorProposal"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addAmountToUser"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"quantity",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addBalance"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"asyncNonceStatus",outputs:[{internalType:"bytes1",name:"",type:"bytes1"}]},{inputs:[{internalType:"struct CoreStructs.BatchData[]",name:"batchData",type:"tuple[]",components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}]}],stateMutability:"nonpayable",type:"function",name:"batchPay",outputs:[{internalType:"uint256",name:"successfulTransactions",type:"uint256"},{internalType:"bool[]",name:"results",type:"bool[]"}]},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"caPay"},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"canExecuteUserTransaction",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelUserValidatorProposal"},{inputs:[{internalType:"struct CoreStructs.DisperseCaPayMetadata[]",name:"toData",type:"tuple[]",components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"toAddress",type:"address"}]},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"disperseCaPay"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"struct CoreStructs.DispersePayMetadata[]",name:"toData",type:"tuple[]",components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"}]},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"dispersePay"},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getAllowListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getAsyncNonceReservation",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"pure",type:"function",name:"getChainHostCoinAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentAdmin",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentImplementation",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentListStatus",outputs:[{internalType:"bytes1",name:"",type:"bytes1"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getDenyListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmMetadata",outputs:[{internalType:"struct CoreStructs.EvvmMetadata",name:"",type:"tuple",components:[{internalType:"string",name:"EvvmName",type:"string"},{internalType:"uint256",name:"EvvmID",type:"uint256"},{internalType:"string",name:"principalTokenName",type:"string"},{internalType:"string",name:"principalTokenSymbol",type:"string"},{internalType:"address",name:"principalTokenAddress",type:"address"},{internalType:"uint256",name:"totalSupply",type:"uint256"},{internalType:"uint256",name:"eraTokens",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailAdmin",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailImplementation",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailListStatus",outputs:[{internalType:"struct ProposalStructs.Bytes1TypeProposal",name:"",type:"tuple",components:[{internalType:"bytes1",name:"current",type:"bytes1"},{internalType:"bytes1",name:"proposal",type:"bytes1"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailReward",outputs:[{internalType:"struct ProposalStructs.UintTypeProposal",name:"",type:"tuple",components:[{internalType:"uint256",name:"current",type:"uint256"},{internalType:"uint256",name:"proposal",type:"uint256"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailRewardFlowDistribution",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailUserValidator",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getNameServiceAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"getNextCurrentSyncNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardFlowDistributionFlag",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getStakingContractAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getTimeToDeleteMaxSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getUserValidatorAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"_nameServiceAddress",type:"address"},{internalType:"address",name:"_treasuryAddress",type:"address"}],stateMutability:"nonpayable",type:"function",name:"initializeSystemContracts"},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"isAddressStaker",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"pay"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes1",name:"answer",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"pointStaker"},{inputs:[{internalType:"address",name:"_newOwner",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"uint256",name:"newBaseReward",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"proposeChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"proposeDeleteTotalSupply"},{inputs:[{internalType:"address",name:"_newImpl",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeImplementation"},{inputs:[{internalType:"bytes1",name:"newStatus",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"proposeListStatus"},{inputs:[{internalType:"address",name:"newValidator",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeUserValidator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"recalculateReward"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectDeleteTotalSupply"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectListStatusProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectUpgrade"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"removeAmountFromUser"},{inputs:[{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"}],stateMutability:"nonpayable",type:"function",name:"reserveAsyncNonce"},{inputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"revokeAsyncNonce"},{inputs:[{internalType:"uint256",name:"newEvvmID",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"setEvvmID"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes1",name:"answer",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"setPointStaker"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"status",type:"bool"}],stateMutability:"nonpayable",type:"function",name:"setTokenStatusOnAllowList"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"status",type:"bool"}],stateMutability:"nonpayable",type:"function",name:"setTokenStatusOnDenyList"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"bytes32",name:"hashPayload",type:"bytes32"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"validateAndConsumeNonce"}],devdoc:{kind:"dev",methods:{"acceptAdmin()":{details:"Must be called by the proposed admin."},"acceptUserValidatorProposal()":{"custom:access":"Admin only","custom:timelock":"Requires DELAY (1 day) to have passed",details:"Activates new validator after delay period expires Activation Process: - Validates time-lock period has passed - Sets new validator as current active validator - Clears proposal state - Validator becomes active immediately Impact: - All future transactions checked by new validator - Affects validateAndConsumeNonce behavior - Can block users from executing transactions"},"addAmountToUser(address,address,uint256)":{"custom:access-control":"Only treasury contract","custom:security":"No overflow protection needed due to controlled access",details:"Restricted function that can only be called by the authorized treasury contract Treasury Operations: - Allows treasury to mint or credit tokens to user accounts - Used for reward distributions, airdrops, or token bridging - Direct balance manipulation bypasses normal transfer restrictions - No signature verification required (treasury authorization) Access Control: - Only the registered treasury contract can call this function - Reverts with SenderIsNotTreasury error for unauthorized callers - Provides centralized token distribution mechanism Use Cases: - Cross-chain bridge token minting - Administrative reward distributions - System-level token allocations - Emergency balance corrections",params:{amount:"Amount of tokens to add to the user's balance",token:"Address of the token contract to add balance for",user:"Address of the user to receive tokens"}},"addBalance(address,address,uint256)":{params:{quantity:"Amount to add.",token:"Token contract address.",user:"Recipient address."}},"asyncNonceStatus(address,uint256)":{details:"Returns byte code indicating nonce state Status Codes: - 0x00: Available (can be used by any service) - 0x01: Used (already consumed, cannot be reused) - 0x02: Reserved (allocated to specific service)",params:{nonce:"Async nonce to check status for",user:"Address of the user who owns the nonce"},returns:{_0:"Status code: 0x00 (available), 0x01 (used), or 0x02 (reserved)"}},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{details:"Each payment is validated and executed independently.",params:{batchData:"Array of payment details and signatures."},returns:{results:"Success status for each payment in the batch.",successfulTransactions:"Count of successful payments."}},"caPay(address,address,uint256)":{details:"Allows registered contracts to distribute tokens without signature verification Authorization Model: /**No signature required as the contract itself is the caller.",params:{amount:"Tokens to transfer.",to:"Recipient address.",token:"Token address."}},"canExecuteUserTransaction(address)":{details:"Checks with UserValidator if configured, allows all if not Validation Logic: - If no validator configured: Returns true (all allowed) - If validator configured: Delegates to validator.canExecute - Used by validateAndConsumeNonce before nonce consumption Integration: - Called during every transaction validation - Allows external filtering of user transactions - Supports compliance and security requirements",params:{user:"Address to check execution permission for"},returns:{_0:"True if user can execute, false if blocked"}},"cancelUserValidatorProposal()":{"custom:access":"Admin only",details:"Resets proposal state before time-lock expires"},constructor:{params:{_evvmMetadata:"Initial configuration (token info, reward amounts, etc.).",_initialOwner:"Address granted administrative control.",_stakingContractAddress:"Address of the Staking contract."}},"disperseCaPay((uint256,address)[],address,uint256)":{params:{amount:"Total amount to distribute.",toData:"Array of recipient addresses/identities and amounts.",token:"Token address."}},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{params:{amount:"Total amount to distribute (sum of toData).",from:"Sender address.",isAsyncExec:"True for parallel nonces.",nonce:"Transaction nonce.",priorityFee:"Fee for the executor (if staker).",senderExecutor:"Optional authorized executor.",signature:"EIP-191 authorization signature.",toData:"Array of recipient addresses/identities and their respective amounts.",token:"Token address."}},"getAllowListStatus(address)":{details:"Returns boolean indicating if token is allowed for execution - true if allowed - false if denied"},"getAsyncNonceReservation(address,uint256)":{details:"Returns address(0) if nonce is not reserved",params:{nonce:"Async nonce to check reservation for",user:"Address of the user who owns the nonce"},returns:{_0:"Service address that reserved the nonce, or address(0) if not reserved"}},"getBalance(address,address)":{details:"Returns the current balance stored in the EVVM system",params:{token:"Token contract address to check",user:"Address to check balance for"},returns:{_0:"Current token balance for the user"}},"getChainHostCoinAddress()":{details:"Returns address(0) which is the standard sentinel for native blockchain tokens Use this address as the token parameter when dealing with ETH or chain-native assets",returns:{_0:"address(0) representing the native chain currency"}},"getCurrentAdmin()":{details:"Returns the address with administrative privileges over the contract",returns:{_0:"Address of the current admin"}},"getCurrentImplementation()":{details:"Returns the implementation used by the proxy for delegatecalls",returns:{_0:"Address of the current implementation contract"}},"getCurrentListStatus()":{details:"Returns byte code indicating current token restriction mode - 0x00: No restrictions - 0x01: Denylist active - 0x02: Allowlist active"},"getCurrentSupply()":{details:"Returns the current circulating supply used for reward recalculations"},"getDenyListStatus(address)":{details:"Returns boolean indicating if token is restricted for execution - true if denied - false if allowed"},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getEvvmMetadata()":{details:"Provides access to system-wide configuration and economic parameters Metadata Contents: - Principal token address (Principal Token) - Current reward amount per transaction - Total supply tracking - Era tokens threshold for reward transitions - System configuration parameters",returns:{_0:"Complete EvvmMetadata struct with all system parameters"}},"getFullDetailImplementation()":{details:"Returns current, proposed implementation addresses and time-lock info",returns:{_0:"Proposal struct with current implementation, proposed implementation, and time to accept the proposal"}},"getFullDetailListStatus()":{details:"Returns current list status along with pending proposal info"},"getFullDetailReward()":{details:"Returns current reward, proposed reward and time-lock info",returns:{_0:"Proposal struct with current reward, proposed reward, and time to accept the proposal"}},"getFullDetailRewardFlowDistribution()":{details:"Returns current flag, proposed flag, and time-lock info",returns:{_0:"Proposal struct with current flag, proposed flag, and time to accept"}},"getFullDetailUserValidator()":{details:"Returns current, proposed address and time-lock info",returns:{_0:"Proposal struct with current validator address, proposed address, and time to accept"}},"getIfUsedAsyncNonce(address,uint256)":{details:"Public view function for external queries and UI integration",params:{nonce:"The nonce value to query",user:"Address of the user to check"},returns:{_0:"True if the nonce has been used, false if available"}},"getNameServiceAddress()":{details:"Returns the address used for identity resolution in payments",returns:{_0:"Address of the integrated NameService contract"}},"getNextCurrentSyncNonce(address)":{details:"Public view function for external queries and transaction preparation",params:{user:"Address of the user to query"},returns:{_0:"The next nonce value that must be used by the user"}},"getPrincipalTokenAddress()":{details:"Returns the virtual address used to track Principal Token balances in the balances mapping This is not an ERC20 contract address but a sentinel value for the EVVM-native token",returns:{_0:"Address used as the key for Principal Token balances"}},"getPrincipalTokenTotalSupply()":{details:"Returns the current total supply used for era transition calculations",returns:{_0:"Total supply of Principal Tokens"}},"getRewardAmount()":{details:"Returns the base reward distributed to stakers for transaction processing",returns:{_0:"Current reward amount in Principal Tokens"}},"getRewardFlowDistributionFlag()":{details:"Returns boolean indicating if reward distribution is active - true if rewards are distributed to stakers - false if rewards are disabled"},"getStakingContractAddress()":{details:"Returns the address that can modify staker status and receive rewards",returns:{_0:"Address of the integrated staking contract"}},"getTimeToDeleteMaxSupply()":{details:"Returns the timestamp when the max supply can be deleted",returns:{_0:"Timestamp for max supply deletion"}},"getUserValidatorAddress()":{details:"Returns address(0) if no validator is configured",returns:{_0:"Address of active UserValidator contract"}},"initializeSystemContracts(address,address)":{details:"Uses a breaker flag to prevent re-initialization.",params:{_nameServiceAddress:"Address of the NameService contract.",_treasuryAddress:"Address of the Treasury contract."}},"isAddressStaker(address)":{details:"Verifies staker status for transaction processing privileges and rewards",params:{user:"Address to check staker status for"},returns:{_0:"True if the address is a registered staker"}},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{details:"Validates nonce (sync/async), resolves identity (if provided), and updates balances. Rewarded if the executor is a staker.",params:{amount:"Tokens to transfer.",from:"Sender address.",isAsyncExec:"True for parallel nonces, false for sequential.",nonce:"Transaction nonce.",priorityFee:"Fee paid to the executor (if staker).",senderExecutor:"Optional authorized executor (address(0) for any).",signature:"EIP-191 authorization signature.",to_address:"Recipient address (overridden if to_identity is set).",to_identity:"Recipient username (resolved via NameService).",token:"Token address (address(0) for ETH)."}},"pointStaker(address,bytes1)":{details:"Can only be called by the authorized staking contract Staker Status Management: - Controls who can earn staking rewards and process transactions - Integrates with external staking contract for validation - Updates affect payment processing privileges and reward eligibility Access Control: - Only the registered staking contract can call this function - Ensures staker status changes are properly authorized",params:{answer:"Bytes1 flag indicating staker status/type",user:"Address to update staker status for"}},"proposeAdmin(address)":{params:{_newOwner:"Address of the proposed admin."}},"proposeImplementation(address)":{params:{_newImpl:"Address of the new logic contract."}},"proposeUserValidator(address)":{details:"Initiates time-delayed governance for validator changes Governance Process: - Admin proposes new validator contract address - 1-day delay enforced before acceptance - Allows community review of validator changes - Can be canceled before acceptance UserValidator Integration: - Optional contract for transaction filtering - Called during validateAndConsumeNonce execution - Can block specific users from executing transactions - Useful for compliance or security requirements Security Features: - Time-delayed governance (DELAY constant) - Admin-only proposal capability - Cancellation mechanism before activation",params:{newValidator:"Address of proposed UserValidator"}},"recalculateReward()":{details:"Implements deflationary tokenomics with halving mechanism and random rewards Era Transition Mechanism: - Activates when total supply exceeds current era token threshold - Moves half of remaining tokens to next era threshold - Halves the base reward amount for future transactions - Provides random Principal Token bonus to caller (1-5083x reward) Economic Impact: - Gradually reduces inflation through reward halving - Creates scarcity as era thresholds become harder to reach - Incentivizes early participation with higher rewards - Provides lottery-style bonus for triggering era transitions Requirements: - Total supply must exceed current era token threshold - Can be called by anyone when conditions are met"},"removeAmountFromUser(address,address,uint256)":{details:"Restricted to the authorized Treasury contract.",params:{amount:"Amount to remove.",token:"Token address.",user:"Account to debit."}},"reserveAsyncNonce(uint256,address)":{details:"Allows users to pre-allocate nonces to specific services Reservation System: - Users reserve nonces for specific service addresses - Prevents other services from using reserved nonces - Useful for multi-step or delayed operations - Reservation persists until revoked or nonce is used Use Cases: - Cross-chain operations requiring coordination - Multi-signature workflows with specific executors - Service-specific transaction queues - Preventing front-running by other services Security Features: - User-controlled reservation (msg.sender) - Validates service address is not zero - Prevents double reservation of same nonce - Cannot reserve already-used nonces",params:{nonce:"The async nonce value to reserve",senderExecutor:"Service contract that can use nonce"}},"revokeAsyncNonce(uint256)":{details:"Allows clearing of nonce reservations for reuse Revocation Process: - Validates nonce has not been used yet - Checks that nonce is currently reserved - Clears the service address reservation - Nonce becomes available for any service Authorization: - Currently callable by anyone (potential security issue) - Should validate msg.sender is user or authorized - Allows cancellation of mistaken reservations Use Cases: - Canceling pending service operations - Correcting accidental reservations - Freeing nonces for different services",params:{nonce:"The async nonce to revoke reservation for"}},"setEvvmID(uint256)":{params:{newEvvmID:"New unique identifier for EIP-191 signatures."}},"setPointStaker(address,bytes1)":{params:{answer:"Status flag (e.g., FLAG_IS_STAKER).",user:"User address."}},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{details:"Only callable by smart contracts (EVVM services). Atomic verification/consumption.",params:{hashPayload:"Hash of the transaction parameters.",isAsyncExec:"True for non-sequential nonces.",nonce:"Nonce to validate and consume.",originExecutor:"Optional tx.origin restriction (address(0) for none).",signature:"User's authorization signature.",user:"Address of the transaction signer."}}},version:1},userdoc:{kind:"user",methods:{"acceptAdmin()":{notice:"Finalizes the admin change after the time delay."},"acceptImplementation()":{notice:"Finalizes the implementation upgrade after the time delay."},"acceptUserValidatorProposal()":{notice:"Accepts UserValidator proposal after time-lock"},"addAmountToUser(address,address,uint256)":{notice:"Adds tokens to a user's balance in the EVVM system"},"addBalance(address,address,uint256)":{notice:"Faucet: Adds balance to a user for testing (Testnet only)."},"asyncNonceStatus(address,uint256)":{notice:"Gets comprehensive status of an async nonce"},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{notice:"Processes multiple payments in a single transaction."},"caPay(address,address,uint256)":{notice:"Contract-to-address payment function for authorized smart contractsAllows a smart contract (CA) to pay a recipient directly."},"canExecuteUserTransaction(address)":{notice:"Validates if user can execute transactions"},"cancelUserValidatorProposal()":{notice:"Cancels pending UserValidator proposal"},constructor:{notice:"Initializes the EVVM Core with basic system parameters."},"disperseCaPay((uint256,address)[],address,uint256)":{notice:"Allows a smart contract (CA) to distribute tokens to multiple recipients."},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{notice:"Distributes tokens from one sender to multiple recipients with a single signature."},"getAllowListStatus(address)":{notice:"Checks if a token is on the allowList or denyList based on current list status"},"getAsyncNonceReservation(address,uint256)":{notice:"Gets service address that reserved an async nonce"},"getBalance(address,address)":{notice:"Gets the balance of a specific token for a user"},"getChainHostCoinAddress()":{notice:"Gets the address representing native chain currency (ETH/MATIC) in balance mappings"},"getCurrentAdmin()":{notice:"Gets the current admin address"},"getCurrentImplementation()":{notice:"Gets the current active implementation contract address"},"getCurrentListStatus()":{notice:"Gets the current token list status (none, denylist, allowlist)"},"getCurrentSupply()":{notice:"Gets the current supply of the Principal Token in circulation"},"getDenyListStatus(address)":{notice:"Checks if a token is on the denylist or allowlist based on current list status"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getEvvmMetadata()":{notice:"Returns the complete EVVM metadata configuration"},"getFullDetailImplementation()":{notice:"Gets comprehensive details of the implementation upgrade proposal"},"getFullDetailListStatus()":{notice:"Gets comprehensive token list status details"},"getFullDetailReward()":{notice:"Gets comprehensive details of the reward change proposal"},"getFullDetailRewardFlowDistribution()":{notice:"Gets full details of the reward flow distribution proposal"},"getFullDetailUserValidator()":{notice:"Gets full UserValidator proposal details"},"getIfUsedAsyncNonce(address,uint256)":{notice:"Checks if a specific nonce has been used by a user"},"getNameServiceAddress()":{notice:"Gets the current NameService contract address"},"getNextCurrentSyncNonce(address)":{notice:"Gets the current (next expected) nonce for a user"},"getPrincipalTokenAddress()":{notice:"Gets the address representing the Principal Token in balance mappings"},"getPrincipalTokenTotalSupply()":{notice:"Gets the total supply of the Principal Token"},"getRewardAmount()":{notice:"Gets the current Principal Token reward amount per transaction"},"getRewardFlowDistributionFlag()":{notice:"Gets the current status of the reward flow distribution flag"},"getStakingContractAddress()":{notice:"Gets the authorized staking contract address"},"getTimeToDeleteMaxSupply()":{notice:"Gets the time remaining to delete the maximum supply"},"getUserValidatorAddress()":{notice:"Gets current UserValidator contract address"},"initializeSystemContracts(address,address)":{notice:"Configures NameService and Treasury addresses once."},"isAddressStaker(address)":{notice:"Checks if an address is registered as a staker"},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{notice:"Processes a single token payment with signature verification."},"pointStaker(address,bytes1)":{notice:"Updates staker status for a user address"},"proposeAdmin(address)":{notice:"Proposes a new administrator (1-day delay)."},"proposeImplementation(address)":{notice:"Proposes a new implementation contract for the proxy (30-day delay)."},"proposeUserValidator(address)":{notice:"Proposes new UserValidator contract address"},"recalculateReward()":{notice:"Triggers a reward recalculation and era transition in the token economy"},"rejectProposalAdmin()":{notice:"Cancels a pending admin change proposal."},"rejectUpgrade()":{notice:"Cancels a pending implementation upgrade proposal."},"removeAmountFromUser(address,address,uint256)":{notice:"Deducts tokens from a user's system balance."},"reserveAsyncNonce(uint256,address)":{notice:"Reserves an async nonce for exclusive service use"},"revokeAsyncNonce(uint256)":{notice:"Revokes a previously reserved async nonce"},"setEvvmID(uint256)":{notice:"Updates the EVVM ID within a 24-hour window after deployment or change."},"setPointStaker(address,bytes1)":{notice:"Faucet: Sets staker status for testing (Testnet only)."},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{notice:"Validates a user signature and consumes a nonce for an EVVM service."}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/core/Core.sol":"Core"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:62},tF={abi:[{type:"constructor",inputs:[{name:"_coreAddress",type:"address",internalType:"address"},{name:"_initialOwner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeEvvmAddress",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"offerID",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptProposeAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"value",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeEvvmAddress",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelProposeAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelWithdrawPrincipalTokens",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimWithdrawPrincipalTokens",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"flushCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"flushUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAdmin",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getAdminFullDetails",inputs:[],outputs:[{name:"currentAdmin",type:"address",internalType:"address"},{name:"proposalAdmin",type:"address",internalType:"address"},{name:"timeToAcceptAdmin",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAmountOfCustomMetadata",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCoreAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCoreAddressFullDetails",inputs:[],outputs:[{name:"currentEvvmAddress",type:"address",internalType:"address"},{name:"proposalEvvmAddress",type:"address",internalType:"address"},{name:"timeToAcceptEvvmAddress",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCustomMetadataMaxSlotsOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getExpireDateOfIdentity",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getFullCustomMetadataOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"string[]",internalType:"string[]"}],stateMutability:"view"},{type:"function",name:"getIdentityBasicMetadata",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLengthOfOffersUsername",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"length",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOffersOfUsername",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"offers",type:"tuple[]",internalType:"struct NameServiceStructs.OfferMetadata[]",components:[{name:"offerer",type:"address",internalType:"address"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getOwnerOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPriceOfRegistration",inputs:[{name:"username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToAddCustomMetadata",inputs:[],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToFlushCustomMetadata",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToFlushUsername",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToRemoveCustomMetadata",inputs:[],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getProposedWithdrawAmountFullDetails",inputs:[],outputs:[{name:"proposalAmountToWithdrawTokens",type:"uint256",internalType:"uint256"},{name:"timeToAcceptAmountToWithdrawTokens",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSingleCustomMetadataOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_key",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"getSingleOfferOfUsername",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_offerID",type:"uint256",internalType:"uint256"}],outputs:[{name:"offer",type:"tuple",internalType:"struct NameServiceStructs.OfferMetadata",components:[{name:"offerer",type:"address",internalType:"address"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"hashUsername",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_randomNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"isUsernameAvailable",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"makeOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[{name:"offerID",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"preRegistrationUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"hashPreRegisteredUsername",type:"bytes32",internalType:"bytes32"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeAdmin",inputs:[{name:"_adminToPropose",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeEvvmAddress",inputs:[{name:"_newEvvmAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeWithdrawPrincipalTokens",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"registrationUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"lockNumber",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"key",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renewUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"seePriceToRenew",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"strictVerifyIfIdentityExist",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"verifyIfIdentityExists",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"verifyStrictAndGetOwnerOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"answer",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"withdrawOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"offerID",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AmountMustBeGreaterThanZero",inputs:[]},{type:"error",name:"CannotBeBeforeCurrentTime",inputs:[]},{type:"error",name:"EmptyCustomMetadata",inputs:[]},{type:"error",name:"IdentityIsNotAUsername",inputs:[]},{type:"error",name:"InvalidAdminProposal",inputs:[]},{type:"error",name:"InvalidEvvmAddress",inputs:[]},{type:"error",name:"InvalidKey",inputs:[]},{type:"error",name:"InvalidUsername",inputs:[]},{type:"error",name:"InvalidWithdrawAmount",inputs:[]},{type:"error",name:"LockTimeNotExpired",inputs:[]},{type:"error",name:"OfferInactive",inputs:[]},{type:"error",name:"OwnershipExpired",inputs:[]},{type:"error",name:"PreRegistrationNotValid",inputs:[]},{type:"error",name:"RenewalTimeLimitExceeded",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotProposedAdmin",inputs:[]},{type:"error",name:"UserIsNotOwnerOfIdentity",inputs:[]},{type:"error",name:"UserIsNotOwnerOfOffer",inputs:[]},{type:"error",name:"UsernameAlreadyRegistered",inputs:[]}],bytecode:{object:"0x608034609657601f6146e938819003918201601f19168301916001600160401b03831184841017609a578084926040948552833981010312609657604b602060458360ae565b920160ae565b600680546001600160a01b03199081166001600160a01b039485169081179092556009805482169490931693909317909155600d805490921617905560405161462790816100c28239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360965756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081627802df14613260575080630c78d2c6146131e25780630d3dcb9f14613188578063147bf6c4146130e157806317c85152146130635780631f4131fb146130285780632096b7681461300257806322abdafa14612d2c57806322afca3814612cd757806324866f1514612c9b57806336e7a1b81461180057806343a82d6714612c0757806348ffba5514612b5c57806353462f82146127a257806354dc585d146127665780635548a76214612729578063570b245b146126ec5780635f94da09146123ea5780636b5bb1ca14611efa5780636e9960c3146123c35780637126b2a31461238757806371e604f814611f3b57806375dab53b14611eff5780637bd9da7a14611efa5780637d0d960814611c4357806386c8ac5814611c0757806388ecb91f14611bcb5780638ffe264e1461180557806399e7bac214611800578063a6ba51ca1461177c578063b0bf2e1014611349578063b19517dd1461115c578063bc91a42814611120578063bcd5a47c146110fe578063c97da33e14611086578063cf1dc14614611049578063d2234a1a14611024578063d7fd313414610e97578063e7849f6214610e44578063eba5e53e14610db4578063ebee75fc14610aac578063ecdc7aff146106f5578063f5e993f5146103cd578063f69c6dec14610387578063f6d0ecbe146102995763fe7ab68314610217575f80fd5b34610296576020366003190112610296576004356001600160401b0381116102945761024790369060040161340a565b829160015b15610262575b61025c8493613c1b565b9261024c565b604051828282376020818481016001815203019020838552602052600160408520015461025257602083604051908152f35b505b80fd5b50346102965760206102aa36613493565b92909182604051938492833781016002815203019020908252602052604081209060405191818154916102dc83613a77565b808652926001811690811561035d575060011461031c575b61031885610304818703826136e2565b604051918291602083526020830190613674565b0390f35b815260208120939250905b80821061034357509091508101602001610304826103186102f4565b919260018160209254838588010152019101909291610327565b8695506103189693506020925061030494915060ff191682840152151560051b82010192936102f4565b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36103bd366004860161340a565b90614134565b6040519015158152f35b503461029657806103dd366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b031693369061040792613933565b90604051809160208201936060855260808301600d905260a083016c3bb4ba34323930bba7b33332b960991b90526040830160a0905260c0830161044a91613674565b90606083015203601f198101825261046290826136e2565b51902092823b156106f1578b6104958896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576106cd575b5050604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b2054166001600160a01b038616036106be579061051994939291866106aa575b5050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b8154169055600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f578691610669575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69261031c6105cc950490613722565b613722565b3361445a565b6040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b825461372f565b815580f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b87526011600452602487fd5b90506020813d602011610697575b81610684602093836136e2565b8101031261069357515f610579565b5f80fd5b3d9150610677565b6040513d88823e3d90fd5b6106b5938786614188565b5f8080806104ec565b630504ed8560e21b8a5260048afd5b816106d7916136e2565b6106e257895f6104a4565b8980fd5b6040513d84823e3d90fd5b8680fd5b5034610296578061072b610708366134c5565b999b95929d949391978b9d8d929a9c6001600160a01b03600d5416933691613933565b8c610792604051809261077e602083019560608752601460808501527f72656d6f7665437573746f6d4d6574616461746100000000000000000000000060a085015260a0604085015260c0840190613674565b90606083015203601f1981018352826136e2565b51902092823b156106f157876107c58896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610a97575b50506001600160a01b03604051888a82376020818a8101600c81520301902054166001600160a01b03821603610a8857856002604051898b82376020818b8101600c81520301902001541115610a7957908861083b959493926108356138a0565b90614286565b80600260405184868237602081868101600c8152030190200154145f146109b95760029260209160405184838237838186810188815203019020908752825261088660408720613aca565b8260405193849283378101600c81520301902001805480156109a5575f190190556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a57849161096b575b506108e6578280f35b6020600491604051928380926309a69f5760e01b82525afa90811561096057839161092e575b508060050290600582040361064157610928916105c691613722565b5f808280f35b90506020813d602011610958575b81610949602093836136e2565b8101031261069357515f61090c565b3d915061093c565b6040513d85823e3d90fd5b61098d915060203d602011610993575b61098581836136e2565b810190613888565b5f6108dd565b503d61097b565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b600260405183858237602081858101600c8152030190200154811015610a3457604051828482376020818481016002815203019020600182018083116106555790600192918752602052610a2e6040872060405185878237602081878101600281520301902083895260205260408820614055565b016109b9565b5060206002926040518382823782818581018781520301902084604051858482378481878101600c815203019020015487528252610a7460408720613aca565b610886565b630eda9c3d60e31b8a5260048afd5b6322de326160e11b8a5260048afd5b81610aa1916136e2565b6106e257895f6107d4565b50346102965780610abc36613587565b97988a9b99610ae3829e96939997959c6001600160a01b03600d9a969a5416933691613933565b604051610b3281610b24602082019460408652600d60608401526c72656e6577557365726e616d6560981b60808401526080604084015260a0830190613674565b03601f1981018352826136e2565b51902092823b156106f1578b610b658896928a9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610d9b575b50506001600160a01b03604051898982376020818b8101600c81520301902054166001600160a01b03861603610d8c5760405188888237600c818a0190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d576001604051898982376020818b8101600c815203019020015463bbf81e00420190814211610d695711610d5a5790610c1c93929186610c158a8a613c29565b8097614286565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791610d30575b50610c8a575b5050509060206001928260405193849283378101600c815203019020018054906301e285008201809211610641575580f35b906020600492604051938480926309a69f5760e01b82525afa91821561069f578692610cfc575b50603281029080820460321490151715610ce8576105c66020936105c160019796946064610ce0950490613722565b91925f610c58565b634e487b7160e01b86526011600452602486fd5b9091506020813d602011610d28575b81610d18602093836136e2565b810103126106935751905f610cb1565b3d9150610d0b565b610d49915060203d6020116109935761098581836136e2565b5f610c52565b6040513d89823e3d90fd5b6356657c2160e01b8952600489fd5b634e487b7160e01b8b52601160045260248bfd5b631591d30560e11b8952600489fd5b6322de326160e11b8952600489fd5b81610da5916136e2565b610db057885f610b74565b8880fd5b50346102965780600319360112610296576001600160a01b03600a5416338103610e3557600b544210610e26578160408051610def816136c7565b83815282602082015201526001600160601b0360a01b60095416176009556001600160601b0360a01b600a5416600a5580600b5580f35b63018a18db60e51b8252600482fd5b632dba366760e21b8252600482fd5b50346102965780600319360112610296576001600160a01b0360095416803303610e88576005544210610e2657600454610e7d9161445a565b806004558060055580f35b636587b01b60e11b8252600482fd5b5034610296576020366003190112610296576004356001600160401b03811161029457610ec890369060040161340a565b600360405182848237602081848101600c815203019020015490610eeb82613f41565b91610ef960405193846136e2565b808352610f08601f1991613f41565b01845b81811061100d575050835b600360405183868237602081858101600c8152030190200154811015610f9f57600190604051838682376020818581018581520301902081875260205260408620600260405191610f66836136c7565b6001600160a01b03815416835284810154602084015201546040820152610f8d8286613f58565b52610f988185613f58565b5001610f16565b8285604051918291602083016020845282518091526020604085019301915b818110610fcc575050500390f35b919350916020606082610fff6001948851604080916001600160a01b038151168452602081015160208501520151910152565b019401910191849392610fbe565b602090611018613915565b82828701015201610f0b565b5034610296578060031936011261029657604060045460055482519182526020820152f35b50346102965780600319360112610296576001600160a01b0360095416330361107757806004558060055580f35b636587b01b60e11b8152600490fd5b503461029657602036600319011261029657600435906001600160401b03821161029657604060016110bb366004860161340a565b60206001600160a01b038594939451838682378281858101600c81520301902054169382865193849283378101600c815203019020015482519182526020820152f35b503461029657602061111861111236613493565b91614026565b604051908152f35b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611156366004860161340a565b90613f80565b5034610296576020366003190112610296576004356001600160401b0381116102945761118d90369060040161340a565b91600260405184848237602081868101600c8152030190200154926111b184613f41565b936111bf60405195866136e2565b8085526111ce601f1991613f41565b01825b818110611338575050815b600260405183868237602081858101600c81520301902001548110156112d1576040518285823760208184810160028152030190208184526020526040832060405190849080549061122d82613a77565b80855291600181169081156112aa5750600114611273575b505090611257816001949303826136e2565b6112618288613f58565b5261126c8187613f58565b50016111dc565b8652602086208692505b818310611294575050810160200161125782611245565b600181602092548386880101520192019161127d565b60ff191660208087019190915292151560051b850190920192506112579150839050611245565b84836040519182916020830160208452825180915260408401602060408360051b870101940192905b82821061130957505050500390f35b919360019193955060206113288192603f198a82030186528851613674565b96019201920185949391926112fa565b8060606020809389010152016111d1565b50346102965761016036600319011261029657611364613437565b6024356001600160401b0381116117785761138390369060040161340a565b61138b613463565b9260a435936001600160a01b03851685036117745760e4356001600160401b0381116106f1576113bf90369060040161340a565b91909587610144356001600160401b038111610294576113e390369060040161340a565b94909382996001600160a01b03600d54166113ff368b8d613933565b60405161145a8161143c602082019460808652600960a08401526836b0b5b2a7b33332b960b91b60c084015260c0604084015260e0830190613674565b6044356060830152606435608083015203601f1981018352826136e2565b519020813b156117745785809461148f8c978a96604051998a9889978896637d3d171560e11b885260c435936004890161380b565b03925af180156106e65761175b575b505060405185878237600c81870190815281900360200190206004015460f81b6001600160f81b031916600160f81b14801561174a575b61173b5742606435111561172c576044351561171d579061150692916101249794973590610104356044358a614286565b6040518284823760208184810160018152030190208186526020526001600160a01b03604086205416156115425761153d90613c1b565b611506565b926103e36044350260443581046103e303610ce8576103e89004906001600160a01b0360405191611572836136c7565b16815260026020820160643581526040830190848252604051868882376020818881016001815203019020888a526020526001600160a01b038060408b20955116166001600160601b0360a01b85541617845551600184015551910155600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f5786916116eb575b50607d60443502906044358204607d0361065557602096926116396105c661164d946105c161164695620186a061010435930490613722565b6103206044350490613722565b8254613722565b90556003604051828482378581848101600c815203019020015483115f1461169b57836003928260405193849283378101600c815203019020016116918154613c1b565b9055604051908152f35b6003604051828482378581848101600c8152030190200154156116c0575b5050611118565b836003928260405193849283378101600c815203019020016116e28154613c1b565b90555f806116b9565b90506020813d602011611715575b81611706602093836136e2565b8101031261069357515f611600565b3d91506116f9565b635e85ae7360e01b8852600488fd5b632cce8b5d60e21b8852600488fd5b630a1de65160e31b8852600488fd5b506117558587613b19565b156114d5565b81611765916136e2565b61177057875f61149e565b8780fd5b8580fd5b8280fd5b503461029657602036600319011261029657611796613437565b6001600160a01b03600954163303610e88576001600160a01b031680156117f1576001600160601b0360a01b60075416176007556201518042018042116117dd5760085580f35b634e487b7160e01b82526011600452602482fd5b63203e99b760e21b8252600482fd5b613479565b50346102965761183b90611818366134c5565b979195939096948b9e8b9d9c6001600160a01b03600d9d969d5416953691613933565b60405161188d818d61077e602083019560608752601460808501527f726567697374726174696f6e557365726e616d6500000000000000000000000060a085015260a0604085015260c0840190613674565b51902094843b15611bc7578c8f95936118c3908998969488946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af18015611bbc57908a91611ba7575b50506001600160a01b0360095416966001600160a01b0381168098141580611b8d575b611b7e57611906898c614134565b15611b6f57936119309361193a96936119299389611935988f8e61083591613f80565b8689614026565b614379565b61384e565b9160405193816001600160a01b0385519660208181890199808b835e8101600c815203019020541614801590611b4d575b611b3e576301e2850042018042116106555791869760049288946040519361199285613698565b8452602084019081526001600160a01b03806040860193888552602060608801968a8852608089019a8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611b1f575b50611a79575b5050906020600492604051928391518091835e8101600c815203019020828155826001820155826002820155826003820155015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611ae2575b5080603202906032820403611ace57600492611ac76105c6879694602094613722565b9192611a42565b634e487b7160e01b85526011600452602485fd5b90506020813d602011611b0c575b81611afd602093836136e2565b8101031261069357515f611aa4565b3d9150611af0565b6040513d87823e3d90fd5b611b38915060203d6020116109935761098581836136e2565b5f611a3c565b6321efd8cf60e11b8652600486fd5b5060016040516020818751808a835e8101600c8152030190200154421061196b565b633efbb39b60e11b8a5260048afd5b630a1de65160e31b8a5260048afd5b50611ba1611b9c368b8e613933565b6144f0565b156118f8565b81611bb1916136e2565b610db057885f6118d5565b6040513d8c823e3d90fd5b8e80fd5b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600a5416600a5580600b5580f35b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c3611c3d366004860161340a565b90613e91565b50346102965780611c5336613587565b98809b95939c949198611c788c6001600160a01b03600d9b9a969b5416933691613933565b604051611cbf81610b246020820194604086526013606084015272666c757368437573746f6d4d6574616461746160681b60808401526080604084015260a0830190613674565b51902092823b156106f15787611cf28896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657611ee5575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576002604051888882376020818a8101600c815203019020015415611ed6579087611d6295949392610835898961374f565b835b84600260405185858237602081878101600c8152030190200154821015611db65750600190604051848482376020818681016002815203019020818752602052611db060408720613aca565b01611d64565b9390506001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611eb7575b50611e15575b50509060206002928260405193849283378101600c815203019020015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611e85575b5080600502906005820403611ace57600292611e7e6105c68796946105c1602095886040518988823788818b8101600c81520301902001549061373c565b9192611df5565b90506020813d602011611eaf575b81611ea0602093836136e2565b8101031261069357515f611e40565b3d9150611e93565b611ed0915060203d6020116109935761098581836136e2565b5f611def565b6334b7a09160e01b8952600489fd5b81611eef916136e2565b610db057885f611d01565b61363f565b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611f35366004860161340a565b90613c29565b50346102965761014036600319011261029657611f56613437565b6024356001600160401b03811161177857611f7590369060040161340a565b916044356001600160401b03811161238357611f9590369060040161340a565b9091611f9f61344d565b611fa7613463565b9060c4356001600160401b038111610db057611fc790369060040161340a565b9390928960e4359561012435946001600160401b03861161177857612019968c8a610b246120778f9a8f61200261202192369060040161340a565b9e909d6001600160a01b03600d5416973691613933565b943691613933565b6040519283916120656020840196606088526011608086015270616464437573746f6d4d6574616461746160781b60a086015260a0604086015260c0850190613674565b838103601f1901606085015290613674565b519020813b15611774578580946120ac8a978a96604051998a9889978896637d3d171560e11b885260a435936004890161380b565b03925af180156106e65761236e575b50506001600160a01b036040518a8a82376020818c8101600c81520301902054166001600160a01b03831603610a8857851561235f57906121069392918561010435926108356138a0565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115612354578891612335575b50612283575b5050604051848482376020818681016002815203019020600260405186868237602081888101600c8152030190200154865260205260408520916001600160401b03821161226f5761219e826121988554613a77565b85613bce565b8590601f831160011461220557826002969593602095936121d4938a926121fa575b50508160011b915f199060031b1c19161790565b90555b8260405193849283378101600c815203019020016121f58154613c1b565b905580f35b013590505f806121c0565b8387526020872091601f198416885b81811061225757509260019285926002999896602098961061223e575b505050811b0190556121d7565b01355f19600384901b60f8161c191690555f8080612231565b91936020600181928787013581550195019201612214565b634e487b7160e01b86526041600452602486fd5b6020600491604051928380926309a69f5760e01b82525afa908115610d4f578791612303575b5080600502906005820403610655576122c06138a0565b6032810290808204603214901517156122ef57916105c16105c69260646122e8950490613722565b5f80612142565b634e487b7160e01b88526011600452602488fd5b90506020813d60201161232d575b8161231e602093836136e2565b8101031261069357515f6122a9565b3d9150612311565b61234e915060203d6020116109935761098581836136e2565b5f61213c565b6040513d8a823e3d90fd5b6334b7a09160e01b8a5260048afd5b81612378916136e2565b6106e257895f6120bb565b8480fd5b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36123bd366004860161340a565b90613b19565b503461029657806003193601126102965760206001600160a01b0360095416604051908152f35b503461029657806123fa36613587565b98809b95939c94919861241f8c6001600160a01b03600d9b9a969b5416933691613933565b60405161246081610b24602082019460408652600d60608401526c666c757368557365726e616d6560981b60808401526080604084015260a0830190613674565b51902092823b156106f157876124938896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576126d7575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576001604051888882376020818a8101600c81520301902001544210156126c85760405187878237600c81890190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d579087612537959493926108358989613978565b835b600260405184848237602081868101600c81520301902001548110156125895760019060405184848237602081868101600281520301902081875260205261258360408720613aca565b01612539565b5091600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115611b14578591612696575b5080600502906005820403611ace576105c6600493926105c16125f8936002604051878a8237602081898101600c81520301902001549061373c565b600360405182858237602081848101600c81520301902001546040519161261e83613698565b858352602083018681526001600160a01b0380604086019389855260608701958652602060808801998b8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff1982541617905580f35b90506020813d6020116126c0575b816126b1602093836136e2565b8101031261069357515f6125bc565b3d91506126a4565b637d3b450560e11b8952600489fd5b816126e1916136e2565b610db057885f6124a2565b5034610296578060031936011261029657600654600754600854604080516001600160a01b03948516815293909216602084015290820152606090f35b5034610296578060031936011261029657600954600a54600b54604080516001600160a01b03948516815293909216602084015290820152606090f35b503461029657602036600319011261029657600435906001600160401b03821161029657602061111861279c366004860161340a565b90613978565b503461029657806127b2366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b03169336906127dc92613933565b90604051809160208201936060855260808301600b905260a083016a30b1b1b2b83a27b33332b960a91b90526040830160a0905260c0830161281d91613674565b90606083015203601f198101825261283590826136e2565b51902092823b156106f1578b6128688896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657612b47575b50506001600160a01b03604051888b82376020818a8101600c81520301902054166001600160a01b03861603610a8857604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b205416158015612b1c575b612b0d579061291694939291866106aa575050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b6040518285823760208184810160018152030190208386526020526001600160a01b036040862054166001600160a01b0360405184878237602081868101600c81520301902091166001600160601b0360a01b825416179055604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b81541690556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791612aee575b50612a45575b50506040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b6020600491604051928380926309a69f5760e01b82525afa90811561069f578691612abc575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69260c7612ab5950460021c90613722565b5f806129da565b90506020813d602011612ae6575b81612ad7602093836136e2565b8101031261069357515f612a6b565b3d9150612aca565b612b07915060203d6020116109935761098581836136e2565b5f6129d4565b631388464960e01b8a5260048afd5b50604051878a82376020818981016001815203019020888b52602052600160408b20015442116128d8565b81612b51916136e2565b6106e257895f612877565b50346102965780600319360112610296576001600160a01b03600954163303611077576008544210612bf8576001600160a01b03600754168160408051612ba2816136c7565b83815282602082015201526001600160601b0360a01b60065416176006556001600160601b0360a01b60075416600755806008556001600160a01b03600654166001600160601b0360a01b600d541617600d5580f35b63018a18db60e51b8152600490fd5b50346102965760406060916020612c1d36613493565b929091612c28613915565b5082865193849283378101600181520301902090825260205220600260405191612c51836136c7565b6001600160a01b0381541683526001810154602084015201546040820152612c996040518092604080916001600160a01b038151168452602081015160208501520151910152565bf35b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600754166007558060085580f35b503461029657602036600319011261029657600435906001600160401b038211610296576020600181612d0d366004870161340a565b91908260405193849283378101600c8152030190200154604051908152f35b50346106935761012036600319011261069357612d47613437565b602435604435916001600160a01b038316830361069357612d6661344d565b60a4356001600160401b03811161069357612d8590369060040161340a565b949060c43595610104356001600160401b03811161069357612dab90369060040161340a565b9390926001600160a01b03600d5416604051602081019060408252601760608201527f707265526567697374726174696f6e557365726e616d6500000000000000000060808201528a604082015260808152612e0860a0826136e2565b519020813b15610693575f8094612e3d8b978b96604051998a9889978896637d3d171560e11b8852608435936004890161380b565b03925af18015612ff757612fe2575b5085612fcb575b5050506107084201804211611ace57906004916001600160a01b0360405192612e7b84613698565b168252602082019081526040820186815260608301918783526001600160a01b0380602080612eb761193560808a019b600160f81b8d52614379565b604051928184925191829101835e8101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a578491612fac575b50612f44578280f35b6020600491604051928380926309a69f5760e01b82525afa908115610960578391612f78575b50610928916105c691613722565b90506020813d602011612fa4575b81612f93602093836136e2565b810103126106935751610928612f6a565b3d9150612f86565b612fc5915060203d6020116109935761098581836136e2565b5f612f3b565b612fda9260e435908786614188565b5f8080612e53565b612fef9197505f906136e2565b5f955f612e4c565b6040513d5f823e3d90fd5b34610693575f3660031901126106935760206001600160a01b0360065416604051908152f35b34610693576020366003190112610693576004356001600160401b0381116106935761111861305d602092369060040161340a565b9061374f565b34610693575f36600319011261069357600460206001600160a01b03600d541660405192838092630be428a960e11b82525afa8015612ff7575f906130ae575b602090604051908152f35b506020813d6020116130d9575b816130c8602093836136e2565b8101031261069357602090516130a3565b3d91506130bb565b34610693576020366003190112610693576130fa613437565b6001600160a01b036009541690813303613179576001600160a01b031690811590811561316f575b50613160576001600160601b0360a01b600a541617600a5562015180420180421161314c57600b55005b634e487b7160e01b5f52601160045260245ffd5b6394aca82b60e01b5f5260045ffd5b9050811482613122565b636587b01b60e11b5f5260045ffd5b34610693576020366003190112610693576004356001600160401b038111610693576001600160a01b0360206131c38193369060040161340a565b91908260405193849283378101600c8152030190205416604051908152f35b34610693576020366003190112610693576004356001600160401b03811161069357613214602091369060040161340a565b5f916132208282613e91565b613238575b50506001600160a01b0360405191168152f35b6001600160a01b03925083908260405193849283378101600c81520301902054168280613225565b3461069357602036600319011261069357600435906001600160a01b0360095416330361317957600d5463280e32fb60e01b82526001600160a01b0316602082600481845afa918215612ff7575f926133d9575b506001600160a01b036040519263d4fac45d60e01b8452306004850152166024830152602082604481845afa918215612ff7575f926133a4575b506020600491604051928380926309a69f5760e01b82525afa908115612ff7575f91613372575b506113db01806113db1161314c57829161333461333a925f5490613722565b9061372f565b10801561336a575b61335b5760045562015180420180421161314c57600555005b630db73cdf60e41b5f5260045ffd5b508015613342565b90506020813d60201161339c575b8161338d602093836136e2565b81010312610693575183613315565b3d9150613380565b9091506020813d6020116133d1575b816133c0602093836136e2565b8101031261069357519060206132ee565b3d91506133b3565b6133fc91925060203d602011613403575b6133f481836136e2565b810190613703565b90836132b4565b503d6133ea565b9181601f84011215610693578235916001600160401b038311610693576020838186019501011161069357565b600435906001600160a01b038216820361069357565b606435906001600160a01b038216820361069357565b608435906001600160a01b038216820361069357565b34610693575f3660031901126106935760206111186138a0565b604060031982011261069357600435906001600160401b038211610693576134bd9160040161340a565b909160243590565b90610140600319830112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357816135059160040161340a565b92909291604435916064356001600160a01b038116810361069357916084356001600160a01b0381168103610693579160a4359160c4356001600160401b03811161069357816135579160040161340a565b9290929160e43591610104359161012435906001600160401b038211610693576135839160040161340a565b9091565b610120600319820112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357826135c69160040161340a565b929092916044356001600160a01b038116810361069357916064356001600160a01b038116810361069357916084359160a4356001600160401b03811161069357816136149160040161340a565b9290929160c4359160e4359161010435906001600160401b038211610693576135839160040161340a565b34610693576020366003190112610693576004356001600160401b0381116106935760026020612d0d8193369060040161340a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b038211176136b357604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176136b357604052565b90601f801991011681019081106001600160401b038211176136b357604052565b9081602091031261069357516001600160a01b03811681036106935790565b9190820180921161314c57565b9190820391821161314c57565b8181029291811591840414171561314c57565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f926137b7575b5081600a0291600a83040361314c578260206002926137b49560405193849283378101600c81520301902001549061373c565b90565b9091506020813d6020116137e3575b816137d3602093836136e2565b810103126106935751905f613781565b3d91506137c6565b908060209392818452848401375f828201840152601f01601f1916010190565b929360e0946001600160a01b036137b499979481809516875216602086015260408501521660608301526080820152600160a08201528160c082015201916137eb565b906138866021602093604051948591600160fe1b828401528051918291018484015e81015f838201520301601f1981018452836136e2565b565b90816020910312610693575180151581036106935790565b600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f916138e3575b5080600a0290600a82040361314c5790565b90506020813d60201161390d575b816138fe602093836136e2565b8101031261069357515f6138d1565b3d91506138f1565b60405190613922826136c7565b5f6040838281528260208201520152565b9291926001600160401b0382116136b3576040519161395c601f8201601f1916602001846136e2565b829481845281830111610693578281602093845f960137010152565b6001600160a01b03600d541690604051926309a69f5760e01b8452602084600481865afa938415612ff7575f94613a43575b5083600a0293600a85040361314c57600493600282602080956139e19560405193849283378101600c81520301902001549061373c565b91604051938480926309a69f5760e01b82525afa908115612ff7575f91613a0d575b6137b49250613722565b90506020823d602011613a3b575b81613a28602093836136e2565b81010312610693576137b4915190613a03565b3d9150613a1b565b9093506020813d602011613a6f575b81613a5f602093836136e2565b810103126106935751925f6139aa565b3d9150613a52565b90600182811c92168015613aa5575b6020831014613a9157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613a86565b5f5b828110613abd57505050565b5f82820155600101613ab1565b613ad48154613a77565b9081613ade575050565b81601f5f9311600114613aef575055565b81835260208320613b0c91601f0160051c84190190600101613aaf565b8082528160208120915555565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613ba9576001600160a01b0360405182848237602081848101600c815203019020541615918215613b84575b505015613b7f575f90565b600190565b600192506020908260405193849283378101600c815203019020015415155f80613b74565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f90565b91601f8211613bdc57505050565b808211613be857505050565b613886925f5260205f20916020601f830160051c9210613c13575b601f82910160051c039101613aaf565b5f9150613c03565b5f19811461314c5760010190565b905f91600160405183838237600c848201908152819003602001902001544211613e15576040518282823760208184810160018152030190205f8052602052600160405f200154613d27575b505080613c8a5750681b1ae4d6e2ef50000090565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f92613cf3575b506005810290810460050361314c576103e89004816207a12002916207a12083040361314c5781811115613cee575090565b905090565b9091506020813d602011613d1f575b81613d0f602093836136e2565b810103126106935751905f613cbc565b3d9150613d02565b5f5b600360405184848237602081868101600c8152030190200154811015613e0b57604051838382376020818581016001815203019020815f5260205242600160405f2001541180613dda575b613d81575b600101613d29565b604051838382376020818581016001815203019020815f5260205283600260405f2001541115613d79579250604051828282376020818481016001815203019020835f526020526001600260405f200154939050613d79565b50604051838382376020818581016001815203019020815f526020526001600160a01b0360405f2054161515613d74565b5050505f80613c75565b505050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613e5f575b50806207a12002906207a12082040361314c5790565b90506020813d602011613e89575b81613e7a602093836136e2565b8101031261069357515f613e49565b3d9150613e6d565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613f1c576001600160a01b0360405182848237602081848101600c815203019020541615918215613ef7575b505015613b7f575f80fd5b600192506020908260405193849283378101600c815203019020015415155f80613eec565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f80fd5b6001600160401b0381116136b35760051b60200190565b8051821015613f6c5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90600360405182848237600c8382019081528190036020019020015415613faa576137b491613c29565b5050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613ff4575b5060648102908082046064149015171561314c5790565b90506020813d60201161401e575b8161400f602093836136e2565b8101031261069357515f613fdd565b3d9150614002565b919060208061404f926040519481869284840198893782019083820152030180845201826136e2565b51902090565b91909182811461412f576140698354613a77565b6001600160401b0381116136b35761408b816140858454613a77565b84613bce565b5f93601f82116001146140c9576140ba92939482915f926140be5750508160011b915f199060031b1c19161790565b9055565b015490505f806121c0565b601f198216905f5260205f2094835f5260205f20915f5b818110614117575095836001959697106140ff575b505050811b019055565b01545f1960f88460031b161c191690555f80806140f5565b9192600180602092868b0154815501940192016140e0565b509050565b90600160405182848237602081848101600c8152030190200154155f1461415c575050600190565b60206001928260405193849283378101600c8152030190200154624f1a00810180911161314c57421190565b9192909493946001600160a01b03600d5416926040519463280e32fb60e01b8652602086600481885afa958615612ff7575f96614265575b50843b15610693576001600160a01b03975f9789958661424a948b976040519d8e9c8d9b8c9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528a6101648b015216606489015288608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b03925af18015612ff75761425b5750565b5f613886916136e2565b61427f91965060203d602011613403576133f481836136e2565b945f6141c0565b600d5460405163280e32fb60e01b815295966001600160a01b0390911694929390602087600481895afa968715612ff7575f97614347575b50853b15610693576001600160a01b03985f988a8a9661424a9582996040519e8f9d8e9c8d9b63487e5a7760e11b8d521660048c01523060248c015261016060448c01528b6101648c01521660648a0152608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b61436191975060203d602011613403576133f481836136e2565b955f6142be565b908151811015613f6c570160200190565b604051906143886080836136e2565b60428252602082016060368237825115613f6c5760309053815160011015613f6c57607860218301535f5b602081106143c057505090565b81811a90600482901c600f166010811015613f6c578160011b928284046002148315171561314c57836002018060021161314c57600f926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144189088614368565b5316916010831015613f6c576003018060031161314c576001926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144539086614368565b53016143b3565b600d5460405163280e32fb60e01b815292906001600160a01b0316602084600481845afa938415612ff7575f946144cf575b50803b156106935760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f9082908183816064810161424a565b6144e991945060203d602011613403576133f481836136e2565b925f61448c565b80516004811061455f5715613f6c576020810151614517906001600160f81b0319166145a4565b1561459f575f5b8151811015614598576001600160f81b031961453a8284614368565b5116600360fc1b8110159081614589575b501580614565575b61455f5760010161451e565b50505f90565b506145836001600160f81b031961457c8385614368565b51166145a4565b15614553565b603960f81b101590505f61454b565b5050600190565b505f90565b60ff60f81b16604160f81b81101590816145e2575b81156145c3575090565b606160f81b8110159150816145d6575090565b603d60f91b1015905090565b602d60f91b81111591506145b956fea26469706673582212200394b24bebc7e0da5e621acd9bc3d368bceba007a21ed83a6b3d974ef6028fef64736f6c63430008210033",sourceMap:"2765:56961:64:-:0;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;4691:11;2765:56961;;-1:-1:-1;;;;;;2765:56961:64;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;4735:5;2765:56961;;;;;;;;;;;;;;;4774:25;2765:56961;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;-1:-1:-1;2765:56961:64;;;;;-1:-1:-1;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081627802df14613260575080630c78d2c6146131e25780630d3dcb9f14613188578063147bf6c4146130e157806317c85152146130635780631f4131fb146130285780632096b7681461300257806322abdafa14612d2c57806322afca3814612cd757806324866f1514612c9b57806336e7a1b81461180057806343a82d6714612c0757806348ffba5514612b5c57806353462f82146127a257806354dc585d146127665780635548a76214612729578063570b245b146126ec5780635f94da09146123ea5780636b5bb1ca14611efa5780636e9960c3146123c35780637126b2a31461238757806371e604f814611f3b57806375dab53b14611eff5780637bd9da7a14611efa5780637d0d960814611c4357806386c8ac5814611c0757806388ecb91f14611bcb5780638ffe264e1461180557806399e7bac214611800578063a6ba51ca1461177c578063b0bf2e1014611349578063b19517dd1461115c578063bc91a42814611120578063bcd5a47c146110fe578063c97da33e14611086578063cf1dc14614611049578063d2234a1a14611024578063d7fd313414610e97578063e7849f6214610e44578063eba5e53e14610db4578063ebee75fc14610aac578063ecdc7aff146106f5578063f5e993f5146103cd578063f69c6dec14610387578063f6d0ecbe146102995763fe7ab68314610217575f80fd5b34610296576020366003190112610296576004356001600160401b0381116102945761024790369060040161340a565b829160015b15610262575b61025c8493613c1b565b9261024c565b604051828282376020818481016001815203019020838552602052600160408520015461025257602083604051908152f35b505b80fd5b50346102965760206102aa36613493565b92909182604051938492833781016002815203019020908252602052604081209060405191818154916102dc83613a77565b808652926001811690811561035d575060011461031c575b61031885610304818703826136e2565b604051918291602083526020830190613674565b0390f35b815260208120939250905b80821061034357509091508101602001610304826103186102f4565b919260018160209254838588010152019101909291610327565b8695506103189693506020925061030494915060ff191682840152151560051b82010192936102f4565b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36103bd366004860161340a565b90614134565b6040519015158152f35b503461029657806103dd366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b031693369061040792613933565b90604051809160208201936060855260808301600d905260a083016c3bb4ba34323930bba7b33332b960991b90526040830160a0905260c0830161044a91613674565b90606083015203601f198101825261046290826136e2565b51902092823b156106f1578b6104958896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576106cd575b5050604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b2054166001600160a01b038616036106be579061051994939291866106aa575b5050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b8154169055600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f578691610669575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69261031c6105cc950490613722565b613722565b3361445a565b6040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b825461372f565b815580f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b87526011600452602487fd5b90506020813d602011610697575b81610684602093836136e2565b8101031261069357515f610579565b5f80fd5b3d9150610677565b6040513d88823e3d90fd5b6106b5938786614188565b5f8080806104ec565b630504ed8560e21b8a5260048afd5b816106d7916136e2565b6106e257895f6104a4565b8980fd5b6040513d84823e3d90fd5b8680fd5b5034610296578061072b610708366134c5565b999b95929d949391978b9d8d929a9c6001600160a01b03600d5416933691613933565b8c610792604051809261077e602083019560608752601460808501527f72656d6f7665437573746f6d4d6574616461746100000000000000000000000060a085015260a0604085015260c0840190613674565b90606083015203601f1981018352826136e2565b51902092823b156106f157876107c58896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610a97575b50506001600160a01b03604051888a82376020818a8101600c81520301902054166001600160a01b03821603610a8857856002604051898b82376020818b8101600c81520301902001541115610a7957908861083b959493926108356138a0565b90614286565b80600260405184868237602081868101600c8152030190200154145f146109b95760029260209160405184838237838186810188815203019020908752825261088660408720613aca565b8260405193849283378101600c81520301902001805480156109a5575f190190556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a57849161096b575b506108e6578280f35b6020600491604051928380926309a69f5760e01b82525afa90811561096057839161092e575b508060050290600582040361064157610928916105c691613722565b5f808280f35b90506020813d602011610958575b81610949602093836136e2565b8101031261069357515f61090c565b3d915061093c565b6040513d85823e3d90fd5b61098d915060203d602011610993575b61098581836136e2565b810190613888565b5f6108dd565b503d61097b565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b600260405183858237602081858101600c8152030190200154811015610a3457604051828482376020818481016002815203019020600182018083116106555790600192918752602052610a2e6040872060405185878237602081878101600281520301902083895260205260408820614055565b016109b9565b5060206002926040518382823782818581018781520301902084604051858482378481878101600c815203019020015487528252610a7460408720613aca565b610886565b630eda9c3d60e31b8a5260048afd5b6322de326160e11b8a5260048afd5b81610aa1916136e2565b6106e257895f6107d4565b50346102965780610abc36613587565b97988a9b99610ae3829e96939997959c6001600160a01b03600d9a969a5416933691613933565b604051610b3281610b24602082019460408652600d60608401526c72656e6577557365726e616d6560981b60808401526080604084015260a0830190613674565b03601f1981018352826136e2565b51902092823b156106f1578b610b658896928a9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610d9b575b50506001600160a01b03604051898982376020818b8101600c81520301902054166001600160a01b03861603610d8c5760405188888237600c818a0190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d576001604051898982376020818b8101600c815203019020015463bbf81e00420190814211610d695711610d5a5790610c1c93929186610c158a8a613c29565b8097614286565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791610d30575b50610c8a575b5050509060206001928260405193849283378101600c815203019020018054906301e285008201809211610641575580f35b906020600492604051938480926309a69f5760e01b82525afa91821561069f578692610cfc575b50603281029080820460321490151715610ce8576105c66020936105c160019796946064610ce0950490613722565b91925f610c58565b634e487b7160e01b86526011600452602486fd5b9091506020813d602011610d28575b81610d18602093836136e2565b810103126106935751905f610cb1565b3d9150610d0b565b610d49915060203d6020116109935761098581836136e2565b5f610c52565b6040513d89823e3d90fd5b6356657c2160e01b8952600489fd5b634e487b7160e01b8b52601160045260248bfd5b631591d30560e11b8952600489fd5b6322de326160e11b8952600489fd5b81610da5916136e2565b610db057885f610b74565b8880fd5b50346102965780600319360112610296576001600160a01b03600a5416338103610e3557600b544210610e26578160408051610def816136c7565b83815282602082015201526001600160601b0360a01b60095416176009556001600160601b0360a01b600a5416600a5580600b5580f35b63018a18db60e51b8252600482fd5b632dba366760e21b8252600482fd5b50346102965780600319360112610296576001600160a01b0360095416803303610e88576005544210610e2657600454610e7d9161445a565b806004558060055580f35b636587b01b60e11b8252600482fd5b5034610296576020366003190112610296576004356001600160401b03811161029457610ec890369060040161340a565b600360405182848237602081848101600c815203019020015490610eeb82613f41565b91610ef960405193846136e2565b808352610f08601f1991613f41565b01845b81811061100d575050835b600360405183868237602081858101600c8152030190200154811015610f9f57600190604051838682376020818581018581520301902081875260205260408620600260405191610f66836136c7565b6001600160a01b03815416835284810154602084015201546040820152610f8d8286613f58565b52610f988185613f58565b5001610f16565b8285604051918291602083016020845282518091526020604085019301915b818110610fcc575050500390f35b919350916020606082610fff6001948851604080916001600160a01b038151168452602081015160208501520151910152565b019401910191849392610fbe565b602090611018613915565b82828701015201610f0b565b5034610296578060031936011261029657604060045460055482519182526020820152f35b50346102965780600319360112610296576001600160a01b0360095416330361107757806004558060055580f35b636587b01b60e11b8152600490fd5b503461029657602036600319011261029657600435906001600160401b03821161029657604060016110bb366004860161340a565b60206001600160a01b038594939451838682378281858101600c81520301902054169382865193849283378101600c815203019020015482519182526020820152f35b503461029657602061111861111236613493565b91614026565b604051908152f35b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611156366004860161340a565b90613f80565b5034610296576020366003190112610296576004356001600160401b0381116102945761118d90369060040161340a565b91600260405184848237602081868101600c8152030190200154926111b184613f41565b936111bf60405195866136e2565b8085526111ce601f1991613f41565b01825b818110611338575050815b600260405183868237602081858101600c81520301902001548110156112d1576040518285823760208184810160028152030190208184526020526040832060405190849080549061122d82613a77565b80855291600181169081156112aa5750600114611273575b505090611257816001949303826136e2565b6112618288613f58565b5261126c8187613f58565b50016111dc565b8652602086208692505b818310611294575050810160200161125782611245565b600181602092548386880101520192019161127d565b60ff191660208087019190915292151560051b850190920192506112579150839050611245565b84836040519182916020830160208452825180915260408401602060408360051b870101940192905b82821061130957505050500390f35b919360019193955060206113288192603f198a82030186528851613674565b96019201920185949391926112fa565b8060606020809389010152016111d1565b50346102965761016036600319011261029657611364613437565b6024356001600160401b0381116117785761138390369060040161340a565b61138b613463565b9260a435936001600160a01b03851685036117745760e4356001600160401b0381116106f1576113bf90369060040161340a565b91909587610144356001600160401b038111610294576113e390369060040161340a565b94909382996001600160a01b03600d54166113ff368b8d613933565b60405161145a8161143c602082019460808652600960a08401526836b0b5b2a7b33332b960b91b60c084015260c0604084015260e0830190613674565b6044356060830152606435608083015203601f1981018352826136e2565b519020813b156117745785809461148f8c978a96604051998a9889978896637d3d171560e11b885260c435936004890161380b565b03925af180156106e65761175b575b505060405185878237600c81870190815281900360200190206004015460f81b6001600160f81b031916600160f81b14801561174a575b61173b5742606435111561172c576044351561171d579061150692916101249794973590610104356044358a614286565b6040518284823760208184810160018152030190208186526020526001600160a01b03604086205416156115425761153d90613c1b565b611506565b926103e36044350260443581046103e303610ce8576103e89004906001600160a01b0360405191611572836136c7565b16815260026020820160643581526040830190848252604051868882376020818881016001815203019020888a526020526001600160a01b038060408b20955116166001600160601b0360a01b85541617845551600184015551910155600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f5786916116eb575b50607d60443502906044358204607d0361065557602096926116396105c661164d946105c161164695620186a061010435930490613722565b6103206044350490613722565b8254613722565b90556003604051828482378581848101600c815203019020015483115f1461169b57836003928260405193849283378101600c815203019020016116918154613c1b565b9055604051908152f35b6003604051828482378581848101600c8152030190200154156116c0575b5050611118565b836003928260405193849283378101600c815203019020016116e28154613c1b565b90555f806116b9565b90506020813d602011611715575b81611706602093836136e2565b8101031261069357515f611600565b3d91506116f9565b635e85ae7360e01b8852600488fd5b632cce8b5d60e21b8852600488fd5b630a1de65160e31b8852600488fd5b506117558587613b19565b156114d5565b81611765916136e2565b61177057875f61149e565b8780fd5b8580fd5b8280fd5b503461029657602036600319011261029657611796613437565b6001600160a01b03600954163303610e88576001600160a01b031680156117f1576001600160601b0360a01b60075416176007556201518042018042116117dd5760085580f35b634e487b7160e01b82526011600452602482fd5b63203e99b760e21b8252600482fd5b613479565b50346102965761183b90611818366134c5565b979195939096948b9e8b9d9c6001600160a01b03600d9d969d5416953691613933565b60405161188d818d61077e602083019560608752601460808501527f726567697374726174696f6e557365726e616d6500000000000000000000000060a085015260a0604085015260c0840190613674565b51902094843b15611bc7578c8f95936118c3908998969488946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af18015611bbc57908a91611ba7575b50506001600160a01b0360095416966001600160a01b0381168098141580611b8d575b611b7e57611906898c614134565b15611b6f57936119309361193a96936119299389611935988f8e61083591613f80565b8689614026565b614379565b61384e565b9160405193816001600160a01b0385519660208181890199808b835e8101600c815203019020541614801590611b4d575b611b3e576301e2850042018042116106555791869760049288946040519361199285613698565b8452602084019081526001600160a01b03806040860193888552602060608801968a8852608089019a8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611b1f575b50611a79575b5050906020600492604051928391518091835e8101600c815203019020828155826001820155826002820155826003820155015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611ae2575b5080603202906032820403611ace57600492611ac76105c6879694602094613722565b9192611a42565b634e487b7160e01b85526011600452602485fd5b90506020813d602011611b0c575b81611afd602093836136e2565b8101031261069357515f611aa4565b3d9150611af0565b6040513d87823e3d90fd5b611b38915060203d6020116109935761098581836136e2565b5f611a3c565b6321efd8cf60e11b8652600486fd5b5060016040516020818751808a835e8101600c8152030190200154421061196b565b633efbb39b60e11b8a5260048afd5b630a1de65160e31b8a5260048afd5b50611ba1611b9c368b8e613933565b6144f0565b156118f8565b81611bb1916136e2565b610db057885f6118d5565b6040513d8c823e3d90fd5b8e80fd5b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600a5416600a5580600b5580f35b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c3611c3d366004860161340a565b90613e91565b50346102965780611c5336613587565b98809b95939c949198611c788c6001600160a01b03600d9b9a969b5416933691613933565b604051611cbf81610b246020820194604086526013606084015272666c757368437573746f6d4d6574616461746160681b60808401526080604084015260a0830190613674565b51902092823b156106f15787611cf28896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657611ee5575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576002604051888882376020818a8101600c815203019020015415611ed6579087611d6295949392610835898961374f565b835b84600260405185858237602081878101600c8152030190200154821015611db65750600190604051848482376020818681016002815203019020818752602052611db060408720613aca565b01611d64565b9390506001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611eb7575b50611e15575b50509060206002928260405193849283378101600c815203019020015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611e85575b5080600502906005820403611ace57600292611e7e6105c68796946105c1602095886040518988823788818b8101600c81520301902001549061373c565b9192611df5565b90506020813d602011611eaf575b81611ea0602093836136e2565b8101031261069357515f611e40565b3d9150611e93565b611ed0915060203d6020116109935761098581836136e2565b5f611def565b6334b7a09160e01b8952600489fd5b81611eef916136e2565b610db057885f611d01565b61363f565b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611f35366004860161340a565b90613c29565b50346102965761014036600319011261029657611f56613437565b6024356001600160401b03811161177857611f7590369060040161340a565b916044356001600160401b03811161238357611f9590369060040161340a565b9091611f9f61344d565b611fa7613463565b9060c4356001600160401b038111610db057611fc790369060040161340a565b9390928960e4359561012435946001600160401b03861161177857612019968c8a610b246120778f9a8f61200261202192369060040161340a565b9e909d6001600160a01b03600d5416973691613933565b943691613933565b6040519283916120656020840196606088526011608086015270616464437573746f6d4d6574616461746160781b60a086015260a0604086015260c0850190613674565b838103601f1901606085015290613674565b519020813b15611774578580946120ac8a978a96604051998a9889978896637d3d171560e11b885260a435936004890161380b565b03925af180156106e65761236e575b50506001600160a01b036040518a8a82376020818c8101600c81520301902054166001600160a01b03831603610a8857851561235f57906121069392918561010435926108356138a0565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115612354578891612335575b50612283575b5050604051848482376020818681016002815203019020600260405186868237602081888101600c8152030190200154865260205260408520916001600160401b03821161226f5761219e826121988554613a77565b85613bce565b8590601f831160011461220557826002969593602095936121d4938a926121fa575b50508160011b915f199060031b1c19161790565b90555b8260405193849283378101600c815203019020016121f58154613c1b565b905580f35b013590505f806121c0565b8387526020872091601f198416885b81811061225757509260019285926002999896602098961061223e575b505050811b0190556121d7565b01355f19600384901b60f8161c191690555f8080612231565b91936020600181928787013581550195019201612214565b634e487b7160e01b86526041600452602486fd5b6020600491604051928380926309a69f5760e01b82525afa908115610d4f578791612303575b5080600502906005820403610655576122c06138a0565b6032810290808204603214901517156122ef57916105c16105c69260646122e8950490613722565b5f80612142565b634e487b7160e01b88526011600452602488fd5b90506020813d60201161232d575b8161231e602093836136e2565b8101031261069357515f6122a9565b3d9150612311565b61234e915060203d6020116109935761098581836136e2565b5f61213c565b6040513d8a823e3d90fd5b6334b7a09160e01b8a5260048afd5b81612378916136e2565b6106e257895f6120bb565b8480fd5b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36123bd366004860161340a565b90613b19565b503461029657806003193601126102965760206001600160a01b0360095416604051908152f35b503461029657806123fa36613587565b98809b95939c94919861241f8c6001600160a01b03600d9b9a969b5416933691613933565b60405161246081610b24602082019460408652600d60608401526c666c757368557365726e616d6560981b60808401526080604084015260a0830190613674565b51902092823b156106f157876124938896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576126d7575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576001604051888882376020818a8101600c81520301902001544210156126c85760405187878237600c81890190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d579087612537959493926108358989613978565b835b600260405184848237602081868101600c81520301902001548110156125895760019060405184848237602081868101600281520301902081875260205261258360408720613aca565b01612539565b5091600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115611b14578591612696575b5080600502906005820403611ace576105c6600493926105c16125f8936002604051878a8237602081898101600c81520301902001549061373c565b600360405182858237602081848101600c81520301902001546040519161261e83613698565b858352602083018681526001600160a01b0380604086019389855260608701958652602060808801998b8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff1982541617905580f35b90506020813d6020116126c0575b816126b1602093836136e2565b8101031261069357515f6125bc565b3d91506126a4565b637d3b450560e11b8952600489fd5b816126e1916136e2565b610db057885f6124a2565b5034610296578060031936011261029657600654600754600854604080516001600160a01b03948516815293909216602084015290820152606090f35b5034610296578060031936011261029657600954600a54600b54604080516001600160a01b03948516815293909216602084015290820152606090f35b503461029657602036600319011261029657600435906001600160401b03821161029657602061111861279c366004860161340a565b90613978565b503461029657806127b2366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b03169336906127dc92613933565b90604051809160208201936060855260808301600b905260a083016a30b1b1b2b83a27b33332b960a91b90526040830160a0905260c0830161281d91613674565b90606083015203601f198101825261283590826136e2565b51902092823b156106f1578b6128688896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657612b47575b50506001600160a01b03604051888b82376020818a8101600c81520301902054166001600160a01b03861603610a8857604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b205416158015612b1c575b612b0d579061291694939291866106aa575050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b6040518285823760208184810160018152030190208386526020526001600160a01b036040862054166001600160a01b0360405184878237602081868101600c81520301902091166001600160601b0360a01b825416179055604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b81541690556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791612aee575b50612a45575b50506040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b6020600491604051928380926309a69f5760e01b82525afa90811561069f578691612abc575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69260c7612ab5950460021c90613722565b5f806129da565b90506020813d602011612ae6575b81612ad7602093836136e2565b8101031261069357515f612a6b565b3d9150612aca565b612b07915060203d6020116109935761098581836136e2565b5f6129d4565b631388464960e01b8a5260048afd5b50604051878a82376020818981016001815203019020888b52602052600160408b20015442116128d8565b81612b51916136e2565b6106e257895f612877565b50346102965780600319360112610296576001600160a01b03600954163303611077576008544210612bf8576001600160a01b03600754168160408051612ba2816136c7565b83815282602082015201526001600160601b0360a01b60065416176006556001600160601b0360a01b60075416600755806008556001600160a01b03600654166001600160601b0360a01b600d541617600d5580f35b63018a18db60e51b8152600490fd5b50346102965760406060916020612c1d36613493565b929091612c28613915565b5082865193849283378101600181520301902090825260205220600260405191612c51836136c7565b6001600160a01b0381541683526001810154602084015201546040820152612c996040518092604080916001600160a01b038151168452602081015160208501520151910152565bf35b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600754166007558060085580f35b503461029657602036600319011261029657600435906001600160401b038211610296576020600181612d0d366004870161340a565b91908260405193849283378101600c8152030190200154604051908152f35b50346106935761012036600319011261069357612d47613437565b602435604435916001600160a01b038316830361069357612d6661344d565b60a4356001600160401b03811161069357612d8590369060040161340a565b949060c43595610104356001600160401b03811161069357612dab90369060040161340a565b9390926001600160a01b03600d5416604051602081019060408252601760608201527f707265526567697374726174696f6e557365726e616d6500000000000000000060808201528a604082015260808152612e0860a0826136e2565b519020813b15610693575f8094612e3d8b978b96604051998a9889978896637d3d171560e11b8852608435936004890161380b565b03925af18015612ff757612fe2575b5085612fcb575b5050506107084201804211611ace57906004916001600160a01b0360405192612e7b84613698565b168252602082019081526040820186815260608301918783526001600160a01b0380602080612eb761193560808a019b600160f81b8d52614379565b604051928184925191829101835e8101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a578491612fac575b50612f44578280f35b6020600491604051928380926309a69f5760e01b82525afa908115610960578391612f78575b50610928916105c691613722565b90506020813d602011612fa4575b81612f93602093836136e2565b810103126106935751610928612f6a565b3d9150612f86565b612fc5915060203d6020116109935761098581836136e2565b5f612f3b565b612fda9260e435908786614188565b5f8080612e53565b612fef9197505f906136e2565b5f955f612e4c565b6040513d5f823e3d90fd5b34610693575f3660031901126106935760206001600160a01b0360065416604051908152f35b34610693576020366003190112610693576004356001600160401b0381116106935761111861305d602092369060040161340a565b9061374f565b34610693575f36600319011261069357600460206001600160a01b03600d541660405192838092630be428a960e11b82525afa8015612ff7575f906130ae575b602090604051908152f35b506020813d6020116130d9575b816130c8602093836136e2565b8101031261069357602090516130a3565b3d91506130bb565b34610693576020366003190112610693576130fa613437565b6001600160a01b036009541690813303613179576001600160a01b031690811590811561316f575b50613160576001600160601b0360a01b600a541617600a5562015180420180421161314c57600b55005b634e487b7160e01b5f52601160045260245ffd5b6394aca82b60e01b5f5260045ffd5b9050811482613122565b636587b01b60e11b5f5260045ffd5b34610693576020366003190112610693576004356001600160401b038111610693576001600160a01b0360206131c38193369060040161340a565b91908260405193849283378101600c8152030190205416604051908152f35b34610693576020366003190112610693576004356001600160401b03811161069357613214602091369060040161340a565b5f916132208282613e91565b613238575b50506001600160a01b0360405191168152f35b6001600160a01b03925083908260405193849283378101600c81520301902054168280613225565b3461069357602036600319011261069357600435906001600160a01b0360095416330361317957600d5463280e32fb60e01b82526001600160a01b0316602082600481845afa918215612ff7575f926133d9575b506001600160a01b036040519263d4fac45d60e01b8452306004850152166024830152602082604481845afa918215612ff7575f926133a4575b506020600491604051928380926309a69f5760e01b82525afa908115612ff7575f91613372575b506113db01806113db1161314c57829161333461333a925f5490613722565b9061372f565b10801561336a575b61335b5760045562015180420180421161314c57600555005b630db73cdf60e41b5f5260045ffd5b508015613342565b90506020813d60201161339c575b8161338d602093836136e2565b81010312610693575183613315565b3d9150613380565b9091506020813d6020116133d1575b816133c0602093836136e2565b8101031261069357519060206132ee565b3d91506133b3565b6133fc91925060203d602011613403575b6133f481836136e2565b810190613703565b90836132b4565b503d6133ea565b9181601f84011215610693578235916001600160401b038311610693576020838186019501011161069357565b600435906001600160a01b038216820361069357565b606435906001600160a01b038216820361069357565b608435906001600160a01b038216820361069357565b34610693575f3660031901126106935760206111186138a0565b604060031982011261069357600435906001600160401b038211610693576134bd9160040161340a565b909160243590565b90610140600319830112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357816135059160040161340a565b92909291604435916064356001600160a01b038116810361069357916084356001600160a01b0381168103610693579160a4359160c4356001600160401b03811161069357816135579160040161340a565b9290929160e43591610104359161012435906001600160401b038211610693576135839160040161340a565b9091565b610120600319820112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357826135c69160040161340a565b929092916044356001600160a01b038116810361069357916064356001600160a01b038116810361069357916084359160a4356001600160401b03811161069357816136149160040161340a565b9290929160c4359160e4359161010435906001600160401b038211610693576135839160040161340a565b34610693576020366003190112610693576004356001600160401b0381116106935760026020612d0d8193369060040161340a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b038211176136b357604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176136b357604052565b90601f801991011681019081106001600160401b038211176136b357604052565b9081602091031261069357516001600160a01b03811681036106935790565b9190820180921161314c57565b9190820391821161314c57565b8181029291811591840414171561314c57565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f926137b7575b5081600a0291600a83040361314c578260206002926137b49560405193849283378101600c81520301902001549061373c565b90565b9091506020813d6020116137e3575b816137d3602093836136e2565b810103126106935751905f613781565b3d91506137c6565b908060209392818452848401375f828201840152601f01601f1916010190565b929360e0946001600160a01b036137b499979481809516875216602086015260408501521660608301526080820152600160a08201528160c082015201916137eb565b906138866021602093604051948591600160fe1b828401528051918291018484015e81015f838201520301601f1981018452836136e2565b565b90816020910312610693575180151581036106935790565b600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f916138e3575b5080600a0290600a82040361314c5790565b90506020813d60201161390d575b816138fe602093836136e2565b8101031261069357515f6138d1565b3d91506138f1565b60405190613922826136c7565b5f6040838281528260208201520152565b9291926001600160401b0382116136b3576040519161395c601f8201601f1916602001846136e2565b829481845281830111610693578281602093845f960137010152565b6001600160a01b03600d541690604051926309a69f5760e01b8452602084600481865afa938415612ff7575f94613a43575b5083600a0293600a85040361314c57600493600282602080956139e19560405193849283378101600c81520301902001549061373c565b91604051938480926309a69f5760e01b82525afa908115612ff7575f91613a0d575b6137b49250613722565b90506020823d602011613a3b575b81613a28602093836136e2565b81010312610693576137b4915190613a03565b3d9150613a1b565b9093506020813d602011613a6f575b81613a5f602093836136e2565b810103126106935751925f6139aa565b3d9150613a52565b90600182811c92168015613aa5575b6020831014613a9157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613a86565b5f5b828110613abd57505050565b5f82820155600101613ab1565b613ad48154613a77565b9081613ade575050565b81601f5f9311600114613aef575055565b81835260208320613b0c91601f0160051c84190190600101613aaf565b8082528160208120915555565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613ba9576001600160a01b0360405182848237602081848101600c815203019020541615918215613b84575b505015613b7f575f90565b600190565b600192506020908260405193849283378101600c815203019020015415155f80613b74565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f90565b91601f8211613bdc57505050565b808211613be857505050565b613886925f5260205f20916020601f830160051c9210613c13575b601f82910160051c039101613aaf565b5f9150613c03565b5f19811461314c5760010190565b905f91600160405183838237600c848201908152819003602001902001544211613e15576040518282823760208184810160018152030190205f8052602052600160405f200154613d27575b505080613c8a5750681b1ae4d6e2ef50000090565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f92613cf3575b506005810290810460050361314c576103e89004816207a12002916207a12083040361314c5781811115613cee575090565b905090565b9091506020813d602011613d1f575b81613d0f602093836136e2565b810103126106935751905f613cbc565b3d9150613d02565b5f5b600360405184848237602081868101600c8152030190200154811015613e0b57604051838382376020818581016001815203019020815f5260205242600160405f2001541180613dda575b613d81575b600101613d29565b604051838382376020818581016001815203019020815f5260205283600260405f2001541115613d79579250604051828282376020818481016001815203019020835f526020526001600260405f200154939050613d79565b50604051838382376020818581016001815203019020815f526020526001600160a01b0360405f2054161515613d74565b5050505f80613c75565b505050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613e5f575b50806207a12002906207a12082040361314c5790565b90506020813d602011613e89575b81613e7a602093836136e2565b8101031261069357515f613e49565b3d9150613e6d565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613f1c576001600160a01b0360405182848237602081848101600c815203019020541615918215613ef7575b505015613b7f575f80fd5b600192506020908260405193849283378101600c815203019020015415155f80613eec565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f80fd5b6001600160401b0381116136b35760051b60200190565b8051821015613f6c5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90600360405182848237600c8382019081528190036020019020015415613faa576137b491613c29565b5050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613ff4575b5060648102908082046064149015171561314c5790565b90506020813d60201161401e575b8161400f602093836136e2565b8101031261069357515f613fdd565b3d9150614002565b919060208061404f926040519481869284840198893782019083820152030180845201826136e2565b51902090565b91909182811461412f576140698354613a77565b6001600160401b0381116136b35761408b816140858454613a77565b84613bce565b5f93601f82116001146140c9576140ba92939482915f926140be5750508160011b915f199060031b1c19161790565b9055565b015490505f806121c0565b601f198216905f5260205f2094835f5260205f20915f5b818110614117575095836001959697106140ff575b505050811b019055565b01545f1960f88460031b161c191690555f80806140f5565b9192600180602092868b0154815501940192016140e0565b509050565b90600160405182848237602081848101600c8152030190200154155f1461415c575050600190565b60206001928260405193849283378101600c8152030190200154624f1a00810180911161314c57421190565b9192909493946001600160a01b03600d5416926040519463280e32fb60e01b8652602086600481885afa958615612ff7575f96614265575b50843b15610693576001600160a01b03975f9789958661424a948b976040519d8e9c8d9b8c9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528a6101648b015216606489015288608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b03925af18015612ff75761425b5750565b5f613886916136e2565b61427f91965060203d602011613403576133f481836136e2565b945f6141c0565b600d5460405163280e32fb60e01b815295966001600160a01b0390911694929390602087600481895afa968715612ff7575f97614347575b50853b15610693576001600160a01b03985f988a8a9661424a9582996040519e8f9d8e9c8d9b63487e5a7760e11b8d521660048c01523060248c015261016060448c01528b6101648c01521660648a0152608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b61436191975060203d602011613403576133f481836136e2565b955f6142be565b908151811015613f6c570160200190565b604051906143886080836136e2565b60428252602082016060368237825115613f6c5760309053815160011015613f6c57607860218301535f5b602081106143c057505090565b81811a90600482901c600f166010811015613f6c578160011b928284046002148315171561314c57836002018060021161314c57600f926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144189088614368565b5316916010831015613f6c576003018060031161314c576001926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144539086614368565b53016143b3565b600d5460405163280e32fb60e01b815292906001600160a01b0316602084600481845afa938415612ff7575f946144cf575b50803b156106935760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f9082908183816064810161424a565b6144e991945060203d602011613403576133f481836136e2565b925f61448c565b80516004811061455f5715613f6c576020810151614517906001600160f81b0319166145a4565b1561459f575f5b8151811015614598576001600160f81b031961453a8284614368565b5116600360fc1b8110159081614589575b501580614565575b61455f5760010161451e565b50505f90565b506145836001600160f81b031961457c8385614368565b51166145a4565b15614553565b603960f81b101590505f61454b565b5050600190565b505f90565b60ff60f81b16604160f81b81101590816145e2575b81156145c3575090565b606160f81b8110159150816145d6575090565b603d60f91b1015905090565b602d60f91b81111591506145b956fea26469706673582212200394b24bebc7e0da5e621acd9bc3d368bceba007a21ed83a6b3d974ef6028fef64736f6c63430008210033",sourceMap:"2765:56961:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;58625:16;2765:56961;58625:16;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;55200:14;55226:99;;;;;;;55243:8;55270:53;55243:8;;:::i;:::-;55226:99;;;;2765:56961;;;;;;;;;;;55226:99;2765:56961;;;;;;;;;;;55226:99;2765:56961;;;55270:48;2765:56961;55226:99;55270:53;2765:56961;55270:53;2765:56961;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;52839:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14764:4;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::i;:::-;;;;2933:46:101;;;;;2765:56961:64;;;;;;;14764:4;2765:56961;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;2933:46:101;2765:56961:64;;2933:46:101;;;;;;;;:::i;:::-;2765:56961:64;2923:57:101;;14764:234:64;;;;;;2765:56961;14764:234;2765:56961;;;;;;;;;;;;;;;;;;;14764:234;;2765:56961;14764:234;;;:::i;:::-;;;;;;;;;;;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;-1:-1:-1;;;;;2765:56961:64;;15013:49;15009:103;;15127:18;15371:40;15127:18;;;;;15123:221;;2765:56961;;;;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15371:40;2765:56961;15371:40;;:::i;:::-;2765:56961;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;2933:46:101;-1:-1:-1;;;;;14764:4:64;2765:56961;;;;;;;;;;;15535:22;;;;;;;;;;;;;2765:56961;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15578:40;2765:56961;;;;14961:4;2765:56961;;;;;;;;15535:95;:128;2765:56961;15626:3;15535:128;2765:56961;;15535:95;;:::i;:::-;:128;:::i;:::-;15511:10;15535:128;:::i;:::-;2765:56961;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;2933:46:101;15371:40:64;2765:56961;;;15743:40;2765:56961;;;;;;;;;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15802:40;2765:56961;;;;14961:4;2765:56961;;;;;;;15684:175;2765:56961;15850:3;15742:117;2765:56961;;15371:40;2765:56961;15742:117;;:::i;:::-;2765:56961;;15684:175;:::i;:::-;2765:56961;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;15535:22;;;2933:46:101;15535:22:64;;2933:46:101;15535:22:64;;;;;;2765:56961;15535:22;;;:::i;:::-;;;2765:56961;;;;;15535:22;;;2765:56961;-1:-1:-1;2765:56961:64;;15535:22;;;-1:-1:-1;15535:22:64;;;2765:56961;;;;;;;;;15123:221;15159:185;;;;;:::i;:::-;15123:221;;;;;;15009:103;-1:-1:-1;;;15083:29:64;;2765:56961;15083:29;;14764:234;;;;;:::i;:::-;2765:56961;;14764:234;;;;2765:56961;;;;14764:234;2765:56961;;;;;;;;;14764:234;2765:56961;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27542:4:64;2765:56961;;;;;;:::i;:::-;;4916:49:101;2765:56961:64;;4916:49:101;;2765:56961:64;4916:49:101;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;4916:49:101;2765:56961:64;;4916:49:101;;;;;;:::i;:::-;2765:56961:64;4906:60:101;;27542:237:64;;;;;;2765:56961;27542:237;2765:56961;;;;;;;;;;;;;;;;;;;27542:237;;2765:56961;27542:237;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;27794:39;27790:96;;2765:56961;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;27901:48;2765:56961;27901:55;;27897:98;;28048:32;;28172:12;28048:32;;;;;;:::i;:::-;28172:12;;:::i;:::-;2765:56961;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;28209:48;2765:56961;28209:55;28205:584;28209:55;;;27901:48;2765:56961;4916:49:101;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;28280:44;2765:56961;;;28280:44;:::i;:::-;2765:56961;;;;;;;;;;27794:15;2765:56961;;;;;;28799:48;2765:56961;;;;;;;;;;;-1:-1:-1;;;;;27542:4:64;2765:56961;;;;;;;28864:32;;28885:10;2765:56961;28864:32;;2765:56961;4916:49:101;28864:32:64;;;;;;;;;;;;;;;28205:584;28860:164;;;2765:56961;;;28860:164;4916:49:101;2765:56961:64;;;;;;;;;;;28970:22;;;;;;;;;;;;;28860:164;2765:56961;;28966:1;2765:56961;;28966:1;2765:56961;;;;;28965:45;;;;;:::i;:::-;28860:164;;2765:56961;;;28970:22;;;4916:49:101;28970:22:64;;4916:49:101;28970:22:64;;;;;;2765:56961;28970:22;;;:::i;:::-;;;2765:56961;;;;;28970:22;;;;;;-1:-1:-1;28970:22:64;;;2765:56961;;;;;;;;;28864:32;;;;4916:49:101;28864:32:64;4916:49:101;28864:32:64;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2765:56961;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;28205:584;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;28414:48;2765:56961;28410:52;;;;;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27901:48;2765:56961;;;;;;27742:4;2765:56961;;;;;;;;27742:4;2765:56961;;;;4916:49:101;2765:56961:64;;;;;;;;;;;4916:49:101;2765:56961:64;;;;27901:48;2765:56961;;;;;;;;;4916:49:101;2765:56961:64;;;;;:::i;:::-;;28377:15;;28410:52;;4916:49:101;27901:48:64;28410:52;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27794:15;2765:56961;;;;;;28716:48;2765:56961;;;;;28659:119;2765:56961;;;28659:119;:::i;:::-;28205:584;;27897:98;-1:-1:-1;;;27977:18:64;;2765:56961;27977:18;;27790:96;-1:-1:-1;;;27854:32:64;;2765:56961;18329:32;27854;27542:237;;;;;:::i;:::-;2765:56961;;27542:237;;;;2765:56961;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;21249:4:64;2765:56961;;;;;;;;;:::i;:::-;;;3884:37:101;;2765:56961:64;3884:37:101;;;2765:56961:64;;;;21249:4;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;3884:37:101;2765:56961:64;;3884:37:101;;;;;;:::i;:::-;2765:56961:64;3874:48:101;;21249:225:64;;;;;;2765:56961;21249:225;2765:56961;;;;;;;;;;;;;;;;;;;21249:225;;2765:56961;21249:225;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3884:37:101;2765:56961:64;;;;21489:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;21489:39;21485:96;;2765:56961;;;;;;21489:15;2765:56961;;;;;;;;;3884:37:101;2765:56961:64;;;;21596:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;21596:50:64;21592:105;;21437:4;2765:56961;;;;;;3884:37:101;2765:56961:64;;;;21489:15;2765:56961;;;;;;21725:40;2765:56961;21798:10;21780:15;2765:56961;21780:15;;;2765:56961;;;21725:83;21708:150;;21892:25;22074:12;21892:25;;;;;;;;:::i;:::-;22074:12;;;:::i;:::-;-1:-1:-1;;;;;21249:4:64;2765:56961;;;;;;;22111:32;;22132:10;2765:56961;22111:32;;2765:56961;3884:37:101;22111:32:64;;;;;;;;;;;;;;;2765:56961;22107:241;;;2765:56961;;;;;3884:37:101;21437:4:64;2765:56961;;;;;;;;;;;21489:15;2765:56961;;;;;;22358:40;2765:56961;;;22402:8;2765:56961;;;;;;;;;;22107:241;2765:56961;3884:37:101;2765:56961:64;;;;;;;;;;;22214:22;;;;;;;;;;;;;22107:241;2765:56961;22276:2;2765:56961;;;;;;22276:2;2765:56961;;;;;;;22214:109;3884:37:101;2765:56961:64;22214:72;21437:4;2765:56961;;;22282:3;22214:109;2765:56961;;22214:72;;:::i;:109::-;22107:241;;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;22111:32;2765:56961;;22214:22;;;;3884:37:101;22214:22:64;;3884:37:101;22214:22:64;;;;;;2765:56961;22214:22;;;:::i;:::-;;;2765:56961;;;;;22214:22;;;;;;;-1:-1:-1;22214:22:64;;22111:32;;;;3884:37:101;22111:32:64;3884:37:101;22111:32:64;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;21708:150;-1:-1:-1;;;21826:32:64;;2765:56961;21826:32;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;;;;21592:105;-1:-1:-1;;;21667:30:64;;2765:56961;34621:30;21667;21485:96;-1:-1:-1;;;21549:32:64;;2765:56961;18329:32;21549;21249:225;;;;;:::i;:::-;2765:56961;;21249:225;;;;2765:56961;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36800:14:64;2765:56961;;36818:10;36800:28;;36796:85;;36914:18;2765:56961;36896:15;:36;36892:87;;2765:56961;;;;;;;:::i;:::-;;;;36998:147;;;;2765:56961;36998:147;2765:56961;-1:-1:-1;;;;;2765:56961:64;;36800:5;2765:56961;;;36800:5;2765:56961;-1:-1:-1;;;;;2765:56961:64;;36800:14;2765:56961;;36800:14;2765:56961;;36914:18;2765:56961;;;36892:87;-1:-1:-1;;;36953:26:64;;2765:56961;39858:26;36953;36796:85;-1:-1:-1;;;36849:32:64;;2765:56961;36849:32;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;;:27;4042:64;;38524:35;2765:56961;38506:15;:53;38502:104;;2765:56961;;38642:31;;;:::i;:::-;2765:56961;;;;38524:35;2765:56961;;;4042:64;-1:-1:-1;;;4082:24:64;;2765:56961;4082:24;;2765:56961;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;54060:40;2765:56961;;;;;;;;;;;54060:15;2765:56961;;;;;;54060:40;2765:56961;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;54126:13;;;54187:3;54060:40;2765:56961;;;;;;;;;;;54060:15;2765:56961;;;;;;54145:40;2765:56961;54141:44;;;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;54206:40;;;;:::i;:::-;;;;;;:::i;:::-;;2765:56961;54126:13;;54141:44;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;58291:35;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;2765:56961;;;;38250:35;2765:56961;;;4042:64;-1:-1:-1;;;4082:24:64;;2765:56961;;4082:24;2765:56961;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;51081:41;2765:56961;;;;;;:::i;:::-;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;51035:15;2765:56961;;;;;;;;;;;;;;;;;;;51035:15;2765:56961;;;;;;51081:41;2765:56961;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;52043:49;2765:56961;;;;;;;;;;;52043:15;2765:56961;;;;;;52043:49;2765:56961;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;52130:13;;;52224:3;52043:49;2765:56961;;;;;;;;;;;52043:15;2765:56961;;;;;;52161:49;2765:56961;52157:53;;;;;2765:56961;;;;;;;;;;;52043:49;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;52252:57;;;;:::i;:::-;;;;;;:::i;:::-;;2765:56961;52130:13;;2765:56961;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;52157:53;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;11231:15;2765:56961;-1:-1:-1;;;;;11258:4:64;2765:56961;;;;;;;:::i;:::-;;;2381:57:101;;2765:56961:64;;2381:57:101;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2381:57:101;-1:-1:-1;;2381:57:101;;;;;;:::i;:::-;2765:56961:64;2354:98:101;;11258:245:64;;;;;2765:56961;;;11258:245;2765:56961;;;;;;;;;;;;;;;;11258:245;;2765:56961;;11258:245;2765:56961;11258:245;;;:::i;:::-;;;;;;;;;;;2765:56961;;;;;;;;;11531:15;2765:56961;;;;;;;;;;;;;;11531:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;11531:50:64;:99;;;;2765:56961;11514:157;;11704:15;2765:56961;;11686:33;;11682:91;;2765:56961;;11788:11;11784:59;;2765:56961;11994:12;2765:56961;;;;;;;;;;;;11994:12;;:::i;:::-;2765:56961;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;12034:55;;;12103:9;;;:::i;:::-;12027:85;;12034:55;;12158:3;2765:56961;;;;;;;12158:3;2765:56961;;;12165:4;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::i;:::-;;;;;;12217:139;;2765:56961;;;;;12217:139;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11258:4:64;2765:56961;;;;;;;;;;;12414:22;;;;;;;;;;;;;12027:85;2765:56961;12450:3;2765:56961;;;;;;;;12450:3;2765:56961;;;;;;12414:68;;12503:100;2765:56961;12414:51;12561:42;2765:56961;12457:7;2765:56961;;;;12414:51;;:::i;:68::-;12599:3;2765:56961;;;12561:42;;:::i;:::-;2765:56961;;12503:100;:::i;:::-;2765:56961;;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12628:39;2765:56961;12618:49;;12614:243;12628:39;;;2765:56961;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12683:39;:41;2765:56961;;12683:41;:::i;:::-;2765:56961;;;;;;;;12614:243;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12745:39;2765:56961;12745:44;12741:116;;12614:243;;;;;12741:116;2765:56961;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12805:39;:41;2765:56961;;12805:41;:::i;:::-;2765:56961;;12741:116;;;;12414:22;;;2765:56961;12414:22;;2765:56961;12414:22;;;;;;2765:56961;12414:22;;;:::i;:::-;;;2765:56961;;;;;12414:22;;;;;;-1:-1:-1;12414:22:64;;11784:59;-1:-1:-1;;;11808:35:64;;2765:56961;11808:35;;11682:91;-1:-1:-1;;;11740:33:64;;2765:56961;11740:33;;11514:157;-1:-1:-1;;;11648:23:64;;2765:56961;8642:23;11648;11531:99;11598:32;;;;;:::i;:::-;11597:33;11531:99;;11258:245;;;;;:::i;:::-;2765:56961;;11258:245;;;;2765:56961;;;;11258:245;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;39099:29;;39095:68;;-1:-1:-1;;;;;2765:56961:64;;39174:20;2765:56961;;;39174:20;2765:56961;2891:6;39249:15;2765:56961;39249:15;;2765:56961;;;39222:24;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;39095:68;-1:-1:-1;;;39137:26:64;;2765:56961;39137:26;;2765:56961;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8270:4:64;2765:56961;;;;;;;;;:::i;:::-;;;1727:56:101;;;2765:56961:64;1727:56:101;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;:::i;1727:56:101:-;2765:56961:64;1717:67:101;;8270:244:64;;;;;;2765:56961;;;;8270:244;2765:56961;;;;;;;;;;;;;;;;;;;8270:244;;2765:56961;8270:244;;;:::i;:::-;;;;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;8542:5:64;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;8542:21;;;;:82;;;2765:56961;8525:140;;8681:29;;;;:::i;:::-;8680:30;8676:88;;8817:32;9071:34;8817:32;8995:121;8817:32;;8941:12;8817:32;;9039:67;8817:32;;;;;;:::i;8941:12::-;9071:34;;;:::i;:::-;9039:67;:::i;:::-;8995:121;:::i;:::-;2765:56961;;;;;-1:-1:-1;;;;;2765:56961:64;;;1727:56:101;2765:56961:64;;;;;;;;;;;9144:15;2765:56961;;;;;;;;9144:35;;;:105;;;2765:56961;9127:171;;9439:8;9421:15;2765:56961;9421:15;;2765:56961;;;;;;;;;;;;;;;;:::i;:::-;;;1727:56:101;9337:226:64;;2765:56961;;;-1:-1:-1;;;;;9337:226:64;2765:56961;9337:226;;2765:56961;;;;1727:56:101;2765:56961:64;9337:226;;2765:56961;;;;;9337:226;;2765:56961;;;;;;;;;;;;;9144:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;8477:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8270:4:64;2765:56961;;;;;;;9578:32;;9599:10;2765:56961;9578:32;;2765:56961;1727:56:101;9578:32:64;;;;;;;;;;;;;;;2765:56961;9574:165;;;2765:56961;;;;1727:56:101;2765:56961:64;;;;;;;;;;;;;;9144:15;2765:56961;;;;;;;;;;8477:4;2765:56961;;;;;;;;;;;;;;;;;9574:165;2765:56961;;;;;;1727:56:101;2765:56961:64;;;;;;;;;;9685:22;;;;;;;;;;;;;9574:165;2765:56961;;9680:2;2765:56961;;9680:2;2765:56961;;;;;;9679:46;;;;;;1727:56:101;9679:46:64;;:::i;:::-;9574:165;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;9578:32;2765:56961;;9685:22;;;1727:56:101;9685:22:64;;1727:56:101;9685:22:64;;;;;;2765:56961;9685:22;;;:::i;:::-;;;2765:56961;;;;;9685:22;;;;;;-1:-1:-1;9685:22:64;;;2765:56961;;;;;;;;;9578:32;;;;1727:56:101;9578:32:64;1727:56:101;9578:32:64;;;;;;;:::i;:::-;;;;9127:171;-1:-1:-1;;;9267:31:64;;2765:56961;9267:31;;9144:105;2765:56961;8477:4;2765:56961;;1727:56:101;2765:56961:64;;;;;;;;;9144:15;2765:56961;;;;;;9195:36;2765:56961;9234:15;-1:-1:-1;9144:105:64;;8676:88;-1:-1:-1;;;8731:33:64;;2765:56961;8731:33;;8525:140;-1:-1:-1;;;8642:23:64;;2765:56961;8642:23;;8542:82;-1:-1:-1;8580:44:64;2765:56961;;;;;:::i;:::-;8580:44;:::i;:::-;8579:45;8542:82;;8270:244;;;;;:::i;:::-;2765:56961;;8270:244;;;;;2765:56961;;;;;;;;;8270:244;2765:56961;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;;36508:14;2765:56961;;36508:14;2765:56961;;36545:18;2765:56961;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;30842:4:64;2765:56961;;;;;;;;;;:::i;:::-;;;5384:43:101;;2765:56961:64;5384:43:101;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;5384:43:101:-;2765:56961:64;5374:54:101;;30842:231:64;;;;;;2765:56961;30842:231;2765:56961;;;;;;;;;;;;;;;;;;;30842:231;;2765:56961;30842:231;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;31088:39;31084:96;;31195:48;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;31195:48;2765:56961;31195:53;31191:105;;31349:39;;31480:12;31349:39;;;;;;;;:::i;31480:12::-;31531:13;31624:3;2765:56961;31195:48;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;31562:48;2765:56961;31558:52;;;;;2765:56961;31036:4;2765:56961;;;;;;;5384:43:101;2765:56961:64;;;;31195:48;2765:56961;;;;;;;;;5384:43:101;2765:56961:64;31652:42;2765:56961;;;31652:42;:::i;:::-;2765:56961;31531:13;;31558:52;;;;-1:-1:-1;;;;;30842:4:64;2765:56961;;;;;;;31719:32;;31740:10;2765:56961;31719:32;;2765:56961;5384:43:101;31719:32:64;;;;;;;;;;;;;;;31513:192;31715:270;;;31513:192;2765:56961;;;5384:43:101;31195:48:64;2765:56961;;;;;;;;;;;31088:15;2765:56961;;;;;;31995:48;2765:56961;;;31715:270;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;;;;;;;31828:22;;;;;;;;;;;;;31715:270;2765:56961;;31824:1;2765:56961;;31824:1;2765:56961;;;;;31195:48;2765:56961;31822:138;;2765:56961;;;31823:99;5384:43:101;2765:56961:64;;;;;;;;;;;;;31088:15;2765:56961;;;;;;31874:48;2765:56961;31823:99;;:::i;31822:138::-;31715:270;;;;31828:22;;;5384:43:101;31828:22:64;;5384:43:101;31828:22:64;;;;;;2765:56961;31828:22;;;:::i;:::-;;;2765:56961;;;;;31828:22;;;;;;-1:-1:-1;31828:22:64;;31719:32;;;;5384:43:101;31719:32:64;5384:43:101;31719:32:64;;;;;;;:::i;:::-;;;;31191:105;-1:-1:-1;;;31269:27:64;;2765:56961;25080:27;31269;30842:231;;;;;:::i;:::-;2765:56961;;30842:231;;;;2765:56961;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;4394:48:101;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;24689:4:64;2765:56961;;;;;;:::i;:::-;;;;;:::i;:::-;;;4394:48:101;;;2765:56961:64;;4394:48:101;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2765:56961:64;;;;;;;:::i;4394:48:101:-;2765:56961:64;4384:59:101;;24689:236:64;;;;;2765:56961;;;24689:236;2765:56961;;;;;;;;;;;;;;;;24689:236;;2765:56961;;24689:236;2765:56961;24689:236;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;24940:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;24940:39;24936:96;;25047:24;;25043:64;;2765:56961;25281:12;2765:56961;;;;;;25160:29;;;:::i;25281:12::-;-1:-1:-1;;;;;24689:4:64;2765:56961;;;;;;;25318:32;;25339:10;2765:56961;25318:32;;2765:56961;;25318:32;2765:56961;25318:32;;;;;;;;;;;;;2765:56961;25314:264;;;2765:56961;;;;;;;;;;;;;;25588:22;2765:56961;;;;;;25588:22;2765:56961;;;;;;;;;;;24940:15;2765:56961;;;;;;25634:48;2765:56961;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;25588:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24940:15;2765:56961;;;;;;25711:48;:50;2765:56961;;25711:50;:::i;:::-;2765:56961;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;25588:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;25314:264;2765:56961;;;;;;;;;;;;25426:22;;;;;;;;;;;;;25314:264;2765:56961;;25422:1;2765:56961;;25422:1;2765:56961;;;;;25474:29;;:::i;:::-;25506:2;2765:56961;;;;;;25506:2;2765:56961;;;;;;;;25421:95;:132;2765:56961;;25421:132;2765:56961;;25421:95;;:::i;:132::-;25314:264;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;;;;25426:22;;;2765:56961;25426:22;;2765:56961;25426:22;;;;;;2765:56961;25426:22;;;:::i;:::-;;;2765:56961;;;;;25426:22;;;;;;-1:-1:-1;25426:22:64;;25318:32;;;;2765:56961;25318:32;2765:56961;25318:32;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;25043:64;-1:-1:-1;;;25080:27:64;;2765:56961;25080:27;;24689:236;;;;;:::i;:::-;2765:56961;;24689:236;;;;2765:56961;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;56980:5:64;2765:56961;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;34084:4:64;2765:56961;;;;;;;;;;:::i;:::-;;;5863:37:101;;2765:56961:64;5863:37:101;;;2765:56961:64;;;;34084:4;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;5863:37:101:-;2765:56961:64;5853:48:101;;34084:225:64;;;;;;2765:56961;34084:225;2765:56961;;;;;;;;;;;;;;;;;;;34084:225;;2765:56961;34084:225;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;34324:39;34320:96;;34272:4;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;34450:40;2765:56961;34431:15;:59;;34427:108;;2765:56961;;;;;;34324:15;2765:56961;;;;;;;;;5863:37:101;2765:56961:64;;;;34550:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;34550:50:64;34546:105;;34704:33;;34829:12;34704:33;;;;;;;;:::i;34829:12::-;34880:13;34973:3;34911:48;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;34911:48;2765:56961;34907:52;;;;;34272:4;2765:56961;;;;;;;5863:37:101;2765:56961:64;;;;34911:48;2765:56961;;;;;;;;;5863:37:101;2765:56961:64;35001:42;2765:56961;;;35001:42;:::i;:::-;2765:56961;34880:13;;34907:52;;;2765:56961;5863:37:101;-1:-1:-1;;;;;34084:4:64;2765:56961;;;;;;;;;;;35117:22;;;;;;;;;;;;;34862:192;2765:56961;;35113:1;2765:56961;;35113:1;2765:56961;;;;;35111:130;2765:56961;;;35112:95;35111:130;2765:56961;34911:48;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;35159:48;2765:56961;35112:95;;:::i;35111:130::-;35449:39;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;35449:39;2765:56961;;;;;;;:::i;:::-;;;;5863:37:101;35290:245:64;;2765:56961;;;-1:-1:-1;;;;;35290:245:64;2765:56961;35290:245;;2765:56961;;;;;35290:245;;2765:56961;;;5863:37:101;2765:56961:64;35290:245;;2765:56961;;;;;;;;;;;;;;34324:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;34272:4;2765:56961;;;;34911:48;2765:56961;;;;35449:39;2765:56961;;;;;;;;;;;;;;;;;;35117:22;;;5863:37:101;35117:22:64;;5863:37:101;35117:22:64;;;;;;2765:56961;35117:22;;;:::i;:::-;;;2765:56961;;;;;35117:22;;;;;;-1:-1:-1;35117:22:64;;34427:108;-1:-1:-1;;;34511:24:64;;2765:56961;34511:24;;34084:225;;;;;:::i;:::-;2765:56961;;34084:225;;;;2765:56961;;;;;;;;;;;;;59616:11;2765:56961;59649:20;2765:56961;59683:24;2765:56961;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57594:5;2765:56961;57609:14;2765:56961;57625:18;2765:56961;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18022:4;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::i;:::-;;;;3448:44:101;;;;;2765:56961:64;;;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;3448:44:101;2765:56961:64;;3448:44:101;;;;;;;;:::i;:::-;2765:56961:64;3438:55:101;;18022:232:64;;;;;;2765:56961;18022:232;2765:56961;;;;;;;;;;;;;;;;;;;18022:232;;2765:56961;18022:232;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3448:44:101;2765:56961:64;;;;18269:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;18269:39;18265:96;;2765:56961;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;18389:55;:137;;;;2765:56961;18372:193;;18580:18;18836:40;18580:18;;;;;18576:234;;2765:56961;;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;18836:40;2765:56961;18836:40;;:::i;:::-;2765:56961;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3448:44:101;2765:56961:64;;;;18269:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;-1:-1:-1;;;;;18022:4:64;2765:56961;;;;;;;19056:32;;19077:10;2765:56961;19056:32;;2765:56961;3448:44:101;19056:32:64;;;;;;;;;;;;;;;2765:56961;19052:300;;;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;3448:44:101;18836:40:64;2765:56961;;;19421:40;2765:56961;;;;;;;;;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;19480:40;2765:56961;;;;18217:4;2765:56961;;;;;;;19362:175;2765:56961;19528:3;19420:117;2765:56961;;18836:40;2765:56961;19420:117;;:::i;19052:300::-;3448:44:101;2765:56961:64;;;;;;;;;;;19160:22;;;;;;;;;;;;;19052:300;2765:56961;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;19209:40;2765:56961;;;;18217:4;2765:56961;;;;;;;;19159:131;:168;2765:56961;19257:3;19159:168;2765:56961;;18836:40;2765:56961;19159:131;;:::i;:168::-;19052:300;;;;19160:22;;;3448:44:101;19160:22:64;;3448:44:101;19160:22:64;;;;;;2765:56961;19160:22;;;:::i;:::-;;;2765:56961;;;;;19160:22;;;;;;-1:-1:-1;19160:22:64;;19056:32;;;;3448:44:101;19056:32:64;3448:44:101;19056:32:64;;;;;;;:::i;:::-;;;;18372:193;-1:-1:-1;;;18544:21:64;;2765:56961;18544:21;;18389:137;2765:56961;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18217:4;2765:56961;;;18460:48;2765:56961;18511:15;-1:-1:-1;18389:137:64;;18022:232;;;;;:::i;:::-;2765:56961;;18022:232;;;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;39813:24;2765:56961;39795:15;:42;39791:93;;-1:-1:-1;;;;;39968:20:64;2765:56961;;;;;;;;;:::i;:::-;;;;39909:153;;;;2765:56961;39909:153;2765:56961;-1:-1:-1;;;;;2765:56961:64;;39813:11;2765:56961;;;39813:11;2765:56961;-1:-1:-1;;;;;2765:56961:64;;39968:20;2765:56961;;39968:20;2765:56961;;39813:24;2765:56961;-1:-1:-1;;;;;39813:11:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;40073:32;2765:56961;;;40073:32;2765:56961;;;39791:93;-1:-1:-1;;;39858:26:64;;2765:56961;;39858:26;2765:56961;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;54768:14;2765:56961;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;54768:14;2765:56961;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;;39509:20;2765:56961;;39509:20;2765:56961;;39552:24;2765:56961;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;55743:41;2765:56961;;;;;;;:::i;:::-;;;;;;;;;;;;;55743:15;2765:56961;;;;;;55743:41;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;6100:4:64;2765:56961;;;;;1106:51:101;;2765:56961:64;;;;;;;;;;;;;;;;;;;;1106:51:101;;;2765:56961:64;1106:51:101;;:::i;:::-;2765:56961:64;1096:62:101;;6100:252:64;;;;;2765:56961;;;6100:252;2765:56961;;;;;;;;;;;;;;;;6100:252;;2765:56961;;6100:252;2765:56961;6100:252;;;:::i;:::-;;;;;;;;;;;2765:56961;6367:18;;6363:221;;2765:56961;6845:15;;;6863:10;6845:15;2765:56961;6845:15;;2765:56961;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::i;:::-;;;;;6761:228;;2765:56961;;;;6761:228;;2765:56961;;;;6761:228;;2765:56961;;;;-1:-1:-1;;;;;6761:228:64;2765:56961;6761:228;6624:124;6676:58;2765:56961;6761:228;;2765:56961;;;;;;6676:58;:::i;6624:124::-;2765:56961;;;;;;;;;;;;;;;6595:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6100:4:64;2765:56961;;;;;;;7004:32;;7025:10;2765:56961;7004:32;;2765:56961;;7004:32;2765:56961;7004:32;;;;;;;;;;;;;2765:56961;7000:112;;;2765:56961;;;7000:112;2765:56961;;;;;;;;;;;;7072:22;;;;;;;;;;;;;7000:112;7072:39;;;;;;:::i;:22::-;;;2765:56961;7072:22;;2765:56961;7072:22;;;;;;2765:56961;7072:22;;;:::i;:::-;;;2765:56961;;;;;7072:39;:22;;;;;-1:-1:-1;7072:22:64;;7004:32;;;;2765:56961;7004:32;2765:56961;7004:32;;;;;;;:::i;:::-;;;;6363:221;6399:185;2765:56961;;;6399:185;;;;:::i;:::-;6363:221;;;;;6100:252;;;;;2765:56961;6100:252;;:::i;:::-;2765:56961;6100:252;;;;;2765:56961;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;-1:-1:-1;;;;;58927:11:64;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;58625:16;-1:-1:-1;;;;;58625:4:64;2765:56961;;;;;;;;;;;58625:16;;;;;;;;2765:56961;58625:16;;;2765:56961;58625:16;2765:56961;;;;;;;58625:16;;;;;;;;;;;;2765:56961;58625:16;;;:::i;:::-;;;2765:56961;;;;58625:16;2765:56961;;58625:16;;;;;-1:-1:-1;58625:16:64;;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;;;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;36079:29;;;:65;;;;;2765:56961;36075:118;;;-1:-1:-1;;;;;2765:56961:64;;36204:14;2765:56961;;;36204:14;2765:56961;2891:6;36267:15;2765:56961;36267:15;;2765:56961;;;36246:18;2765:56961;;;;;;;;;;;;;;36075:118;36165:28;;;2765:56961;36165:28;2765:56961;;36165:28;36079:65;36112:32;;;;36079:65;;;4042:64;4082:24;;;2765:56961;4082:24;2765:56961;;4082:24;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;;;;;;;;45319:15;2765:56961;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;45805:38;;;;;:::i;:::-;45801:97;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;45801:97;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;45866:15;2765:56961;;;;;;;;45801:97;;;;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;37499:4;2765:56961;-1:-1:-1;;;37530:31:64;;-1:-1:-1;;;;;2765:56961:64;;37530:31;2765:56961;37530:31;2765:56961;37530:31;;;;;;;2765:56961;37530:31;;;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;37499:63;;37523:4;2765:56961;37499:63;;2765:56961;;;;;;;37499:63;;;;;;;;;;;2765:56961;37499:63;;;2765:56961;;;;;;;;;;;;;;37609:22;;;;;;;;;2765:56961;37609:22;;;2765:56961;;37582:4;2765:56961;;37582:4;2765:56961;;;;;37582:114;37499:198;2765:56961;;;37582:114;;:::i;:::-;37499:198;;:::i;:::-;:220;:248;;;;2765:56961;37482:337;;2765:56961;;2891:6;37930:15;2765:56961;37930:15;;2765:56961;;;37880:35;2765:56961;;37482:337;37779:29;;;2765:56961;37779:29;2765:56961;;37779:29;37499:248;37735:12;;;37499:248;;37609:22;;;2765:56961;37609:22;;2765:56961;37609:22;;;;;;2765:56961;37609:22;;;:::i;:::-;;;2765:56961;;;;;37609:22;;;;;;-1:-1:-1;37609:22:64;;37499:63;;;;2765:56961;37499:63;;2765:56961;37499:63;;;;;;2765:56961;37499:63;;;:::i;:::-;;;2765:56961;;;;;;;37499:63;;;;;-1:-1:-1;37499:63:64;;37530:31;;;;;2765:56961;37530:31;2765:56961;37530:31;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;:::i;:::-;;-1:-1:-1;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;:::o;:::-;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;51528:49;2765:56961;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;2765:56961:64;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;-1:-1:-1;2765:56961:64;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;48857:246::-;49009:22;48857:246;49009:22;-1:-1:-1;;;;;49009:4:64;2765:56961;;;;;;;;;;;49009:22;;;;;;;;;-1:-1:-1;49009:22:64;;;48857:246;2765:56961;;49004:2;2765:56961;;49004:2;2765:56961;;;;;;49009:22;49047:49;2765:56961;49003:93;2765:56961;;;;;;;;;;49047:15;2765:56961;;;;;;49047:49;2765:56961;49003:93;;:::i;:::-;48857:246;:::o;49009:22::-;;;;;;;;;;;;;;2765:56961;49009:22;;;:::i;:::-;;;2765:56961;;;;;49009:22;;;;;;;-1:-1:-1;49009:22:64;;2765:56961;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;2765:56961:64;;;;:::o;:::-;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;6315:4;2765:56961;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;48001:127::-;48099:22;;-1:-1:-1;;;;;48099:4:64;2765:56961;;;;;;;;;;;48099:22;;;;;;;;;-1:-1:-1;48099:22:64;;;48001:127;2765:56961;;48094:2;2765:56961;;48094:2;2765:56961;;;;;48001:127;:::o;48099:22::-;;;;;;;;;;;;;2765:56961;48099:22;;;:::i;:::-;;;2765:56961;;;;;48099:22;;;;;;-1:-1:-1;48099:22:64;;2765:56961;;;;;;;:::i;:::-;-1:-1:-1;2765:56961:64;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;:::o;49443:283::-;-1:-1:-1;;;;;49590:4:64;2765:56961;;;;;;;;;49590:22;;;;;;;;;;;;;;-1:-1:-1;49590:22:64;;;49443:283;2765:56961;;49585:2;2765:56961;;49585:2;2765:56961;;;;;49590:22;2765:56961;49632:49;2765:56961;49590:22;2765:56961;;49584:97;2765:56961;;;;;;;;;;49632:15;2765:56961;;;;;;49632:49;2765:56961;49584:97;;:::i;:::-;2765:56961;;;;;;;;;;49697:22;;;;;;;;;-1:-1:-1;49697:22:64;;;49443:283;49583:136;;;;:::i;49697:22::-;;;49590;49697;;49590;49697;;;;;;2765:56961;49697:22;;;:::i;:::-;;;2765:56961;;;;49583:136;2765:56961;;49697:22;;;;;;-1:-1:-1;49697:22:64;;49590;;;;;;;;;;;;;;2765:56961;49590:22;;;:::i;:::-;;;2765:56961;;;;;49590:22;;;;;;;-1:-1:-1;49590:22:64;;2765:56961;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;2765:56961:64;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;43442:617::-;;2765:56961;;;;;;43556:15;2765:56961;;;;;;;;;;;;;43556:43;;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;43556:51:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;43556:15;2765:56961;;;;;;;;43644:46;:112;;;;;43552:501;-1:-1:-1;;43623:243:64;;;2765:56961;43789:12;:::o;43623:243::-;43603:4;43840:11;:::o;43644:112::-;43603:4;2765:56961;;;;;;;;;;;;;;43556:15;2765:56961;;;;;;43710:41;2765:56961;43710:46;;43644:112;;;;43552:501;2765:56961;43603:4;2765:56961;;;;;;;;;;;43556:15;2765:56961;;;;;;43900:41;2765:56961;43900:46;43896:147;43603:4;;;2765:56961;43966:12;:::o;2765:56961::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;2765:56961:64;;;-1:-1:-1;;2765:56961:64;;;;;;;:::o;46445:1320::-;;2765:56961;;46561:41;2765:56961;;;;;;46561:15;2765:56961;;;;;;;;;;;;;46561:41;2765:56961;46606:15;-1:-1:-1;46606:15:64;;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;46641:43;2765:56961;46637:687;;46557:1202;-1:-1:-1;;47341:10:64;;;47371:22;47379:14;47337:341;46445:1320::o;47337:341::-;47463:22;2765:56961;;-1:-1:-1;;;;;47463:4:64;2765:56961;;;;;;;;;;;47463:22;;;;;;;;;2765:56961;47463:22;;;47337:341;2765:56961;47522:1;2765:56961;;;;;47522:1;2765:56961;;;47527:4;2765:56961;;;47536:6;2765:56961;;47536:6;2765:56961;;;;;47512:54;;;;;;2765:56961;47337:341;2765:56961::o;47512:151::-;2765:56961;;48857:246;:::o;47463:22::-;;;;2765:56961;47463:22;;2765:56961;47463:22;;;;;;2765:56961;47463:22;;;:::i;:::-;;;2765:56961;;;;;47463:22;;;;;;;-1:-1:-1;47463:22:64;;46637:687;2765:56961;46836:3;46774:40;2765:56961;;;;;;;;;;;46561:15;2765:56961;;;;;;46774:40;2765:56961;46770:44;;;;;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46606:15;46561:41;2765:56961;;;46909:43;2765:56961;46909:85;:163;;;46836:3;46880:412;;46836:3;46561:41;2765:56961;46735:13;;46880:412;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;;47125:35;2765:56961;;;47125:35;2765:56961;47125:43;47121:149;46880:412;47121:149;2765:56961;;;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46561:41;47125:35;2765:56961;;;47208:35;2765:56961;47121:149;;;46880:412;;46909:163;2765:56961;;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;47022:50;;46909:163;;46770:44;;;;46637:687;;;;46557:1202;2765:56961;;;47726:22;2765:56961;-1:-1:-1;;;;;47726:4:64;2765:56961;;;;;;;;;;;47726:22;;;;;;;;;2765:56961;47726:22;;;46557:1202;2765:56961;;47716:7;2765:56961;;47716:7;2765:56961;;;;;46557:1202;46445:1320::o;47726:22::-;;;2765:56961;47726:22;;2765:56961;47726:22;;;;;;2765:56961;47726:22;;;:::i;:::-;;;2765:56961;;;;;47726:22;;;;;;-1:-1:-1;47726:22:64;;44344:614;;2765:56961;;;;;;44463:15;2765:56961;;;;;;;;;;;;;44463:43;;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;44463:51:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;44463:15;2765:56961;;;;;;;;44551:46;:112;;;;;44459:493;-1:-1:-1;;44530:239:64;;;2765:56961;44696:8;;44551:112;44510:4;2765:56961;;;;;;;;;;;;;;44463:15;2765:56961;;;;;;44617:41;2765:56961;44617:46;;44551:112;;;;44459:493;2765:56961;44510:4;2765:56961;;;;;;;;;;;44463:15;2765:56961;;;;;;44803:41;2765:56961;44803:46;44799:143;44510:4;;;2765:56961;44869:8;;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;56221:272;;56352:39;2765:56961;;;;;;56352:15;2765:56961;;;;;;;;;;;;;56352:39;2765:56961;56352:43;:134;;56414:25;;;:::i;56352:134::-;2765:56961;;56458:22;2765:56961;-1:-1:-1;;;;;56458:4:64;2765:56961;;;;;;;;;;;56458:22;;;;;;;;;-1:-1:-1;56458:22:64;;;56352:134;2765:56961;56483:3;2765:56961;;;;;;56483:3;2765:56961;;;;;;;56221:272;:::o;56458:22::-;;;2765:56961;56458:22;;2765:56961;56458:22;;;;;;2765:56961;56458:22;;;:::i;:::-;;;2765:56961;;;;;56458:22;;;;;;-1:-1:-1;56458:22:64;;42529:201;;;42680:42;42529:201;42680:42;42529:201;2765:56961;;42680:42;;;;;;;2765:56961;;;;;;;;;;42680:42;;;;;;;;:::i;:::-;2765:56961;42670:53;;42529:201;:::o;2765:56961::-;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50269:340::-;;50380:41;2765:56961;;;;;;;;;;;50380:15;2765:56961;;;;;;50380:41;2765:56961;50380:46;50376:227;50380:41;;;50442:11;;50380:41;50442:11;:::o;50376:227::-;2765:56961;50380:41;2765:56961;;;;;;;;;;;50380:15;2765:56961;;;;;;50507:41;2765:56961;50551:7;2765:56961;;;;;;;50577:15;-1:-1:-1;50484:108:64;:::o;41038:500::-;;;;;;;-1:-1:-1;;;;;41247:4:64;2765:56961;;;;;;;;;41330:31;;;;;;;;;;;;;;2765:56961;41330:31;;;41038:500;41247:284;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;41247:284;;2765:56961;41330:31;41247:284;;2765:56961;41295:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;41295:4;2765:56961;;;;;;;;;;;;;41494:4;2765:56961;;;;;;;;;;;;;;:::i;:::-;41247:284;;;;;;;;;;41038:500;:::o;41247:284::-;2765:56961;41247:284;;;:::i;41330:31::-;;;;;;;;;;;;;;;:::i;:::-;;;;;41038:500;41247:4;2765:56961;;;-1:-1:-1;;;41330:31:64;;41038:500;;-1:-1:-1;;;;;2765:56961:64;;;;41038:500;;;41330:31;2765:56961;41330:31;2765:56961;;41330:31;;;;;;;-1:-1:-1;41330:31:64;;;41038:500;41247:284;;;;;;-1:-1:-1;;;;;2765:56961:64;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;41247:284;;2765:56961;41330:31;41247:284;;2765:56961;41295:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;41295:4;2765:56961;;;;;;;;;;;;;41494:4;2765:56961;;;;;;;;;;;;;;:::i;41330:31::-;;;;;;;;;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;;;;;:::o;3564:411:93:-;2765:56961:64;;;;;;;:::i;:::-;3697:2:93;2765:56961:64;;;;;;;;;;;;;;3710:15:93;;;2765:56961:64;;3742:1:93;2765:56961:64;;;;3735:15:93;2765:56961:64;;;3735:15:93;-1:-1:-1;3781:6:93;2765:56961:64;3781:6:93;;;;3947:21;;3564:411;:::o;3789:3::-;3845:7;;;;3856:1;2765:56961:64;;;3920:4:93;2765:56961:64;3828:31:93;;;;;;2765:56961:64;3742:1:93;2765:56961:64;;;;;3815:1:93;2765:56961:64;;;;;;;;3815:1:93;2765:56961:64;;3815:1:93;2765:56961:64;;;3920:4:93;;-1:-1:-1;;;3828:31:93;;;3808:51;;;;:::i;:::-;;2765:56961:64;3893:33:93;3828:31;3893:33;;;;;3880:1;2765:56961:64;;3880:1:93;2765:56961:64;;;3742:1:93;;-1:-1:-1;;;3893:33:93;;;3873:53;;;;:::i;:::-;;2765:56961:64;3766:13:93;;41820:132:64;41888:4;2765:56961;;;-1:-1:-1;;;41905:31:64;;2765:56961;;-1:-1:-1;;;;;2765:56961:64;41905:31;2765:56961;41905:31;2765:56961;;41905:31;;;;;;;-1:-1:-1;41905:31:64;;;41820:132;41888:57;;;;;;2765:56961;;-1:-1:-1;;;41888:57:64;;-1:-1:-1;;;;;2765:56961:64;;;41905:31;41888:57;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;-1:-1:-1;2765:56961:64;;;;41888:57;2765:56961;41905:31;;;;;;;;;;;;;;;:::i;:::-;;;;;991:707:65;2765:56961:64;;1222:1:65;1199:24;;1195:42;;2765:56961:64;;;;;;;1303:27:65;;-1:-1:-1;;;;;;2765:56961:64;1303:27:65;:::i;:::-;1302:28;1298:58;;2765:56961:64;1472:3:65;2765:56961:64;;1446:24:65;;;;;-1:-1:-1;;;;;;1564:16:65;;;;:::i;:::-;2765:56961:64;;;;;5296:17:65;;;:38;;;;1472:3;1554:27;;:59;;;1472:3;1550:111;;2765:56961:64;;1431:13:65;;1550:111;1633:12;;2765:56961:64;1633:12:65;:::o;1554:59::-;-1:-1:-1;1586:27:65;-1:-1:-1;;;;;;1596:16:65;;;;:::i;:::-;2765:56961:64;;1586:27:65;:::i;:::-;1585:28;1554:59;;5296:38;-1:-1:-1;;;;5317:17:65;;-1:-1:-1;5296:38:65;;;1446:24;;;2765:56961:64;991:707:65;:::o;1298:58::-;1344:12;2765:56961:64;1344:12:65;:::o;5441:227::-;2765:56961:64;;;;;;;5525:17:65;;;:38;;;;5441:227;5524:96;;;;5516:105;5441:227;:::o;5524:96::-;-1:-1:-1;;;5581:17:65;;;;-1:-1:-1;5581:17:65;:38;;5524:96;5441:227;:::o;5581:38::-;-1:-1:-1;;;;5602:17:65;;-1:-1:-1;5441:227:65;:::o;5525:38::-;-1:-1:-1;;;5546:17:65;;;;-1:-1:-1;5525:38:65;",linkReferences:{}},methodIdentifiers:{"acceptChangeEvvmAddress()":"48ffba55","acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"53462f82","acceptProposeAdmin()":"eba5e53e","addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":"71e604f8","cancelChangeEvvmAddress()":"24866f15","cancelProposeAdmin()":"88ecb91f","cancelWithdrawPrincipalTokens()":"cf1dc146","claimWithdrawPrincipalTokens()":"e7849f62","flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"7d0d9608","flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"5f94da09","getAdmin()":"6e9960c3","getAdminFullDetails()":"5548a762","getAmountOfCustomMetadata(string)":"6b5bb1ca","getCoreAddress()":"2096b768","getCoreAddressFullDetails()":"570b245b","getCustomMetadataMaxSlotsOfIdentity(string)":"7bd9da7a","getEvvmID()":"17c85152","getExpireDateOfIdentity(string)":"22afca38","getFullCustomMetadataOfIdentity(string)":"b19517dd","getIdentityBasicMetadata(string)":"c97da33e","getLengthOfOffersUsername(string)":"fe7ab683","getOffersOfUsername(string)":"d7fd3134","getOwnerOfIdentity(string)":"0d3dcb9f","getPriceOfRegistration(string)":"bc91a428","getPriceToAddCustomMetadata()":"36e7a1b8","getPriceToFlushCustomMetadata(string)":"1f4131fb","getPriceToFlushUsername(string)":"54dc585d","getPriceToRemoveCustomMetadata()":"99e7bac2","getProposedWithdrawAmountFullDetails()":"d2234a1a","getSingleCustomMetadataOfIdentity(string,uint256)":"f6d0ecbe","getSingleOfferOfUsername(string,uint256)":"43a82d67","hashUsername(string,uint256)":"bcd5a47c","isUsernameAvailable(string)":"f69c6dec","makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"b0bf2e10","preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":"22abdafa","proposeAdmin(address)":"147bf6c4","proposeChangeEvvmAddress(address)":"a6ba51ca","proposeWithdrawPrincipalTokens(uint256)":"007802df","registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"8ffe264e","removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"ecdc7aff","renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"ebee75fc","seePriceToRenew(string)":"75dab53b","strictVerifyIfIdentityExist(string)":"86c8ac58","verifyIfIdentityExists(string)":"7126b2a3","verifyStrictAndGetOwnerOfIdentity(string)":"0c78d2c6","withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"f5e993f5"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AmountMustBeGreaterThanZero","type":"error"},{"inputs":[],"name":"CannotBeBeforeCurrentTime","type":"error"},{"inputs":[],"name":"EmptyCustomMetadata","type":"error"},{"inputs":[],"name":"IdentityIsNotAUsername","type":"error"},{"inputs":[],"name":"InvalidAdminProposal","type":"error"},{"inputs":[],"name":"InvalidEvvmAddress","type":"error"},{"inputs":[],"name":"InvalidKey","type":"error"},{"inputs":[],"name":"InvalidUsername","type":"error"},{"inputs":[],"name":"InvalidWithdrawAmount","type":"error"},{"inputs":[],"name":"LockTimeNotExpired","type":"error"},{"inputs":[],"name":"OfferInactive","type":"error"},{"inputs":[],"name":"OwnershipExpired","type":"error"},{"inputs":[],"name":"PreRegistrationNotValid","type":"error"},{"inputs":[],"name":"RenewalTimeLimitExceeded","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotProposedAdmin","type":"error"},{"inputs":[],"name":"UserIsNotOwnerOfIdentity","type":"error"},{"inputs":[],"name":"UserIsNotOwnerOfOffer","type":"error"},{"inputs":[],"name":"UsernameAlreadyRegistered","type":"error"},{"inputs":[],"name":"acceptChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"offerID","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"acceptOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptProposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"string","name":"value","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"addCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelProposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"flushCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"flushUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdminFullDetails","outputs":[{"internalType":"address","name":"currentAdmin","type":"address"},{"internalType":"address","name":"proposalAdmin","type":"address"},{"internalType":"uint256","name":"timeToAcceptAdmin","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getAmountOfCustomMetadata","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddressFullDetails","outputs":[{"internalType":"address","name":"currentEvvmAddress","type":"address"},{"internalType":"address","name":"proposalEvvmAddress","type":"address"},{"internalType":"uint256","name":"timeToAcceptEvvmAddress","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getCustomMetadataMaxSlotsOfIdentity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getExpireDateOfIdentity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getFullCustomMetadataOfIdentity","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getIdentityBasicMetadata","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getLengthOfOffersUsername","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getOffersOfUsername","outputs":[{"components":[{"internalType":"address","name":"offerer","type":"address"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NameServiceStructs.OfferMetadata[]","name":"offers","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getOwnerOfIdentity","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"username","type":"string"}],"name":"getPriceOfRegistration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceToAddCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getPriceToFlushCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getPriceToFlushUsername","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceToRemoveCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposedWithdrawAmountFullDetails","outputs":[{"internalType":"uint256","name":"proposalAmountToWithdrawTokens","type":"uint256"},{"internalType":"uint256","name":"timeToAcceptAmountToWithdrawTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_key","type":"uint256"}],"name":"getSingleCustomMetadataOfIdentity","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_offerID","type":"uint256"}],"name":"getSingleOfferOfUsername","outputs":[{"components":[{"internalType":"address","name":"offerer","type":"address"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NameServiceStructs.OfferMetadata","name":"offer","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_randomNumber","type":"uint256"}],"name":"hashUsername","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"isUsernameAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"makeOffer","outputs":[{"internalType":"uint256","name":"offerID","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"hashPreRegisteredUsername","type":"bytes32"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"preRegistrationUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adminToPropose","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newEvvmAddress","type":"address"}],"name":"proposeChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"proposeWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"lockNumber","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"registrationUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"removeCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"renewUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"seePriceToRenew","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"strictVerifyIfIdentityExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"verifyIfIdentityExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"verifyStrictAndGetOwnerOfIdentity","outputs":[{"internalType":"address","name":"answer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"offerID","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"withdrawOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Manages username registration via a commit-reveal scheme (pre-registration), a secondary marketplace for domain trading, and customizable user metadata. Integrates with Core.sol for payment processing and uses async nonces for high throughput.","errors":{"AmountMustBeGreaterThanZero()":[{"details":"Thrown when amount == 0 (e.g., makeOffer requires value)"}],"CannotBeBeforeCurrentTime()":[{"details":"Thrown when timestamp < current time (offer expiration, future ops)"}],"EmptyCustomMetadata()":[{"details":"Thrown when custom metadata value == empty string"}],"IdentityIsNotAUsername()":[{"details":"Thrown when username operation attempted on pre-registration (flagNotAUsername: 0x01=pre-reg, 0x00=username)"}],"InvalidAdminProposal()":[{"details":"Thrown when admin proposal address/config invalid"}],"InvalidEvvmAddress()":[{"details":"Thrown when proposed EVVM address invalid"}],"InvalidKey()":[{"details":"Thrown when removing non-existent custom metadata key"}],"InvalidUsername()":[{"details":"Thrown when username format invalid (4+ chars, start with letter, alphanumeric)"}],"InvalidWithdrawAmount()":[{"details":"Thrown when withdrawal amount invalid or > balance"}],"LockTimeNotExpired()":[{"details":"Thrown when time-locked governance action attempted prematurely"}],"OfferInactive()":[{"details":"Thrown when accepting/interacting with expired/non-existent offer (offerer == 0)"}],"OwnershipExpired()":[{"details":"Thrown when operating on expired username (after expireDate)"}],"PreRegistrationNotValid()":[{"details":"Thrown when pre-registration doesn\'t exist or expired (30min window)"}],"RenewalTimeLimitExceeded()":[{"details":"Thrown when renewing > 100 years in advance"}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyAdmin modifier)"}],"SenderIsNotProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptNewAdmin before timelock"}],"UserIsNotOwnerOfIdentity()":[{"details":"Thrown when non-owner attempts to modify username or accept offers"}],"UserIsNotOwnerOfOffer()":[{"details":"Thrown when non-creator attempts withdrawOffer"}],"UsernameAlreadyRegistered()":[{"details":"Thrown when attempting to register already-taken username"}]},"kind":"dev","methods":{"acceptChangeEvvmAddress()":{"details":"Can only be called after the time delay has passed"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Can only be called by current owner before expiration Acceptance Flow: 1. Validates user is current username owner 2. Validates offer exists and not expired 3. Transfers offer amount to seller 4. Transfers ownership to offerer 5. Processes optional priority fee 6. Deletes offer and unlocks tokens Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double acceptance Core.sol Integration: - Payment: offer amount via makeCaPay to seller - Priority fee: via requestPay (if > 0) - Fee Distribution: * 99.5% to seller (locked amount) * 0.5% + reward to staker (if applicable) - makeCaPay transfers from locked funds Ownership Transfer: - Changes identityDetails[username].owner - Preserves all metadata and expiration - Transfers all custom metadata slots Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases offer amount + marketplace fee - Distributes to seller and staker","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","offerID":"Unique identifier of offer to accept","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of current username owner","username":"Username being sold"}},"acceptProposeAdmin()":{"details":"Can only be called by the proposed admin after the time delay has passed"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Metadata format: [schema]:[subschema]>[value] Standard Format Examples: - memberOf:>EVVM - socialMedia:x>jistro (Twitter/X handle) - email:dev>jistro[at]evvm.org (dev email) - email:callme>contact[at]jistro.xyz (contact) Schema Guidelines: - Based on https://schema.org/docs/schemas.html - \':\' separates schema from subschema - \'>\' separates metadata from value - Pad spaces if schema/subschema < 5 chars - Use \\"socialMedia\\" for social networks Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + value - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Slot Management: - Increments customMetadataMaxSlots - Each slot holds one metadata entry - No limit on number of slots","params":{"identity":"Username to add metadata to","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","value":"Metadata string following format"}},"cancelChangeEvvmAddress()":{"details":"Only the current admin can cancel pending proposals"},"cancelProposeAdmin()":{"details":"Only the current admin can cancel pending proposals"},"cancelWithdrawPrincipalTokens()":{"details":"Only the current admin can cancel pending proposals"},"claimWithdrawPrincipalTokens()":{"details":"Can only be called after the time delay has passed"},"constructor":{"params":{"_coreAddress":"The address of the EVVM Core contract.","_initialOwner":"The address granted administrative privileges."}},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"More gas-efficient than removing individually Flush Process: 1. Validates user owns username 2. Validates metadata slots exist (not empty) 3. Calculates cost based on slot count 4. Deletes all metadata entries in loop 5. Resets customMetadataMaxSlots to 0 Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushCustomMetadata (per slot) - Cost: 10x EVVM reward per metadata entry - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes batch rewards Efficiency: - Single transaction for all metadata - Batch pricing for multiple entries - Cheaper than calling removeCustomMetadata N times","params":{"identity":"Username to flush all metadata from","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner"}},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Deletes username, metadata, makes available for re-registration Flush Process: 1. Validates user owns username 2. Validates not expired (must be active) 3. Validates is actual username (not temp hash) 4. Calculates cost based on metadata + username 5. Deletes all metadata entries 6. Resets username to default state 7. Preserves offerMaxSlots history Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushUsername - Cost: Base + (10x reward per metadata slot) - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes to caller Cleanup: - Deletes all custom metadata slots - Sets owner to address(0) - Sets expirationDate to 0 - Resets customMetadataMaxSlots to 0 - Keeps offerMaxSlots for history - Sets flagNotAUsername to 0x00 - Username becomes available for re-registration","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","username":"Username to completely remove"}},"getAdmin()":{"details":"Returns the address with administrative privileges","returns":{"_0":"The current admin address"}},"getAdminFullDetails()":{"details":"Returns current admin, proposed admin, and proposal acceptance deadline","returns":{"currentAdmin":"Current administrative address","proposalAdmin":"Proposed new admin address (if any)","timeToAcceptAdmin":"Timestamp when proposal can be accepted"}},"getAmountOfCustomMetadata(string)":{"details":"Returns the count of metadata slots currently used","params":{"_username":"The username to count metadata for"},"returns":{"_0":"Number of custom metadata entries"}},"getCoreAddress()":{"details":"Returns the address of the EVVM contract used for payment processing","returns":{"_0":"The current EVVM contract address"}},"getCoreAddressFullDetails()":{"details":"Returns current EVVM address, proposed address, and proposal acceptance deadline","returns":{"currentEvvmAddress":"Current EVVM contract address","proposalEvvmAddress":"Proposed new EVVM address (if any)","timeToAcceptEvvmAddress":"Timestamp when proposal can be accepted"}},"getCustomMetadataMaxSlotsOfIdentity(string)":{"details":"Returns the total capacity for custom metadata entries","params":{"_username":"The username to check metadata capacity for"},"returns":{"_0":"Maximum number of metadata slots"}},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getExpireDateOfIdentity(string)":{"details":"Returns the timestamp when the username registration expires","params":{"_identity":"The username to check expiration for"},"returns":{"_0":"The expiration timestamp in seconds since Unix epoch"}},"getFullCustomMetadataOfIdentity(string)":{"details":"Returns an array containing all metadata strings in order","params":{"_username":"The username to get metadata for"},"returns":{"_0":"Array of all custom metadata strings"}},"getIdentityBasicMetadata(string)":{"details":"Returns essential metadata for quick identity verification","params":{"_username":"The username to get basic info for"},"returns":{"_0":"Owner address and expiration timestamp"}},"getLengthOfOffersUsername(string)":{"details":"Iterates through offers to find the actual count of non-empty slots","params":{"_username":"The username to count offers for"},"returns":{"length":"Total number of offers that have been made"}},"getOffersOfUsername(string)":{"details":"Returns both active and expired offers that haven\'t been withdrawn","params":{"_username":"The username to get offers for"},"returns":{"offers":"Array of all offer metadata structures"}},"getOwnerOfIdentity(string)":{"details":"Returns the current owner address for any valid identity","params":{"_username":"The username to query"},"returns":{"_0":"Address of the username owner"}},"getPriceOfRegistration(string)":{"details":"Price is fully dynamic based on existing offers and timing - If dosnt have offers, price is 100x current EVVM reward amount - If has offers, price is calculated via seePriceToRenew function","params":{"username":"The username to get registration price for"},"returns":{"_0":"The current registration price in Principal Tokens"}},"getPriceToAddCustomMetadata()":{"details":"Price is dynamic based on current EVVM reward amount","returns":{"price":"Cost in Principal Tokens (10x current reward amount)"}},"getPriceToFlushCustomMetadata(string)":{"details":"Cost scales with the number of metadata entries to remove","params":{"_identity":"The username to calculate flush cost for"},"returns":{"price":"Total cost in Principal Tokens (10x reward amount per metadata entry)"}},"getPriceToFlushUsername(string)":{"details":"Includes cost for metadata removal plus base username deletion fee","params":{"_identity":"The username to calculate deletion cost for"},"returns":{"price":"Total cost in Principal Tokens (metadata flush cost + 1x reward amount)"}},"getPriceToRemoveCustomMetadata()":{"details":"Price is dynamic based on current EVVM reward amount","returns":{"price":"Cost in Principal Tokens (10x current reward amount)"}},"getProposedWithdrawAmountFullDetails()":{"details":"Returns proposed withdrawal amount and acceptance deadline","returns":{"proposalAmountToWithdrawTokens":"Proposed withdrawal amount in Principal Tokens","timeToAcceptAmountToWithdrawTokens":"Timestamp when proposal can be executed"}},"getSingleCustomMetadataOfIdentity(string,uint256)":{"details":"Retrieves metadata at a specific slot position","params":{"_key":"The index of the metadata entry to retrieve","_username":"The username to get metadata from"},"returns":{"_0":"The metadata string at the specified index"}},"getSingleOfferOfUsername(string,uint256)":{"details":"Retrieves detailed information about a particular offer","params":{"_offerID":"The ID/index of the specific offer","_username":"The username to get the offer from"},"returns":{"offer":"The complete offer metadata structure"}},"hashUsername(string,uint256)":{"details":"Used in the commit-reveal scheme to prevent front-running attacks","params":{"_randomNumber":"Random number to add entropy","_username":"The username to hash"},"returns":{"_0":"Hash of the username and random number"}},"isUsernameAvailable(string)":{"details":"A username is available if it was never registered or has been expired for 60+ days","params":{"_username":"The username to check availability for"},"returns":{"_0":"True if the username is available for registration"}},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Tokens are locked in the contract. A 0.5% marketplace fee is applied upon successful sale.","params":{"amount":"Total amount offered (including fee).","expirationDate":"When the offer expires.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (locks tokens).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Offerer\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"The address of the offerer.","username":"The target username."},"returns":{"offerID":"The unique ID of the created offer."}},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Part of the commit-reveal scheme. Valid for 30 minutes.","params":{"hashPreRegisteredUsername":"The keccak256 hash of (username + secret).","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (if fee is paid).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Registrant\'s authorization signature.","signaturePay":"Signature for the Core payment (if fee is paid).","user":"The address of the registrant."}},"proposeAdmin(address)":{"details":"Time-delayed governance system for admin changes","params":{"_adminToPropose":"Address of the proposed new admin"}},"proposeChangeEvvmAddress(address)":{"details":"Critical function that affects payment processing integration","params":{"_newEvvmAddress":"Address of the new EVVM contract"}},"proposeWithdrawPrincipalTokens(uint256)":{"details":"Amount must be available after reserving funds for operations and locked offers","params":{"_amount":"Amount of Principal Tokens to withdraw"}},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Validates format, availability, and payment. Grants 1 year of ownership.","params":{"lockNumber":"The secret used in the pre-registration hash.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (registration fee + priority fee).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Registrant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"The address of the registrant.","username":"The plain-text username being registered."}},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Shifts all subsequent entries to fill gap Removal Process: 1. Validates user owns username 2. Validates key exists in metadata slots 3. Deletes entry at key position 4. Shifts all entries after key down by 1 5. Decrements customMetadataMaxSlots Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + key - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Array Reordering: - Shifts entries from key+1 to maxSlots - Maintains continuous slot indexing - No gaps in metadata array","params":{"identity":"Username to remove metadata from","key":"Index of metadata entry to remove","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner"}},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Dynamic pricing based on timing and market demand Pricing Rules: - Free: Renewed within grace period after expiration - Variable: Based on highest active offer (min 500 PT) - Fixed: 500,000 PT if renewed >1 year early - Can renew up to 100 years in advance Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: seePriceToRenew calculates cost - Paid through requestPay (locks tokens) - Staker reward: 1x reward + 50% of price + fee - makeCaPay distributes rewards Renewal Logic: - Extends expirationDate by 366 days - Preserves ownership and all metadata - Cannot exceed 100 years (36500 days)","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","username":"Username to renew"}},"seePriceToRenew(string)":{"details":"Pricing varies based on timing and market demand: - Free if renewed before expiration (within grace period) - Variable cost based on highest active offer (minimum 500 Principal Token) - Fixed 500,000 Principal Token if renewed more than 1 year before expiration","params":{"_identity":"The username to calculate renewal price for"},"returns":{"price":"The cost in Principal Tokens to renew the username"}},"strictVerifyIfIdentityExist(string)":{"details":"More strict version that reverts instead of returning false","params":{"_username":"The username to verify"},"returns":{"_0":"True if the username exists (will revert if not)"}},"verifyIfIdentityExists(string)":{"details":"Handles both pre-registrations and actual username registrations","params":{"_identity":"The identity/username to check"},"returns":{"_0":"True if the identity exists and is valid"}},"verifyStrictAndGetOwnerOfIdentity(string)":{"details":"Combines strict verification with owner lookup in one call","params":{"_username":"The username to verify and get owner for"},"returns":{"answer":"Address of the username owner (reverts if username doesn\'t exist)"}},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Can only be called by offer creator or after expire Withdrawal Flow: 1. Validates offer exists and belongs to user 2. Optionally validates expiration date passed 3. Refunds locked tokens to offerer 4. Processes optional priority fee 5. Deletes offer and updates slot count Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double withdrawals Core.sol Integration: - Refund: offer amount via makeTransfer to offerer - Priority fee: via requestPay (if > 0) - Staker reward: 1x reward + priority fee - makeCaPay distributes to caller if staker Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases both offer amount and marketplace fee - Returns funds to original offerer","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","offerID":"Unique identifier of offer to withdraw","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address that made original offer","username":"Username offer was made for"}}},"stateVariables":{"TIME_TO_ACCEPT_PROPOSAL":{"details":"Time delay for accepting proposals (1 day)"},"admin":{"details":"Proposal system for admin address changes"},"amountToWithdrawTokens":{"details":"Proposal system for token withdrawal with delay"},"core":{"details":"EVVM contract for payment processing"},"coreAddress":{"details":"Proposal system for Core address changes"},"identityCustomMetadata":{"details":"Nested mapping: username => key => custom value"},"identityDetails":{"details":"Mapping from username to core metadata"},"principalTokenTokenLockedForWithdrawOffers":{"details":"Principal Tokens locked in pending marketplace"},"usernameOffers":{"details":"Nested mapping: username => offer ID => offer"}},"title":"EVVM Name Service","version":1},"userdoc":{"kind":"user","methods":{"acceptChangeEvvmAddress()":{"notice":"Executes the approved EVVM address change"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Accepts marketplace offer and transfers ownership"},"acceptProposeAdmin()":{"notice":"Accepts the admin proposal and becomes the new admin"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Adds custom metadata to username using schema format"},"cancelChangeEvvmAddress()":{"notice":"Cancels the pending EVVM address change proposal"},"cancelProposeAdmin()":{"notice":"Cancels the current admin proposal"},"cancelWithdrawPrincipalTokens()":{"notice":"Cancels the pending token withdrawal proposal"},"claimWithdrawPrincipalTokens()":{"notice":"Executes the approved token withdrawal"},"constructor":{"notice":"Initializes the NameService with the Core contract and initial administrator."},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Removes all custom metadata entries for username"},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Completely removes username and all data"},"getAdmin()":{"notice":"Gets the current admin address"},"getAdminFullDetails()":{"notice":"Gets complete admin information including pending proposals"},"getAmountOfCustomMetadata(string)":{"notice":"Gets the number of custom metadata entries for a username"},"getCoreAddress()":{"notice":"Gets the current EVVM contract address"},"getCoreAddressFullDetails()":{"notice":"Gets complete EVVM address information including pending proposals"},"getCustomMetadataMaxSlotsOfIdentity(string)":{"notice":"Gets the maximum number of metadata slots available for a username"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getExpireDateOfIdentity(string)":{"notice":"Gets the expiration date of a username registration"},"getFullCustomMetadataOfIdentity(string)":{"notice":"Retrieves all custom metadata entries for a username"},"getIdentityBasicMetadata(string)":{"notice":"Gets basic identity information (owner and expiration date)"},"getLengthOfOffersUsername(string)":{"notice":"Counts the total number of offers made for a username"},"getOffersOfUsername(string)":{"notice":"Gets all offers made for a specific username"},"getOwnerOfIdentity(string)":{"notice":"Gets the owner address of a registered identity"},"getPriceOfRegistration(string)":{"notice":"Gets price to register an username"},"getPriceToAddCustomMetadata()":{"notice":"Gets the current price to add custom metadata to a username"},"getPriceToFlushCustomMetadata(string)":{"notice":"Gets the cost to remove all custom metadata entries from a username"},"getPriceToFlushUsername(string)":{"notice":"Gets the cost to completely remove a username and all its data"},"getPriceToRemoveCustomMetadata()":{"notice":"Gets the current price to remove a single custom metadata entry"},"getProposedWithdrawAmountFullDetails()":{"notice":"Gets information about pending token withdrawal proposals"},"getSingleCustomMetadataOfIdentity(string,uint256)":{"notice":"Gets a specific custom metadata entry by index"},"getSingleOfferOfUsername(string,uint256)":{"notice":"Gets a specific offer for a username by offer ID"},"hashUsername(string,uint256)":{"notice":"Creates a hash of username and random number for pre-registration"},"isUsernameAvailable(string)":{"notice":"Checks if a username is available for registration"},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Places a purchase offer on an existing username."},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Commits a username hash to prevent front-running before registration."},"proposeAdmin(address)":{"notice":"Proposes new admin address with 1-day delay"},"proposeChangeEvvmAddress(address)":{"notice":"Proposes to change the EVVM contract address"},"proposeWithdrawPrincipalTokens(uint256)":{"notice":"Proposes to withdraw Principal Tokens from the contract"},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Finalizes username registration by revealing the secret associated with a pre-registration."},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Removes specific custom metadata entry by key"},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Renews username registration for another year"},"seePriceToRenew(string)":{"notice":"Calculates the cost to renew a username registration"},"strictVerifyIfIdentityExist(string)":{"notice":"Strictly verifies if an identity exists and reverts if not found"},"verifyIfIdentityExists(string)":{"notice":"Checks if an identity exists in the system"},"verifyStrictAndGetOwnerOfIdentity(string)":{"notice":"Verifies identity exists and returns owner address"},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Withdraws marketplace offer and refunds tokens"}},"notice":"_ _ | \\\\ | | | \\\\| | __ _ _ __ ___ ___ | . ` |/ _` | \'_ ` _ \\\\ / _ \\\\ | |\\\\ | (_| | | | | | | __/ \\\\_| \\\\_/\\\\__,_|_| |_| |_|\\\\___| _____ _ / ___| (_) \\\\ `--. ___ _ ____ ___ ___ ___ `--. \\\\/ _ | \'__\\\\ \\\\ / | |/ __/ _ \\\\ /\\\\__/ | __| | \\\\ V /| | (_| __/ \\\\____/ \\\\___|_| \\\\_/ |_|\\\\___\\\\___| \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Identity and username registration system for the EVVM ecosystem.","version":1}},"settings":{"compilationTarget":{"src/contracts/nameService/NameService.sol":"NameService"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AmountMustBeGreaterThanZero"},{inputs:[],type:"error",name:"CannotBeBeforeCurrentTime"},{inputs:[],type:"error",name:"EmptyCustomMetadata"},{inputs:[],type:"error",name:"IdentityIsNotAUsername"},{inputs:[],type:"error",name:"InvalidAdminProposal"},{inputs:[],type:"error",name:"InvalidEvvmAddress"},{inputs:[],type:"error",name:"InvalidKey"},{inputs:[],type:"error",name:"InvalidUsername"},{inputs:[],type:"error",name:"InvalidWithdrawAmount"},{inputs:[],type:"error",name:"LockTimeNotExpired"},{inputs:[],type:"error",name:"OfferInactive"},{inputs:[],type:"error",name:"OwnershipExpired"},{inputs:[],type:"error",name:"PreRegistrationNotValid"},{inputs:[],type:"error",name:"RenewalTimeLimitExceeded"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotProposedAdmin"},{inputs:[],type:"error",name:"UserIsNotOwnerOfIdentity"},{inputs:[],type:"error",name:"UserIsNotOwnerOfOffer"},{inputs:[],type:"error",name:"UsernameAlreadyRegistered"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeEvvmAddress"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"offerID",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"acceptOffer"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptProposeAdmin"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"string",name:"value",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"addCustomMetadata"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeEvvmAddress"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelProposeAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelWithdrawPrincipalTokens"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"claimWithdrawPrincipalTokens"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"flushCustomMetadata"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"flushUsername"},{inputs:[],stateMutability:"view",type:"function",name:"getAdmin",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getAdminFullDetails",outputs:[{internalType:"address",name:"currentAdmin",type:"address"},{internalType:"address",name:"proposalAdmin",type:"address"},{internalType:"uint256",name:"timeToAcceptAdmin",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getAmountOfCustomMetadata",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddressFullDetails",outputs:[{internalType:"address",name:"currentEvvmAddress",type:"address"},{internalType:"address",name:"proposalEvvmAddress",type:"address"},{internalType:"uint256",name:"timeToAcceptEvvmAddress",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getCustomMetadataMaxSlotsOfIdentity",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getExpireDateOfIdentity",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getFullCustomMetadataOfIdentity",outputs:[{internalType:"string[]",name:"",type:"string[]"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getIdentityBasicMetadata",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getLengthOfOffersUsername",outputs:[{internalType:"uint256",name:"length",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getOffersOfUsername",outputs:[{internalType:"struct NameServiceStructs.OfferMetadata[]",name:"offers",type:"tuple[]",components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}]}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getOwnerOfIdentity",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"string",name:"username",type:"string"}],stateMutability:"view",type:"function",name:"getPriceOfRegistration",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPriceToAddCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getPriceToFlushCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getPriceToFlushUsername",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPriceToRemoveCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposedWithdrawAmountFullDetails",outputs:[{internalType:"uint256",name:"proposalAmountToWithdrawTokens",type:"uint256"},{internalType:"uint256",name:"timeToAcceptAmountToWithdrawTokens",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_key",type:"uint256"}],stateMutability:"view",type:"function",name:"getSingleCustomMetadataOfIdentity",outputs:[{internalType:"string",name:"",type:"string"}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_offerID",type:"uint256"}],stateMutability:"view",type:"function",name:"getSingleOfferOfUsername",outputs:[{internalType:"struct NameServiceStructs.OfferMetadata",name:"offer",type:"tuple",components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}]}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_randomNumber",type:"uint256"}],stateMutability:"pure",type:"function",name:"hashUsername",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"isUsernameAvailable",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"makeOffer",outputs:[{internalType:"uint256",name:"offerID",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes32",name:"hashPreRegisteredUsername",type:"bytes32"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"preRegistrationUsername"},{inputs:[{internalType:"address",name:"_adminToPropose",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"address",name:"_newEvvmAddress",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeChangeEvvmAddress"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeWithdrawPrincipalTokens"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"lockNumber",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"registrationUsername"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"uint256",name:"key",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"removeCustomMetadata"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"renewUsername"},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"seePriceToRenew",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"strictVerifyIfIdentityExist",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"verifyIfIdentityExists",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"verifyStrictAndGetOwnerOfIdentity",outputs:[{internalType:"address",name:"answer",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"offerID",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"withdrawOffer"}],devdoc:{kind:"dev",methods:{"acceptChangeEvvmAddress()":{details:"Can only be called after the time delay has passed"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Can only be called by current owner before expiration Acceptance Flow: 1. Validates user is current username owner 2. Validates offer exists and not expired 3. Transfers offer amount to seller 4. Transfers ownership to offerer 5. Processes optional priority fee 6. Deletes offer and unlocks tokens Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double acceptance Core.sol Integration: - Payment: offer amount via makeCaPay to seller - Priority fee: via requestPay (if > 0) - Fee Distribution: * 99.5% to seller (locked amount) * 0.5% + reward to staker (if applicable) - makeCaPay transfers from locked funds Ownership Transfer: - Changes identityDetails[username].owner - Preserves all metadata and expiration - Transfers all custom metadata slots Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases offer amount + marketplace fee - Distributes to seller and staker",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",offerID:"Unique identifier of offer to accept",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of current username owner",username:"Username being sold"}},"acceptProposeAdmin()":{details:"Can only be called by the proposed admin after the time delay has passed"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:`Metadata format: [schema]:[subschema]>[value] Standard Format Examples: - memberOf:>EVVM - socialMedia:x>jistro (Twitter/X handle) - email:dev>jistro[at]evvm.org (dev email) - email:callme>contact[at]jistro.xyz (contact) Schema Guidelines: - Based on https://schema.org/docs/schemas.html - ':' separates schema from subschema - '>' separates metadata from value - Pad spaces if schema/subschema < 5 chars - Use "socialMedia" for social networks Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + value - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Slot Management: - Increments customMetadataMaxSlots - Each slot holds one metadata entry - No limit on number of slots`,params:{identity:"Username to add metadata to",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",value:"Metadata string following format"}},"cancelChangeEvvmAddress()":{details:"Only the current admin can cancel pending proposals"},"cancelProposeAdmin()":{details:"Only the current admin can cancel pending proposals"},"cancelWithdrawPrincipalTokens()":{details:"Only the current admin can cancel pending proposals"},"claimWithdrawPrincipalTokens()":{details:"Can only be called after the time delay has passed"},constructor:{params:{_coreAddress:"The address of the EVVM Core contract.",_initialOwner:"The address granted administrative privileges."}},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"More gas-efficient than removing individually Flush Process: 1. Validates user owns username 2. Validates metadata slots exist (not empty) 3. Calculates cost based on slot count 4. Deletes all metadata entries in loop 5. Resets customMetadataMaxSlots to 0 Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushCustomMetadata (per slot) - Cost: 10x EVVM reward per metadata entry - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes batch rewards Efficiency: - Single transaction for all metadata - Batch pricing for multiple entries - Cheaper than calling removeCustomMetadata N times",params:{identity:"Username to flush all metadata from",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner"}},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Deletes username, metadata, makes available for re-registration Flush Process: 1. Validates user owns username 2. Validates not expired (must be active) 3. Validates is actual username (not temp hash) 4. Calculates cost based on metadata + username 5. Deletes all metadata entries 6. Resets username to default state 7. Preserves offerMaxSlots history Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushUsername - Cost: Base + (10x reward per metadata slot) - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes to caller Cleanup: - Deletes all custom metadata slots - Sets owner to address(0) - Sets expirationDate to 0 - Resets customMetadataMaxSlots to 0 - Keeps offerMaxSlots for history - Sets flagNotAUsername to 0x00 - Username becomes available for re-registration",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",username:"Username to completely remove"}},"getAdmin()":{details:"Returns the address with administrative privileges",returns:{_0:"The current admin address"}},"getAdminFullDetails()":{details:"Returns current admin, proposed admin, and proposal acceptance deadline",returns:{currentAdmin:"Current administrative address",proposalAdmin:"Proposed new admin address (if any)",timeToAcceptAdmin:"Timestamp when proposal can be accepted"}},"getAmountOfCustomMetadata(string)":{details:"Returns the count of metadata slots currently used",params:{_username:"The username to count metadata for"},returns:{_0:"Number of custom metadata entries"}},"getCoreAddress()":{details:"Returns the address of the EVVM contract used for payment processing",returns:{_0:"The current EVVM contract address"}},"getCoreAddressFullDetails()":{details:"Returns current EVVM address, proposed address, and proposal acceptance deadline",returns:{currentEvvmAddress:"Current EVVM contract address",proposalEvvmAddress:"Proposed new EVVM address (if any)",timeToAcceptEvvmAddress:"Timestamp when proposal can be accepted"}},"getCustomMetadataMaxSlotsOfIdentity(string)":{details:"Returns the total capacity for custom metadata entries",params:{_username:"The username to check metadata capacity for"},returns:{_0:"Maximum number of metadata slots"}},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getExpireDateOfIdentity(string)":{details:"Returns the timestamp when the username registration expires",params:{_identity:"The username to check expiration for"},returns:{_0:"The expiration timestamp in seconds since Unix epoch"}},"getFullCustomMetadataOfIdentity(string)":{details:"Returns an array containing all metadata strings in order",params:{_username:"The username to get metadata for"},returns:{_0:"Array of all custom metadata strings"}},"getIdentityBasicMetadata(string)":{details:"Returns essential metadata for quick identity verification",params:{_username:"The username to get basic info for"},returns:{_0:"Owner address and expiration timestamp"}},"getLengthOfOffersUsername(string)":{details:"Iterates through offers to find the actual count of non-empty slots",params:{_username:"The username to count offers for"},returns:{length:"Total number of offers that have been made"}},"getOffersOfUsername(string)":{details:"Returns both active and expired offers that haven't been withdrawn",params:{_username:"The username to get offers for"},returns:{offers:"Array of all offer metadata structures"}},"getOwnerOfIdentity(string)":{details:"Returns the current owner address for any valid identity",params:{_username:"The username to query"},returns:{_0:"Address of the username owner"}},"getPriceOfRegistration(string)":{details:"Price is fully dynamic based on existing offers and timing - If dosnt have offers, price is 100x current EVVM reward amount - If has offers, price is calculated via seePriceToRenew function",params:{username:"The username to get registration price for"},returns:{_0:"The current registration price in Principal Tokens"}},"getPriceToAddCustomMetadata()":{details:"Price is dynamic based on current EVVM reward amount",returns:{price:"Cost in Principal Tokens (10x current reward amount)"}},"getPriceToFlushCustomMetadata(string)":{details:"Cost scales with the number of metadata entries to remove",params:{_identity:"The username to calculate flush cost for"},returns:{price:"Total cost in Principal Tokens (10x reward amount per metadata entry)"}},"getPriceToFlushUsername(string)":{details:"Includes cost for metadata removal plus base username deletion fee",params:{_identity:"The username to calculate deletion cost for"},returns:{price:"Total cost in Principal Tokens (metadata flush cost + 1x reward amount)"}},"getPriceToRemoveCustomMetadata()":{details:"Price is dynamic based on current EVVM reward amount",returns:{price:"Cost in Principal Tokens (10x current reward amount)"}},"getProposedWithdrawAmountFullDetails()":{details:"Returns proposed withdrawal amount and acceptance deadline",returns:{proposalAmountToWithdrawTokens:"Proposed withdrawal amount in Principal Tokens",timeToAcceptAmountToWithdrawTokens:"Timestamp when proposal can be executed"}},"getSingleCustomMetadataOfIdentity(string,uint256)":{details:"Retrieves metadata at a specific slot position",params:{_key:"The index of the metadata entry to retrieve",_username:"The username to get metadata from"},returns:{_0:"The metadata string at the specified index"}},"getSingleOfferOfUsername(string,uint256)":{details:"Retrieves detailed information about a particular offer",params:{_offerID:"The ID/index of the specific offer",_username:"The username to get the offer from"},returns:{offer:"The complete offer metadata structure"}},"hashUsername(string,uint256)":{details:"Used in the commit-reveal scheme to prevent front-running attacks",params:{_randomNumber:"Random number to add entropy",_username:"The username to hash"},returns:{_0:"Hash of the username and random number"}},"isUsernameAvailable(string)":{details:"A username is available if it was never registered or has been expired for 60+ days",params:{_username:"The username to check availability for"},returns:{_0:"True if the username is available for registration"}},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Tokens are locked in the contract. A 0.5% marketplace fee is applied upon successful sale.",params:{amount:"Total amount offered (including fee).",expirationDate:"When the offer expires.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (locks tokens).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Offerer's authorization signature.",signaturePay:"Signature for the Core payment.",user:"The address of the offerer.",username:"The target username."},returns:{offerID:"The unique ID of the created offer."}},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Part of the commit-reveal scheme. Valid for 30 minutes.",params:{hashPreRegisteredUsername:"The keccak256 hash of (username + secret).",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (if fee is paid).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Registrant's authorization signature.",signaturePay:"Signature for the Core payment (if fee is paid).",user:"The address of the registrant."}},"proposeAdmin(address)":{details:"Time-delayed governance system for admin changes",params:{_adminToPropose:"Address of the proposed new admin"}},"proposeChangeEvvmAddress(address)":{details:"Critical function that affects payment processing integration",params:{_newEvvmAddress:"Address of the new EVVM contract"}},"proposeWithdrawPrincipalTokens(uint256)":{details:"Amount must be available after reserving funds for operations and locked offers",params:{_amount:"Amount of Principal Tokens to withdraw"}},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Validates format, availability, and payment. Grants 1 year of ownership.",params:{lockNumber:"The secret used in the pre-registration hash.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (registration fee + priority fee).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Registrant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"The address of the registrant.",username:"The plain-text username being registered."}},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Shifts all subsequent entries to fill gap Removal Process: 1. Validates user owns username 2. Validates key exists in metadata slots 3. Deletes entry at key position 4. Shifts all entries after key down by 1 5. Decrements customMetadataMaxSlots Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + key - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Array Reordering: - Shifts entries from key+1 to maxSlots - Maintains continuous slot indexing - No gaps in metadata array",params:{identity:"Username to remove metadata from",key:"Index of metadata entry to remove",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner"}},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Dynamic pricing based on timing and market demand Pricing Rules: - Free: Renewed within grace period after expiration - Variable: Based on highest active offer (min 500 PT) - Fixed: 500,000 PT if renewed >1 year early - Can renew up to 100 years in advance Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: seePriceToRenew calculates cost - Paid through requestPay (locks tokens) - Staker reward: 1x reward + 50% of price + fee - makeCaPay distributes rewards Renewal Logic: - Extends expirationDate by 366 days - Preserves ownership and all metadata - Cannot exceed 100 years (36500 days)",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",username:"Username to renew"}},"seePriceToRenew(string)":{details:"Pricing varies based on timing and market demand: - Free if renewed before expiration (within grace period) - Variable cost based on highest active offer (minimum 500 Principal Token) - Fixed 500,000 Principal Token if renewed more than 1 year before expiration",params:{_identity:"The username to calculate renewal price for"},returns:{price:"The cost in Principal Tokens to renew the username"}},"strictVerifyIfIdentityExist(string)":{details:"More strict version that reverts instead of returning false",params:{_username:"The username to verify"},returns:{_0:"True if the username exists (will revert if not)"}},"verifyIfIdentityExists(string)":{details:"Handles both pre-registrations and actual username registrations",params:{_identity:"The identity/username to check"},returns:{_0:"True if the identity exists and is valid"}},"verifyStrictAndGetOwnerOfIdentity(string)":{details:"Combines strict verification with owner lookup in one call",params:{_username:"The username to verify and get owner for"},returns:{answer:"Address of the username owner (reverts if username doesn't exist)"}},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Can only be called by offer creator or after expire Withdrawal Flow: 1. Validates offer exists and belongs to user 2. Optionally validates expiration date passed 3. Refunds locked tokens to offerer 4. Processes optional priority fee 5. Deletes offer and updates slot count Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double withdrawals Core.sol Integration: - Refund: offer amount via makeTransfer to offerer - Priority fee: via requestPay (if > 0) - Staker reward: 1x reward + priority fee - makeCaPay distributes to caller if staker Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases both offer amount and marketplace fee - Returns funds to original offerer",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",offerID:"Unique identifier of offer to withdraw",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address that made original offer",username:"Username offer was made for"}}},version:1},userdoc:{kind:"user",methods:{"acceptChangeEvvmAddress()":{notice:"Executes the approved EVVM address change"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Accepts marketplace offer and transfers ownership"},"acceptProposeAdmin()":{notice:"Accepts the admin proposal and becomes the new admin"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Adds custom metadata to username using schema format"},"cancelChangeEvvmAddress()":{notice:"Cancels the pending EVVM address change proposal"},"cancelProposeAdmin()":{notice:"Cancels the current admin proposal"},"cancelWithdrawPrincipalTokens()":{notice:"Cancels the pending token withdrawal proposal"},"claimWithdrawPrincipalTokens()":{notice:"Executes the approved token withdrawal"},constructor:{notice:"Initializes the NameService with the Core contract and initial administrator."},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Removes all custom metadata entries for username"},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Completely removes username and all data"},"getAdmin()":{notice:"Gets the current admin address"},"getAdminFullDetails()":{notice:"Gets complete admin information including pending proposals"},"getAmountOfCustomMetadata(string)":{notice:"Gets the number of custom metadata entries for a username"},"getCoreAddress()":{notice:"Gets the current EVVM contract address"},"getCoreAddressFullDetails()":{notice:"Gets complete EVVM address information including pending proposals"},"getCustomMetadataMaxSlotsOfIdentity(string)":{notice:"Gets the maximum number of metadata slots available for a username"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getExpireDateOfIdentity(string)":{notice:"Gets the expiration date of a username registration"},"getFullCustomMetadataOfIdentity(string)":{notice:"Retrieves all custom metadata entries for a username"},"getIdentityBasicMetadata(string)":{notice:"Gets basic identity information (owner and expiration date)"},"getLengthOfOffersUsername(string)":{notice:"Counts the total number of offers made for a username"},"getOffersOfUsername(string)":{notice:"Gets all offers made for a specific username"},"getOwnerOfIdentity(string)":{notice:"Gets the owner address of a registered identity"},"getPriceOfRegistration(string)":{notice:"Gets price to register an username"},"getPriceToAddCustomMetadata()":{notice:"Gets the current price to add custom metadata to a username"},"getPriceToFlushCustomMetadata(string)":{notice:"Gets the cost to remove all custom metadata entries from a username"},"getPriceToFlushUsername(string)":{notice:"Gets the cost to completely remove a username and all its data"},"getPriceToRemoveCustomMetadata()":{notice:"Gets the current price to remove a single custom metadata entry"},"getProposedWithdrawAmountFullDetails()":{notice:"Gets information about pending token withdrawal proposals"},"getSingleCustomMetadataOfIdentity(string,uint256)":{notice:"Gets a specific custom metadata entry by index"},"getSingleOfferOfUsername(string,uint256)":{notice:"Gets a specific offer for a username by offer ID"},"hashUsername(string,uint256)":{notice:"Creates a hash of username and random number for pre-registration"},"isUsernameAvailable(string)":{notice:"Checks if a username is available for registration"},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Places a purchase offer on an existing username."},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Commits a username hash to prevent front-running before registration."},"proposeAdmin(address)":{notice:"Proposes new admin address with 1-day delay"},"proposeChangeEvvmAddress(address)":{notice:"Proposes to change the EVVM contract address"},"proposeWithdrawPrincipalTokens(uint256)":{notice:"Proposes to withdraw Principal Tokens from the contract"},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Finalizes username registration by revealing the secret associated with a pre-registration."},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Removes specific custom metadata entry by key"},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Renews username registration for another year"},"seePriceToRenew(string)":{notice:"Calculates the cost to renew a username registration"},"strictVerifyIfIdentityExist(string)":{notice:"Strictly verifies if an identity exists and reverts if not found"},"verifyIfIdentityExists(string)":{notice:"Checks if an identity exists in the system"},"verifyStrictAndGetOwnerOfIdentity(string)":{notice:"Verifies identity exists and returns owner address"},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Withdraws marketplace offer and refunds tokens"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/nameService/NameService.sol":"NameService"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:64},nF={abi:[{type:"constructor",inputs:[{name:"_coreAddress",type:"address",internalType:"address"},{name:"_stakingAddress",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptFillFixedPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptFillPropotionalPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptMaxLimitFillFixedFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptPercentageFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptWithdrawal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addBalance",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOrder",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispatchOrder_fillFixedFee",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"amountOfTokenBToFill",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"},{name:"maxFillFixedFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispatchOrder_fillPropotionalFee",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"amountOfTokenBToFill",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"findMarket",inputs:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAllMarketOrders",inputs:[{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"orders",type:"tuple[]",internalType:"struct P2PSwapStructs.OrderForGetter[]",components:[{name:"marketId",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllMarketsMetadata",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct P2PSwapStructs.MarketInformation[]",components:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"maxSlot",type:"uint256",internalType:"uint256"},{name:"ordersAvailable",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getBalanceOfContract",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMarketMetadata",inputs:[{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.MarketInformation",components:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"maxSlot",type:"uint256",internalType:"uint256"},{name:"ordersAvailable",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getMaxLimitFillFixedFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMaxLimitFillFixedFeeProposal",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMyOrdersInSpecificMarket",inputs:[{name:"user",type:"address",internalType:"address"},{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"orders",type:"tuple[]",internalType:"struct P2PSwapStructs.OrderForGetter[]",components:[{name:"marketId",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getNextCurrentSyncNonce",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOrder",inputs:[{name:"market",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"}],outputs:[{name:"order",type:"tuple",internalType:"struct P2PSwapStructs.Order",components:[{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwnerProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwnerTimeToAccept",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPercentageFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getProposalPercentageFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getProposedWithdrawal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardPercentage",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.Percentage",components:[{name:"seller",type:"uint256",internalType:"uint256"},{name:"service",type:"uint256",internalType:"uint256"},{name:"mateStaker",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getRewardPercentageProposal",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.Percentage",components:[{name:"seller",type:"uint256",internalType:"uint256"},{name:"service",type:"uint256",internalType:"uint256"},{name:"mateStaker",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"makeOrder",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[{name:"market",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"proposeFillFixedPercentage",inputs:[{name:"_seller",type:"uint256",internalType:"uint256"},{name:"_service",type:"uint256",internalType:"uint256"},{name:"_mateStaker",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeFillPropotionalPercentage",inputs:[{name:"_seller",type:"uint256",internalType:"uint256"},{name:"_service",type:"uint256",internalType:"uint256"},{name:"_mateStaker",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeMaxLimitFillFixedFee",inputs:[{name:"_maxLimitFillFixedFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeOwner",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposePercentageFee",inputs:[{name:"_percentageFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeWithdrawal",inputs:[{name:"_tokenToWithdraw",type:"address",internalType:"address"},{name:"_amountToWithdraw",type:"uint256",internalType:"uint256"},{name:"_to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeFillFixedPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeFillPropotionalPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeMaxLimitFillFixedFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposePercentageFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeWithdrawal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"stake",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unstake",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"InvalidServiceSignature",inputs:[]}],bytecode:{object:"0x60806040523461011957604051601f612d6c38819003918201601f19168301916001600160401b03831184841017610105578084926060946040528339810103126101195761004d8161011d565b90610066604061005f6020840161011d565b920161011d565b5f80546001600160a01b039485166001600160a01b03199182161790915560018054938516938216939093179092556002805491909316911617905566038d7ea4c68000600f556101f4600c55604051606081018181106001600160401b03821117610105576103e89160409182526113888152610fa060208201520152611388600555610fa06006556103e8600755604051612c3a90816101328239f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b51906001600160a01b03821682036101195756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a96865b1461217a575080631128a79a1461213f578063144384281461208f57806316790f8114611f5e57806317857d9d14611efa57806317c8515214611eb15780631ea43a7d14611d905780631f80982114611d7357806321e5383a14611d2357806326415c7114611cd1578063280e32fb14611c6057806328b44b4b14611c285780632e17de7814611baa57806335287eaf14611b6b57806335b2c22c146119e757806354282704146119825780635dc220751461153e5780635e1a3573146114c15780636b6445b61461144f5780636cd30148146113b25780636cdbf9271461136c5780637280ff351461132f57806374efedc9146112f057806376a75a2914610fe9578063775f3f7e146112d25780637b8ad14914611015578063893d20e814610fee5780638eb163d314610fe957806392aa42c914610e37578063952469d014610a385780639610067114610e195780639c34866614610df25780639dc2060714610dd4578063a694fc3a14610a7a578063a936e0d114610a3d578063af5cecc014610a38578063b3d4fd79146109fb578063b54cfef0146105b6578063b5ed298a14610557578063b7ac72ff146104b1578063c721316314610447578063cfb35fd0146103b2578063d0e3692d14610312578063d89ea03c146102c9578063db7ccd631461027b5763ebbc496514610218575f80fd5b346102785780600319360112610278576003546001600160a01b03811680331480159061026d575b610269576001600160601b0360a01b60025416176002556001600160601b0360a01b1660035580f35b8280fd5b506004544211610240565b80fd5b5034610278576040366003190112610278576001600160a01b03604061029f612202565b92826102a9612218565b9416815260176020522091165f52602052602060405f2054604051908152f35b503461027857806003193601126102785760806001600160a01b03601254166013546001600160a01b036014541660155491604051938452602084015260408301526060820152f35b50346102785760403660031901126102785761032c612202565b60206001600160a01b0360448185541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa9081156103a7576020929161037a575b506040519015158152f35b61039a9150823d84116103a0575b61039281836124b6565b8101906126f6565b5f61036f565b503d610388565b6040513d84823e3d90fd5b5034610278576103c136612288565b916001600160a01b03600254163314801590610429575b6104255782604080516103ea81612462565b8381528460208201520152600855600955600a5562015180420180421161041157600b5580f35b634e487b7160e01b82526011600452602482fd5b8380fd5b506127106104408461043b8585612425565b612425565b14156103d8565b50346102785780600319360112610278576104606125ab565b50506104ad60405161047181612462565b60055481526006546020820152600754604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b0390f35b5034610278576060366003190112610278576104cb612202565b6024356104d661222e565b906001600160a01b03600254163314801590610539575b610425576001600160a01b038093166001600160601b0360a01b6012541617601255601355166001600160601b0360a01b60145416176014556201518042018042116104115760155580f35b506001600160a01b0383168452601a602052604084205481116104ed565b503461027857602036600319011261027857610571612202565b6001600160a01b036002541633036105b2576001600160a01b03166001600160601b0360a01b60035416176003556201518042018042116104115760045580f35b5080fd5b503461027857806105c636612300565b93899f9b9e9891958f9397949d8c9f9b819d8c546001600160a01b031696604051936020850160a0905260c085016009905260e085016836b0b5b2a7b93232b960b91b90526001600160a01b031660408501526001600160a01b03166060840152608083015260a082015260e08152610641610100826124b6565b8051906020012094843b156109f7578b61067a8f96948c98969488946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156109ec579089916109d3575b50506106a993929161069f9136916126b0565b91888a8888612786565b6001600160a01b03831684526017602052604084206001600160a01b0388165f5260205260405f20549687156108fc575b508684526018602052600260408520015487855260186020526003604086200154145f146108595750600260249787855260186020528160408620016107208154612514565b905587855260186020526003604086200161073b8154612514565b9055878552601860205281604086200154965b6001600160a01b036040519461076386612462565b16845260208401908152604084019182528886526019602052604086208887526020526001600160a01b038060408820955116166001600160601b0360a01b8554161784555160018401555191015560206001600160a01b0383541660405197888092630a1ad2d160e21b82523360048301525afa80156103a757604096839161083a575b5061081c575b5050156108105761080460ff60035b1633612890565b82519182526020820152f35b61080460ff60026107fd565b8280610829575b506107ee565b6108339133612721565b5f82610823565b610853915060203d6020116103a05761039281836124b6565b5f6107e8565b9660015b87855260186020526002604086200154600181018091116108e85781116108db578785526019602052604085208186526020526001600160a01b03604086205416156108b1576108ac90612514565b61085d565b6024985090600291965b8886526018602052600360408720016108d48154612514565b905561074e565b50600290602498966108bb565b634e487b7160e01b86526011600452602486fd5b90965061090a601654612514565b806016556001600160a01b03841685526017602052604085206001600160a01b0383165f5260205260405f20556003604051916109468361247e565b6001600160a01b03851683526001600160a01b036020840191168152604083018681526001600160a01b03606085019288845260165489526018602052818060408b20975116166001600160601b0360a01b87541617865551166001600160a01b036001860191166001600160601b0360a01b82541617905551600284015551910155601654955f6106da565b816109dd916124b6565b6109e857875f61068c565b8780fd5b6040513d8b823e3d90fd5b8d80fd5b5034610278576020366003190112610278576001600160a01b0360025416330361027857600435600d5562015180420180421161041157600e5580f35b6123cf565b50346102785780600319360112610278576001600160a01b03600254163314801590610a6f575b6102785780600d5580f35b50600e544211610a64565b503461027857602036600319011261027857806004356001600160a01b03600254163314801590610d4b575b610c40576001600160a01b0360015416803b15610d47578280916024604051809481936399b4c3ef60e01b83528760048401525af1908115610d3c578391610d27575b50506001600160a01b0360015416604051630412d6ed60e31b8152602081600481855afa8015610d1c576001600160a01b03918591610cfd575b501660405192630412d6ed60e31b8452602084600481865afa938415610cd5576001600160a01b03946020918791610ce0575b5060046040518097819363280e32fb60e01b8352165afa938415610cd5578594610ca4575b50604051631961201760e31b8152602081600481875afa908115610c99578691610c5c575b5090610bab9161270e565b90803b15610c585760405163c898a6e960e01b81526001600160a01b039384166004820152939092166024840152604483015282908290606490829084905af180156103a757610c43575b506001600160a01b0360015416803b15610c405781809160046040518094819363c9d2beb160e01b83525af180156103a757610c2f5750f35b81610c39916124b6565b6102785780f35b50fd5b81610c4d916124b6565b61027857805f610bf6565b8480fd5b919550506020813d602011610c91575b81610c79602093836124b6565b81010312610c8d5751859490610bab610ba0565b5f80fd5b3d9150610c6c565b6040513d88823e3d90fd5b610cc791945060203d602011610cce575b610cbf81836124b6565b810190612636565b925f610b7b565b503d610cb5565b6040513d87823e3d90fd5b610cf79150823d8411610cce57610cbf81836124b6565b5f610b56565b610d16915060203d602011610cce57610cbf81836124b6565b5f610b23565b6040513d86823e3d90fd5b81610d31916124b6565b610c4057815f610ae9565b6040513d85823e3d90fd5b5050fd5b50600460206001600160a01b036001541660405192838092631961201760e31b82525afa908115610d3c578391610d9c575b50610d88908261270e565b60018352601a602052604083205410610aa6565b9250506020823d602011610dcc575b81610db8602093836124b6565b81010312610c8d57610d8883925190610d7d565b3d9150610dab565b50346102785780600319360112610278576020601054604051908152f35b503461027857806003193601126102785760206001600160a01b0360035416604051908152f35b50346102785780600319360112610278576020600c54604051908152f35b50346102785780610e4736612300565b969a959194929b97998e94919a819e9a9f6001600160a01b03610e6e91541692898c6129b0565b92823b15610fe5578b610e9f8f979289979388946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156103a757610fcc575b50506001600160a01b0384168b52601760205260408b206001600160a01b0383165f5260205260405f205497610ee48a8a612a0a565b928c60028501998a5491508d610f0a612710610f02600c548661270e565b048094612425565b809110610f87578e610f789f8b610f5b98610f4595610f639f610f3e948a60019f8d93610f389136916126b0565b95612786565b848b612a38565b9954906001600160a01b03865416913393612a5a565b015491612721565b15610f7b57610f73600533612890565b61284c565b80f35b610f7360ff60046107fd565b60405162461bcd60e51b815260206004820152601f60248201527f496e737566696369656e7420616d6f756e744f66546f6b656e546f46696c6c006044820152606490fd5b81610fd6916124b6565b610fe1578a5f610eae565b8a80fd5b8680fd5b6122a2565b503461027857806003193601126102785760206001600160a01b0360025416604051908152f35b5034610278576101a036600319011261027857611030612202565b611038612218565b61104061222e565b6064359260843592611050612244565b9160c435916001600160a01b03831683036109e8576101043567ffffffffffffffff81116112ce5761108690369060040161225a565b969094610124358a610164359967ffffffffffffffff8b116105b2576110b18c9b369060040161225a565b9490998b6110cf610184359f6001600160a01b03875416928b6129b0565b813b156112ca578580946111018d978f96604051998a9889978896637d3d171560e11b885260e4359360048901612655565b03925af180156103a7576112b5575b50506001600160a01b0384168b52601760205260408b206001600160a01b0389165f5260205260405f2054976111468a8a612a0a565b9360028501988d8d8b54918091612710611162600c548661270e565b04111561128f5750508d6103e88102908082046103e8149015171561127a576127109004969594939291906111ab8f5b6111a58a6111a08386612425565b612418565b92612425565b908310611236578f9e610f789f6111f760019a8f610f639f8f8a906111ea928d610f5b9f6111df610f459d8f9236916126b0565b946101443594612786565b5492506111a08484612425565b6112018383612425565b90861015908161122c575b50156112255761121d915084612418565b92848b612a38565b5092610f3e565b905085105f61120c565b606460405162461bcd60e51b815260206004820152602060248201527f496e737566696369656e7420616d6f756e744f66546f6b656e42546f46696c6c6044820152fd5b50634e487b7160e01b8f52601160045260248ffd5b6111ab9f50979695949392919097506127106112ad600c548361270e565b049e8f611192565b816112bf916124b6565b610fe1578a5f611110565b8580fd5b8880fd5b50346102785780600319360112610278576020600454604051908152f35b50346102785780600319360112610278576001600160a01b03600254163314801590611324575b61027857601054600f5580f35b506011544211611317565b5034610278576020366003190112610278576001600160a01b03600254163303610278576004356010556201518042018042116104115760115580f35b50346102785761137b36612288565b916001600160a01b036002541633036104255761271061139f8461043b8585612425565b036104255782604080516103ea81612462565b5034610278576020366003190112610278576113cc612202565b9060206001600160a01b03602481845416946040519586938492630d9a602960e31b84521660048301525afa9081156114435790611410575b602090604051908152f35b506020813d60201161143b575b8161142a602093836124b6565b81010312610c8d5760209051611405565b3d915061141d565b604051903d90823e3d90fd5b50346102785760203660031901126102785761148260406080926114716124f0565b506004358152601860205220612567565b6114bf6040518092606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565bf35b50346102785760403660031901126102785760406060916114e06125ab565b506004358152601960205281812060243582526020522060405161150381612462565b6001600160a01b0382541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b50346102785761016036600319011261027857611559612202565b611561612218565b9061156a61222e565b90606435608435936001600160a01b03851685036112ca5761158a612244565b9060e43567ffffffffffffffff81116109e8576115ab90369060040161225a565b90956101043596896101443567ffffffffffffffff81116105b2576115d490369060040161225a565b94909a6001600160a01b0383541693604051946020860160808152600b60a08801526a31b0b731b2b627b93232b960a91b60c08801526001600160a01b038a16968760408201526001600160a01b03891660608201528c608082015260c0815261163f60e0826124b6565b519020813b156112ca578580946116748f978e96604051998a9889978896637d3d171560e11b885260c4359360048901612655565b03925af180156103a757611969575b505260176020526001600160a01b0360408a2091165f5260205260405f20549283158015611937575b61190257889187151598896117c3575b50505093610f7391836116e79652601960205260408920858a52602052600160408a20015491612721565b6001600160a01b0383541690604051630a1ad2d160e21b8152336004820152602081602481865afa908115610cd55785916117a4575b508061179d575b611747575b50501561173b57610f78600333612890565b610f7860ff60026107fd565b60206004926040519384809263280e32fb60e01b82525afa8015610d1c5761177792859161177e575b5033612721565b5f80611729565b611797915060203d602011610cce57610cbf81836124b6565b5f611770565b5082611724565b6117bd915060203d6020116103a05761039281836124b6565b5f61171d565b60049060206001600160a01b038654166040519384809263280e32fb60e01b82525afa918215610cd55785926118df575b50611801919236916126b0565b906001600160a01b03845416803b15610c58576001600160a01b03856101a48b602083978f869a87916040519c8d9b8c9a8b9863487e5a7760e11b8a5216600489015230602489015261016060448901528961016489015216606487015287608487015260a48601523060c48601521660e4840152610124356101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156103a7576118ca575b80806116bc565b816118d4916124b6565b610fe557865f6118c3565b61180192506118fc9060203d602011610cce57610cbf81836124b6565b916117f4565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037b93232b960991b6044820152606490fd5b50838952601960205260408920858a526020526001600160a01b0360408a2054166001600160a01b03871614156116ac565b81611973916124b6565b61197e57895f611683565b8980fd5b50346102785780600319360112610278576001600160a01b036002541633148015906119dc575b610278576001600160601b0360a01b60125416601255806013556001600160601b0360a01b601454166014558060155580f35b5060155442116119a9565b503461027857604036600319011261027857611a01612202565b6024358083526018602052600260408420015460018101809111611b5757611a28906125c9565b906001600160a01b0360019316925b81855260186020526002604086200154600181018091116108e8578111611b4957818552601960205260408520818652602052836001600160a01b0360408720541614611a8d575b611a8890612514565b611a37565b8185526019602052604085208186526020526001600160a01b03604086205416828652601960205260408620828752602052600160408720015483875260196020526040872083885260205260026040882001549060405192611aef84612432565b8584528460208501526040840152606083015260808201525f19820190828211611b355781611b2d91611b26611a88959488612553565b5285612553565b509050611a7f565b634e487b7160e01b87526011600452602487fd5b604051806104ad8582612194565b634e487b7160e01b84526011600452602484fd5b50346102785780600319360112610278576001600160a01b03600254163314801590611b9f575b61027857600d54600c5580f35b50600e544211611b92565b5034610c8d576020366003190112610c8d576001600160a01b03600254163303610c8d576001600160a01b0360015416803b15610c8d575f80916024604051809481936320a719f560e21b835260043560048401525af18015611c1d57611c0f575080f35b611c1b91505f906124b6565b005b6040513d5f823e3d90fd5b34610c8d576020366003190112610c8d576001600160a01b03611c49612202565b165f52601a602052602060405f2054604051908152f35b34610c8d575f366003190112610c8d57600460206001600160a01b035f54166040519283809263280e32fb60e01b82525afa8015611c1d576020915f91611cb4575b506001600160a01b0360405191168152f35b611ccb9150823d8411610cce57610cbf81836124b6565b82611ca2565b34610c8d575f366003190112610c8d576003546001600160a01b0381163314801590611d18575b610c8d5773ffffffffffffffffffffffffffffffffffffffff1916600355005b506004544211611cf8565b34610c8d576040366003190112610c8d57611d3c612202565b6001600160a01b03600254163303610c8d576001600160a01b03165f52601a60205260405f20611d6f6024358254612425565b9055005b34610c8d575f366003190112610c8d576020600f54604051908152f35b34610c8d576020366003190112610c8d57600435805f526018602052600260405f20015460018101809111611e9d57611dc8906125c9565b9060015b815f526018602052600260405f20015460018101809111611e9d578111611b4957815f52601960205260405f20815f526020526001600160a01b0360405f205416611e20575b611e1b90612514565b611dcc565b5f82815260196020908152604080832084845290915290819020805460018201546002909201549251939291906001600160a01b0316611e5f85612432565b8585528360208601526040850152606084015260808301525f19810191818311611e9d5782611e9591611b26611e1b9588612553565b509050611e12565b634e487b7160e01b5f52601160045260245ffd5b34610c8d575f366003190112610c8d57600460206001600160a01b035f541660405192838092630be428a960e11b82525afa8015611c1d575f9061141057602090604051908152f35b34610c8d575f366003190112610c8d57611f126125ab565b506104ad604051611f2281612462565b60085481526009546020820152600a54604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b34610c8d575f366003190112610c8d576016546001810190818111611e9d57611f86826124d8565b91611f9460405193846124b6565b808352611fa3601f19916124d8565b015f5b81811061207857505060015b8181111561203a57826040518091602082016020835281518091526020604084019201905f5b818110611fe6575050500390f35b91935091602060808261202c6001948851606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565b019401910191849392611fd8565b805f52601860205260405f20905f19810191818311611e9d576120739261206361206d92612567565b611b268288612553565b50612514565b611fb2565b6020906120836124f0565b82828701015201611fa6565b34610c8d575f366003190112610c8d576001600160a01b03600254163314801590612134575b610c8d576120dd6001600160a01b03601454166001600160a01b036012541660135491612721565b6013546001600160a01b03601254165f52601a60205261210260405f20918254612418565b90556001600160601b0360a01b601254166012555f6013556001600160601b0360a01b601454166014555f6015555f80f35b5060155442116120b5565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061216f575b610c8d575f601055005b506011544211612165565b34610c8d575f366003190112610c8d57602090600d548152f35b60206040818301928281528451809452019201905f5b8181106121b75750505090565b909192602060a0600192608087518051835284810151858401526001600160a01b036040820151166040840152606081015160608401520151608082015201940191019190916121aa565b600435906001600160a01b0382168203610c8d57565b602435906001600160a01b0382168203610c8d57565b604435906001600160a01b0382168203610c8d57565b60a435906001600160a01b0382168203610c8d57565b9181601f84011215610c8d5782359167ffffffffffffffff8311610c8d5760208381860195010111610c8d57565b6060906003190112610c8d57600435906024359060443590565b34610c8d575f366003190112610c8d576001600160a01b036002541633148015906122f5575b610c8d575f604080516122da81612462565b82815282602082015201525f6008555f6009555f600a555f80f35b50600b5442116122c8565b610180600319820112610c8d576004356001600160a01b0381168103610c8d57916024356001600160a01b0381168103610c8d57916044356001600160a01b0381168103610c8d5791606435916084359160a4356001600160a01b0381168103610c8d579160c4356001600160a01b0381168103610c8d579160e435916101043567ffffffffffffffff8111610c8d578161239d9160040161225a565b9290929161012435916101443591610164359067ffffffffffffffff8211610c8d576123cb9160040161225a565b9091565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061240d575b610c8d57600854600555600954600655600a54600755005b50600b5442116123f5565b91908203918211611e9d57565b91908201809211611e9d57565b60a0810190811067ffffffffffffffff82111761244e57604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761244e57604052565b6080810190811067ffffffffffffffff82111761244e57604052565b6040810190811067ffffffffffffffff82111761244e57604052565b90601f8019910116810190811067ffffffffffffffff82111761244e57604052565b67ffffffffffffffff811161244e5760051b60200190565b604051906124fd8261247e565b5f6060838281528260208201528260408201520152565b5f198114611e9d5760010190565b80511561252f5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561252f5760400190565b805182101561252f5760209160051b010190565b906040516125748161247e565b6060600382946001600160a01b0381541684526001600160a01b036001820154166020850152600281015460408501520154910152565b604051906125b882612462565b5f6040838281528260208201520152565b906125d3826124d8565b6125e060405191826124b6565b82815280926125f1601f19916124d8565b01905f5b82811061260157505050565b60209060405161261081612432565b5f81525f838201525f60408201525f60608201525f6080820152828285010152016125f5565b90816020910312610c8d57516001600160a01b0381168103610c8d5790565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b92919267ffffffffffffffff821161244e57604051916126da601f8201601f1916602001846124b6565b829481845281830111610c8d578281602093845f960137010152565b90816020910312610c8d57518015158103610c8d5790565b81810292918115918404141715611e9d57565b90916001600160a01b035f5416803b15610c8d5760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015611c1d5761277a5750565b5f612784916124b6565b565b9295949190936001600160a01b035f541693843b15610c8d5760205f976001600160a01b0399958a6101a49581988c986040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b0152166064890152608488015260a48701523060c48701521660e48501526101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af18015611c1d5761277a5750565b90815f52601960205260405f20905f5260205260405f206001600160601b0360a01b81541690555f526018602052600360405f200180548015611e9d575f19019055565b6001600160a01b035f5416604051630a1ad2d160e21b81526001600160a01b0383166004820152602081602481855afa908115611c1d575f91612991575b506128d857505050565b60405163280e32fb60e01b815290602082600481845afa918215611c1d575f9261296c575b506020600491604051928380926309a69f5760e01b82525afa908115611c1d575f91612938575b50612784936129329161270e565b91612721565b90506020813d602011612964575b81612953602093836124b6565b81010312610c8d5751612784612924565b3d9150612946565b6004919250612989602091823d8411610cce57610cbf81836124b6565b9291506128fd565b6129aa915060203d6020116103a05761039281836124b6565b5f6128ce565b916001600160a01b036040519281602085019560808752600d60a08701526c3234b9b830ba31b427b93232b960991b60c0870152166040850152166060830152608082015260c08152612a0460e0826124b6565b51902090565b8015611902575f52601960205260405f20905f5260205260405f20906001600160a01b038254161561190257565b91838111612a4857505050505f90565b612a559361293291612418565b600190565b949190612a7d612a8d91959495612710612a766005548661270e565b0490612425565b92612710612a766007548561270e565b9260405194612a9d6060876124b6565b6002865260405f5b818110612be1575050612b23612b459594936001600160a01b0393612710938560405191612ad28361249a565b888352166020820152612ae48a612522565b52612aee89612522565b508460405191612afd8361249a565b888352166020820152612b0f89612543565b52612b1988612543565b506006549061270e565b04951694855f52601a602052612b3e60405f20918254612425565b9055612425565b906001600160a01b035f541691823b15610c8d5792906040519384926353d04b7b60e11b8452606484016060600486015283518091526020608486019401905f5b818110612bb357505050835f9593819387936024840152604483015203925af18015611c1d5761277a5750565b8251805187526020908101516001600160a01b03168188015289975060409096019590920191600101612b86565b602090604051612bf08161249a565b5f81525f8382015282828b01015201612aa556fea26469706673582212202ce3de043b14261a3291a1fde70c7d34ff790f6a8b685b6974bf8d1ad45d3f3364736f6c63430008210033",sourceMap:"1901:33735:66:-:0;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;-1:-1:-1;;;;;;1901:33735:66;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;2887:14;1901:33735;;;;;;;;;;;2942:11;2911:20;1901:33735;2987:3;2963:13;1901:33735;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;3117:4;1901:33735;;;;;3060:4;1901:33735;;3087:4;1901:33735;3019:113;;1901:33735;3019:113;1901:33735;3060:4;3000:132;1901:33735;3087:4;1901:33735;;3117:4;1901:33735;;;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a96865b1461217a575080631128a79a1461213f578063144384281461208f57806316790f8114611f5e57806317857d9d14611efa57806317c8515214611eb15780631ea43a7d14611d905780631f80982114611d7357806321e5383a14611d2357806326415c7114611cd1578063280e32fb14611c6057806328b44b4b14611c285780632e17de7814611baa57806335287eaf14611b6b57806335b2c22c146119e757806354282704146119825780635dc220751461153e5780635e1a3573146114c15780636b6445b61461144f5780636cd30148146113b25780636cdbf9271461136c5780637280ff351461132f57806374efedc9146112f057806376a75a2914610fe9578063775f3f7e146112d25780637b8ad14914611015578063893d20e814610fee5780638eb163d314610fe957806392aa42c914610e37578063952469d014610a385780639610067114610e195780639c34866614610df25780639dc2060714610dd4578063a694fc3a14610a7a578063a936e0d114610a3d578063af5cecc014610a38578063b3d4fd79146109fb578063b54cfef0146105b6578063b5ed298a14610557578063b7ac72ff146104b1578063c721316314610447578063cfb35fd0146103b2578063d0e3692d14610312578063d89ea03c146102c9578063db7ccd631461027b5763ebbc496514610218575f80fd5b346102785780600319360112610278576003546001600160a01b03811680331480159061026d575b610269576001600160601b0360a01b60025416176002556001600160601b0360a01b1660035580f35b8280fd5b506004544211610240565b80fd5b5034610278576040366003190112610278576001600160a01b03604061029f612202565b92826102a9612218565b9416815260176020522091165f52602052602060405f2054604051908152f35b503461027857806003193601126102785760806001600160a01b03601254166013546001600160a01b036014541660155491604051938452602084015260408301526060820152f35b50346102785760403660031901126102785761032c612202565b60206001600160a01b0360448185541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa9081156103a7576020929161037a575b506040519015158152f35b61039a9150823d84116103a0575b61039281836124b6565b8101906126f6565b5f61036f565b503d610388565b6040513d84823e3d90fd5b5034610278576103c136612288565b916001600160a01b03600254163314801590610429575b6104255782604080516103ea81612462565b8381528460208201520152600855600955600a5562015180420180421161041157600b5580f35b634e487b7160e01b82526011600452602482fd5b8380fd5b506127106104408461043b8585612425565b612425565b14156103d8565b50346102785780600319360112610278576104606125ab565b50506104ad60405161047181612462565b60055481526006546020820152600754604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b0390f35b5034610278576060366003190112610278576104cb612202565b6024356104d661222e565b906001600160a01b03600254163314801590610539575b610425576001600160a01b038093166001600160601b0360a01b6012541617601255601355166001600160601b0360a01b60145416176014556201518042018042116104115760155580f35b506001600160a01b0383168452601a602052604084205481116104ed565b503461027857602036600319011261027857610571612202565b6001600160a01b036002541633036105b2576001600160a01b03166001600160601b0360a01b60035416176003556201518042018042116104115760045580f35b5080fd5b503461027857806105c636612300565b93899f9b9e9891958f9397949d8c9f9b819d8c546001600160a01b031696604051936020850160a0905260c085016009905260e085016836b0b5b2a7b93232b960b91b90526001600160a01b031660408501526001600160a01b03166060840152608083015260a082015260e08152610641610100826124b6565b8051906020012094843b156109f7578b61067a8f96948c98969488946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156109ec579089916109d3575b50506106a993929161069f9136916126b0565b91888a8888612786565b6001600160a01b03831684526017602052604084206001600160a01b0388165f5260205260405f20549687156108fc575b508684526018602052600260408520015487855260186020526003604086200154145f146108595750600260249787855260186020528160408620016107208154612514565b905587855260186020526003604086200161073b8154612514565b9055878552601860205281604086200154965b6001600160a01b036040519461076386612462565b16845260208401908152604084019182528886526019602052604086208887526020526001600160a01b038060408820955116166001600160601b0360a01b8554161784555160018401555191015560206001600160a01b0383541660405197888092630a1ad2d160e21b82523360048301525afa80156103a757604096839161083a575b5061081c575b5050156108105761080460ff60035b1633612890565b82519182526020820152f35b61080460ff60026107fd565b8280610829575b506107ee565b6108339133612721565b5f82610823565b610853915060203d6020116103a05761039281836124b6565b5f6107e8565b9660015b87855260186020526002604086200154600181018091116108e85781116108db578785526019602052604085208186526020526001600160a01b03604086205416156108b1576108ac90612514565b61085d565b6024985090600291965b8886526018602052600360408720016108d48154612514565b905561074e565b50600290602498966108bb565b634e487b7160e01b86526011600452602486fd5b90965061090a601654612514565b806016556001600160a01b03841685526017602052604085206001600160a01b0383165f5260205260405f20556003604051916109468361247e565b6001600160a01b03851683526001600160a01b036020840191168152604083018681526001600160a01b03606085019288845260165489526018602052818060408b20975116166001600160601b0360a01b87541617865551166001600160a01b036001860191166001600160601b0360a01b82541617905551600284015551910155601654955f6106da565b816109dd916124b6565b6109e857875f61068c565b8780fd5b6040513d8b823e3d90fd5b8d80fd5b5034610278576020366003190112610278576001600160a01b0360025416330361027857600435600d5562015180420180421161041157600e5580f35b6123cf565b50346102785780600319360112610278576001600160a01b03600254163314801590610a6f575b6102785780600d5580f35b50600e544211610a64565b503461027857602036600319011261027857806004356001600160a01b03600254163314801590610d4b575b610c40576001600160a01b0360015416803b15610d47578280916024604051809481936399b4c3ef60e01b83528760048401525af1908115610d3c578391610d27575b50506001600160a01b0360015416604051630412d6ed60e31b8152602081600481855afa8015610d1c576001600160a01b03918591610cfd575b501660405192630412d6ed60e31b8452602084600481865afa938415610cd5576001600160a01b03946020918791610ce0575b5060046040518097819363280e32fb60e01b8352165afa938415610cd5578594610ca4575b50604051631961201760e31b8152602081600481875afa908115610c99578691610c5c575b5090610bab9161270e565b90803b15610c585760405163c898a6e960e01b81526001600160a01b039384166004820152939092166024840152604483015282908290606490829084905af180156103a757610c43575b506001600160a01b0360015416803b15610c405781809160046040518094819363c9d2beb160e01b83525af180156103a757610c2f5750f35b81610c39916124b6565b6102785780f35b50fd5b81610c4d916124b6565b61027857805f610bf6565b8480fd5b919550506020813d602011610c91575b81610c79602093836124b6565b81010312610c8d5751859490610bab610ba0565b5f80fd5b3d9150610c6c565b6040513d88823e3d90fd5b610cc791945060203d602011610cce575b610cbf81836124b6565b810190612636565b925f610b7b565b503d610cb5565b6040513d87823e3d90fd5b610cf79150823d8411610cce57610cbf81836124b6565b5f610b56565b610d16915060203d602011610cce57610cbf81836124b6565b5f610b23565b6040513d86823e3d90fd5b81610d31916124b6565b610c4057815f610ae9565b6040513d85823e3d90fd5b5050fd5b50600460206001600160a01b036001541660405192838092631961201760e31b82525afa908115610d3c578391610d9c575b50610d88908261270e565b60018352601a602052604083205410610aa6565b9250506020823d602011610dcc575b81610db8602093836124b6565b81010312610c8d57610d8883925190610d7d565b3d9150610dab565b50346102785780600319360112610278576020601054604051908152f35b503461027857806003193601126102785760206001600160a01b0360035416604051908152f35b50346102785780600319360112610278576020600c54604051908152f35b50346102785780610e4736612300565b969a959194929b97998e94919a819e9a9f6001600160a01b03610e6e91541692898c6129b0565b92823b15610fe5578b610e9f8f979289979388946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156103a757610fcc575b50506001600160a01b0384168b52601760205260408b206001600160a01b0383165f5260205260405f205497610ee48a8a612a0a565b928c60028501998a5491508d610f0a612710610f02600c548661270e565b048094612425565b809110610f87578e610f789f8b610f5b98610f4595610f639f610f3e948a60019f8d93610f389136916126b0565b95612786565b848b612a38565b9954906001600160a01b03865416913393612a5a565b015491612721565b15610f7b57610f73600533612890565b61284c565b80f35b610f7360ff60046107fd565b60405162461bcd60e51b815260206004820152601f60248201527f496e737566696369656e7420616d6f756e744f66546f6b656e546f46696c6c006044820152606490fd5b81610fd6916124b6565b610fe1578a5f610eae565b8a80fd5b8680fd5b6122a2565b503461027857806003193601126102785760206001600160a01b0360025416604051908152f35b5034610278576101a036600319011261027857611030612202565b611038612218565b61104061222e565b6064359260843592611050612244565b9160c435916001600160a01b03831683036109e8576101043567ffffffffffffffff81116112ce5761108690369060040161225a565b969094610124358a610164359967ffffffffffffffff8b116105b2576110b18c9b369060040161225a565b9490998b6110cf610184359f6001600160a01b03875416928b6129b0565b813b156112ca578580946111018d978f96604051998a9889978896637d3d171560e11b885260e4359360048901612655565b03925af180156103a7576112b5575b50506001600160a01b0384168b52601760205260408b206001600160a01b0389165f5260205260405f2054976111468a8a612a0a565b9360028501988d8d8b54918091612710611162600c548661270e565b04111561128f5750508d6103e88102908082046103e8149015171561127a576127109004969594939291906111ab8f5b6111a58a6111a08386612425565b612418565b92612425565b908310611236578f9e610f789f6111f760019a8f610f639f8f8a906111ea928d610f5b9f6111df610f459d8f9236916126b0565b946101443594612786565b5492506111a08484612425565b6112018383612425565b90861015908161122c575b50156112255761121d915084612418565b92848b612a38565b5092610f3e565b905085105f61120c565b606460405162461bcd60e51b815260206004820152602060248201527f496e737566696369656e7420616d6f756e744f66546f6b656e42546f46696c6c6044820152fd5b50634e487b7160e01b8f52601160045260248ffd5b6111ab9f50979695949392919097506127106112ad600c548361270e565b049e8f611192565b816112bf916124b6565b610fe1578a5f611110565b8580fd5b8880fd5b50346102785780600319360112610278576020600454604051908152f35b50346102785780600319360112610278576001600160a01b03600254163314801590611324575b61027857601054600f5580f35b506011544211611317565b5034610278576020366003190112610278576001600160a01b03600254163303610278576004356010556201518042018042116104115760115580f35b50346102785761137b36612288565b916001600160a01b036002541633036104255761271061139f8461043b8585612425565b036104255782604080516103ea81612462565b5034610278576020366003190112610278576113cc612202565b9060206001600160a01b03602481845416946040519586938492630d9a602960e31b84521660048301525afa9081156114435790611410575b602090604051908152f35b506020813d60201161143b575b8161142a602093836124b6565b81010312610c8d5760209051611405565b3d915061141d565b604051903d90823e3d90fd5b50346102785760203660031901126102785761148260406080926114716124f0565b506004358152601860205220612567565b6114bf6040518092606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565bf35b50346102785760403660031901126102785760406060916114e06125ab565b506004358152601960205281812060243582526020522060405161150381612462565b6001600160a01b0382541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b50346102785761016036600319011261027857611559612202565b611561612218565b9061156a61222e565b90606435608435936001600160a01b03851685036112ca5761158a612244565b9060e43567ffffffffffffffff81116109e8576115ab90369060040161225a565b90956101043596896101443567ffffffffffffffff81116105b2576115d490369060040161225a565b94909a6001600160a01b0383541693604051946020860160808152600b60a08801526a31b0b731b2b627b93232b960a91b60c08801526001600160a01b038a16968760408201526001600160a01b03891660608201528c608082015260c0815261163f60e0826124b6565b519020813b156112ca578580946116748f978e96604051998a9889978896637d3d171560e11b885260c4359360048901612655565b03925af180156103a757611969575b505260176020526001600160a01b0360408a2091165f5260205260405f20549283158015611937575b61190257889187151598896117c3575b50505093610f7391836116e79652601960205260408920858a52602052600160408a20015491612721565b6001600160a01b0383541690604051630a1ad2d160e21b8152336004820152602081602481865afa908115610cd55785916117a4575b508061179d575b611747575b50501561173b57610f78600333612890565b610f7860ff60026107fd565b60206004926040519384809263280e32fb60e01b82525afa8015610d1c5761177792859161177e575b5033612721565b5f80611729565b611797915060203d602011610cce57610cbf81836124b6565b5f611770565b5082611724565b6117bd915060203d6020116103a05761039281836124b6565b5f61171d565b60049060206001600160a01b038654166040519384809263280e32fb60e01b82525afa918215610cd55785926118df575b50611801919236916126b0565b906001600160a01b03845416803b15610c58576001600160a01b03856101a48b602083978f869a87916040519c8d9b8c9a8b9863487e5a7760e11b8a5216600489015230602489015261016060448901528961016489015216606487015287608487015260a48601523060c48601521660e4840152610124356101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156103a7576118ca575b80806116bc565b816118d4916124b6565b610fe557865f6118c3565b61180192506118fc9060203d602011610cce57610cbf81836124b6565b916117f4565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037b93232b960991b6044820152606490fd5b50838952601960205260408920858a526020526001600160a01b0360408a2054166001600160a01b03871614156116ac565b81611973916124b6565b61197e57895f611683565b8980fd5b50346102785780600319360112610278576001600160a01b036002541633148015906119dc575b610278576001600160601b0360a01b60125416601255806013556001600160601b0360a01b601454166014558060155580f35b5060155442116119a9565b503461027857604036600319011261027857611a01612202565b6024358083526018602052600260408420015460018101809111611b5757611a28906125c9565b906001600160a01b0360019316925b81855260186020526002604086200154600181018091116108e8578111611b4957818552601960205260408520818652602052836001600160a01b0360408720541614611a8d575b611a8890612514565b611a37565b8185526019602052604085208186526020526001600160a01b03604086205416828652601960205260408620828752602052600160408720015483875260196020526040872083885260205260026040882001549060405192611aef84612432565b8584528460208501526040840152606083015260808201525f19820190828211611b355781611b2d91611b26611a88959488612553565b5285612553565b509050611a7f565b634e487b7160e01b87526011600452602487fd5b604051806104ad8582612194565b634e487b7160e01b84526011600452602484fd5b50346102785780600319360112610278576001600160a01b03600254163314801590611b9f575b61027857600d54600c5580f35b50600e544211611b92565b5034610c8d576020366003190112610c8d576001600160a01b03600254163303610c8d576001600160a01b0360015416803b15610c8d575f80916024604051809481936320a719f560e21b835260043560048401525af18015611c1d57611c0f575080f35b611c1b91505f906124b6565b005b6040513d5f823e3d90fd5b34610c8d576020366003190112610c8d576001600160a01b03611c49612202565b165f52601a602052602060405f2054604051908152f35b34610c8d575f366003190112610c8d57600460206001600160a01b035f54166040519283809263280e32fb60e01b82525afa8015611c1d576020915f91611cb4575b506001600160a01b0360405191168152f35b611ccb9150823d8411610cce57610cbf81836124b6565b82611ca2565b34610c8d575f366003190112610c8d576003546001600160a01b0381163314801590611d18575b610c8d5773ffffffffffffffffffffffffffffffffffffffff1916600355005b506004544211611cf8565b34610c8d576040366003190112610c8d57611d3c612202565b6001600160a01b03600254163303610c8d576001600160a01b03165f52601a60205260405f20611d6f6024358254612425565b9055005b34610c8d575f366003190112610c8d576020600f54604051908152f35b34610c8d576020366003190112610c8d57600435805f526018602052600260405f20015460018101809111611e9d57611dc8906125c9565b9060015b815f526018602052600260405f20015460018101809111611e9d578111611b4957815f52601960205260405f20815f526020526001600160a01b0360405f205416611e20575b611e1b90612514565b611dcc565b5f82815260196020908152604080832084845290915290819020805460018201546002909201549251939291906001600160a01b0316611e5f85612432565b8585528360208601526040850152606084015260808301525f19810191818311611e9d5782611e9591611b26611e1b9588612553565b509050611e12565b634e487b7160e01b5f52601160045260245ffd5b34610c8d575f366003190112610c8d57600460206001600160a01b035f541660405192838092630be428a960e11b82525afa8015611c1d575f9061141057602090604051908152f35b34610c8d575f366003190112610c8d57611f126125ab565b506104ad604051611f2281612462565b60085481526009546020820152600a54604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b34610c8d575f366003190112610c8d576016546001810190818111611e9d57611f86826124d8565b91611f9460405193846124b6565b808352611fa3601f19916124d8565b015f5b81811061207857505060015b8181111561203a57826040518091602082016020835281518091526020604084019201905f5b818110611fe6575050500390f35b91935091602060808261202c6001948851606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565b019401910191849392611fd8565b805f52601860205260405f20905f19810191818311611e9d576120739261206361206d92612567565b611b268288612553565b50612514565b611fb2565b6020906120836124f0565b82828701015201611fa6565b34610c8d575f366003190112610c8d576001600160a01b03600254163314801590612134575b610c8d576120dd6001600160a01b03601454166001600160a01b036012541660135491612721565b6013546001600160a01b03601254165f52601a60205261210260405f20918254612418565b90556001600160601b0360a01b601254166012555f6013556001600160601b0360a01b601454166014555f6015555f80f35b5060155442116120b5565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061216f575b610c8d575f601055005b506011544211612165565b34610c8d575f366003190112610c8d57602090600d548152f35b60206040818301928281528451809452019201905f5b8181106121b75750505090565b909192602060a0600192608087518051835284810151858401526001600160a01b036040820151166040840152606081015160608401520151608082015201940191019190916121aa565b600435906001600160a01b0382168203610c8d57565b602435906001600160a01b0382168203610c8d57565b604435906001600160a01b0382168203610c8d57565b60a435906001600160a01b0382168203610c8d57565b9181601f84011215610c8d5782359167ffffffffffffffff8311610c8d5760208381860195010111610c8d57565b6060906003190112610c8d57600435906024359060443590565b34610c8d575f366003190112610c8d576001600160a01b036002541633148015906122f5575b610c8d575f604080516122da81612462565b82815282602082015201525f6008555f6009555f600a555f80f35b50600b5442116122c8565b610180600319820112610c8d576004356001600160a01b0381168103610c8d57916024356001600160a01b0381168103610c8d57916044356001600160a01b0381168103610c8d5791606435916084359160a4356001600160a01b0381168103610c8d579160c4356001600160a01b0381168103610c8d579160e435916101043567ffffffffffffffff8111610c8d578161239d9160040161225a565b9290929161012435916101443591610164359067ffffffffffffffff8211610c8d576123cb9160040161225a565b9091565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061240d575b610c8d57600854600555600954600655600a54600755005b50600b5442116123f5565b91908203918211611e9d57565b91908201809211611e9d57565b60a0810190811067ffffffffffffffff82111761244e57604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761244e57604052565b6080810190811067ffffffffffffffff82111761244e57604052565b6040810190811067ffffffffffffffff82111761244e57604052565b90601f8019910116810190811067ffffffffffffffff82111761244e57604052565b67ffffffffffffffff811161244e5760051b60200190565b604051906124fd8261247e565b5f6060838281528260208201528260408201520152565b5f198114611e9d5760010190565b80511561252f5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561252f5760400190565b805182101561252f5760209160051b010190565b906040516125748161247e565b6060600382946001600160a01b0381541684526001600160a01b036001820154166020850152600281015460408501520154910152565b604051906125b882612462565b5f6040838281528260208201520152565b906125d3826124d8565b6125e060405191826124b6565b82815280926125f1601f19916124d8565b01905f5b82811061260157505050565b60209060405161261081612432565b5f81525f838201525f60408201525f60608201525f6080820152828285010152016125f5565b90816020910312610c8d57516001600160a01b0381168103610c8d5790565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b92919267ffffffffffffffff821161244e57604051916126da601f8201601f1916602001846124b6565b829481845281830111610c8d578281602093845f960137010152565b90816020910312610c8d57518015158103610c8d5790565b81810292918115918404141715611e9d57565b90916001600160a01b035f5416803b15610c8d5760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015611c1d5761277a5750565b5f612784916124b6565b565b9295949190936001600160a01b035f541693843b15610c8d5760205f976001600160a01b0399958a6101a49581988c986040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b0152166064890152608488015260a48701523060c48701521660e48501526101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af18015611c1d5761277a5750565b90815f52601960205260405f20905f5260205260405f206001600160601b0360a01b81541690555f526018602052600360405f200180548015611e9d575f19019055565b6001600160a01b035f5416604051630a1ad2d160e21b81526001600160a01b0383166004820152602081602481855afa908115611c1d575f91612991575b506128d857505050565b60405163280e32fb60e01b815290602082600481845afa918215611c1d575f9261296c575b506020600491604051928380926309a69f5760e01b82525afa908115611c1d575f91612938575b50612784936129329161270e565b91612721565b90506020813d602011612964575b81612953602093836124b6565b81010312610c8d5751612784612924565b3d9150612946565b6004919250612989602091823d8411610cce57610cbf81836124b6565b9291506128fd565b6129aa915060203d6020116103a05761039281836124b6565b5f6128ce565b916001600160a01b036040519281602085019560808752600d60a08701526c3234b9b830ba31b427b93232b960991b60c0870152166040850152166060830152608082015260c08152612a0460e0826124b6565b51902090565b8015611902575f52601960205260405f20905f5260205260405f20906001600160a01b038254161561190257565b91838111612a4857505050505f90565b612a559361293291612418565b600190565b949190612a7d612a8d91959495612710612a766005548661270e565b0490612425565b92612710612a766007548561270e565b9260405194612a9d6060876124b6565b6002865260405f5b818110612be1575050612b23612b459594936001600160a01b0393612710938560405191612ad28361249a565b888352166020820152612ae48a612522565b52612aee89612522565b508460405191612afd8361249a565b888352166020820152612b0f89612543565b52612b1988612543565b506006549061270e565b04951694855f52601a602052612b3e60405f20918254612425565b9055612425565b906001600160a01b035f541691823b15610c8d5792906040519384926353d04b7b60e11b8452606484016060600486015283518091526020608486019401905f5b818110612bb357505050835f9593819387936024840152604483015203925af18015611c1d5761277a5750565b8251805187526020908101516001600160a01b03168188015289975060409096019590920191600101612b86565b602090604051612bf08161249a565b5f81525f8382015282828b01015201612aa556fea26469706673582212202ce3de043b14261a3291a1fde70c7d34ff790f6a8b685b6974bf8d1ad45d3f3364736f6c63430008210033",sourceMap:"1901:33735:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:16:78;1901:33735:66;1568:16:78;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;1878:31:78;1901:33735:66;1878:31:78;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25466:14;1901:33735;-1:-1:-1;;;;;1901:33735:66;;25452:10;;:28;;;:68;;;1901:33735;25435:129;;-1:-1:-1;;;;;1901:33735:66;;25573:22;1901:33735;;;25573:22;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;25466:14;1901:33735;;;25435:129;25545:8;;;25452:68;1901:33735;;;25484:15;:36;25452:68;;1901:33735;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;:::i;:::-;;;;;:::i;:::-;;;;;33510:8;1901:33735;;;33510:24;1901:33735;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35509:15:66;1901:33735;;35538:16;1901:33735;-1:-1:-1;;;;;35568:19:66;1901:33735;;35601:16;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;-1:-1:-1;;;;;4999:37:98;1901:33735:66;;;;;;;;;;;;;;;4999:37:98;;1901:33735:66;;4999:37:98;;1901:33735:66;;;;;;;4999:37:98;;;;;;;1901:33735:66;4999:37:98;;;;1901:33735:66;;;;;;;;;;4999:37:98;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1901:33735:66;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;26886:5:66;1901:33735;;26872:10;:19;;;:65;;;1901:33735;26868:104;;1901:33735;;;;;;;:::i;:::-;;;;27009:96;;;;1901:33735;27009:96;1901:33735;26981:124;1901:33735;;;;;27174:6;27156:15;1901:33735;27156:15;;1901:33735;;;27115:65;1901:33735;;;;-1:-1:-1;;;1901:33735:66;;;;;;;;26868:104;26953:8;;;26872:65;26895:18;26931:6;26895:32;:18;;;;;:::i;:::-;:32;:::i;:::-;:42;;26872:65;;1901:33735;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;34839:16;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;;;;;29534:5:66;1901:33735;;29520:10;:19;;;:91;;;1901:33735;29503:152;;-1:-1:-1;;;;;1901:33735:66;;;-1:-1:-1;;;;;1901:33735:66;;29664:34;1901:33735;;;29664:34;1901:33735;29708:36;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;29754:25;1901:33735;;;29754:25;1901:33735;29826:6;29808:15;1901:33735;29808:15;;1901:33735;;;29789:43;1901:33735;;;29520:91;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;29575:18;1901:33735;;;;;;29555:56;;29520:91;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;-1:-1:-1;;;;;25026:5:66;1901:33735;;25012:10;:19;25008:58;;-1:-1:-1;;;;;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;25075:23;1901:33735;;;25075:23;1901:33735;25147:6;25129:15;1901:33735;25129:15;;1901:33735;;;;;;;25008:58;25047:8;1901:33735;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4487:15;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;1072:57:102;;;;1901:33735:66;;;;;;;;;;;;-1:-1:-1;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;1072:57:102;;;;;;:::i;:::-;1901:33735:66;;1072:57:102;;;1045:98;4514:245:66;;;;;;1901:33735;4514:245;1901:33735;;;;;;;;;;;;;;;;;;;;;4514:245;;1901:33735;4514:245;;;:::i;:::-;;;;;;;;;;;;;;1901:33735;;;4770:201;1901:33735;;;;;;;;:::i;:::-;4770:201;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1072:57:102;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;5031:11;;;5027:79;;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;5133:30;1901:33735;;;5133:30;1901:33735;;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5179:38;1901:33735;5133:84;5116:594;5179:38;;;1901:33735;5133:30;5856:32;1901:33735;;;;5133:14;1072:57:102;1901:33735:66;;;;;5242:30;:32;1901:33735;;5242:32;:::i;:::-;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5288:38;:40;1901:33735;;5288:40;:::i;:::-;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;;;;;5352:30;1901:33735;5116:594;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::i;:::-;;;;1072:57:102;5758:83:66;;1901:33735;;;;5758:83;;1901:33735;;;;;;5720:18;1072:57:102;1901:33735:66;;;;;;;1072:57:102;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;4722:4;1901:33735;;;;;;;1072:57:102;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;5856:32;;5877:10;1901:33735;5856:32;;1901:33735;5856:32;;;;;;1901:33735;5856:32;;;;;5116:594;5852:217;;;5116:594;-1:-1:-1;;6213:18:66;;;6185:55;1901:33735;5179:38;6213:26;1901:33735;5877:10;6185:55;:::i;:::-;1901:33735;;;;;1072:57:102;1901:33735:66;;;;6213:26;6185:55;1901:33735;5133:30;6213:26;;5852:217;5908:18;;5904:155;;5852:217;;;;5904:155;6029:14;5877:10;;6029:14;:::i;:::-;5904:155;;;;5856:32;;;;1072:57:102;5856:32:66;1072:57:102;5856:32:66;;;;;;;:::i;:::-;;;;5116:594;5418:13;4722:4;5474:3;1901:33735;;;5133:14;1072:57:102;1901:33735:66;5133:30;1901:33735;;;5438:30;1901:33735;4722:4;1901:33735;;;;;;;5433:39;;;;1901:33735;;;5501:18;1072:57:102;1901:33735:66;;;;;;;1072:57:102;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;5501:50;5497:135;;5474:3;;;:::i;:::-;5418:13;;5497:135;5856:32;5575:11;;;5133:30;5575:11;5608:5;5413:233;1901:33735;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5659:38;:40;1901:33735;;5659:40;:::i;:::-;1901:33735;;5116:594;;5433:39;;5133:30;5433:39;5856:32;5433:39;;;;1901:33735;-1:-1:-1;;;1901:33735:66;;;;;;;;5027:79;1901:33735;;;24196:13;;1901:33735;24196:13;:::i;:::-;1901:33735;24196:13;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1072:57:102;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;-1:-1:-1;;;;;1072:57:102;24297:105:66;;1901:33735;;;;;24297:105;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;24297:105;;1901:33735;;;;24196:13;1901:33735;;;24267:14;1072:57:102;1901:33735:66;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;-1:-1:-1;;;;;4722:4:66;1901:33735;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;24196:13;1901:33735;5027:79;;;;4514:245;;;;;:::i;:::-;1901:33735;;4514:245;;;;1901:33735;;;;4514:245;1901:33735;;;;;;;;;4514:245;1901:33735;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;27862:5:66;1901:33735;;27848:10;:19;27844:58;;1901:33735;;27911:22;1901:33735;28007:6;27989:15;1901:33735;27989:15;;1901:33735;;;27960:26;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28114:5:66;1901:33735;;28100:10;:19;;;:67;;;1901:33735;28083:128;;1901:33735;28220:22;1901:33735;;;28100:67;1901:33735;28141:26;1901:33735;28123:15;:44;28100:67;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;-1:-1:-1;;;;;30664:5:66;1901:33735;;30650:10;:19;;;:145;;;1901:33735;30633:181;;-1:-1:-1;;;;;1901:33735:66;;;1374:44:99;;;;;1901:33735:66;;;1374:44:99;1901:33735:66;;;;;;;;;1374:44:99;;;1901:33735:66;1374:44:99;;1901:33735:66;1374:44:99;;;;;;;;;;;1901:33735:66;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;1434:24:99;;1901:33735:66;1434:24:99;1901:33735:66;1434:24:99;;;;;;;;-1:-1:-1;;;;;1434:24:99;;;;;1901:33735:66;;;;;;;;;1515:24:99;;1901:33735:66;1515:24:99;1901:33735:66;1515:24:99;;;;;;;;;-1:-1:-1;;;;;1515:24:99;1901:33735:66;1515:24:99;;;;;1901:33735:66;;;;;;;;;;;;1509:58:99;;1901:33735:66;1509:58:99;;;;;;;;;;;1901:33735:66;-1:-1:-1;1901:33735:66;;-1:-1:-1;;;1581:24:99;;1901:33735:66;;;;1581:24:99;;;;;;;;;;;;1901:33735:66;1581:40:99;;;;;:::i;:::-;1428:203;;;;;;1901:33735:66;;-1:-1:-1;;;1428:203:99;;-1:-1:-1;;;;;1901:33735:66;;;;1428:203:99;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;1428:203:99;;;;;;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;1641:31:99;;;;;1901:33735:66;;;;;;;;;;;;;1641:31:99;;;;;;;;;;1901:33735:66;;1641:31:99;;;;;:::i;:::-;1901:33735:66;;1641:31:99;1901:33735:66;1641:31:99;1901:33735:66;;1428:203:99;;;;;:::i;:::-;1901:33735:66;;1428:203:99;;;;;1901:33735:66;;;1581:24:99;;;;;1901:33735:66;1581:24:99;;1901:33735:66;1581:24:99;;;;;;1901:33735:66;1581:24:99;;;:::i;:::-;;;1901:33735:66;;;;;;;;1581:40:99;:24;;1901:33735:66;-1:-1:-1;1901:33735:66;;1581:24:99;;;-1:-1:-1;1581:24:99;;;1901:33735:66;;;;;;;;;1509:58:99;;;;;1901:33735:66;1509:58:99;1901:33735:66;1509:58:99;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1901:33735:66;;;;;;;;;1515:24:99;;;;;;;;;;;;;;:::i;:::-;;;;1434;;;;1901:33735:66;1434:24:99;1901:33735:66;1434:24:99;;;;;;;:::i;:::-;;;;;1901:33735:66;;;;;;;;;1374:44:99;;;;;:::i;:::-;1901:33735:66;;1374:44:99;;;;;1901:33735:66;;;;;;;;;1374:44:99;1901:33735:66;30806:8;;30650:145;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;30694:24;;;;;;;;;;;;;30650:145;30685:33;;;;;:::i;:::-;1901:33735;;;30733:18;1901:33735;;;;;;-1:-1:-1;30650:145:66;;30694:24;;;;1901:33735;30694:24;;1901:33735;30694:24;;;;;;1901:33735;30694:24;;;:::i;:::-;;;1901:33735;;;;30685:33;1901:33735;;;30694:24;;;;;;-1:-1:-1;30694:24:66;;1901:33735;;;;;;;;;;;;;;35191:29;1901:33735;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34315:14:66;1901:33735;;;;;;;;;;;;;;;;;;;;;;35065:13;1901:33735;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11927:54:66;1901:33735;;;11927:54;;;;:::i;:::-;11839:240;;;;;;1901:33735;11839:240;1901:33735;;;;;;;;;;;;;;;;;;;;11839:240;;1901:33735;11839:240;;;:::i;:::-;;;;;;;;;;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1901:33735;;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;12174:40;;;;;:::i;:::-;12267:13;;;;;1901:33735;;;12239:42;1901:33735;;12316:19;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;12316:19;;;:::i;:::-;12350:37;;;12346:109;;1901:33735;13353:7;1901:33735;;13144:14;1901:33735;12798:134;1901:33735;13236:13;1901:33735;12465:214;1901:33735;;12042:4;1901:33735;;;;;;;;:::i;:::-;12465:214;;:::i;:::-;12798:134;;;:::i;:::-;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;13120:10;;13144:14;;:::i;:::-;13236:13;1901:33735;13236:13;;:::i;:::-;13289:17;;;13261:46;13301:1;13120:10;13261:46;:::i;:::-;13353:7;:::i;:::-;1901:33735;;13289:17;13261:46;1901:33735;;13289:17;;12346:109;1901:33735;;-1:-1:-1;;;12403:41:66;;1901:33735;;12403:41;;1901:33735;;;;;;;;;;;12403:41;;;11839:240;;;;;:::i;:::-;1901:33735;;11839:240;;;;1901:33735;;;;11839:240;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;34411:5:66;1901:33735;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;16577:54;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;16577:54;;;:::i;:::-;16489:240;;;;;1901:33735;;;16489:240;1901:33735;;;;;;;;;;;;;;;;16489:240;;1901:33735;;16489:240;1901:33735;16489:240;;;:::i;:::-;;;;;;;;;;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1901:33735;;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;16824:40;;;;;:::i;:::-;16941:13;;;;1901:33735;;;;;16906:87;18610:13;18639:35;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;18639:53;;;;18708:21;;;18758:4;1901:33735;;;;;;18758:4;1901:33735;;;;;;;18461:6;1901:33735;;;;;;;;;17086:19;1901:33735;18635:220;17026:27;:19;;;;;:::i;:::-;:27;:::i;:::-;17086:19;;:::i;:::-;17120:34;;;17116:107;;1901:33735;;18246:7;1901:33735;19392:25;1901:33735;;;18129:13;1901:33735;;;;17233:214;1901:33735;;18070:14;1901:33735;;17721:132;1901:33735;;;;;;:::i;:::-;;;;17233:214;;:::i;:::-;1901:33735;17477:125;19392:17;;;;;:::i;:25::-;19450:17;;;;:::i;:::-;19482:25;;;;:54;;;;18635:220;-1:-1:-1;19478:165:66;;;19563:24;;;;;:::i;:::-;19478:165;17721:132;;;:::i;19478:165::-;19618:14;19478:165;;;19482:54;19511:25;;;;19482:54;;;17116:107;1901:33735;;;21220:23;;;17170:42;;1901:33735;;17170:42;;1901:33735;;;;;;;;;;;17170:42;1901:33735;-1:-1:-1;;;;1901:33735:66;;;;;;;;18635:220;17086:19;18809:35;;;;;;;;;;;1901:33735;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;18635:220;;;;16489:240;;;;;:::i;:::-;1901:33735;;16489:240;;;;;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29163:5:66;1901:33735;;29149:10;:19;;;:86;;;1901:33735;29132:147;;29319:29;1901:33735;29319:20;1901:33735;;;29149:86;1901:33735;29202:33;1901:33735;29184:15;:51;29149:86;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;28624:5:66;1901:33735;;28610:10;:19;28606:58;;1901:33735;;28673:29;1901:33735;28790:6;28772:15;1901:33735;28772:15;;1901:33735;;;28736:33;1901:33735;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;25804:5:66;1901:33735;;25790:10;:19;25786:58;;25893:6;25857:32;:18;;;;;:::i;:32::-;:42;25853:81;;1901:33735;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4497:34:98;1901:33735:66;;;;;;;;;;;;;;;4497:34:98;;1901:33735:66;;4497:34:98;;1901:33735:66;4497:34:98;;;;;;;;;;1901:33735:66;;;;;;;;;4497:34:98;;1901:33735:66;4497:34:98;;1901:33735:66;4497:34:98;;;;;;1901:33735:66;4497:34:98;;;:::i;:::-;;;1901:33735:66;;;;;;;4497:34:98;;;;;-1:-1:-1;4497:34:98;;;1901:33735:66;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;;:::i;:::-;;;;;;33676:14;1901:33735;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;:::i;:::-;;;;;;32562:18;1901:33735;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;1669:50:102;1901:33735:66;1669:50:102;;1901:33735:66;;;;;;;;-1:-1:-1;;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1669:50:102;;;1901:33735:66;1669:50:102;;:::i;:::-;1901:33735:66;1659:61:102;;8222:238:66;;;;;1901:33735;;;8222:238;1901:33735;;;;;;;;;;;;;;;;8222:238;;1901:33735;;8222:238;1901:33735;8222:238;;;:::i;:::-;;;;;;;;;;;1901:33735;;;33510:8;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;;33510:24;1901:33735;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;21139:11;;;:65;;;;1901:33735;21135:119;;8586:18;;;;;8582:305;;;;1901:33735;;;;;8921:43;1901:33735;;9011:7;1901:33735;;8921:18;1901:33735;;;;;;;;;;;;;;8921:43;1901:33735;8921:43;;:::i;9011:7::-;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;9034:32;;9055:10;1901:33735;9034:32;;1901:33735;;9034:32;1901:33735;9034:32;;;;;;;;;;;;;1901:33735;9034:54;;;;1901:33735;9030:217;;1901:33735;-1:-1:-1;;9284:26:66;;;9256:55;9305:1;9055:10;9256:55;:::i;9284:26::-;9256:55;1901:33735;9309:1;9284:26;;9030:217;1901:33735;;;;;;;;;;;;9159:31;;;;;;;;9208:14;9159:31;;;;;9030:217;9055:10;;9208:14;:::i;:::-;9030:217;;;;9159:31;;;;1901:33735;9159:31;1901:33735;9159:31;;;;;;;:::i;:::-;;;;9034:54;;;;;:32;;;;1901:33735;9034:32;1901:33735;9034:32;;;;;;;:::i;:::-;;;;8582:305;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;8670:31;;;;;;;;;;;;;8582:305;1901:33735;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1901:33735:66;;;1745:265:98;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;1745:265:98;;1901:33735:66;;1745:265:98;;1901:33735:66;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;1745:265:98;;;;;;;;;;;8582:305:66;;;;;1745:265:98;;;;;:::i;:::-;1901:33735:66;;1745:265:98;;;;8670:31:66;1901:33735;8670:31;;;;1901:33735;8670:31;1901:33735;8670:31;;;;;;;:::i;:::-;;;;21135:119;1901:33735;;-1:-1:-1;;;21220:23:66;;1901:33735;;21220:23;;1901:33735;;;;;;-1:-1:-1;;;1901:33735:66;;;;;;21220:23;21139:65;1901:33735;;;;21154:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;21154:50;;21139:65;;8222:238;;;;;:::i;:::-;1901:33735;;8222:238;;;;1901:33735;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29917:5:66;1901:33735;;29903:10;:19;;;:57;;;1901:33735;29899:96;;-1:-1:-1;;;;;1901:33735:66;;30004:28;1901:33735;;30004:28;1901:33735;;30042:20;1901:33735;-1:-1:-1;;;;;1901:33735:66;;30072:32;1901:33735;;30072:32;1901:33735;;30114:20;1901:33735;;;29903:57;1901:33735;29944:16;1901:33735;29926:15;:34;29903:57;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;;32843:14;1901:33735;;32843:30;1901:33735;;;32843:30;1901:33735;;;;;;;;;32801:86;;;:::i;:::-;32903:13;-1:-1:-1;;;;;1901:33735:66;;;32898:456;32959:3;1901:33735;;;32843:14;1901:33735;;32843:30;1901:33735;;;32923:30;1901:33735;;;;;;;;;32918:39;;;;1901:33735;;;32982:18;1901:33735;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;32982:44;32978:366;;32959:3;;;;:::i;:::-;32903:13;;32978:366;1901:33735;;;32982:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;32982:18;1901:33735;;;;;;;;;;;;;;33215:37;1901:33735;;;;32982:18;1901:33735;;;;;;;;;;32843:30;1901:33735;;;33274:37;1901:33735;;;;;;;;:::i;:::-;;;;33062:267;1901:33735;33062:267;;1901:33735;;33062:267;;1901:33735;33062:267;;;1901:33735;33062:267;;;1901:33735;;;;;;;;;;;33046:283;;;;32959:3;33046:283;;;;:::i;:::-;;;;:::i;:::-;;32978:366;;;;1901:33735;-1:-1:-1;;;1901:33735:66;;;;;;;;32918:39;1901:33735;;;;32918:39;1901:33735;;:::i;:::-;-1:-1:-1;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28340:5:66;1901:33735;;28326:10;:19;;;:67;;;1901:33735;28309:128;;28470:22;1901:33735;28470:13;1901:33735;;;28326:67;1901:33735;28367:26;1901:33735;28349:15;:44;28326:67;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;30933:5:66;1901:33735;;30919:10;:19;30915:33;;-1:-1:-1;;;;;1901:33735:66;;;2024:41:99;;;;;1901:33735:66;;;2024:41:99;1901:33735:66;;;;;;;;;2024:41:99;;1901:33735:66;;;2024:41:99;;1901:33735:66;2024:41:99;;;;;;;;1901:33735:66;;;2024:41:99;;;;1901:33735:66;2024:41:99;;:::i;:::-;1901:33735:66;2024:41:99;1901:33735:66;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;:::i;:::-;;;;34200:18;1901:33735;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;1878:31:78;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1878:31:78;;;;;;;;;;1901:33735:66;1878:31:78;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;;;;;1878:31:78;;;;;;;;;;;;;;:::i;:::-;;;;1901:33735:66;;;;;;-1:-1:-1;;1901:33735:66;;;;25246:14;1901:33735;-1:-1:-1;;;;;1901:33735:66;;25232:10;:28;;;:68;;;1901:33735;25215:129;;-1:-1:-1;;1901:33735:66;25246:14;1901:33735;;25232:68;1901:33735;;;25264:15;:36;25232:68;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;-1:-1:-1;;;;;31089:5:66;1901:33735;;31075:10;:19;31071:58;;-1:-1:-1;;;;;1901:33735:66;;;31138:18;1901:33735;;;;;31138:37;1901:33735;;;;31138:37;:::i;:::-;1901:33735;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;35317:20;1901:33735;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;31870:14;1901:33735;;31870:30;1901:33735;;;31870:30;1901:33735;;;;;;;;;31828:86;;;:::i;:::-;31930:13;1901:33735;31986:3;1901:33735;;;31870:14;1901:33735;;31870:30;1901:33735;;;31950:30;1901:33735;;;;;;;;;31945:39;;;;1901:33735;;;32009:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;32005:372;;31986:3;;;;:::i;:::-;31930:13;;32005:372;1901:33735;;;;32009:18;1901:33735;;;;;;;;;;;;;;;;;;;;;32248:37;;1901:33735;31870:30;32307:37;;;1901:33735;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;:::i;:::-;;;;32095:267;1901:33735;32095:267;;1901:33735;;32095:267;;1901:33735;32095:267;;;1901:33735;32095:267;;;1901:33735;;;;;;;;;;;32079:283;;;;31986:3;32079:283;;;:::i;:::-;;32005:372;;;;1901:33735;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;1568:16:78;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1568:16:78;;;;;;;;1901:33735:66;1568:16:78;;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;;;;:::i;:::-;34675:25;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;33928:11;1901:33735;33942:1;1901:33735;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;33959:13;;33942:1;33974:16;;;;;;;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33942:1;1901:33735;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33992:3;1901:33735;;;34028:14;1901:33735;;;;;;;;;;;;;;;;33992:3;1901:33735;;34011:34;1901:33735;;:::i;:::-;34011:34;;;;:::i;:::-;;33992:3;:::i;:::-;33959:13;;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;30212:5:66;1901:33735;;30198:10;:19;;;:57;;;1901:33735;30194:96;;30347:16;-1:-1:-1;;;;;30309:19:66;1901:33735;;-1:-1:-1;;;;;30330:15:66;1901:33735;;30347:16;1901:33735;30347:16;;:::i;:::-;;1901:33735;-1:-1:-1;;;;;30330:15:66;1901:33735;;;;30374:18;1901:33735;;30374:55;1901:33735;;;;;;30374:55;:::i;:::-;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;30330:15;1901:33735;;30330:15;1901:33735;;30347:16;1901:33735;-1:-1:-1;;;;;1901:33735:66;;30309:19;1901:33735;;30309:19;1901:33735;;30550:20;1901:33735;;;;30198:57;1901:33735;30239:16;1901:33735;30221:15;:34;30198:57;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;28904:5:66;1901:33735;;28890:10;:19;;;:86;;;1901:33735;28873:147;;1901:33735;29029:29;1901:33735;;28890:86;1901:33735;28943:33;1901:33735;28925:15;:51;28890:86;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;;;34953:22;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;26249:5:66;1901:33735;;26235:10;:19;;;:91;;;1901:33735;26218:152;;1901:33735;;;;;;;:::i;:::-;;;;26407:27;;;;1901:33735;26407:27;1901:33735;;26379:55;1901:33735;;;;;;;;;;26235:91;1901:33735;26288:38;1901:33735;26270:15;:56;26235:91;;1901:33735;;-1:-1:-1;;1901:33735:66;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;27584:5:66;1901:33735;;27570:10;:19;;;:91;;;1901:33735;27553:152;;27733:25;1901:33735;27714:44;1901:33735;;;;;;;;;;27570:91;1901:33735;27623:38;1901:33735;27605:15;:56;27570:91;;1901:33735;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1901:33735:66;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;23851:1;1901:33735;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1901:33735:66;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;8423:4;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;3421:155:98:-;;;-1:-1:-1;;;;;3540:4:98;1901:33735:66;;3540:29:98;;;;;1901:33735:66;;-1:-1:-1;;;3540:29:98;;-1:-1:-1;;;;;1901:33735:66;;;3540:29:98;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;-1:-1:-1;;3540:29:98;;;;;;;;3421:155;:::o;3540:29::-;:4;:29;;;:::i;:::-;3421:155::o;1481:536::-;;;;;;;-1:-1:-1;;;;;1745:4:98;1901:33735:66;;1745:265:98;;;;;;1901:33735:66;1745:4:98;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;1745:265:98;;1901:33735:66;1745:265:98;;;1901:33735:66;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:4:98;1901:33735:66;;;;;;;;;;;;;16692:4;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;1745:265:98;;;;;;;;;;;1481:536;:::o;21942:222:66:-;;1901:33735;22105:1;1901:33735;22052:18;1901:33735;;;22105:1;1901:33735;;22105:1;1901:33735;;;;22105:1;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;;;;22105:1;1901:33735;22117:14;1901:33735;;22117:38;1901:33735;22105:1;1901:33735;22117:38;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;21942:222::o;21485:300::-;-1:-1:-1;;;;;21571:4:66;1901:33735;;;;;;;21571:30;;-1:-1:-1;;;;;1901:33735:66;;21571:30;;;1901:33735;;21571:30;;;;;;;;;;;:4;:30;;;21485:300;21567:212;;;21485:300;;;:::o;21567:212::-;1901:33735;;-1:-1:-1;;;21670:31:66;;1901:33735;;;21571:30;1901:33735;;21670:31;;;;;;;21571:4;21670:31;;;21567:212;1901:33735;;21571:30;1901:33735;;;;;;;;;;21719:22;;;;;;;;;21571:4;21719:22;;;21567:212;21719:35;;;;;;:::i;:::-;;;:::i;:22::-;;;1901:33735;21719:22;;1901:33735;21719:22;;;;;;1901:33735;21719:22;;;:::i;:::-;;;1901:33735;;;;;21719:35;:22;;;;;-1:-1:-1;21719:22:66;;21670:31;21571:30;21670:31;;;;1901:33735;21670:31;;;;;;;;;;;:::i;:::-;;;;;;21571:30;;;;1901:33735;21571:30;1901:33735;21571:30;;;;;;;:::i;:::-;;;;2104:244:102;;-1:-1:-1;;;;;1901:33735:66;;2288:52:102;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;1901:33735:66;;;;;;;;;;;;;;;;;;;2288:52:102;;;;;;:::i;:::-;1901:33735:66;2278:63:102;;2104:244;:::o;20416:363:66:-;20570:11;;20566:65;;20580:1;1901:33735;20648:18;1901:33735;;;20580:1;1901:33735;;20580:1;1901:33735;;;;20580:1;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;;20697:26;20693:80;;20416:363::o;22493:351::-;;22686:27;;;22682:134;;22825:12;;;;1901:33735;22493:351;:::o;22682:134::-;22752:27;;;;;:::i;:::-;22801:4;22794:11;:::o;23235:842::-;;;;23464:68;23567:72;23235:842;;;;23525:6;23492:29;23498:16;1901:33735;23492:29;;:::i;:::-;1901:33735;23464:68;;:::i;:::-;1901:33735;23525:6;23595:33;23601:27;1901:33735;23595:33;;:::i;23567:72::-;1901:33735;;;;;;;;:::i;:::-;23601:27;1901:33735;;;-1:-1:-1;1901:33735:66;;;;;;;;23956:30;24040:29;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;23525:6;1901:33735;;;;;;;;:::i;:::-;;;;;;23779:55;;1901:33735;23767:67;;;:::i;:::-;;;;;:::i;:::-;;1901:33735;;;;;;;:::i;:::-;;;;;;23856:59;;1901:33735;23844:71;;;:::i;:::-;;;;;:::i;:::-;;23962:24;1901:33735;23956:30;;:::i;:::-;1901:33735;;;;;-1:-1:-1;1901:33735:66;23926:18;1901:33735;;23926:70;1901:33735;-1:-1:-1;1901:33735:66;;;;23926:70;:::i;:::-;1901:33735;;24040:29;:::i;:::-;1901:33735;-1:-1:-1;;;;;;1901:33735:66;;4076:41:98;;;;;;1901:33735:66;;;;;;;;;;4076:41:98;;1901:33735:66;;;;4076:41:98;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;4076:41:98;;;;;;;;;;23235:842:66;:::o;1901:33735::-;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;23851:1;1901:33735;;;;;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;",linkReferences:{}},methodIdentifiers:{"acceptFillFixedPercentage()":"af5cecc0","acceptFillPropotionalPercentage()":"952469d0","acceptMaxLimitFillFixedFee()":"74efedc9","acceptOwner()":"ebbc4965","acceptPercentageFee()":"35287eaf","acceptWithdrawal()":"14438428","addBalance(address,uint256)":"21e5383a","cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"5dc22075","dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":"7b8ad149","dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"92aa42c9","findMarket(address,address)":"db7ccd63","getAllMarketOrders(uint256)":"1ea43a7d","getAllMarketsMetadata()":"16790f81","getBalanceOfContract(address)":"28b44b4b","getEvvmID()":"17c85152","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getMarketMetadata(uint256)":"6b6445b6","getMaxLimitFillFixedFee()":"1f809821","getMaxLimitFillFixedFeeProposal()":"9dc20607","getMyOrdersInSpecificMarket(address,uint256)":"35b2c22c","getNextCurrentSyncNonce(address)":"6cd30148","getOrder(uint256,uint256)":"5e1a3573","getOwner()":"893d20e8","getOwnerProposal()":"9c348666","getOwnerTimeToAccept()":"775f3f7e","getPercentageFee()":"96100671","getPrincipalTokenAddress()":"280e32fb","getProposalPercentageFee()":"0a96865b","getProposedWithdrawal()":"d89ea03c","getRewardPercentage()":"c7213163","getRewardPercentageProposal()":"17857d9d","makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"b54cfef0","proposeFillFixedPercentage(uint256,uint256,uint256)":"6cdbf927","proposeFillPropotionalPercentage(uint256,uint256,uint256)":"cfb35fd0","proposeMaxLimitFillFixedFee(uint256)":"7280ff35","proposeOwner(address)":"b5ed298a","proposePercentageFee(uint256)":"b3d4fd79","proposeWithdrawal(address,uint256,address)":"b7ac72ff","rejectProposeFillFixedPercentage()":"76a75a29","rejectProposeFillPropotionalPercentage()":"8eb163d3","rejectProposeMaxLimitFillFixedFee()":"1128a79a","rejectProposeOwner()":"26415c71","rejectProposePercentageFee()":"a936e0d1","rejectProposeWithdrawal()":"54282704","stake(uint256)":"a694fc3a","unstake(uint256)":"2e17de78"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_stakingAddress","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidServiceSignature","type":"error"},{"inputs":[],"name":"acceptFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptPercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"cancelOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"amountOfTokenBToFill","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"},{"internalType":"uint256","name":"maxFillFixedFee","type":"uint256"}],"name":"dispatchOrder_fillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"amountOfTokenBToFill","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"dispatchOrder_fillPropotionalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"findMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getAllMarketOrders","outputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.OrderForGetter[]","name":"orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarketsMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"maxSlot","type":"uint256"},{"internalType":"uint256","name":"ordersAvailable","type":"uint256"}],"internalType":"struct P2PSwapStructs.MarketInformation[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBalanceOfContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getMarketMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"maxSlot","type":"uint256"},{"internalType":"uint256","name":"ordersAvailable","type":"uint256"}],"internalType":"struct P2PSwapStructs.MarketInformation","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxLimitFillFixedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxLimitFillFixedFeeProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getMyOrdersInSpecificMarket","outputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.OrderForGetter[]","name":"orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNextCurrentSyncNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"getOrder","outputs":[{"components":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerTimeToAccept","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposalPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposedWithdrawal","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPercentage","outputs":[{"components":[{"internalType":"uint256","name":"seller","type":"uint256"},{"internalType":"uint256","name":"service","type":"uint256"},{"internalType":"uint256","name":"mateStaker","type":"uint256"}],"internalType":"struct P2PSwapStructs.Percentage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPercentageProposal","outputs":[{"components":[{"internalType":"uint256","name":"seller","type":"uint256"},{"internalType":"uint256","name":"service","type":"uint256"},{"internalType":"uint256","name":"mateStaker","type":"uint256"}],"internalType":"struct P2PSwapStructs.Percentage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"makeOrder","outputs":[{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seller","type":"uint256"},{"internalType":"uint256","name":"_service","type":"uint256"},{"internalType":"uint256","name":"_mateStaker","type":"uint256"}],"name":"proposeFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seller","type":"uint256"},{"internalType":"uint256","name":"_service","type":"uint256"},{"internalType":"uint256","name":"_mateStaker","type":"uint256"}],"name":"proposeFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimitFillFixedFee","type":"uint256"}],"name":"proposeMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"proposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentageFee","type":"uint256"}],"name":"proposePercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenToWithdraw","type":"address"},{"internalType":"uint256","name":"_amountToWithdraw","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"proposeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposePercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs ","details":"Supports order book-style trading with customizable fee models. Integrates with Core.sol for asset locking and settlements, and Staking.sol for validator rewards.","errors":{"InvalidServiceSignature()":[{"details":"Thrown when signature validation fails"}]},"kind":"dev","methods":{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Validates ownership, refunds tokenA, deletes order Cancellation Flow: 1. Validates signature via Core.sol 2. Validates user is order owner 3. Processes optional priority fee 4. Refunds locked tokenA to user 5. Deletes order (sets seller to address(0)) 6. Rewards staker if applicable Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents replay attacks and double cancellation Core.sol Integration: - Refunds tokenA via makeCaPay (order.amountA) - Priority fee via requestPay (if > 0) - Staker reward: 2-3x MATE via _rewardExecutor - makeCaPay handles staker priority fee distribution Security: - Only order owner can cancel - Atomic refund + deletion - Market slot becomes available for reuse","params":{"nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to cancel","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for cancellation authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address that owns the order"}},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{"details":"Fee = min(proportionalFee, maxLimitFillFixedFee.current) with -10% tolerance Fixed Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates capped fee and 10% tolerance 4. Validates amountOfTokenBToFill >= amountB + fee - 10% 5. Collects tokenB + amount via Evvm.requestPay 6. Calculates final fee based on actual payment 7. Handles overpayment refund if any 8. Distributes payments (seller, service, staker) 9. Transfers tokenA to buyer via Evvm.makeCaPay 10. Rewards staker (4-5x MATE) 11. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (variable amount) - Distributes via makeDisperseCaPay: * Seller: amountB + (finalFee * seller%) * Staker: priorityFee + (finalFee * staker%) * Service: finalFee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - ProportionalFee: (amountB * percentageFee.current) / 10,000 - Fee: min(proportionalFee, maxLimitFillFixedFee.current) - Tolerance: fee * 10% (fee10) - MinRequired: amountB + fee - fee10 - FullRequired: amountB + fee - FinalFee: Based on actual payment amount Tolerance Range: - Accepts payment between [amountB + 90% fee] and [amountB + 100% fee] - Calculates actual fee from payment received - Enables flexible fee payment for users","params":{"amountOfTokenBToFill":"Amount of tokenB buyer is paying (must cover order + fee)","maxFillFixedFee":"Max fee cap (for testing)","nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to fill","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for dispatch authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address filling the order (buyer)"}},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Fee = amountB * percentageFee.current / 10,000 Proportional Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates fee: (amountB * percentageFee.current) / 10,000 4. Validates amountOfTokenBToFill >= amountB + fee 5. Collects tokenB + fee via Evvm.requestPay 6. Handles overpayment refund if any 7. Distributes payments (seller, service, staker) 8. Transfers tokenA to buyer via Evvm.makeCaPay 9. Rewards staker (4-5x MATE) 10. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (amountB + fee) - Distributes via makeDisperseCaPay: * Seller: amountB + (fee * seller%) * Staker: priorityFee + (fee * staker%) * Service: fee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - Fee: (amountB * percentageFee.current) / 10,000 - Total: amountB + fee - Example: 5% fee = 500 / 10,000","params":{"amountOfTokenBToFill":"Amount of tokenB buyer is paying (must cover order + fee)","nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to fill","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for dispatch authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address filling the order (buyer)"}},"getEvvmID()":{"details":"Returns core.getEvvmID(). Prevents cross-chain replays.","returns":{"_0":"Unique EVVM instance identifier"}},"getIfUsedAsyncNonce(address,uint256)":{"details":"View function returning core.getIfUsedAsyncNonce(user, nonce). Reserved nonces return false until consumed.","params":{"nonce":"Async nonce to check","user":"User address to query"},"returns":{"_0":"true if consumed, false if available/reserved"}},"getNextCurrentSyncNonce(address)":{"details":"View function returning core.getNextCurrentSyncNonce(user). Auto-increments after each use.","params":{"user":"User address to query"},"returns":{"_0":"Next sync nonce for user"}},"getPrincipalTokenAddress()":{"details":"Returns core.getPrincipalTokenAddress(). Used for payment operations.","returns":{"_0":"Address of Principal Token (MATE)"}},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Locks tokenA in Core.sol and opens an order slot. Markets are automatically created for new token pairs.","params":{"amountA":"Amount of tokenA offered.","amountB":"Amount of tokenB requested.","nonce":"Nonce for service execution (async).","noncePay":"Nonce for the Core payment (locks tokenA).","originExecutor":"executor address for signature validation.","priorityFeePay":"Optional priority fee for the executor.","signature":"Seller\'s authorization signature.","signaturePay":"Signature for the Core payment.","tokenA":"Address of the token being sold.","tokenB":"Address of the token being bought.","user":"Seller address."},"returns":{"market":"The ID of the market.","orderId":"The ID of the order within that market."}}},"title":"EVVM P2P Swap","version":1},"userdoc":{"kind":"user","methods":{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Cancels existing order and refunds locked tokens"},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{"notice":"Fills order using fixed/capped fee model"},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Fills order using proportional fee model"},"getEvvmID()":{"notice":"Gets unique EVVM instance identifier for signature validation"},"getIfUsedAsyncNonce(address,uint256)":{"notice":"Checks if async nonce was consumed"},"getNextCurrentSyncNonce(address)":{"notice":"Gets next sequential sync nonce for user"},"getPrincipalTokenAddress()":{"notice":"Gets Principal Token (MATE) address"},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Creates a new limit order in a specific trading market."}},"notice":"/$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$__ $$/$$__ $| $$__ $$/$$__ $$ | $$ \\\\ $|__/ \\\\ $| $$ \\\\ $| $$ \\\\__//$$ /$$ /$$ /$$$$$$ /$$$$$$ | $$$$$$$/ /$$$$$$| $$$$$$$| $$$$$$| $$ | $$ | $$|____ $$/$$__ $$ | $$____/ /$$____/| $$____/ \\\\____ $| $$ | $$ | $$ /$$$$$$| $$ \\\\ $$ | $$ | $$ | $$ /$$ \\\\ $| $$ | $$ | $$/$$__ $| $$ | $$ | $$ | $$$$$$$| $$ | $$$$$$| $$$$$/$$$$| $$$$$$| $$$$$$$/ |__/ |________|__/ \\\\______/ \\\\_____/\\\\___/ \\\\_______| $$____/ | $$ | $$ |__/ Peer-to-peer decentralized exchange for token trading within EVVM.","version":1}},"settings":{"compilationTarget":{"src/contracts/p2pSwap/P2PSwap.sol":"P2PSwap"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/p2pSwap/P2PSwap.sol":{"keccak256":"0x3b1096877a840e92cd0bc3f29e2db26e85f6bda47b06282a852484eac538d317","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://74ebdbf8e5f0c7f6f6deca066c34b0ea11e5d64764a827ac934edb79c9fd630a","dweb:/ipfs/QmfBC9pr1dhZhyF6yPMYxzQeVvyo2HTrVpNfrs7uJfiVav"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/ICore.sol":{"keccak256":"0x5aaecf1d449b5b7beb864d3f7ae281eb1ca8d810d852927e9cf04593882e3c6f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://5159ea817b157f01b80a16d6efb3bb41cc3a5d482e44e7b6370079ad8dd7dd3b","dweb:/ipfs/QmXp2GuM9aU8DBPVaikvxYG3J65pjBkyti8MTXeP2WB2Pp"]},"src/interfaces/IStaking.sol":{"keccak256":"0xa4b5ffd3ea30c1d8fc878e4031284c6311aab6adb6b8f3d9edd95fb6467ccfb0","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://530b73a2e3b6dfd3e207b768d377d84190118d8d92104fbc39d281ffb31d4c98","dweb:/ipfs/QmPEM2tFcxmiUwav17UwGw1bEkEuUFxRL2LrRB1o9FvC2r"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/EvvmService.sol":{"keccak256":"0xceddba57e52de250e7c1828cfc157173db686fa6911bb427eb0df0f9085847f4","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://b16ed1576c11fdd32db2939b23811e557fcd5a9719eba2e40bdb59508294023d","dweb:/ipfs/QmccmyQERqoU7ysrFrXt8otZJ8UHAGEYbMTFWw7thWgY6J"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/P2PSwapStructs.sol":{"keccak256":"0x26a2d75e6397aa2c67e844eafa5d2e55b920910c6639f7f06e0c95ff97144273","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://f727b7ed930fdf509b741f6026c077c88ead5fd2b6f1461d90958c5ea122ef75","dweb:/ipfs/QmeMYZUArqVqwh24717aebHkpbwbV6Lzzmk2j5tTZuceMF"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/service/CoreExecution.sol":{"keccak256":"0xcca54c237de2e977dd710a10241b49023074460a67e2d6337db7645c5fb32468","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://14102751a905a10357670a05577b690537aaf6f0a6235ba231fbaaa0538a0714","dweb:/ipfs/QmNuivzcUHWwBDdDRLXQmHXo3JZhTnCF5K5khpz3PbUbHu"]},"src/library/utils/service/StakingServiceUtils.sol":{"keccak256":"0x751f079780ec3353091054f85c0a8ad046e2d8b10b6a1532674721be4df9da53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://33581b93ba9cd6d1a9764913a5bfb53cd51617b179703ef3f277279f354c9ab0","dweb:/ipfs/QmcdBqwdjmzKhm976vGXHbYRvtoUBf7VX3RnBEKtZ5cHoh"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/P2PSwapHashUtils.sol":{"keccak256":"0x305a0ea1c5c24a22c28feef476b802bf62622507f9e8e4b616d783d7d6bf0e0e","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://7840e3bb504191739741acc2fa51eb04bbcc68e609133e3fd7577dfece0aab8c","dweb:/ipfs/QmTHoJaYazhsfWM7CBLxfYGN12omcseJPWp6CXiL5jNZZQ"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_stakingAddress",type:"address"},{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"InvalidServiceSignature"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptFillFixedPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptFillPropotionalPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptMaxLimitFillFixedFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptOwner"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptPercentageFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptWithdrawal"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addBalance"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"cancelOrder"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"amountOfTokenBToFill",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"},{internalType:"uint256",name:"maxFillFixedFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"dispatchOrder_fillFixedFee"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"amountOfTokenBToFill",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"dispatchOrder_fillPropotionalFee"},{inputs:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"}],stateMutability:"view",type:"function",name:"findMarket",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getAllMarketOrders",outputs:[{internalType:"struct P2PSwapStructs.OrderForGetter[]",name:"orders",type:"tuple[]",components:[{internalType:"uint256",name:"marketId",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllMarketsMetadata",outputs:[{internalType:"struct P2PSwapStructs.MarketInformation[]",name:"",type:"tuple[]",components:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"maxSlot",type:"uint256"},{internalType:"uint256",name:"ordersAvailable",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getBalanceOfContract",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getMarketMetadata",outputs:[{internalType:"struct P2PSwapStructs.MarketInformation",name:"",type:"tuple",components:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"maxSlot",type:"uint256"},{internalType:"uint256",name:"ordersAvailable",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getMaxLimitFillFixedFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getMaxLimitFillFixedFeeProposal",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getMyOrdersInSpecificMarket",outputs:[{internalType:"struct P2PSwapStructs.OrderForGetter[]",name:"orders",type:"tuple[]",components:[{internalType:"uint256",name:"marketId",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"getNextCurrentSyncNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"}],stateMutability:"view",type:"function",name:"getOrder",outputs:[{internalType:"struct P2PSwapStructs.Order",name:"order",type:"tuple",components:[{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwnerProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwnerTimeToAccept",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPercentageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposalPercentageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposedWithdrawal",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardPercentage",outputs:[{internalType:"struct P2PSwapStructs.Percentage",name:"",type:"tuple",components:[{internalType:"uint256",name:"seller",type:"uint256"},{internalType:"uint256",name:"service",type:"uint256"},{internalType:"uint256",name:"mateStaker",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardPercentageProposal",outputs:[{internalType:"struct P2PSwapStructs.Percentage",name:"",type:"tuple",components:[{internalType:"uint256",name:"seller",type:"uint256"},{internalType:"uint256",name:"service",type:"uint256"},{internalType:"uint256",name:"mateStaker",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"makeOrder",outputs:[{internalType:"uint256",name:"market",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"_seller",type:"uint256"},{internalType:"uint256",name:"_service",type:"uint256"},{internalType:"uint256",name:"_mateStaker",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeFillFixedPercentage"},{inputs:[{internalType:"uint256",name:"_seller",type:"uint256"},{internalType:"uint256",name:"_service",type:"uint256"},{internalType:"uint256",name:"_mateStaker",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeFillPropotionalPercentage"},{inputs:[{internalType:"uint256",name:"_maxLimitFillFixedFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeMaxLimitFillFixedFee"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeOwner"},{inputs:[{internalType:"uint256",name:"_percentageFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposePercentageFee"},{inputs:[{internalType:"address",name:"_tokenToWithdraw",type:"address"},{internalType:"uint256",name:"_amountToWithdraw",type:"uint256"},{internalType:"address",name:"_to",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeWithdrawal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeFillFixedPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeFillPropotionalPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeMaxLimitFillFixedFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeOwner"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposePercentageFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeWithdrawal"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"stake"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"unstake"}],devdoc:{kind:"dev",methods:{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Validates ownership, refunds tokenA, deletes order Cancellation Flow: 1. Validates signature via Core.sol 2. Validates user is order owner 3. Processes optional priority fee 4. Refunds locked tokenA to user 5. Deletes order (sets seller to address(0)) 6. Rewards staker if applicable Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents replay attacks and double cancellation Core.sol Integration: - Refunds tokenA via makeCaPay (order.amountA) - Priority fee via requestPay (if > 0) - Staker reward: 2-3x MATE via _rewardExecutor - makeCaPay handles staker priority fee distribution Security: - Only order owner can cancel - Atomic refund + deletion - Market slot becomes available for reuse",params:{nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to cancel",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for cancellation authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address that owns the order"}},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{details:"Fee = min(proportionalFee, maxLimitFillFixedFee.current) with -10% tolerance Fixed Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates capped fee and 10% tolerance 4. Validates amountOfTokenBToFill >= amountB + fee - 10% 5. Collects tokenB + amount via Evvm.requestPay 6. Calculates final fee based on actual payment 7. Handles overpayment refund if any 8. Distributes payments (seller, service, staker) 9. Transfers tokenA to buyer via Evvm.makeCaPay 10. Rewards staker (4-5x MATE) 11. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (variable amount) - Distributes via makeDisperseCaPay: * Seller: amountB + (finalFee * seller%) * Staker: priorityFee + (finalFee * staker%) * Service: finalFee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - ProportionalFee: (amountB * percentageFee.current) / 10,000 - Fee: min(proportionalFee, maxLimitFillFixedFee.current) - Tolerance: fee * 10% (fee10) - MinRequired: amountB + fee - fee10 - FullRequired: amountB + fee - FinalFee: Based on actual payment amount Tolerance Range: - Accepts payment between [amountB + 90% fee] and [amountB + 100% fee] - Calculates actual fee from payment received - Enables flexible fee payment for users",params:{amountOfTokenBToFill:"Amount of tokenB buyer is paying (must cover order + fee)",maxFillFixedFee:"Max fee cap (for testing)",nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to fill",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for dispatch authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address filling the order (buyer)"}},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Fee = amountB * percentageFee.current / 10,000 Proportional Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates fee: (amountB * percentageFee.current) / 10,000 4. Validates amountOfTokenBToFill >= amountB + fee 5. Collects tokenB + fee via Evvm.requestPay 6. Handles overpayment refund if any 7. Distributes payments (seller, service, staker) 8. Transfers tokenA to buyer via Evvm.makeCaPay 9. Rewards staker (4-5x MATE) 10. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (amountB + fee) - Distributes via makeDisperseCaPay: * Seller: amountB + (fee * seller%) * Staker: priorityFee + (fee * staker%) * Service: fee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - Fee: (amountB * percentageFee.current) / 10,000 - Total: amountB + fee - Example: 5% fee = 500 / 10,000",params:{amountOfTokenBToFill:"Amount of tokenB buyer is paying (must cover order + fee)",nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to fill",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for dispatch authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address filling the order (buyer)"}},"getEvvmID()":{details:"Returns core.getEvvmID(). Prevents cross-chain replays.",returns:{_0:"Unique EVVM instance identifier"}},"getIfUsedAsyncNonce(address,uint256)":{details:"View function returning core.getIfUsedAsyncNonce(user, nonce). Reserved nonces return false until consumed.",params:{nonce:"Async nonce to check",user:"User address to query"},returns:{_0:"true if consumed, false if available/reserved"}},"getNextCurrentSyncNonce(address)":{details:"View function returning core.getNextCurrentSyncNonce(user). Auto-increments after each use.",params:{user:"User address to query"},returns:{_0:"Next sync nonce for user"}},"getPrincipalTokenAddress()":{details:"Returns core.getPrincipalTokenAddress(). Used for payment operations.",returns:{_0:"Address of Principal Token (MATE)"}},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Locks tokenA in Core.sol and opens an order slot. Markets are automatically created for new token pairs.",params:{amountA:"Amount of tokenA offered.",amountB:"Amount of tokenB requested.",nonce:"Nonce for service execution (async).",noncePay:"Nonce for the Core payment (locks tokenA).",originExecutor:"executor address for signature validation.",priorityFeePay:"Optional priority fee for the executor.",signature:"Seller's authorization signature.",signaturePay:"Signature for the Core payment.",tokenA:"Address of the token being sold.",tokenB:"Address of the token being bought.",user:"Seller address."},returns:{market:"The ID of the market.",orderId:"The ID of the order within that market."}}},version:1},userdoc:{kind:"user",methods:{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Cancels existing order and refunds locked tokens"},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{notice:"Fills order using fixed/capped fee model"},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Fills order using proportional fee model"},"getEvvmID()":{notice:"Gets unique EVVM instance identifier for signature validation"},"getIfUsedAsyncNonce(address,uint256)":{notice:"Checks if async nonce was consumed"},"getNextCurrentSyncNonce(address)":{notice:"Gets next sequential sync nonce for user"},"getPrincipalTokenAddress()":{notice:"Gets Principal Token (MATE) address"},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Creates a new limit order in a specific trading market."}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/p2pSwap/P2PSwap.sol":"P2PSwap"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/p2pSwap/P2PSwap.sol":{keccak256:"0x3b1096877a840e92cd0bc3f29e2db26e85f6bda47b06282a852484eac538d317",urls:["bzz-raw://74ebdbf8e5f0c7f6f6deca066c34b0ea11e5d64764a827ac934edb79c9fd630a","dweb:/ipfs/QmfBC9pr1dhZhyF6yPMYxzQeVvyo2HTrVpNfrs7uJfiVav"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/ICore.sol":{keccak256:"0x5aaecf1d449b5b7beb864d3f7ae281eb1ca8d810d852927e9cf04593882e3c6f",urls:["bzz-raw://5159ea817b157f01b80a16d6efb3bb41cc3a5d482e44e7b6370079ad8dd7dd3b","dweb:/ipfs/QmXp2GuM9aU8DBPVaikvxYG3J65pjBkyti8MTXeP2WB2Pp"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IStaking.sol":{keccak256:"0xa4b5ffd3ea30c1d8fc878e4031284c6311aab6adb6b8f3d9edd95fb6467ccfb0",urls:["bzz-raw://530b73a2e3b6dfd3e207b768d377d84190118d8d92104fbc39d281ffb31d4c98","dweb:/ipfs/QmPEM2tFcxmiUwav17UwGw1bEkEuUFxRL2LrRB1o9FvC2r"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/EvvmService.sol":{keccak256:"0xceddba57e52de250e7c1828cfc157173db686fa6911bb427eb0df0f9085847f4",urls:["bzz-raw://b16ed1576c11fdd32db2939b23811e557fcd5a9719eba2e40bdb59508294023d","dweb:/ipfs/QmccmyQERqoU7ysrFrXt8otZJ8UHAGEYbMTFWw7thWgY6J"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/P2PSwapStructs.sol":{keccak256:"0x26a2d75e6397aa2c67e844eafa5d2e55b920910c6639f7f06e0c95ff97144273",urls:["bzz-raw://f727b7ed930fdf509b741f6026c077c88ead5fd2b6f1461d90958c5ea122ef75","dweb:/ipfs/QmeMYZUArqVqwh24717aebHkpbwbV6Lzzmk2j5tTZuceMF"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/service/CoreExecution.sol":{keccak256:"0xcca54c237de2e977dd710a10241b49023074460a67e2d6337db7645c5fb32468",urls:["bzz-raw://14102751a905a10357670a05577b690537aaf6f0a6235ba231fbaaa0538a0714","dweb:/ipfs/QmNuivzcUHWwBDdDRLXQmHXo3JZhTnCF5K5khpz3PbUbHu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/service/StakingServiceUtils.sol":{keccak256:"0x751f079780ec3353091054f85c0a8ad046e2d8b10b6a1532674721be4df9da53",urls:["bzz-raw://33581b93ba9cd6d1a9764913a5bfb53cd51617b179703ef3f277279f354c9ab0","dweb:/ipfs/QmcdBqwdjmzKhm976vGXHbYRvtoUBf7VX3RnBEKtZ5cHoh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/P2PSwapHashUtils.sol":{keccak256:"0x305a0ea1c5c24a22c28feef476b802bf62622507f9e8e4b616d783d7d6bf0e0e",urls:["bzz-raw://7840e3bb504191739741acc2fa51eb04bbcc68e609133e3fd7577dfece0aab8c","dweb:/ipfs/QmTHoJaYazhsfWM7CBLxfYGN12omcseJPWp6CXiL5jNZZQ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:66},aF={abi:[{type:"constructor",inputs:[{name:"initialAdmin",type:"address",internalType:"address"},{name:"initialGoldenFisher",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptNewAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptNewEstimator",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptNewGoldenFisher",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptSetSecondsToUnlockStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPresaleStaker",inputs:[{name:"_staker",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPresaleStakers",inputs:[{name:"_stakers",type:"address[]",internalType:"address[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelSetSecondsToUnllockFullUnstaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmServiceStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmSetSecondsToUnllockFullUnstaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAddressHistory",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"tuple[]",internalType:"struct StakingStructs.HistoryMetadata[]",components:[{name:"transactionType",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"timestamp",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAddressHistoryByIndex",inputs:[{name:"_account",type:"address",internalType:"address"},{name:"_index",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct StakingStructs.HistoryMetadata",components:[{name:"transactionType",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"timestamp",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllowPresaleStaking",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllowPublicStaking",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getCoreAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEstimatorAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEstimatorProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getGoldenFisher",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getGoldenFisherProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMateAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPresaleStaker",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPresaleStakerCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSecondsToUnlockFullUnstaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSecondsToUnlockStaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSizeOfAddressHistory",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTimeToUserUnlockFullUnstakingTime",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTimeToUserUnlockStakingTime",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserAmountStaked",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"gimmeYiel",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenToBeRewarded",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwriteUserHistory",type:"uint256",internalType:"uint256"},{name:"timestampToBeOverwritten",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"goldenStaking",inputs:[{name:"isStaking",type:"bool",internalType:"bool"},{name:"amountOfStaking",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initializeSystemContracts",inputs:[{name:"_estimator",type:"address",internalType:"address"},{name:"_core",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareServiceStaking",inputs:[{name:"amountOfStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareSetSecondsToUnllockFullUnstaking",inputs:[{name:"_secondsToUnllockFullUnstaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"presaleStaking",inputs:[{name:"user",type:"address",internalType:"address"},{name:"isStaking",type:"bool",internalType:"bool"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"priceOfStaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"proposeAdmin",inputs:[{name:"_newAdmin",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeEstimator",inputs:[{name:"_estimator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeGoldenFisher",inputs:[{name:"_goldenFisher",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeSetSecondsToUnlockStaking",inputs:[{name:"_secondsToUnlockStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"publicStaking",inputs:[{name:"user",type:"address",internalType:"address"},{name:"isStaking",type:"bool",internalType:"bool"},{name:"amountOfStaking",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalEstimator",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalGoldenFisher",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalSetSecondsToUnlockStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"serviceUnstaking",inputs:[{name:"amountOfStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AddressIsNotAService",inputs:[]},{type:"error",name:"AddressMismatch",inputs:[]},{type:"error",name:"AddressMustWaitToFullUnstake",inputs:[]},{type:"error",name:"AddressMustWaitToStakeAgain",inputs:[]},{type:"error",name:"LimitPresaleStakersExceeded",inputs:[]},{type:"error",name:"PresaleStakingDisabled",inputs:[]},{type:"error",name:"PublicStakingDisabled",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotGoldenFisher",inputs:[]},{type:"error",name:"SenderIsNotProposedAdmin",inputs:[]},{type:"error",name:"ServiceDoesNotFulfillCorrectStakingAmount",inputs:[{name:"requiredAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ServiceDoesNotStakeInSameTx",inputs:[]},{type:"error",name:"TimeToAcceptProposalNotReached",inputs:[]},{type:"error",name:"UserIsNotPresaleStaker",inputs:[]},{type:"error",name:"UserPresaleStakerLimitExceeded",inputs:[]}],bytecode:{object:"0x60803460ba57601f613d0538819003918201601f19168301916001600160401b0383118484101760be57808492604094855283398101031260ba57604b602060458360d2565b920160d2565b9060018060a01b031660018060a01b0319600254161760025560018060a01b031660018060a01b03196005541617600555600160ff19601354161760135560ff19601154166011555f600b5562069780600e55600160ff19601a541617601a55604051613c1f90816100e68239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360ba5756fe60806040526004361015610011575f80fd5b5f5f3560e01c8063147bf6c41461352657806317c85152146134a85780631e9c210f146134625780632096b7681461343d57806327be05571461340957806334dd90d6146133975780633900738a1461333e5780633d8ff69a146132e0578063475c31ff14612cbb578063489c5ad414612c6057806355160ea614612bba57806358b71cb414612406578063602c4fb414612111578063610a0476146120d45780636254300b146120ad57806366d161aa14612086578063681f02ac1461202a5780636b2933a214611fed5780636c58f77b14611f685780636fa7ff1714611ef15780637068dc6514611ec75780637c25faef14611e995780637f8da59114611e72578063829c67d414611a8357806383e512ab14611362578063893d20e81461133b57806389a75af8146112e35780638f4b3f28146112975780639053a2581461120557806396ae4e451461116557806399b4c3ef14610f045780639cde1d3e14610ee05780639e41123314610ebc578063a06831ba14610e80578063a84e9f2314610e44578063b384c57414610e16578063b38c950a14610dda578063b996b6c414610db0578063be10034514610cca578063c130a71914610c78578063c9d2beb114610643578063cb0900b81461061e578063cd6b5460146105a9578063d0e3692d14610508578063d5bbacd5146104dc578063dfb2b3a414610483578063e6cbd0a61461045c578063e6f2ebe41461043e578063e7dc0756146103e2578063f5c1af1c146103c4578063fa6215f3146103a6578063fabd08e81461029b5763fc2feab214610261575f80fd5b346102985760203660031901126102985760406020916001600160a01b0361028761357f565b168152601c83522054604051908152f35b80fd5b5034610298576020366003190112610298576001600160a01b036102bd61357f565b168152601c60205260408120805467ffffffffffffffff811161039257604051906102ee60208260051b0183613641565b80825260208201809385526020852085915b83831061037457868587604051928392602084019060208552518091526040840192915b818110610332575050500390f35b9193509160206080826103666001948851606080918051845260208101516020850152604081015160408501520151910152565b019401910191849392610324565b6004602060019261038485613790565b815201920192019190610300565b634e487b7160e01b83526041600452602483fd5b50346102985780600319360112610298576020600154604051908152f35b50346102985780600319360112610298576020600e54604051908152f35b50346102985780600319360112610298576103fb613778565b505061043a60405161040c816135f5565b60115460ff161515808252601254602092830190815260408051928352905192820192909252918291820190565b0390f35b50346102985780600319360112610298576020600b54604051908152f35b503461029857806003193601126102985760206001600160a01b0360095416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576201518042018042116104b95760125580f35b634e487b7160e01b82526011600452602482fd5b636587b01b60e11b8152600490fd5b50346102985760203660031901126102985760206105006104fb61357f565b61387c565b604051908152f35b50346102985760403660031901126102985761052261357f565b60206001600160a01b03604481601d541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa90811561059e5760209291610571575b506040519015158152f35b6105919150823d8411610597575b6105898183613641565b810190613752565b5f610566565b503d61057f565b6040513d84823e3d90fd5b50346102985780600319360112610298576003546001600160a01b03811680330361060f576004544210610600576001600160601b0360a01b60025416176002556001600160601b0360a01b166003558060045580f35b6384fa847560e01b8352600483fd5b632dba366760e21b8352600483fd5b503461029857806003193601126102985760206040516901138ccba11c9e8c00008152f35b5034610298578060031936011261029857333b15610c6957601754806901138ccba11c9e8c000002906901138ccba11c9e8c00008204810361091a5761068b82601854613704565b6001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610bea578692610c29575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa918215610bea578692610bf5575b5014159081610af2575b50610ade576016544203610acf57336001600160a01b036015541603610ac05760405190610734826135f5565b3382526020820191600183526020936040516107508682613641565b868152426107676001600160a01b0385511661380d565b11610ab15786855115610a92575b9150506001600160a01b03601d54166001600160a01b03835116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57610a75575b505080516001600160a01b03168552601c84526040852054610a04576001600160a01b0382915b51168552601c8452604085206040519261080a84613625565b60018452858401908152604084019142835260608501938452805490600160401b8210156109f0579061084291600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116918382602481865afa9182156109d15785926109b2575b50816109a8575b506108a7578280f35b60405163280e32fb60e01b81528281600481855afa908115610962578390859261096d575b506040516309a69f5760e01b81529192829060049082905afa92831561096257849361092e575b50508160011b918083046002149015171561091a5790610914913390613925565b5f808280f35b634e487b7160e01b83526011600452602483fd5b9080929350813d831161095b575b6109468183613641565b810103126109575751905f806108f3565b5f80fd5b503d61093c565b6040513d86823e3d90fd5b809250813d83116109a1575b6109838183613641565b8101031261099d5782610997600492613711565b916108cc565b8380fd5b503d610979565b905051155f61089e565b6109ca919250843d8611610597576105898183613641565b905f610897565b6040513d87823e3d90fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b89526041600452602489fd5b6001600160a01b038151168552601c8452604085206001600160a01b038251168652601c85526040862054905f198201918211610a6157836003610a536001600160a01b0394610a5b94613725565b5001546135e8565b916107f1565b634e487b7160e01b87526011600452602487fd5b81610a7f91613641565b610a8a57845f6107ca565b8480fd5b8280fd5b808080610aa9956001600160a01b03885116613ab1565b5f8086610775565b632df062b560e21b8752600487fd5b634cd87fb560e01b8352600483fd5b635ac7600960e11b8352600483fd5b630387e0bb60e21b83526004829052602483fd5b9050610b00836019546135e8565b60405163280e32fb60e01b8152602081600481865afa908115610bea578691610ba4575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529160209083908180604481015b03915afa9182156109d1578592610b70575b5014155f610707565b9091506020813d602011610b9c575b81610b8c60209383613641565b810103126109575751905f610b67565b3d9150610b7f565b90506020813d602011610be2575b81610bbf60209383613641565b81010312610bde57610b5592610bd6602092613711565b915092610b24565b8580fd5b3d9150610bb2565b6040513d88823e3d90fd5b9091506020813d602011610c21575b81610c1160209383613641565b810103126109575751905f6106fd565b3d9150610c04565b91506020823d602011610c61575b81610c4460209383613641565b81010312610bde576020610c5a6106ea93613711565b92506106bd565b3d9150610c37565b634a340e9d60e01b8152600490fd5b5034610298576020366003190112610298576040906001826001600160a01b03610ca061357f565b1692838152601b60205260ff8282205416938152601b602052200154825191151582526020820152f35b50346102985760203660031901126102985760043567ffffffffffffffff8111610dac5736602382011215610dac5780600401359067ffffffffffffffff8211610a8e573660248360051b83010111610a8e576001600160a01b03600254163303610d9d57825b82811015610d995761032060015411610d8a5760248160051b83010135906001600160a01b038216809203610a8a576001918552601b602052604085208260ff19825416179055610d82825461376a565b825501610d31565b63d646f8c560e01b8452600484fd5b8380f35b636587b01b60e11b8352600483fd5b5080fd5b50346102985780600319360112610298576001600160a01b036002541633036104cd578060145580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600354166003558060045580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600f558060105580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600654166006558060075580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b6009541660095580600a5580f35b5034610298576020366003190112610298576020610500610edb61357f565b61380d565b5034610298576020366003190112610298576020610500610eff61357f565b6137c2565b503461029857602036600319011261029857600435333b15611156576001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610962578492611116575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa9182156109625784926110e2575b5060405163280e32fb60e01b8152602081600481875afa9081156109d15785916110a0575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529260209084908180604481015b03915afa92831561096257849361106c575b5060405160a0810181811067ffffffffffffffff8211176110585784916080916040523381524260208201528360408201528460608201520152336001600160601b0360a01b60155416176015554260165560175560185560195580f35b634e487b7160e01b86526041600452602486fd5b9092506020813d602011611098575b8161108860209383613641565b810103126109575751915f610ffa565b3d915061107b565b90506020813d6020116110da575b816110bb60209383613641565b81010312610a8a57610fe8936110d2602092613711565b915093610fb7565b3d91506110ae565b9091506020813d60201161110e575b816110fe60209383613641565b810103126109575751905f610f92565b3d91506110f1565b91506020823d60201161114e575b8161113160209383613641565b8101031261099d576020611147610f7f93613711565b9250610f52565b3d9150611124565b634a340e9d60e01b8252600482fd5b503461029857806003193601126102985760049060206001600160a01b03601d54166040519384809263280e32fb60e01b82525afa9081156111f95780916111bc575b6020826001600160a01b0360405191168152f35b90506020823d6020116111f1575b816111d760209383613641565b8101031261029857506111eb602091613711565b5f6111a8565b3d91506111ca565b604051903d90823e3d90fd5b50346102985760403660031901126102985761126a6112646080926001600160a01b0361123061357f565b82606060405161123f81613625565b8281528260208201528260408201520152168152601c60205260406024359120613725565b50613790565b6112956040518092606080918051845260208101516020850152604081015160408501520151910152565bf35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760105442106112d457600f54600e5580600f558060105580f35b6384fa847560e01b8152600490fd5b50346102985780600319360112610298576112fc613778565b505061043a60405161130d816135f5565b60135460ff161515808252601454602092830190815260408051928352905192820192909252918291820190565b503461029857806003193601126102985760206001600160a01b0360025416604051908152f35b5034610298576101403660031901126102985761137d61357f565b6113856135ab565b604435611390613595565b92608435926001600160a01b0384168403610bde5760c43567ffffffffffffffff8111611a7f576113c59036906004016135ba565b60e435959161010435916101243567ffffffffffffffff8111611a7b576113f09036906004016135ba565b99909260ff6013541615611a6c57908b92916001600160a01b03601d5416604051602081019060608252600d60808201526c7075626c69635374616b696e6760981b60a08201528a151560408201528c606082015260a0815261145460c082613641565b519020813b15610bde578580946114898d978c96604051998a9889978896637d3d171560e11b885260a43593600489016136a9565b03925af1801561059e57611a57575b50506114c5906001600160a01b03604051966114b3886135f5565b16865260208601988a8a523691613663565b918315611843576114df6001600160a01b0386511661380d565b4210611834578751156117dc575b505050856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e576117c7575b505081516001600160a01b03168652601c602052604086205461175d576001600160a01b03835b925b51168652601c602052604086209015611755576001925b6040519361159085613625565b845260208401908152604084019142835260608501938452805490600160401b8210156109f057906115c791600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911692602082602481875afa9182156109d1578592611734575b508161172a575b5061162d578280f35b60405163280e32fb60e01b815291602083600481845afa9283156109625784936116e9575b506020600491604051928380926309a69f5760e01b82525afa9081156109625784916116b7575b508060011b90808204600214901517156116a357610914929161169b916135e8565b903390613925565b634e487b7160e01b84526011600452602484fd5b90506020813d6020116116e1575b816116d260209383613641565b8101031261095757515f611679565b3d91506116c5565b9092506020813d602011611722575b8161170560209383613641565b8101031261099d57602061171a600492613711565b939150611652565b3d91506116f8565b905051155f611624565b61174e91925060203d602011610597576105898183613641565b905f61161d565b600292611583565b6001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b357846003610a536001600160a01b03946117ae94613725565b61156a565b634e487b7160e01b88526011600452602488fd5b816117d191613641565b610bde57855f611543565b6001600160a01b03855116866901138ccba11c9e8c000002906901138ccba11c9e8c000082048803611820579188611818959492600194613ab1565b5f80806114ed565b634e487b7160e01b8b52601160045260248bfd5b632df062b560e21b8952600489fd5b6118596001600160a01b038694939451166137c2565b86146119c0575b861515806119b7575b611997575b5050506001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b35760036118ba6118c2938793613725565b500154613704565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa90811561198c57889161194e575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c00008304870361193a5791611935916001600160a01b039493613925565b61156c565b634e487b7160e01b8a52601160045260248afd5b90506020813d602011611984575b8161196960209383613641565b810103126119805761197a90613711565b5f6118f4565b8780fd5b3d915061195c565b6040513d8a823e3d90fd5b6119af92600191886001600160a01b03885116613987565b5f808061186e565b50875115611869565b6119d36001600160a01b0386511661387c565b4210611a4857886001600160a01b03601d54166001600160a01b03875116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57611a2f575b5050611860565b81611a3991613641565b611a4457885f611a28565b8880fd5b636b0ed46d60e01b8952600489fd5b81611a6191613641565b611a4457885f611498565b6333a374eb60e11b8c5260048cfd5b8a80fd5b8680fd5b503461029857602036600319011261029857600435333b1561115657604051611aab816135f5565b338152602081019160018352602091604051611ac78482613641565b85815285611ade6001600160a01b038451166137c2565b8414611ddb575b611dbd575b506001600160a01b038151168552601c8352604085206001600160a01b038251168652601c84526040862054905f198201918211610a615760036118ba611b32938693613725565b906004846001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db2578791611d7d575b506001600160a01b03825116846901138ccba11c9e8c000002916901138ccba11c9e8c000083048603611d695791611ba4916001600160a01b039493613925565b51168552601c8352604085208515611d61576001925b60405193611bc785613625565b8452848401908152604084019142835260608501938452805490600160401b8210156109f05790611bfd91600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116928282602481875afa9182156109d1578592611d42575b5081611d38575b50611c62578280f35b60405163280e32fb60e01b8152918183600481845afa928315610962578493611cfd575b5081600491604051928380926309a69f5760e01b82525afa918215610962578492611ccf575b50508060011b908082046002149015171561091a579061169b83610914936135e8565b90809250813d8311611cf6575b611ce68183613641565b8101031261095757515f80611cac565b503d611cdc565b9092508181813d8311611d31575b611d158183613641565b8101031261099d5781611d29600492613711565b939150611c86565b503d611d0b565b905051155f611c59565b611d5a919250833d8511610597576105898183613641565b905f611c52565b600292611bba565b634e487b7160e01b89526011600452602489fd5b90508481813d8311611dab575b611d948183613641565b81010312611a7f57611da590613711565b5f611b63565b503d611d8a565b6040513d89823e3d90fd5b611dd590868080806001600160a01b03875116613987565b5f611aea565b50611def6001600160a01b0383511661387c565b4210611e6357856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af190811561059e578291611e4e575b5050611ae5565b81611e5891613641565b61029857805f611e47565b636b0ed46d60e01b8652600486fd5b503461029857806003193601126102985760206001600160a01b0360055416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600c5580600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd578060125580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600a5442106112d4576009546001600160a01b03811690816001600160601b0360a01b60085416176008556001600160601b0360a01b1660095581600a556001600160601b0360a01b601e541617601e5580f35b503461029857602036600319011261029857611f8261357f565b6001600160a01b03600254163303611fde5761032060015411611fcf576001600160a01b03168152601b60205260408120600160ff19825416179055611fc960015461376a565b60015580f35b63d646f8c560e01b8252600482fd5b636587b01b60e11b8252600482fd5b5034610298576020366003190112610298576001600160a01b036002541633036104cd57600435600c556201518042018042116104b957600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760145442106112d45760ff601354161581602060405161206c816135f5565b838152015260ff8019601354169116176013558060145580f35b503461029857806003193601126102985760206001600160a01b0360085416604051908152f35b503461029857806003193601126102985760206001600160a01b0360065416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600d5442106112d457600c54600b5580600c5580600d5580f35b50346102985760203660031901126102985761212b61357f565b90808092818291836001600160a01b038216808252601c602052604082205461217a575b5050506001600160a01b0360a095604051958652166020850152604084015260608301526080820152f35b94509450945050508160a06001600160a01b03601e541660246040518094819363f702720760e01b83528760048401525af19283156111f9578080948193829083926123ac575b50819581958095899a819a836121dc575b505050505061214f565b916121f08460029795936122319795613925565b828852601c6020526122058460408a20613725565b5055818752601c602052600161221e8460408a20613725565b5001558552601c60205260408520613725565b5001556001600160a01b03601d541690604051630a1ad2d160e21b8152336004820152602081602481865afa90811561059e57829161238d575b5061227c575b8080808080806121d2565b60405163280e32fb60e01b815290602082600481865afa91821561233d57819261234a575b506020600493604051948580926309a69f5760e01b82525afa92831561233d578193612309575b50828004600114831517156122f55750956122ef6001600160a01b039260a0983390613925565b95612271565b634e487b7160e01b81526011600452602490fd5b9092506020813d602011612335575b8161232560209383613641565b810103126109575751915f6122c8565b3d9150612318565b50604051903d90823e3d90fd5b9091506020813d602011612385575b8161236660209383613641565b81010312610dac5790602061237d60049493613711565b9293506122a1565b3d9150612359565b6123a6915060203d602011610597576105898183613641565b5f61226b565b9450505093505060a0813d60a0116123fe575b816123cc60a09383613641565b81010312610a8e578051926123e360208301613711565b9060408301519460806060850151940151909295935f6121c1565b3d91506123bf565b5034610298576101203660031901126102985761242161357f565b6124296135ab565b90604435916001600160a01b038316830361099d57612446613595565b9060a43567ffffffffffffffff8111610bde576124679036906004016135ba565b60c4359460e435916101043567ffffffffffffffff8111612bb6576124909036906004016135ba565b98909460ff60115416158015612baa575b612b9b57908a92916001600160a01b03601d5416604051602081019060608252600e60808201526d70726573616c655374616b696e6760901b60a08201528a151560408201526001606082015260a081526124fd60c082613641565b519020813b15610bde5785809461253289978e96604051998a9889978896637d3d171560e11b885260843593600489016136a9565b03925af1801561059e57612b86575b50506001600160a01b031691828852601b60205260ff60408920541615612b7757828852601b60205260408820600101548415612b705760028110155b612b61578415612b4c5760018101809111611d6957906125c7915b848a52601b602052600160408b200155604051936125b6856135f5565b845260208401978989523691613663565b908794845f14612956576125e46001600160a01b0385511661380d565b421061294757875115612915575b5050506001600160a01b03601d54166001600160a01b03825116813b15610a8a57849160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af180156109625784906128fe575b505080516001600160a01b03168352601c6020526040832054612889576001600160a01b0360015b915b51168352601c602052604083209115612881576001915b6040519261269784613625565b83526020830160018152604084019142835260608501938452805490600160401b82101561286d57906126cf91600182018155613725565b9490946128595751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911693602082602481885afa91821561284e57839261282d575b5081612823575b50612735578380f35b60405163280e32fb60e01b815292602084600481845afa93841561059e5782946127e0575b50906020600492604051938480926309a69f5760e01b82525afa91821561233d5781926127ac575b508160011b91808304600214901517156122f557506127a5929161169b916135e8565b5f80808380f35b9091506020813d6020116127d8575b816127c860209383613641565b810103126109575751905f612782565b3d91506127bb565b9093506020813d60201161281b575b816127fc60209383613641565b81010312610dac57906020612812600493613711565b9491925061275a565b3d91506127ef565b905051155f61272c565b61284791925060203d602011610597576105898183613641565b905f612725565b6040513d85823e3d90fd5b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b87526041600452602487fd5b60029161268a565b6001600160a01b038151168352601c602052604083206001600160a01b038251168452601c6020526040842054905f1982019182116128ea576003916128ce91613725565b50015460018101809111610a61576001600160a01b0390612671565b634e487b7160e01b85526011600452602485fd5b61290791613641565b828612610a8e575f83612649565b83516001600160a01b031686610a615791600191886901138ccba11c9e8c000061293f9695613ab1565b5f80806125f2565b632df062b560e21b8652600486fd5b909293945061296e6001600160a01b038551166137c2565b600114612ab9575b85151580612ab0575b612a90575b5050506001600160a01b038151168552601c602052604085206001600160a01b038251168652601c6020526040862054905f198201918211610a61576003916129cc91613725565b5001545f198101908111612a7c57601d5460405163280e32fb60e01b8152939290602090859060049082906001600160a01b03165afa938415611db2578794612a38575b5080612a336901138ccba11c9e8c00006001600160a01b03809451168a97613925565b612673565b9093506020813d602011612a74575b81612a5460209383613641565b81010312611a7f57612a6d6001600160a01b0391613711565b9390612a10565b3d9150612a47565b634e487b7160e01b86526011600452602486fd5b612aa892600191876001600160a01b03875116613987565b5f8080612984565b5086511561297f565b612acc6001600160a01b0385511661387c565b4210612b3d57876001600160a01b03601d54166001600160a01b03865116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57612b28575b5050612976565b81612b3291613641565b61198057875f612b21565b636b0ed46d60e01b8852600488fd5b5f198101908111611d6957906125c791612599565b636b3af2e560e01b8952600489fd5b801561257e565b63f706524f60e01b8852600488fd5b81612b9091613641565b61198057875f612541565b63098e23b360e41b8b5260048bfd5b5060ff601354166124a1565b8980fd5b503461029857604036600319011261029857612bd461357f565b6024356001600160a01b038116809103610a8e57601a549160f883901b6001600160f81b0319161561099d576001600160a01b031690816001600160601b0360a01b6008541617600855806001600160601b0360a01b8554161784556001600160601b0360a01b601d541617601d556001600160601b0360a01b601e541617601e5560ff1916601a5580f35b503461029857602036600319011261029857612c7a61357f565b6001600160a01b03600254163303611fde576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116104b95760075580f35b50346109575760603660031901126109575760043580151581036109575760243560443567ffffffffffffffff811161095757612cfc9036906004016135ba565b90926001600160a01b0360055416918233036132d15760405192612d1f846135f5565b8352602460208401955f875260206001600160a01b03601d541660405193848092630d9a602960e31b82523360048301525afa918215613281575f9261329b575b50612d6d91923691613663565b9082156130bf57612d876001600160a01b0385511661380d565b4210610ab15785511561307d575b5050846001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57613068575b505081516001600160a01b03168552601c6020526040852054613012576001600160a01b03835b925b51168552601c60205260408520901561300a576001925b60405193612e3785613625565b845260208401908152604084019142835260608501938452805490600160401b821015612ff65790612e6e91600182018155613725565b949094612fe25751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911691602082602481865afa918215610962578492612fc1575b5081612fb7575b50612ed4575080f35b60405163280e32fb60e01b815290602082600481845afa91821561284e578392612f78575b50906020600492604051938480926309a69f5760e01b82525afa91821561284e578392612f44575b508160011b918083046002149015171561091a5790612f41913390613925565b80f35b9091506020813d602011612f70575b81612f6060209383613641565b810103126109575751905f612f21565b3d9150612f53565b91506020823d602011612faf575b81612f9360209383613641565b81010312610a8e576020612fa8600493613711565b9250612ef9565b3d9150612f86565b905051155f612ecb565b612fdb91925060203d602011610597576105898183613641565b905f612ec4565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b88526041600452602488fd5b600292612e2a565b6001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a6157846003610a536001600160a01b039461306394613725565b612e11565b8161307291613641565b610a8a57845f612dea565b6001600160a01b03845116856901138ccba11c9e8c000002906901138ccba11c9e8c000082048703611d695791888080936130b89695613ab1565b5f80612d95565b90866130d46001600160a01b038651166137c2565b86146131fd575b806131df575b5050506001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a615760036118ba61312d938793613725565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db25787916131a5575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c000083048703611d6957916131a0916001600160a01b039493613925565b612e13565b90506020813d6020116131d7575b816131c060209383613641565b81010312611a7f576131d190613711565b5f61315f565b3d91506131b3565b6131f59281806001600160a01b03885116613987565b5f80866130e1565b506132116001600160a01b0385511661387c565b421061328c576001600160a01b03601d54166001600160a01b03855116813b15610957575f9160448392604051948593849263adb6233f60e01b845260048401528160248401525af180156132815761326c575b50866130db565b6132799197505f90613641565b5f955f613265565b6040513d5f823e3d90fd5b636b0ed46d60e01b5f5260045ffd5b91506020823d6020116132c9575b816132b660209383613641565b8101031261095757612d6d915191612d60565b3d91506132a9565b630d9974d560e11b5f5260045ffd5b34610957576020366003190112610957576001600160a01b0360025416330361332f57600435600f5562015180420180421161331b57601055005b634e487b7160e01b5f52601160045260245ffd5b636587b01b60e11b5f5260045ffd5b346109575760203660031901126109575761335761357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600954161760095562015180420180421161331b57600a55005b34610957575f366003190112610957576001600160a01b0360025416330361332f5760075442106133fa57600680546005805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b038416179091551690555f600755005b6384fa847560e01b5f5260045ffd5b34610957575f366003190112610957576001600160a01b0360025416330361332f5762015180420180421161331b57601455005b34610957575f3660031901126109575760206001600160a01b035f5416604051908152f35b34610957575f366003190112610957576001600160a01b0360025416330361332f5760125442106133fa5760115460ff80821615169060ff1916176011555f6012555f80f35b34610957575f36600319011261095757600460206001600160a01b03601d541660405192838092630be428a960e11b82525afa8015613281575f906134f3575b602090604051908152f35b506020813d60201161351e575b8161350d60209383613641565b8101031261095757602090516134e8565b3d9150613500565b346109575760203660031901126109575761353f61357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600354161760035562015180420180421161331b57600455005b600435906001600160a01b038216820361095757565b606435906001600160a01b038216820361095757565b60243590811515820361095757565b9181601f840112156109575782359167ffffffffffffffff8311610957576020838186019501011161095757565b9190820180921161331b57565b6040810190811067ffffffffffffffff82111761361157604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761361157604052565b90601f8019910116810190811067ffffffffffffffff82111761361157604052565b92919267ffffffffffffffff8211613611576040519161368d601f8201601f191660200184613641565b829481845281830111610957578281602093845f960137010152565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b9190820391821161331b57565b51906001600160a01b038216820361095757565b805482101561373e575f5260205f209060021b01905f90565b634e487b7160e01b5f52603260045260245ffd5b90816020910312610957575180151581036109575790565b5f19811461331b5760010190565b60405190613785826135f5565b5f6020838281520152565b9060405161379d81613625565b6060600382948054845260018101546020850152600281015460408501520154910152565b6001600160a01b0316805f52601c60205260405f2054908115613807575f52601c60205260405f205f19820191821161331b5760039161380191613725565b50015490565b50505f90565b6001600160a01b0316805f52601c60205260405f2054801561380757815f52601c60205260405f205f19820191821161331b5761384c82600392613725565b5001546138075761386d600291613879935f52601c60205260405f20613725565b500154600b54906135e8565b90565b6001600160a01b0316805f52601c60205260405f2054805b6138c157505f52601c60205260405f2080541561373e575f52613879600260205f200154600e54906135e8565b815f52601c60205260405f205f1982019082821161331b576138e582600392613725565b500154156138fd5750801561331b575f190180613894565b6002915061391990613879935f52601c60205260405f20613725565b500154600e54906135e8565b916001600160a01b03601d5416803b15610957575f92836064926001600160a01b039485604051988997889663c898a6e960e01b885216600487015216602485015260448401525af180156132815761397b5750565b5f61398591613641565b565b9294939091946001600160a01b03601d5416926040519463280e32fb60e01b8652602086600481885afa958615613281575f96613a75575b50843b156109575760205f976001600160a01b03999589958b80986101a4976040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b015216606489015289608489015260a48801523060c48801521660e48601526101048501521515610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156132815761397b5750565b9095506020813d602011613aa9575b81613a9160209383613641565b8101031261095757613aa290613711565b945f6139bf565b3d9150613a84565b9294909591936001600160a01b03601d5416956040519563280e32fb60e01b87526020876004818b5afa968715613281575f97613bad575b50873b1561095757604051988997889763487e5a7760e11b89526001600160a01b0316600489015230602489015260448801610160905261016488015f90526001600160a01b03166064880152608487015260a48601523060c48601526001600160a01b031660e485015261010484015215156101248301526101448201610180905280518091816101848501526020016101a484015e8082016101a4015f9052601f1990601f01168101036101a401815a5f948591f180156132815761397b5750565b9096506020813d602011613be1575b81613bc960209383613641565b8101031261095757613bda90613711565b955f613ae9565b3d9150613bbc56fea26469706673582212203f36372fc2fd7e757456018c2e018229202e994c8f254a0a196ce9dda08c4d5f64736f6c63430008210033",sourceMap:"2730:42031:68:-:0;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;5514:5;2730:42031;;;5514:5;2730:42031;;;;;;;;;;;;;5553:12;2730:42031;;;5553:12;2730:42031;5632:4;2730:42031;;5606:18;2730:42031;;;5606:18;2730:42031;;;5646:19;2730:42031;;5646:19;2730:42031;-1:-1:-1;5689:22:68;2730:42031;5774:6;5734:29;2730:42031;5632:4;2730:42031;;5791:35;2730:42031;;;5791:35;2730:42031;;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;-1:-1:-1;2730:42031:68;;;;;-1:-1:-1;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x60806040526004361015610011575f80fd5b5f5f3560e01c8063147bf6c41461352657806317c85152146134a85780631e9c210f146134625780632096b7681461343d57806327be05571461340957806334dd90d6146133975780633900738a1461333e5780633d8ff69a146132e0578063475c31ff14612cbb578063489c5ad414612c6057806355160ea614612bba57806358b71cb414612406578063602c4fb414612111578063610a0476146120d45780636254300b146120ad57806366d161aa14612086578063681f02ac1461202a5780636b2933a214611fed5780636c58f77b14611f685780636fa7ff1714611ef15780637068dc6514611ec75780637c25faef14611e995780637f8da59114611e72578063829c67d414611a8357806383e512ab14611362578063893d20e81461133b57806389a75af8146112e35780638f4b3f28146112975780639053a2581461120557806396ae4e451461116557806399b4c3ef14610f045780639cde1d3e14610ee05780639e41123314610ebc578063a06831ba14610e80578063a84e9f2314610e44578063b384c57414610e16578063b38c950a14610dda578063b996b6c414610db0578063be10034514610cca578063c130a71914610c78578063c9d2beb114610643578063cb0900b81461061e578063cd6b5460146105a9578063d0e3692d14610508578063d5bbacd5146104dc578063dfb2b3a414610483578063e6cbd0a61461045c578063e6f2ebe41461043e578063e7dc0756146103e2578063f5c1af1c146103c4578063fa6215f3146103a6578063fabd08e81461029b5763fc2feab214610261575f80fd5b346102985760203660031901126102985760406020916001600160a01b0361028761357f565b168152601c83522054604051908152f35b80fd5b5034610298576020366003190112610298576001600160a01b036102bd61357f565b168152601c60205260408120805467ffffffffffffffff811161039257604051906102ee60208260051b0183613641565b80825260208201809385526020852085915b83831061037457868587604051928392602084019060208552518091526040840192915b818110610332575050500390f35b9193509160206080826103666001948851606080918051845260208101516020850152604081015160408501520151910152565b019401910191849392610324565b6004602060019261038485613790565b815201920192019190610300565b634e487b7160e01b83526041600452602483fd5b50346102985780600319360112610298576020600154604051908152f35b50346102985780600319360112610298576020600e54604051908152f35b50346102985780600319360112610298576103fb613778565b505061043a60405161040c816135f5565b60115460ff161515808252601254602092830190815260408051928352905192820192909252918291820190565b0390f35b50346102985780600319360112610298576020600b54604051908152f35b503461029857806003193601126102985760206001600160a01b0360095416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576201518042018042116104b95760125580f35b634e487b7160e01b82526011600452602482fd5b636587b01b60e11b8152600490fd5b50346102985760203660031901126102985760206105006104fb61357f565b61387c565b604051908152f35b50346102985760403660031901126102985761052261357f565b60206001600160a01b03604481601d541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa90811561059e5760209291610571575b506040519015158152f35b6105919150823d8411610597575b6105898183613641565b810190613752565b5f610566565b503d61057f565b6040513d84823e3d90fd5b50346102985780600319360112610298576003546001600160a01b03811680330361060f576004544210610600576001600160601b0360a01b60025416176002556001600160601b0360a01b166003558060045580f35b6384fa847560e01b8352600483fd5b632dba366760e21b8352600483fd5b503461029857806003193601126102985760206040516901138ccba11c9e8c00008152f35b5034610298578060031936011261029857333b15610c6957601754806901138ccba11c9e8c000002906901138ccba11c9e8c00008204810361091a5761068b82601854613704565b6001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610bea578692610c29575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa918215610bea578692610bf5575b5014159081610af2575b50610ade576016544203610acf57336001600160a01b036015541603610ac05760405190610734826135f5565b3382526020820191600183526020936040516107508682613641565b868152426107676001600160a01b0385511661380d565b11610ab15786855115610a92575b9150506001600160a01b03601d54166001600160a01b03835116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57610a75575b505080516001600160a01b03168552601c84526040852054610a04576001600160a01b0382915b51168552601c8452604085206040519261080a84613625565b60018452858401908152604084019142835260608501938452805490600160401b8210156109f0579061084291600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116918382602481865afa9182156109d15785926109b2575b50816109a8575b506108a7578280f35b60405163280e32fb60e01b81528281600481855afa908115610962578390859261096d575b506040516309a69f5760e01b81529192829060049082905afa92831561096257849361092e575b50508160011b918083046002149015171561091a5790610914913390613925565b5f808280f35b634e487b7160e01b83526011600452602483fd5b9080929350813d831161095b575b6109468183613641565b810103126109575751905f806108f3565b5f80fd5b503d61093c565b6040513d86823e3d90fd5b809250813d83116109a1575b6109838183613641565b8101031261099d5782610997600492613711565b916108cc565b8380fd5b503d610979565b905051155f61089e565b6109ca919250843d8611610597576105898183613641565b905f610897565b6040513d87823e3d90fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b89526041600452602489fd5b6001600160a01b038151168552601c8452604085206001600160a01b038251168652601c85526040862054905f198201918211610a6157836003610a536001600160a01b0394610a5b94613725565b5001546135e8565b916107f1565b634e487b7160e01b87526011600452602487fd5b81610a7f91613641565b610a8a57845f6107ca565b8480fd5b8280fd5b808080610aa9956001600160a01b03885116613ab1565b5f8086610775565b632df062b560e21b8752600487fd5b634cd87fb560e01b8352600483fd5b635ac7600960e11b8352600483fd5b630387e0bb60e21b83526004829052602483fd5b9050610b00836019546135e8565b60405163280e32fb60e01b8152602081600481865afa908115610bea578691610ba4575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529160209083908180604481015b03915afa9182156109d1578592610b70575b5014155f610707565b9091506020813d602011610b9c575b81610b8c60209383613641565b810103126109575751905f610b67565b3d9150610b7f565b90506020813d602011610be2575b81610bbf60209383613641565b81010312610bde57610b5592610bd6602092613711565b915092610b24565b8580fd5b3d9150610bb2565b6040513d88823e3d90fd5b9091506020813d602011610c21575b81610c1160209383613641565b810103126109575751905f6106fd565b3d9150610c04565b91506020823d602011610c61575b81610c4460209383613641565b81010312610bde576020610c5a6106ea93613711565b92506106bd565b3d9150610c37565b634a340e9d60e01b8152600490fd5b5034610298576020366003190112610298576040906001826001600160a01b03610ca061357f565b1692838152601b60205260ff8282205416938152601b602052200154825191151582526020820152f35b50346102985760203660031901126102985760043567ffffffffffffffff8111610dac5736602382011215610dac5780600401359067ffffffffffffffff8211610a8e573660248360051b83010111610a8e576001600160a01b03600254163303610d9d57825b82811015610d995761032060015411610d8a5760248160051b83010135906001600160a01b038216809203610a8a576001918552601b602052604085208260ff19825416179055610d82825461376a565b825501610d31565b63d646f8c560e01b8452600484fd5b8380f35b636587b01b60e11b8352600483fd5b5080fd5b50346102985780600319360112610298576001600160a01b036002541633036104cd578060145580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600354166003558060045580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600f558060105580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600654166006558060075580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b6009541660095580600a5580f35b5034610298576020366003190112610298576020610500610edb61357f565b61380d565b5034610298576020366003190112610298576020610500610eff61357f565b6137c2565b503461029857602036600319011261029857600435333b15611156576001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610962578492611116575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa9182156109625784926110e2575b5060405163280e32fb60e01b8152602081600481875afa9081156109d15785916110a0575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529260209084908180604481015b03915afa92831561096257849361106c575b5060405160a0810181811067ffffffffffffffff8211176110585784916080916040523381524260208201528360408201528460608201520152336001600160601b0360a01b60155416176015554260165560175560185560195580f35b634e487b7160e01b86526041600452602486fd5b9092506020813d602011611098575b8161108860209383613641565b810103126109575751915f610ffa565b3d915061107b565b90506020813d6020116110da575b816110bb60209383613641565b81010312610a8a57610fe8936110d2602092613711565b915093610fb7565b3d91506110ae565b9091506020813d60201161110e575b816110fe60209383613641565b810103126109575751905f610f92565b3d91506110f1565b91506020823d60201161114e575b8161113160209383613641565b8101031261099d576020611147610f7f93613711565b9250610f52565b3d9150611124565b634a340e9d60e01b8252600482fd5b503461029857806003193601126102985760049060206001600160a01b03601d54166040519384809263280e32fb60e01b82525afa9081156111f95780916111bc575b6020826001600160a01b0360405191168152f35b90506020823d6020116111f1575b816111d760209383613641565b8101031261029857506111eb602091613711565b5f6111a8565b3d91506111ca565b604051903d90823e3d90fd5b50346102985760403660031901126102985761126a6112646080926001600160a01b0361123061357f565b82606060405161123f81613625565b8281528260208201528260408201520152168152601c60205260406024359120613725565b50613790565b6112956040518092606080918051845260208101516020850152604081015160408501520151910152565bf35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760105442106112d457600f54600e5580600f558060105580f35b6384fa847560e01b8152600490fd5b50346102985780600319360112610298576112fc613778565b505061043a60405161130d816135f5565b60135460ff161515808252601454602092830190815260408051928352905192820192909252918291820190565b503461029857806003193601126102985760206001600160a01b0360025416604051908152f35b5034610298576101403660031901126102985761137d61357f565b6113856135ab565b604435611390613595565b92608435926001600160a01b0384168403610bde5760c43567ffffffffffffffff8111611a7f576113c59036906004016135ba565b60e435959161010435916101243567ffffffffffffffff8111611a7b576113f09036906004016135ba565b99909260ff6013541615611a6c57908b92916001600160a01b03601d5416604051602081019060608252600d60808201526c7075626c69635374616b696e6760981b60a08201528a151560408201528c606082015260a0815261145460c082613641565b519020813b15610bde578580946114898d978c96604051998a9889978896637d3d171560e11b885260a43593600489016136a9565b03925af1801561059e57611a57575b50506114c5906001600160a01b03604051966114b3886135f5565b16865260208601988a8a523691613663565b918315611843576114df6001600160a01b0386511661380d565b4210611834578751156117dc575b505050856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e576117c7575b505081516001600160a01b03168652601c602052604086205461175d576001600160a01b03835b925b51168652601c602052604086209015611755576001925b6040519361159085613625565b845260208401908152604084019142835260608501938452805490600160401b8210156109f057906115c791600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911692602082602481875afa9182156109d1578592611734575b508161172a575b5061162d578280f35b60405163280e32fb60e01b815291602083600481845afa9283156109625784936116e9575b506020600491604051928380926309a69f5760e01b82525afa9081156109625784916116b7575b508060011b90808204600214901517156116a357610914929161169b916135e8565b903390613925565b634e487b7160e01b84526011600452602484fd5b90506020813d6020116116e1575b816116d260209383613641565b8101031261095757515f611679565b3d91506116c5565b9092506020813d602011611722575b8161170560209383613641565b8101031261099d57602061171a600492613711565b939150611652565b3d91506116f8565b905051155f611624565b61174e91925060203d602011610597576105898183613641565b905f61161d565b600292611583565b6001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b357846003610a536001600160a01b03946117ae94613725565b61156a565b634e487b7160e01b88526011600452602488fd5b816117d191613641565b610bde57855f611543565b6001600160a01b03855116866901138ccba11c9e8c000002906901138ccba11c9e8c000082048803611820579188611818959492600194613ab1565b5f80806114ed565b634e487b7160e01b8b52601160045260248bfd5b632df062b560e21b8952600489fd5b6118596001600160a01b038694939451166137c2565b86146119c0575b861515806119b7575b611997575b5050506001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b35760036118ba6118c2938793613725565b500154613704565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa90811561198c57889161194e575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c00008304870361193a5791611935916001600160a01b039493613925565b61156c565b634e487b7160e01b8a52601160045260248afd5b90506020813d602011611984575b8161196960209383613641565b810103126119805761197a90613711565b5f6118f4565b8780fd5b3d915061195c565b6040513d8a823e3d90fd5b6119af92600191886001600160a01b03885116613987565b5f808061186e565b50875115611869565b6119d36001600160a01b0386511661387c565b4210611a4857886001600160a01b03601d54166001600160a01b03875116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57611a2f575b5050611860565b81611a3991613641565b611a4457885f611a28565b8880fd5b636b0ed46d60e01b8952600489fd5b81611a6191613641565b611a4457885f611498565b6333a374eb60e11b8c5260048cfd5b8a80fd5b8680fd5b503461029857602036600319011261029857600435333b1561115657604051611aab816135f5565b338152602081019160018352602091604051611ac78482613641565b85815285611ade6001600160a01b038451166137c2565b8414611ddb575b611dbd575b506001600160a01b038151168552601c8352604085206001600160a01b038251168652601c84526040862054905f198201918211610a615760036118ba611b32938693613725565b906004846001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db2578791611d7d575b506001600160a01b03825116846901138ccba11c9e8c000002916901138ccba11c9e8c000083048603611d695791611ba4916001600160a01b039493613925565b51168552601c8352604085208515611d61576001925b60405193611bc785613625565b8452848401908152604084019142835260608501938452805490600160401b8210156109f05790611bfd91600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116928282602481875afa9182156109d1578592611d42575b5081611d38575b50611c62578280f35b60405163280e32fb60e01b8152918183600481845afa928315610962578493611cfd575b5081600491604051928380926309a69f5760e01b82525afa918215610962578492611ccf575b50508060011b908082046002149015171561091a579061169b83610914936135e8565b90809250813d8311611cf6575b611ce68183613641565b8101031261095757515f80611cac565b503d611cdc565b9092508181813d8311611d31575b611d158183613641565b8101031261099d5781611d29600492613711565b939150611c86565b503d611d0b565b905051155f611c59565b611d5a919250833d8511610597576105898183613641565b905f611c52565b600292611bba565b634e487b7160e01b89526011600452602489fd5b90508481813d8311611dab575b611d948183613641565b81010312611a7f57611da590613711565b5f611b63565b503d611d8a565b6040513d89823e3d90fd5b611dd590868080806001600160a01b03875116613987565b5f611aea565b50611def6001600160a01b0383511661387c565b4210611e6357856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af190811561059e578291611e4e575b5050611ae5565b81611e5891613641565b61029857805f611e47565b636b0ed46d60e01b8652600486fd5b503461029857806003193601126102985760206001600160a01b0360055416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600c5580600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd578060125580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600a5442106112d4576009546001600160a01b03811690816001600160601b0360a01b60085416176008556001600160601b0360a01b1660095581600a556001600160601b0360a01b601e541617601e5580f35b503461029857602036600319011261029857611f8261357f565b6001600160a01b03600254163303611fde5761032060015411611fcf576001600160a01b03168152601b60205260408120600160ff19825416179055611fc960015461376a565b60015580f35b63d646f8c560e01b8252600482fd5b636587b01b60e11b8252600482fd5b5034610298576020366003190112610298576001600160a01b036002541633036104cd57600435600c556201518042018042116104b957600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760145442106112d45760ff601354161581602060405161206c816135f5565b838152015260ff8019601354169116176013558060145580f35b503461029857806003193601126102985760206001600160a01b0360085416604051908152f35b503461029857806003193601126102985760206001600160a01b0360065416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600d5442106112d457600c54600b5580600c5580600d5580f35b50346102985760203660031901126102985761212b61357f565b90808092818291836001600160a01b038216808252601c602052604082205461217a575b5050506001600160a01b0360a095604051958652166020850152604084015260608301526080820152f35b94509450945050508160a06001600160a01b03601e541660246040518094819363f702720760e01b83528760048401525af19283156111f9578080948193829083926123ac575b50819581958095899a819a836121dc575b505050505061214f565b916121f08460029795936122319795613925565b828852601c6020526122058460408a20613725565b5055818752601c602052600161221e8460408a20613725565b5001558552601c60205260408520613725565b5001556001600160a01b03601d541690604051630a1ad2d160e21b8152336004820152602081602481865afa90811561059e57829161238d575b5061227c575b8080808080806121d2565b60405163280e32fb60e01b815290602082600481865afa91821561233d57819261234a575b506020600493604051948580926309a69f5760e01b82525afa92831561233d578193612309575b50828004600114831517156122f55750956122ef6001600160a01b039260a0983390613925565b95612271565b634e487b7160e01b81526011600452602490fd5b9092506020813d602011612335575b8161232560209383613641565b810103126109575751915f6122c8565b3d9150612318565b50604051903d90823e3d90fd5b9091506020813d602011612385575b8161236660209383613641565b81010312610dac5790602061237d60049493613711565b9293506122a1565b3d9150612359565b6123a6915060203d602011610597576105898183613641565b5f61226b565b9450505093505060a0813d60a0116123fe575b816123cc60a09383613641565b81010312610a8e578051926123e360208301613711565b9060408301519460806060850151940151909295935f6121c1565b3d91506123bf565b5034610298576101203660031901126102985761242161357f565b6124296135ab565b90604435916001600160a01b038316830361099d57612446613595565b9060a43567ffffffffffffffff8111610bde576124679036906004016135ba565b60c4359460e435916101043567ffffffffffffffff8111612bb6576124909036906004016135ba565b98909460ff60115416158015612baa575b612b9b57908a92916001600160a01b03601d5416604051602081019060608252600e60808201526d70726573616c655374616b696e6760901b60a08201528a151560408201526001606082015260a081526124fd60c082613641565b519020813b15610bde5785809461253289978e96604051998a9889978896637d3d171560e11b885260843593600489016136a9565b03925af1801561059e57612b86575b50506001600160a01b031691828852601b60205260ff60408920541615612b7757828852601b60205260408820600101548415612b705760028110155b612b61578415612b4c5760018101809111611d6957906125c7915b848a52601b602052600160408b200155604051936125b6856135f5565b845260208401978989523691613663565b908794845f14612956576125e46001600160a01b0385511661380d565b421061294757875115612915575b5050506001600160a01b03601d54166001600160a01b03825116813b15610a8a57849160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af180156109625784906128fe575b505080516001600160a01b03168352601c6020526040832054612889576001600160a01b0360015b915b51168352601c602052604083209115612881576001915b6040519261269784613625565b83526020830160018152604084019142835260608501938452805490600160401b82101561286d57906126cf91600182018155613725565b9490946128595751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911693602082602481885afa91821561284e57839261282d575b5081612823575b50612735578380f35b60405163280e32fb60e01b815292602084600481845afa93841561059e5782946127e0575b50906020600492604051938480926309a69f5760e01b82525afa91821561233d5781926127ac575b508160011b91808304600214901517156122f557506127a5929161169b916135e8565b5f80808380f35b9091506020813d6020116127d8575b816127c860209383613641565b810103126109575751905f612782565b3d91506127bb565b9093506020813d60201161281b575b816127fc60209383613641565b81010312610dac57906020612812600493613711565b9491925061275a565b3d91506127ef565b905051155f61272c565b61284791925060203d602011610597576105898183613641565b905f612725565b6040513d85823e3d90fd5b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b87526041600452602487fd5b60029161268a565b6001600160a01b038151168352601c602052604083206001600160a01b038251168452601c6020526040842054905f1982019182116128ea576003916128ce91613725565b50015460018101809111610a61576001600160a01b0390612671565b634e487b7160e01b85526011600452602485fd5b61290791613641565b828612610a8e575f83612649565b83516001600160a01b031686610a615791600191886901138ccba11c9e8c000061293f9695613ab1565b5f80806125f2565b632df062b560e21b8652600486fd5b909293945061296e6001600160a01b038551166137c2565b600114612ab9575b85151580612ab0575b612a90575b5050506001600160a01b038151168552601c602052604085206001600160a01b038251168652601c6020526040862054905f198201918211610a61576003916129cc91613725565b5001545f198101908111612a7c57601d5460405163280e32fb60e01b8152939290602090859060049082906001600160a01b03165afa938415611db2578794612a38575b5080612a336901138ccba11c9e8c00006001600160a01b03809451168a97613925565b612673565b9093506020813d602011612a74575b81612a5460209383613641565b81010312611a7f57612a6d6001600160a01b0391613711565b9390612a10565b3d9150612a47565b634e487b7160e01b86526011600452602486fd5b612aa892600191876001600160a01b03875116613987565b5f8080612984565b5086511561297f565b612acc6001600160a01b0385511661387c565b4210612b3d57876001600160a01b03601d54166001600160a01b03865116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57612b28575b5050612976565b81612b3291613641565b61198057875f612b21565b636b0ed46d60e01b8852600488fd5b5f198101908111611d6957906125c791612599565b636b3af2e560e01b8952600489fd5b801561257e565b63f706524f60e01b8852600488fd5b81612b9091613641565b61198057875f612541565b63098e23b360e41b8b5260048bfd5b5060ff601354166124a1565b8980fd5b503461029857604036600319011261029857612bd461357f565b6024356001600160a01b038116809103610a8e57601a549160f883901b6001600160f81b0319161561099d576001600160a01b031690816001600160601b0360a01b6008541617600855806001600160601b0360a01b8554161784556001600160601b0360a01b601d541617601d556001600160601b0360a01b601e541617601e5560ff1916601a5580f35b503461029857602036600319011261029857612c7a61357f565b6001600160a01b03600254163303611fde576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116104b95760075580f35b50346109575760603660031901126109575760043580151581036109575760243560443567ffffffffffffffff811161095757612cfc9036906004016135ba565b90926001600160a01b0360055416918233036132d15760405192612d1f846135f5565b8352602460208401955f875260206001600160a01b03601d541660405193848092630d9a602960e31b82523360048301525afa918215613281575f9261329b575b50612d6d91923691613663565b9082156130bf57612d876001600160a01b0385511661380d565b4210610ab15785511561307d575b5050846001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57613068575b505081516001600160a01b03168552601c6020526040852054613012576001600160a01b03835b925b51168552601c60205260408520901561300a576001925b60405193612e3785613625565b845260208401908152604084019142835260608501938452805490600160401b821015612ff65790612e6e91600182018155613725565b949094612fe25751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911691602082602481865afa918215610962578492612fc1575b5081612fb7575b50612ed4575080f35b60405163280e32fb60e01b815290602082600481845afa91821561284e578392612f78575b50906020600492604051938480926309a69f5760e01b82525afa91821561284e578392612f44575b508160011b918083046002149015171561091a5790612f41913390613925565b80f35b9091506020813d602011612f70575b81612f6060209383613641565b810103126109575751905f612f21565b3d9150612f53565b91506020823d602011612faf575b81612f9360209383613641565b81010312610a8e576020612fa8600493613711565b9250612ef9565b3d9150612f86565b905051155f612ecb565b612fdb91925060203d602011610597576105898183613641565b905f612ec4565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b88526041600452602488fd5b600292612e2a565b6001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a6157846003610a536001600160a01b039461306394613725565b612e11565b8161307291613641565b610a8a57845f612dea565b6001600160a01b03845116856901138ccba11c9e8c000002906901138ccba11c9e8c000082048703611d695791888080936130b89695613ab1565b5f80612d95565b90866130d46001600160a01b038651166137c2565b86146131fd575b806131df575b5050506001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a615760036118ba61312d938793613725565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db25787916131a5575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c000083048703611d6957916131a0916001600160a01b039493613925565b612e13565b90506020813d6020116131d7575b816131c060209383613641565b81010312611a7f576131d190613711565b5f61315f565b3d91506131b3565b6131f59281806001600160a01b03885116613987565b5f80866130e1565b506132116001600160a01b0385511661387c565b421061328c576001600160a01b03601d54166001600160a01b03855116813b15610957575f9160448392604051948593849263adb6233f60e01b845260048401528160248401525af180156132815761326c575b50866130db565b6132799197505f90613641565b5f955f613265565b6040513d5f823e3d90fd5b636b0ed46d60e01b5f5260045ffd5b91506020823d6020116132c9575b816132b660209383613641565b8101031261095757612d6d915191612d60565b3d91506132a9565b630d9974d560e11b5f5260045ffd5b34610957576020366003190112610957576001600160a01b0360025416330361332f57600435600f5562015180420180421161331b57601055005b634e487b7160e01b5f52601160045260245ffd5b636587b01b60e11b5f5260045ffd5b346109575760203660031901126109575761335761357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600954161760095562015180420180421161331b57600a55005b34610957575f366003190112610957576001600160a01b0360025416330361332f5760075442106133fa57600680546005805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b038416179091551690555f600755005b6384fa847560e01b5f5260045ffd5b34610957575f366003190112610957576001600160a01b0360025416330361332f5762015180420180421161331b57601455005b34610957575f3660031901126109575760206001600160a01b035f5416604051908152f35b34610957575f366003190112610957576001600160a01b0360025416330361332f5760125442106133fa5760115460ff80821615169060ff1916176011555f6012555f80f35b34610957575f36600319011261095757600460206001600160a01b03601d541660405192838092630be428a960e11b82525afa8015613281575f906134f3575b602090604051908152f35b506020813d60201161351e575b8161350d60209383613641565b8101031261095757602090516134e8565b3d9150613500565b346109575760203660031901126109575761353f61357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600354161760035562015180420180421161331b57600455005b600435906001600160a01b038216820361095757565b606435906001600160a01b038216820361095757565b60243590811515820361095757565b9181601f840112156109575782359167ffffffffffffffff8311610957576020838186019501011161095757565b9190820180921161331b57565b6040810190811067ffffffffffffffff82111761361157604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761361157604052565b90601f8019910116810190811067ffffffffffffffff82111761361157604052565b92919267ffffffffffffffff8211613611576040519161368d601f8201601f191660200184613641565b829481845281830111610957578281602093845f960137010152565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b9190820391821161331b57565b51906001600160a01b038216820361095757565b805482101561373e575f5260205f209060021b01905f90565b634e487b7160e01b5f52603260045260245ffd5b90816020910312610957575180151581036109575790565b5f19811461331b5760010190565b60405190613785826135f5565b5f6020838281520152565b9060405161379d81613625565b6060600382948054845260018101546020850152600281015460408501520154910152565b6001600160a01b0316805f52601c60205260405f2054908115613807575f52601c60205260405f205f19820191821161331b5760039161380191613725565b50015490565b50505f90565b6001600160a01b0316805f52601c60205260405f2054801561380757815f52601c60205260405f205f19820191821161331b5761384c82600392613725565b5001546138075761386d600291613879935f52601c60205260405f20613725565b500154600b54906135e8565b90565b6001600160a01b0316805f52601c60205260405f2054805b6138c157505f52601c60205260405f2080541561373e575f52613879600260205f200154600e54906135e8565b815f52601c60205260405f205f1982019082821161331b576138e582600392613725565b500154156138fd5750801561331b575f190180613894565b6002915061391990613879935f52601c60205260405f20613725565b500154600e54906135e8565b916001600160a01b03601d5416803b15610957575f92836064926001600160a01b039485604051988997889663c898a6e960e01b885216600487015216602485015260448401525af180156132815761397b5750565b5f61398591613641565b565b9294939091946001600160a01b03601d5416926040519463280e32fb60e01b8652602086600481885afa958615613281575f96613a75575b50843b156109575760205f976001600160a01b03999589958b80986101a4976040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b015216606489015289608489015260a48801523060c48801521660e48601526101048501521515610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156132815761397b5750565b9095506020813d602011613aa9575b81613a9160209383613641565b8101031261095757613aa290613711565b945f6139bf565b3d9150613a84565b9294909591936001600160a01b03601d5416956040519563280e32fb60e01b87526020876004818b5afa968715613281575f97613bad575b50873b1561095757604051988997889763487e5a7760e11b89526001600160a01b0316600489015230602489015260448801610160905261016488015f90526001600160a01b03166064880152608487015260a48601523060c48601526001600160a01b031660e485015261010484015215156101248301526101448201610180905280518091816101848501526020016101a484015e8082016101a4015f9052601f1990601f01168101036101a401815a5f948591f180156132815761397b5750565b9096506020813d602011613be1575b81613bc960209383613641565b8101031261095757613bda90613711565b955f613ae9565b3d9150613bbc56fea26469706673582212203f36372fc2fd7e757456018c2e018229202e994c8f254a0a196ce9dda08c4d5f64736f6c63430008210033",sourceMap:"2730:42031:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;43617:16;2730:42031;43617:16;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44423:31;2730:42031;44423:31;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;36160:11;2730:42031;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;35718:11;2730:42031;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;;;;;;;;;;;;;;;42441:18;2730:42031;;;;;;;;;;;;;;;;;;;;;39148:29;2730:42031;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;43309:19;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39547:22;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;42134:25:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;32551:15;2796:6;32551:15;;2796:6;;;32504:32;2796:6;2730:42031;;2796:6;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;;4826:24;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;-1:-1:-1;;;;;44069:37:68;2730:42031;44069:4;2730:42031;;;;;;;;;;;;;44069:37;;2730:42031;;44069:37;;2730:42031;;;;;;;44069:37;;;;;;;2730:42031;44069:37;;;;2730:42031;;;;;;;;;;44069:37;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;26402:14;2730:42031;-1:-1:-1;;;;;2730:42031:68;;26388:10;;:28;26384:85;;2730:42031;;26505:15;-1:-1:-1;26480:99:68;;-1:-1:-1;;;;;2730:42031:68;;26402:5;2730:42031;;;26402:5;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;26402:14;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;26480:99;-1:-1:-1;;;26541:38:68;;2730:42031;33248:38;26541;26384:85;-1:-1:-1;;;26437:32:68;;2730:42031;26437:32;;2730:42031;;;;;;;;;;;;;;;;3219:17;2730:42031;;;;;;;;;;;;;;;;5021:10;5042:132;5188:9;5184:50;;14165:34;2730:42031;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;14227:84;2730:42031;14227:45;2730:42031;14227:84;:::i;:::-;-1:-1:-1;;;;;14327:4:68;2730:42031;;;;;;;;;14355:31;;;;2730:42031;14355:31;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;14327:60:68;;5021:10;2730:42031;14327:60;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;14355:31;2730:42031;;;;;14327:60;;;;;;;;;;;;;;;2730:42031;14227:160;;;:339;;;;2730:42031;14210:485;;;14710:28;2730:42031;14742:15;14710:47;14706:107;;5021:10;-1:-1:-1;;;;;14165:18:68;2730:42031;;14828:40;14824:88;;2730:42031;;;;;;:::i;:::-;5021:10;2730:42031;;14355:31;14955:64;;2730:42031;14710:28;2730:42031;;;;;;;;;;:::i;:::-;;;;14742:15;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;:81;17255:159;;2730:42031;;;;17429:337;;2730:42031;;;;-1:-1:-1;;;;;14327:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;17781:39;2730:42031;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;2730:42031;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;;2730:42031;;;;17853:11;2730:42031;;;;;;;;;;;:::i;:::-;14710:28;2730:42031;;19227:298;;;2730:42031;;;;19227:298;;14742:15;;2730:42031;;19227:298;;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;14710:28;2730:42031;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;14710:28;2730:42031;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;14327:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;5021:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;19550:32;2730:42031;;;;19550:32;;;;;;;;;;;17853:230;19550:55;;;;17853:230;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;;2730:42031;;;19648:31;;;;;;;;;;;;;;19546:249;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;19726:22:68;;2730:42031;;;;;;;;19726:22;;;;;;;;;;;19546:249;2730:42031;;;14710:28;2730:42031;;;;;;;;;;;;;19725:45;;;5021:10;19725:45;;:::i;:::-;19546:249;;2730:42031;;;;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;19726:22;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;2730:42031;-1:-1:-1;2730:42031:68;;19726:22;;;;;;2730:42031;;;;;;;;;19648:31;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;2730:42031;;;;19648:31;;;;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;2730:42031;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:::-;:119;;2730:42031;17946:137;:::i;:::-;17853:230;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;2730:42031;;;;17781:39;2730:42031;;;17429:337;2730:42031;;;17736:12;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;17736:12;:::i;:::-;17429:337;;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;14824:88;-1:-1:-1;;;14889:23:68;;2730:42031;14889:23;;14706:107;-1:-1:-1;;;14778:35:68;;2730:42031;14778:35;;14210:485;-1:-1:-1;;;14596:99:68;;2730:42031;;;;;14596:99;;14227:339;2730:42031;;14403:84;2730:42031;14403:45;2730:42031;14403:84;:::i;:::-;2730:42031;;-1:-1:-1;;;14534:31:68;;14355;2730:42031;;;14534:31;;;;;;;;;;;;14227:339;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;14503:63:68;;14527:4;2730:42031;14503:63;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;14355:31;;2730:42031;;;;;;;14503:63;;;;;;;;;;;;;;14227:339;14403:163;;;14227:339;;;14503:63;;;;14355:31;14503:63;;14355:31;14503:63;;;;;;2730:42031;14503:63;;;:::i;:::-;;;2730:42031;;;;;14503:63;;;;;;;-1:-1:-1;14503:63:68;;14534:31;;;14355;14534;;14355;14534;;;;;;14355;14534;;;:::i;:::-;;;2730:42031;;;;14503:63;2730:42031;;14355:31;2730:42031;;:::i;:::-;14534:31;;;;;2730:42031;;;;14534:31;;;-1:-1:-1;14534:31:68;;;2730:42031;;;;;;;;;14327:60;;;;14355:31;14327:60;;14355:31;14327:60;;;;;;2730:42031;14327:60;;;:::i;:::-;;;2730:42031;;;;;14327:60;;;;;;;-1:-1:-1;14327:60:68;;14355:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;14355:31;2730:42031;14327:60;2730:42031;;:::i;:::-;14355:31;;;;;;;-1:-1:-1;14355:31:68;;5184:50;-1:-1:-1;;;5206:28:68;;2730:42031;;5206:28;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;41431:41;2730:42031;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;;;41382:17;2730:42031;;;;;;;;;;;41382:17;2730:42031;;;41431:41;2730:42031;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;25238:13;25274:3;25253:19;;;;;;2994:3;2730:42031;;25297:41;25293:105;;2730:42031;;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;25413:17;2730:42031;;;;;;;;;;;;;;25472:20;2730:42031;;25472:20;:::i;:::-;2796:6;;2730:42031;25238:13;;25293:105;-1:-1:-1;;;25363:35:68;;2730:42031;24762:35;25363;25253:19;;2730:42031;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;4826:24;;2730:42031;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;31655:31;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;26098:14;2730:42031;;26098:14;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;30349:38;2796:6;;30401:42;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;27371:21;2730:42031;;27371:21;2730:42031;2796:6;27415:25;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;34119:25;2730:42031;;34119:25;2730:42031;2796:6;34167:29;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;5021:10;5042:132;5188:9;5184:50;;-1:-1:-1;;;;;12260:4:68;2730:42031;;;;;;;;;12321:31;;2730:42031;12321:31;2730:42031;12321:31;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12260:106:68;;5021:10;2730:42031;12260:106;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;12260:106;;;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12472:31:68;;2730:42031;;;;12472:31;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12408:109:68;;12449:4;2730:42031;12408:109;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;12408:109;;;;;;;;;;;;;;2730:42031;;;;;;;;;;;;;;;;;;12068:460;2730:42031;;;5021:10;2730:42031;;12157:15;2730:42031;12068:460;;2730:42031;12068:460;2730:42031;12068:460;;2730:42031;12068:460;;;;2730:42031;12068:460;2730:42031;5021:10;-1:-1:-1;;;;;2730:42031:68;;12047:481;2730:42031;;;12047:481;2730:42031;12157:15;2730:42031;2796:6;2730:42031;2796:6;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;12408:109;;;;2730:42031;12408:109;;2730:42031;12408:109;;;;;;2730:42031;12408:109;;;:::i;:::-;;;2730:42031;;;;;12408:109;;;;;;;-1:-1:-1;12408:109:68;;12472:31;;;2730:42031;12472:31;;2730:42031;12472:31;;;;;;2730:42031;12472:31;;;:::i;:::-;;;2730:42031;;;;12408:109;2730:42031;;;;;:::i;:::-;12472:31;;;;;;;;-1:-1:-1;12472:31:68;;12260:106;;;;2730:42031;12260:106;;2730:42031;12260:106;;;;;;2730:42031;12260:106;;;:::i;:::-;;;2730:42031;;;;;12260:106;;;;;;;-1:-1:-1;12260:106:68;;12321:31;;;2730:42031;12321:31;;2730:42031;12321:31;;;;;;2730:42031;12321:31;;;:::i;:::-;;;2730:42031;;;;;;12260:106;2730:42031;;:::i;:::-;12321:31;;;;;;;-1:-1:-1;12321:31:68;;5184:50;-1:-1:-1;;;5206:28:68;;2730:42031;5206:28;;2730:42031;;;;;;;;;;;;;;;44423:31;-1:-1:-1;;;;;44423:4:68;2730:42031;;;;;;;;;;;44423:31;;;;;;;;;;;;;2730:42031;44423:31;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;44423:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;44423:31;2730:42031;;:::i;:::-;44423:31;;;;;;-1:-1:-1;44423:31:68;;;2730:42031;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;36724:29;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;36724:11;2730:42031;;;;;;;36724:29;:::i;:::-;2730:42031;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;30728:42;2730:42031;30773:15;-1:-1:-1;30724:123:68;;30898:51;2730:42031;30728:29;2796:6;;30898:51;2796:6;;30728:42;2796:6;2730:42031;;30724:123;-1:-1:-1;;;30809:38:68;;2730:42031;;30809:38;2730:42031;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;42874:18;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;44739:5:68;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;10012:18;2730:42031;;10011:24;10007:66;;2730:42031;;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;;;;1624:55:103;;2730:42031:68;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;;;;1624:55:103;;;2730:42031:68;1624:55:103;;:::i;:::-;2730:42031:68;1614:66:103;;10084:241:68;;;;;2730:42031;;;10084:241;2730:42031;;;;;;;;;;;;;;;;10084:241;;2730:42031;;10084:241;2730:42031;10084:241;;;:::i;:::-;;;;;;;;;;;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::i;:::-;;;;;10368:59;;2730:42031;;;;;;;:::i;:::-;17192:23;17226:1944;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;10288:4;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;10288:4;2730:42031;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;10288:4;2730:42031;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;10084:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;19571:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;19550:32;2730:42031;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;10288:4;2730:42031;;;;;;;;;;;;;19725:45;;;;;;:::i;:::-;19571:10;;19725:45;;:::i;2730:42031::-;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;19550:32;2796:6;;19726:22;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:137::-;17853:230;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;17429:337;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;17736:12;;;;;;10288:4;17736:12;;:::i;:::-;17429:337;;;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;17226:1944;18137:36;-1:-1:-1;;;;;2730:42031:68;;;;;;18137:36;:::i;:::-;18118:55;;18114:330;;17226:1944;18462:19;;;:42;;;17226:1944;18458:325;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:::-;:119;;2730:42031;18832:153;:::i;:::-;2730:42031;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;17226:1944;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;17226:1944;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;19027:31;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;2730:42031;;;;19027:31;;;-1:-1:-1;19027:31:68;;;2730:42031;;;;;;;;;18458:325;18522:261;2730:42031;10288:4;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18462:42;2730:42031;;;;18462:42;;18114:330;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;10084:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;2730:42031;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;10084:241;;;;;:::i;:::-;2730:42031;;10084:241;;;;10007:66;-1:-1:-1;;;10044:29:68;;2730:42031;10044:29;;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;5021:10;5042:132;5188:9;5184:50;;2730:42031;;;;;:::i;:::-;5021:10;2730:42031;;;15846:64;;2730:42031;;;;;;;;;;;;:::i;:::-;;;;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;18118:55;;18114:330;;2730:42031;18458:325;;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:153::-;2730:42031;;;-1:-1:-1;;;;;19027:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;2730:42031;;;;18832:11;2730:42031;;;;;19286:93;;;;2730:42031;19286:93;;2730:42031;;;;;;:::i;:::-;;;19227:298;;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;19227:298;;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;18832:119;2730:42031;;;2796:6;19027:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;5021:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;19550:32;2730:42031;19550:32;2730:42031;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;19648:31;2730:42031;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;;19725:45;;;;;;:::i;19726:22::-;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;;;19648:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;;;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;;;;;;;;;;;:::i;:::-;;;;;19286:93;19376:1;19286:93;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;19027:31;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;;;;;;;2730:42031;;;;;;;;;18458:325;18522:261;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;18114:330;2730:42031;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;18390:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;18390:39;2730:42031;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;2730:42031;;;;;;;;;;;;;;-1:-1:-1;;;;;40469:12:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;28804:31;2796:6;;28849:35;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;32845:32;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;34458:29;2730:42031;34490:15;-1:-1:-1;34454:110:68;;34602:25;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;34458:16;2730:42031;;;34458:16;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;34602:25;2730:42031;2796:6;34458:29;2796:6;-1:-1:-1;;;;;2730:42031:68;;34728:47;2730:42031;;;34728:47;2730:42031;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2994:3;24700:18;2730:42031;24700:41;24696:101;;-1:-1:-1;;;;;2730:42031:68;;;24808:17;2730:42031;;;;;24700:18;2730:42031;;;;;;;;24859:20;24700:18;2730:42031;24859:20;:::i;:::-;24700:18;2796:6;2730:42031;;24696:101;-1:-1:-1;;;24762:35:68;;2730:42031;24762:35;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;4826:24;;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2730:42031;;28378:31;2796:6;;28495:15;2796:6;28495:15;;2796:6;;;28445:35;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;31983:31;2730:42031;32017:15;-1:-1:-1;31979:112:68;;2730:42031;31983:18;2730:42031;;32176:24;2730:42031;32123:117;2730:42031;;;;;:::i;:::-;;;;32123:117;2730:42031;;;;31983:18;2730:42031;;;;;31983:18;2730:42031;2796:6;31983:31;2796:6;2730:42031;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41774:16:68;2730:42031;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;40822:21:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;29160:35;2730:42031;29198:15;-1:-1:-1;29156:116:68;;29316:31;2730:42031;29160:22;2796:6;;29316:31;2796:6;;29160:35;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;20523:19;20556:25;20595:31;;20640:32;20686;;-1:-1:-1;;;;;2730:42031:68;;;;;20747:11;2730:42031;;;;;;20743:1056;;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;20743:1056;2730:42031;;;;;;;;;20997:30;-1:-1:-1;;;;;20997:9:68;2730:42031;;20997:30;2730:42031;;;;;;;;;20997:30;;;2730:42031;20997:30;;2730:42031;20997:30;;;;;;;;2730:42031;;;;;;;20997:30;;;20743:1056;20791:236;;;;;;;;;;21046:27;;21042:747;;20743:1056;;;;;;;;21042:747;21128:23;;;21398:74;21128:23;;;21398:43;21128:23;;;:::i;:::-;2730:42031;;;20747:11;2730:42031;;21171:43;2730:42031;;;;21171:43;:::i;:::-;2796:6;;2730:42031;;;20747:11;2730:42031;;21283:71;:43;2730:42031;;;;21283:43;:::i;:::-;:71;;2796:6;2730:42031;;20747:11;2730:42031;;;;;21398:43;:::i;:::-;:74;;2796:6;-1:-1:-1;;;;;21522:4:68;2730:42031;;;;;;;;21522:32;;21543:10;2730:42031;21522:32;;2730:42031;;21522:32;20997:30;21522:32;;;;;;;;;;;;;21042:747;21518:257;;;21042:747;;;;;;;;;21518:257;2730:42031;;-1:-1:-1;;;21613:31:68;;2730:42031;;;;;21613:31;;;;;;;;;;;;21518:257;2730:42031;;;;;;;;;;;;;21707:22;;;;;;;;;;;;;21518:257;2730:42031;;;;21283:71;2730:42031;;;;;;;21543:10;;21706:28;-1:-1:-1;;;;;21543:10:68;2730:42031;21543:10;;21706:28;;:::i;:::-;21518:257;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;20997:30;;2796:6;21707:22;;;;2730:42031;21707:22;;2730:42031;21707:22;;;;;;2730:42031;21707:22;;;:::i;:::-;;;2730:42031;;;;;21707:22;;;;;;;-1:-1:-1;21707:22:68;;;2730:42031;;;;;;;;;;;21613:31;;;;2730:42031;21613:31;;2730:42031;21613:31;;;;;;2730:42031;21613:31;;;:::i;:::-;;;2730:42031;;;;;;;;;;;:::i;:::-;21613:31;;;;;;;;-1:-1:-1;21613:31:68;;21522:32;;;;2730:42031;21522:32;2730:42031;21522:32;;;;;;;:::i;:::-;;;;20997:30;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;20997:30;;;;;;;;;;-1:-1:-1;20997:30:68;;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8142:19;2730:42031;;8141:25;2730:42031;;8141:52;;2730:42031;8137:107;;2730:42031;;;;-1:-1:-1;;;;;8255:4:68;2730:42031;;;;;1005:56:103;;2730:42031:68;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;;;;1005:56:103;;;2730:42031:68;1005:56:103;;:::i;:::-;2730:42031:68;995:67:103;;8255:228:68;;;;;2730:42031;;;8255:228;2730:42031;;;;;;;;;;;;;;;;8255:228;;2730:42031;;8255:228;2730:42031;8255:228;;;:::i;:::-;;;;;;;;;;;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;8499:17;2730:42031;;;;;;;;8498:32;8494:87;;2730:42031;;;8499:17;2730:42031;;;;;;8610:37;2730:42031;8662:39;;;;8685:1;8674:12;;;8662:39;8658:102;;8811:61;;;;2730:42031;2796:6;;;;;;;8811:61;2730:42031;8811:61;;2730:42031;;;8499:17;2730:42031;;;;;;8771:37;2796:6;2730:42031;;;;;;:::i;:::-;;;;8915:59;;2730:42031;;;;;;;:::i;:::-;17192:23;;;17226:1944;;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;-1:-1:-1;;;;;8255:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;2730:42031:68;17853:230;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;2730:42031;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;8255:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;19571:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;19725:45;;;;;;;:::i;:::-;19546:249;;;2730:42031;;;19726:22;;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;;:::i;:::-;19648:31;;;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;;2730:42031;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:119;:107;;;;:::i;:::-;:119;;2730:42031;;2796:6;;;;;;;-1:-1:-1;;;;;17853:230:68;;;2730:42031;-1:-1:-1;;;2796:6:68;;8142:19;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;:::i;:::-;2730:42031;;;;;17781:39;;;;17429:337;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;17736:12;2730:42031;17736:12;;3219:17;17736:12;;;;:::i;:::-;17429:337;;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;17226:1944;2730:42031;;;;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;2730:42031;18118:55;18114:330;;17226:1944;18462:19;;;:42;;;17226:1944;18458:325;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;;;;:::i;:::-;-1:-1:-1;18832:119:68;2730:42031;-1:-1:-1;;2730:42031:68;;;;;;;8255:4;2730:42031;;;-1:-1:-1;;;19027:31:68;;2730:42031;18798:187;;2730:42031;;;;;;;;-1:-1:-1;;;;;2730:42031:68;19027:31;;;;;;;;;;;17226:1944;2730:42031;;19109:36;3219:17;-1:-1:-1;;;;;2730:42031:68;;;;;19109:36;;:::i;:::-;17226:1944;;19027:31;;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;19027:31;;;;;;;-1:-1:-1;19027:31:68;;2730:42031;-1:-1:-1;;;2796:6:68;;8142:19;2730:42031;2796:6;2730:42031;2796:6;;18458:325;18522:261;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18462:42;2730:42031;;;;18462:42;;18114:330;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;8255:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;8811:61;-1:-1:-1;;2730:42031:68;;;;;;;8811:61;2730:42031;8811:61;;;8658:102;-1:-1:-1;;;8722:38:68;;2730:42031;8722:38;;8662:39;8689:12;;8662:39;;8494:87;-1:-1:-1;;;8551:30:68;;2730:42031;8551:30;;8255:228;;;;;:::i;:::-;2730:42031;;8255:228;;;;8137:107;-1:-1:-1;;;8214:30:68;;2730:42031;8214:30;;8141:52;2730:42031;;8170:18;2730:42031;;8141:52;;2730:42031;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;6164:28;2730:42031;;;;;;-1:-1:-1;;;;;;2730:42031:68;6164:36;6160:50;;-1:-1:-1;;;;;2730:42031:68;;;-1:-1:-1;;;;;2730:42031:68;;6221:16;2730:42031;;;6221:16;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;6299:18;2730:42031;;;6299:18;2730:42031;-1:-1:-1;;;;;2730:42031:68;;6327:33;2730:42031;;;6327:33;2730:42031;;;;6164:28;2730:42031;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;27024:21;2730:42031;;;27024:21;2730:42031;2796:6;27099:15;2796:6;27099:15;;2796:6;;;27071:25;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6910:12:68;2730:42031;;6896:10;;;:34;6892:90;;2730:42031;;;;;;:::i;:::-;;;;;7025:121;;2730:42031;;;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;;;;;;;;;;7251:40;;6896:10;2730:42031;7251:40;;2730:42031;7251:40;;;;;;;2730:42031;7251:40;;;2730:42031;;;;;;;;:::i;:::-;17192:23;17226:1944;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;19334:1;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;7251:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;6896:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;19725:45;;;6896:10;19725:45;;:::i;:::-;2730:42031;;19726:22;;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;2730:42031;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:137::-;17853:230;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;17429:337;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;17736:12;;;;;;;;;:::i;:::-;17429:337;;;;17226:1944;2730:42031;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;18118:55;;18114:330;;17226:1944;18458:325;;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:153::-;2730:42031;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;17226:1944;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;17226:1944;;19027:31;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;;;;-1:-1:-1;19027:31:68;;18458:325;18522:261;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18114:330;2730:42031;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;-1:-1:-1;;;;;7251:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;2730:42031;18390:39;;:::i;:::-;2730:42031;18390:39;;;;;2730:42031;;;;;;;;;18193:178;18335:36;;;2730:42031;18335:36;2730:42031;;18335:36;7251:40;;;2730:42031;7251:40;;2730:42031;7251:40;;;;;;2730:42031;7251:40;;;:::i;:::-;;;2730:42031;;;;;;;7251:40;;;;;;-1:-1:-1;7251:40:68;;6892:90;6951:31;;;2730:42031;6951:31;2730:42031;;6951:31;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2730:42031;;29903:38;2796:6;;30041:15;2796:6;30041:15;;2796:6;;;29984:42;2796:6;2730:42031;2796:6;;;;2730:42031;2796:6;;2730:42031;2796:6;;2730:42031;2796:6;4786:64;4826:24;;;2730:42031;4826:24;2730:42031;;4826:24;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;33736:25;2730:42031;;;33736:25;2730:42031;2796:6;33828:15;2796:6;33828:15;;2796:6;;;33784:29;2796:6;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;27700:25;2730:42031;27728:15;-1:-1:-1;27696:106:68;;27836:21;2730:42031;;27700:12;2730:42031;;-1:-1:-1;;2730:42031:68;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;-1:-1:-1;27700:25:68;2796:6;2730:42031;27696:106;33248:38;;;2730:42031;27764:38;2730:42031;;27764:38;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;31364:15;2796:6;31364:15;;2796:6;;;31318:31;2796:6;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;33177:32;2730:42031;33212:15;-1:-1:-1;33173:113:68;;33177:19;2730:42031;;;;;33324:25;2730:42031;;;;;;33177:19;2730:42031;;33177:32;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;43617:16;-1:-1:-1;;;;;43617:4:68;2730:42031;;;;;;;;;;;43617:16;;;;;;;;2730:42031;43617:16;;;2730:42031;43617:16;2730:42031;;;;;;;43617:16;;;;;;;;;;;;2730:42031;43617:16;;;:::i;:::-;;;2730:42031;;;;43617:16;2730:42031;;43617:16;;;;;-1:-1:-1;43617:16:68;;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;25798:14;2730:42031;;;25798:14;2730:42031;2796:6;25855:15;2796:6;25855:15;;2796:6;;;2730:42031;2796:6;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2796:6::-;;;;;;;;;;:::o;2730:42031::-;;;;;;;;;;;;;;;:::o;:::-;2796:6;;;-1:-1:-1;2730:42031:68;;;;;-1:-1:-1;2730:42031:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;8383:1;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;2730:42031:68;;-1:-1:-1;2730:42031:68;;;;;;-1:-1:-1;2730:42031:68;:::o;:::-;2796:6;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2994:3::-;-1:-1:-1;;2994:3:68;;;;;;;:::o;2730:42031::-;;;;;;;:::i;:::-;-1:-1:-1;2730:42031:68;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39898:303::-;-1:-1:-1;;;;;2730:42031:68;;;;40025:11;2730:42031;;;;;;40068:20;;;40064:59;;2730:42031;;40025:11;2730:42031;;;;;;;;;;;;;;40140:54;:42;;;;:::i;:::-;:54;;2730:42031;39898:303;:::o;40064:59::-;40104:8;;2730:42031;40104:8;:::o;38304:504::-;-1:-1:-1;;;;;2730:42031:68;;;;38442:11;2730:42031;;;;;;38485:20;;38481:59;;2730:42031;;;38442:11;2730:42031;;;;;;;;;;;;;;38553:42;;:54;:42;;:::i;:::-;-1:-1:-1;38553:54:68;2730:42031;38553:54;;38651:42;:52;2730:42031;38651:101;2730:42031;;;38442:11;2730:42031;;;;;38651:42;:::i;:::-;:52;;2730:42031;38722:22;2730:42031;38651:101;;:::i;:::-;38628:124;:::o;37443:532::-;-1:-1:-1;;;;;2730:42031:68;;;;37578:11;2730:42031;;;;;;37561:292;37608:5;;;2730:42031;;;37578:11;2730:42031;;;;;;;;;;;;37882:86;2730:42031;;;;37882:34;2730:42031;37931:29;2730:42031;37882:86;;:::i;37615:3::-;2730:42031;;;37578:11;2730:42031;;;;;;;;;;;;;;;37638:28;;:40;:28;;:::i;:::-;:40;;2730:42031;37638:45;37634:209;;37615:3;2730:42031;;;;-1:-1:-1;;2730:42031:68;;37566:40;;37634:209;37730:38;2730:42031;;37730:28;2730:42031;37730:98;2730:42031;;;37578:11;2730:42031;;;;;37730:28;:::i;:::-;:38;;2730:42031;37791:29;2730:42031;37730:98;;:::i;23700:165::-;;-1:-1:-1;;;;;23820:4:68;2730:42031;;23820:38;;;;;-1:-1:-1;2730:42031:68;;23820:38;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;23820:38;;2730:42031;23820:38;;;2730:42031;;;;;;;;;;23820:38;;;;;;;;23700:165;:::o;23820:38::-;-1:-1:-1;23820:38:68;;;:::i;:::-;23700:165::o;22836:531::-;;;;;;;-1:-1:-1;;;;;23069:4:68;2730:42031;;;;;;;;;23152:31;;;;;;;;;;;;;;-1:-1:-1;23152:31:68;;;22836:531;23069:291;;;;;;23152:31;-1:-1:-1;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;23069:291;;2730:42031;23152:31;23069:291;;2730:42031;23117:4;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;23117:4;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;23069:291;;;;;;;;;;;22836:531;:::o;23152:31::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;23152:31;;;;;;;-1:-1:-1;23152:31:68;;22836:531;;;;;;;-1:-1:-1;;;;;23069:4:68;2730:42031;;;;;;;;;23152:31;;;;;;;;;;;;;;-1:-1:-1;23152:31:68;;;22836:531;23069:291;;;;;;2730:42031;;;;;;;;;;23069:291;;-1:-1:-1;;;;;2730:42031:68;23152:31;23069:291;;2730:42031;23117:4;2730:42031;;;;;;;;;;;;;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;23117:4;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23152:31;2730:42031;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;;;;;23069:291;2730:42031;23069:291;;;-1:-1:-1;23069:291:68;;;;;;;;;;22836:531;:::o;23152:31::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;23152:31;;;;;;;-1:-1:-1;23152:31:68;",linkReferences:{}},methodIdentifiers:{"acceptNewAdmin()":"cd6b5460","acceptNewEstimator()":"6fa7ff17","acceptNewGoldenFisher()":"34dd90d6","acceptSetSecondsToUnlockStaking()":"610a0476","addPresaleStaker(address)":"6c58f77b","addPresaleStakers(address[])":"be100345","cancelChangeAllowPresaleStaking()":"7068dc65","cancelChangeAllowPublicStaking()":"b996b6c4","cancelSetSecondsToUnllockFullUnstaking()":"b384c574","confirmChangeAllowPresaleStaking()":"1e9c210f","confirmChangeAllowPublicStaking()":"681f02ac","confirmServiceStaking()":"c9d2beb1","confirmSetSecondsToUnllockFullUnstaking()":"8f4b3f28","getAddressHistory(address)":"fabd08e8","getAddressHistoryByIndex(address,uint256)":"9053a258","getAllowPresaleStaking()":"e7dc0756","getAllowPublicStaking()":"89a75af8","getCoreAddress()":"2096b768","getEstimatorAddress()":"66d161aa","getEstimatorProposal()":"e6cbd0a6","getEvvmID()":"17c85152","getGoldenFisher()":"7f8da591","getGoldenFisherProposal()":"6254300b","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getMateAddress()":"96ae4e45","getOwner()":"893d20e8","getPresaleStaker(address)":"c130a719","getPresaleStakerCount()":"fa6215f3","getSecondsToUnlockFullUnstaking()":"f5c1af1c","getSecondsToUnlockStaking()":"e6f2ebe4","getSizeOfAddressHistory(address)":"fc2feab2","getTimeToUserUnlockFullUnstakingTime(address)":"d5bbacd5","getTimeToUserUnlockStakingTime(address)":"9e411233","getUserAmountStaked(address)":"9cde1d3e","gimmeYiel(address)":"602c4fb4","goldenStaking(bool,uint256,bytes)":"475c31ff","initializeSystemContracts(address,address)":"55160ea6","prepareChangeAllowPresaleStaking()":"dfb2b3a4","prepareChangeAllowPublicStaking()":"27be0557","prepareServiceStaking(uint256)":"99b4c3ef","prepareSetSecondsToUnllockFullUnstaking(uint256)":"3d8ff69a","presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":"58b71cb4","priceOfStaking()":"cb0900b8","proposeAdmin(address)":"147bf6c4","proposeEstimator(address)":"3900738a","proposeGoldenFisher(address)":"489c5ad4","proposeSetSecondsToUnlockStaking(uint256)":"6b2933a2","publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"83e512ab","rejectProposalAdmin()":"b38c950a","rejectProposalEstimator()":"a06831ba","rejectProposalGoldenFisher()":"a84e9f23","rejectProposalSetSecondsToUnlockStaking()":"7c25faef","serviceUnstaking(uint256)":"829c67d4"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"address","name":"initialGoldenFisher","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressIsNotAService","type":"error"},{"inputs":[],"name":"AddressMismatch","type":"error"},{"inputs":[],"name":"AddressMustWaitToFullUnstake","type":"error"},{"inputs":[],"name":"AddressMustWaitToStakeAgain","type":"error"},{"inputs":[],"name":"LimitPresaleStakersExceeded","type":"error"},{"inputs":[],"name":"PresaleStakingDisabled","type":"error"},{"inputs":[],"name":"PublicStakingDisabled","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotGoldenFisher","type":"error"},{"inputs":[],"name":"SenderIsNotProposedAdmin","type":"error"},{"inputs":[{"internalType":"uint256","name":"requiredAmount","type":"uint256"}],"name":"ServiceDoesNotFulfillCorrectStakingAmount","type":"error"},{"inputs":[],"name":"ServiceDoesNotStakeInSameTx","type":"error"},{"inputs":[],"name":"TimeToAcceptProposalNotReached","type":"error"},{"inputs":[],"name":"UserIsNotPresaleStaker","type":"error"},{"inputs":[],"name":"UserPresaleStakerLimitExceeded","type":"error"},{"inputs":[],"name":"acceptNewAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptNewEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptNewGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"addPresaleStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_stakers","type":"address[]"}],"name":"addPresaleStakers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmServiceStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAddressHistory","outputs":[{"components":[{"internalType":"bytes32","name":"transactionType","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"internalType":"struct StakingStructs.HistoryMetadata[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getAddressHistoryByIndex","outputs":[{"components":[{"internalType":"bytes32","name":"transactionType","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"internalType":"struct StakingStructs.HistoryMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllowPresaleStaking","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllowPublicStaking","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEstimatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEstimatorProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGoldenFisher","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGoldenFisherProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMateAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getPresaleStaker","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPresaleStakerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSecondsToUnlockFullUnstaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSecondsToUnlockStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getSizeOfAddressHistory","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getTimeToUserUnlockFullUnstakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getTimeToUserUnlockStakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getUserAmountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"gimmeYiel","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenToBeRewarded","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwriteUserHistory","type":"uint256"},{"internalType":"uint256","name":"timestampToBeOverwritten","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"uint256","name":"amountOfStaking","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"goldenStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_estimator","type":"address"},{"internalType":"address","name":"_core","type":"address"}],"name":"initializeSystemContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfStaking","type":"uint256"}],"name":"prepareServiceStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsToUnllockFullUnstaking","type":"uint256"}],"name":"prepareSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"presaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"priceOfStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_estimator","type":"address"}],"name":"proposeEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_goldenFisher","type":"address"}],"name":"proposeGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsToUnlockStaking","type":"uint256"}],"name":"proposeSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"uint256","name":"amountOfStaking","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"publicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfStaking","type":"uint256"}],"name":"serviceUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Manages staking, unstaking, and yield distribution via the Estimator contract. Supports presale and public staking phases with time-locked security and nonce-based replay protection.","errors":{"AddressIsNotAService()":[{"details":"Thrown when EOA calls service-only function (onlyCA checks code size)"}],"AddressMismatch()":[{"details":"Thrown when confirmServiceStaking caller != prepareServiceStaking caller"}],"AddressMustWaitToFullUnstake()":[{"details":"Thrown when full unstake attempted before lock period (secondsToUnllockFullUnstaking.current = 5 days)"}],"AddressMustWaitToStakeAgain()":[{"details":"Thrown when re-staking before cooldown expires (secondsToUnlockStaking.current)"}],"LimitPresaleStakersExceeded()":[{"details":"Thrown when adding presale staker beyond 800 limit (LIMIT_PRESALE_STAKER)"}],"PresaleStakingDisabled()":[{"details":"Thrown when presale staking attempted while disabled (allowPresaleStaking.flag == false)"}],"PublicStakingDisabled()":[{"details":"Thrown when public staking attempted while disabled (allowPublicStaking.flag == false). Uses Core.sol async nonces."}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyOwner)"}],"SenderIsNotGoldenFisher()":[{"details":"Thrown when non-goldenFisher attempts goldenStaking (sync nonces with Core.sol)"}],"SenderIsNotProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptNewAdmin (1d delay)"}],"ServiceDoesNotFulfillCorrectStakingAmount(uint256)":[{"details":"Thrown when Principal Token transfer != PRICE_OF_STAKING * amountOfStaking (via Evvm.caPay)","params":{"requiredAmount":"Exact Principal Tokens needed"}}],"ServiceDoesNotStakeInSameTx()":[{"details":"Thrown when confirm timestamp != prepare timestamp (atomic 3-step process required)"}],"TimeToAcceptProposalNotReached()":[{"details":"Thrown when accepting governance proposal before 1-day delay (TIME_TO_ACCEPT_PROPOSAL)"}],"UserIsNotPresaleStaker()":[{"details":"Thrown when non-whitelisted user attempts presaleStaking (max 800 presale stakers)"}],"UserPresaleStakerLimitExceeded()":[{"details":"Thrown when presale user tries to stake beyond 2-token cap"}]},"kind":"dev","methods":{"acceptNewAdmin()":{"details":"Can only be called by the proposed admin after the time delay has passed"},"acceptNewEstimator()":{"details":"Can only be called by the current admin after the 1-day time delay"},"acceptNewGoldenFisher()":{"details":"Can only be called by the current admin after the 1-day time delay"},"acceptSetSecondsToUnlockStaking()":{"details":"Can only be called by the current admin after the 1-day time delay"},"addPresaleStaker(address)":{"details":"Only admin can call this function, limited to 800 presale stakers total","params":{"_staker":"Address to be added to the presale staker list"}},"addPresaleStakers(address[])":{"details":"Only admin can call this function, limited to 800 presale stakers total","params":{"_stakers":"Array of addresses to be added to the presale staker list"}},"cancelChangeAllowPresaleStaking()":{"details":"Only current admin can cancel the pending presale staking toggle"},"cancelChangeAllowPublicStaking()":{"details":"Only current admin can cancel the pending public staking toggle"},"cancelSetSecondsToUnllockFullUnstaking()":{"details":"Only current admin can cancel the pending full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{"details":"Toggles between enabled/disabled state for presale staking after 1-day delay"},"confirmChangeAllowPublicStaking()":{"details":"Toggles between enabled/disabled state for public staking after 1-day delay"},"confirmServiceStaking()":{"details":"Validates payment and completes atomic staking Validation Checks: 1. Timestamp: Must equal prepareServiceStaking tx - Ensures atomicity (same transaction) - serviceStakingData.timestamp == block.timestamp 2. Caller: Must match prepareServiceStaking caller - serviceStakingData.service == msg.sender - Prevents staking hijacking 3. Payment Amount: Validates exact transfer - Service balance decreased by exact amount - Staking balance increased by exact amount - totalStakingRequired = PRICE_OF_STAKING * amountOfStaking Core.sol Integration: - Validates caPay occurred between steps 1 and 3 - Checks balance deltas via Evvm.getBalance - Token: core.getPrincipalTokenAddress() - Must be exact amount (no overpayment/underpayment) Completion: - Calls stakingBaseProcess on success - Records history with transaction type 0x01 - Updates userHistory with staking event - Service becomes staker (isAddressStaker = true) Error Cases: - ServiceDoesNotStakeInSameTx: timestamp mismatch - AddressMismatch: caller mismatch - ServiceDoesNotFulfillCorrectStakingAmount: payment incorrect Access Control: - onlyCA modifier: Only contracts allowed"},"confirmSetSecondsToUnllockFullUnstaking()":{"details":"Can only be called by the current admin after the 1-day time delay"},"constructor":{"params":{"initialAdmin":"System administrator.","initialGoldenFisher":"Authorized Golden Fisher address."}},"getAddressHistory(address)":{"details":"Returns an array of all staking transactions and rewards for the user","params":{"_account":"Address to query the history for"},"returns":{"_0":"Array of Structs.HistoryMetadata containing all transactions"}},"getAddressHistoryByIndex(address,uint256)":{"details":"Allows accessing individual transactions by index","params":{"_account":"Address to query the history for","_index":"Index of the transaction to retrieve (0-based)"},"returns":{"_0":"Structs.HistoryMetadata of the transaction at the specified index"}},"getAllowPresaleStaking()":{"details":"Includes current flag state and any pending changes with timestamps","returns":{"_0":"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getAllowPublicStaking()":{"details":"Includes current flag state and any pending changes with timestamps","returns":{"_0":"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getCoreAddress()":{"details":"The EVVM contract handles payments and staker registration","returns":{"_0":"Address of the EVVM core contract"}},"getEstimatorAddress()":{"details":"The estimator calculates staking rewards and yields","returns":{"_0":"Address of the current estimator contract"}},"getEstimatorProposal()":{"details":"Shows pending estimator changes in the governance system","returns":{"_0":"Address of the proposed estimator contract (zero address if none)"}},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getGoldenFisher()":{"details":"The golden fisher has special staking privileges","returns":{"_0":"Address of the current golden fisher"}},"getGoldenFisherProposal()":{"details":"Shows pending golden fisher changes in the governance system","returns":{"_0":"Address of the proposed golden fisher (zero address if none)"}},"getMateAddress()":{"details":"This is a constant address used to represent the principal token","returns":{"_0":"Address representing the Principal Token (0x...0001)"}},"getOwner()":{"details":"The admin has full control over contract parameters and governance","returns":{"_0":"Address of the current contract admin"}},"getPresaleStaker(address)":{"details":"Shows if an address is allowed for presale and how many tokens they\'ve staked","params":{"_account":"Address to check presale status for"},"returns":{"_0":"isAllow True if the address is allowed for presale staking","_1":"stakingAmount Number of staking tokens currently staked in presale (max 2)"}},"getPresaleStakerCount()":{"details":"Maximum allowed is 800 presale stakers","returns":{"_0":"Current count of presale stakers"}},"getSecondsToUnlockFullUnstaking()":{"details":"Full unstaking requires waiting this many seconds (default: 21 days)","returns":{"_0":"Number of seconds required to wait for full unstaking"}},"getSecondsToUnlockStaking()":{"details":"Users must wait this many seconds after unstaking before they can stake again","returns":{"_0":"Number of seconds required to wait between unstaking and staking"}},"getSizeOfAddressHistory(address)":{"details":"Useful for pagination or checking if an address has any staking history","params":{"_account":"Address to query the history size for"},"returns":{"_0":"Number of transactions in the history"}},"getTimeToUserUnlockFullUnstakingTime(address)":{"details":"Full unstaking requires waiting 21 days after the last time their balance reached 0","params":{"_account":"Address to check the unlock time for"},"returns":{"_0":"Timestamp when full unstaking will be allowed"}},"getTimeToUserUnlockStakingTime(address)":{"details":"Users must wait a configurable period after unstaking before they can stake again","params":{"_account":"Address to check the unlock time for"},"returns":{"_0":"Timestamp when staking will be allowed again (0 if already allowed)"}},"getUserAmountStaked(address)":{"details":"Returns the total staked amount from the user\'s most recent transaction","params":{"_account":"Address to check the staked amount for"},"returns":{"_0":"Amount of staking tokens currently staked by the user"}},"gimmeYiel(address)":{"details":"Interacts with the Estimator contract to calculate and distribute rewards","params":{"user":"Address of the user claiming rewards"},"returns":{"amountTotalToBeRewarded":"Total amount of rewards to be distributed","epochAnswer":"Epoch identifier for the reward calculation","idToOverwriteUserHistory":"Index in user history to update with reward info","timestampToBeOverwritten":"Timestamp to record for the reward transaction","tokenToBeRewarded":"Address of the token being rewarded"}},"goldenStaking(bool,uint256,bytes)":{"details":"Uses sync nonces for coordination with Core operations.","params":{"amountOfStaking":"Number of staking tokens.","isStaking":"True to stake, false to unstake.","signaturePay":"Authorization signature for Core payment."}},"initializeSystemContracts(address,address)":{"params":{"_core":"EVVM Core contract address (payments).","_estimator":"Estimator contract address (yield calculations)."}},"prepareChangeAllowPresaleStaking()":{"details":"Initiates the time-delayed process to enable/disable presale staking"},"prepareChangeAllowPublicStaking()":{"details":"Initiates the time-delayed process to enable/disable public staking"},"prepareServiceStaking(uint256)":{"details":"Records pre-staking state for atomic validation Service Staking Process (ATOMIC - Same TX): 1. prepareServiceStaking: Record balances 2. Evvm.caPay: Transfer Principal Tokens 3. confirmServiceStaking: Validate and complete CRITICAL WARNING: - All 3 steps MUST occur in single transaction - If incomplete, tokens permanently locked - No recovery mechanism for failed process - Service loses tokens if not atomic Metadata Recorded: - service: msg.sender (contract address) - timestamp: block.timestamp (atomicity check) - amountOfStaking: Requested staking tokens - amountServiceBeforeStaking: Service PT balance - amountStakingBeforeStaking: Staking PT balance Core.sol Payment (Step 2): - Service must call Evvm.caPay after this - Transfer: PRICE_OF_STAKING * amountOfStaking - Recipient: address(this) (Staking contract) - Token: Principal Token from Core.sol Access Control: - onlyCA modifier: Only contracts allowed - Checks code size via assembly - EOAs rejected (size == 0)","params":{"amountOfStaking":"Number of staking tokens to acquire"}},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{"details":"Part of the time-delayed governance system for full unstaking time changes","params":{"_secondsToUnllockFullUnstaking":"New number of seconds users must wait for full unstaking (default: 21 days)"}},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{"params":{"isStaking":"True to stake, false to unstake.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment.","priorityFeePay":"Optional priority fee.","signature":"Participant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"Participant address."}},"priceOfStaking()":{"details":"Returns the constant price of 5083 Principal Tokens per staking","returns":{"_0":"Price of one staking token in Principal Tokens (with 18 decimals)"}},"proposeAdmin(address)":{"details":"Part of the time-delayed governance system for admin changes","params":{"_newAdmin":"Address of the proposed new admin"}},"proposeEstimator(address)":{"details":"Part of the time-delayed governance system for estimator contract changes","params":{"_estimator":"Address of the proposed new estimator contract"}},"proposeGoldenFisher(address)":{"details":"Part of the time-delayed governance system for golden fisher changes","params":{"_goldenFisher":"Address of the proposed new golden fisher"}},"proposeSetSecondsToUnlockStaking(uint256)":{"details":"Part of the time-delayed governance system for staking unlock time changes","params":{"_secondsToUnlockStaking":"New number of seconds users must wait after unstaking before staking again"}},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"params":{"amountOfStaking":"Number of tokens.","isStaking":"True to stake, false to unstake.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment.","priorityFeePay":"Optional priority fee.","signature":"Participant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"Participant address."}},"rejectProposalAdmin()":{"details":"Only current admin can reject the pending proposal"},"rejectProposalEstimator()":{"details":"Only current admin can reject the pending estimator contract proposal"},"rejectProposalGoldenFisher()":{"details":"Only current admin can reject the pending golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{"details":"Only current admin can reject the pending staking unlock time proposal"},"serviceUnstaking(uint256)":{"details":"Simplified unstaking process for services - no signature or payment required, just direct unstakingThe service will receive Principal Tokens equal to: amountOfStaking * PRICE_OF_STAKINGSubject to the same time locks as regular unstaking (21 days for full unstake)Only callable by contract accounts (services), not EOAs","params":{"amountOfStaking":"Amount of staking tokens to unstake"}}},"stateVariables":{"EVVM_ADDRESS":{"details":"Address of the EVVM core contract"},"LIMIT_PRESALE_STAKER":{"details":"Maximum number of presale stakers allowed"},"PRICE_OF_STAKING":{"details":"Price of one staking main token (5083 main token = 1 staking)"},"admin":{"details":"Admin address management with proposal system"},"allowPresaleStaking":{"details":"Flag to enable/disable presale staking"},"allowPublicStaking":{"details":"Flag to enable/disable public staking"},"breakerSetupEstimatorAndEvvm":{"details":"One-time setup breaker for estimator and EVVM addresses"},"estimatorAddress":{"details":"Estimator contract address management with proposal system"},"goldenFisher":{"details":"Golden Fisher address management with proposal system"},"presaleStakerCount":{"details":"Current count of registered presale stakers"},"secondsToUnllockFullUnstaking":{"details":"Time delay for full unstaking (21 days default)"},"secondsToUnlockStaking":{"details":"Time delay for regular staking after unstaking"},"serviceStakingData":{"details":"Variable to store service staking metadata"},"userHistory":{"details":"Mapping to store complete staking history for each user"},"userPresaleStaker":{"details":"Mapping to store presale staker metadata"}},"title":"EVVM Staking","version":1},"userdoc":{"kind":"user","methods":{"acceptNewAdmin()":{"notice":"Accepts the admin proposal and becomes the new admin"},"acceptNewEstimator()":{"notice":"Accepts the estimator contract proposal after the time delay has passed"},"acceptNewGoldenFisher()":{"notice":"Accepts the golden fisher proposal after the time delay has passed"},"acceptSetSecondsToUnlockStaking()":{"notice":"Accepts the staking unlock time proposal after the time delay has passed"},"addPresaleStaker(address)":{"notice":"Adds a single address to the presale staker list"},"addPresaleStakers(address[])":{"notice":"Adds multiple addresses to the presale staker list in batch"},"cancelChangeAllowPresaleStaking()":{"notice":"Cancels the pending presale staking flag change"},"cancelChangeAllowPublicStaking()":{"notice":"Cancels the pending public staking flag change"},"cancelSetSecondsToUnllockFullUnstaking()":{"notice":"Cancels the current full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{"notice":"Confirms and executes the presale staking flag toggle after the time delay has passed"},"confirmChangeAllowPublicStaking()":{"notice":"Confirms and executes the public staking flag toggle after the time delay has passed"},"confirmServiceStaking()":{"notice":"Step 3: Confirm service staking after payment"},"confirmSetSecondsToUnllockFullUnstaking()":{"notice":"Confirms the full unstaking time proposal after the time delay has passed"},"constructor":{"notice":"Initializes the staking contract."},"getAddressHistory(address)":{"notice":"Returns the complete staking history for an address"},"getAddressHistoryByIndex(address,uint256)":{"notice":"Returns a specific transaction from an address\'s staking history"},"getAllowPresaleStaking()":{"notice":"Returns the complete presale staking configuration and status"},"getAllowPublicStaking()":{"notice":"Returns the complete public staking configuration and status"},"getCoreAddress()":{"notice":"Returns the address of the EVVM core contract"},"getEstimatorAddress()":{"notice":"Returns the current estimator contract address"},"getEstimatorProposal()":{"notice":"Returns the proposed new estimator contract address (if any)"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getGoldenFisher()":{"notice":"Returns the current golden fisher address"},"getGoldenFisherProposal()":{"notice":"Returns the proposed new golden fisher address (if any)"},"getMateAddress()":{"notice":"Returns the address representing the Principal Token"},"getOwner()":{"notice":"Returns the current admin/owner address"},"getPresaleStaker(address)":{"notice":"Returns presale staker information for a given address"},"getPresaleStakerCount()":{"notice":"Returns the current number of registered presale stakers"},"getSecondsToUnlockFullUnstaking()":{"notice":"Returns the current time delay for full unstaking operations"},"getSecondsToUnlockStaking()":{"notice":"Returns the current time delay for regular staking operations"},"getSizeOfAddressHistory(address)":{"notice":"Returns the number of transactions in an address\'s staking history"},"getTimeToUserUnlockFullUnstakingTime(address)":{"notice":"Calculates when a user can perform full unstaking (withdraw all tokens)"},"getTimeToUserUnlockStakingTime(address)":{"notice":"Calculates when a user can stake again after unstaking"},"getUserAmountStaked(address)":{"notice":"Returns the current amount of staking tokens staked by a user"},"gimmeYiel(address)":{"notice":"Allows users to claim their staking rewards (yield)"},"goldenStaking(bool,uint256,bytes)":{"notice":"Unlimited staking/unstaking for the Golden Fisher."},"initializeSystemContracts(address,address)":{"notice":"Configures system contract integrations once."},"prepareChangeAllowPresaleStaking()":{"notice":"Prepares to toggle the presale staking flag with 1-day time delay"},"prepareChangeAllowPublicStaking()":{"notice":"Prepares to toggle the public staking flag with 1-day time delay"},"prepareServiceStaking(uint256)":{"notice":"Step 1: Prepare service (contract) staking"},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{"notice":"Proposes a new time delay for full unstaking operations with 1-day time delay"},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"White-listed presale staking (max 2 tokens per user)."},"priceOfStaking()":{"notice":"Returns the fixed price of one staking token in Principal Tokens"},"proposeAdmin(address)":{"notice":"Proposes a new admin address with 1-day time delay"},"proposeEstimator(address)":{"notice":"Proposes a new estimator contract address with 1-day time delay"},"proposeGoldenFisher(address)":{"notice":"Proposes a new golden fisher address with 1-day time delay"},"proposeSetSecondsToUnlockStaking(uint256)":{"notice":"Proposes a new time delay for staking after unstaking with 1-day time delay"},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Public staking open to any user when enabled."},"rejectProposalAdmin()":{"notice":"Rejects the current admin proposal"},"rejectProposalEstimator()":{"notice":"Rejects the current estimator contract proposal"},"rejectProposalGoldenFisher()":{"notice":"Rejects the current golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{"notice":"Rejects the current staking unlock time proposal"},"serviceUnstaking(uint256)":{"notice":"Allows a service/contract account to unstake their staking tokens"}},"notice":"/$$$$$$ /$$ /$$ /$$ /$$__ $$| $$ | $$ |__/ | $$ \\\\__/$$$$$$ /$$$$$$| $$ /$$/$$/$$$$$$$ /$$$$$$ | $$$$$|_ $$_/ |____ $| $$ /$$| $| $$__ $$/$$__ $$ \\\\____ $$| $$ /$$$$$$| $$$$$$/| $| $$ \\\\ $| $$ \\\\ $$ /$$ \\\\ $$| $$ /$$/$$__ $| $$_ $$| $| $$ | $| $$ | $$ | $$$$$$/| $$$$| $$$$$$| $$ \\\\ $| $| $$ | $| $$$$$$$ \\\\______/ \\\\___/ \\\\_______|__/ \\\\__|__|__/ |__/\\\\____ $$ /$$ \\\\ $$ | $$$$$$/ \\\\______/ \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Validator staking mechanism for the EVVM ecosystem.","version":1}},"settings":{"compilationTarget":{"src/contracts/staking/Staking.sol":"Staking"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"initialAdmin",type:"address"},{internalType:"address",name:"initialGoldenFisher",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AddressIsNotAService"},{inputs:[],type:"error",name:"AddressMismatch"},{inputs:[],type:"error",name:"AddressMustWaitToFullUnstake"},{inputs:[],type:"error",name:"AddressMustWaitToStakeAgain"},{inputs:[],type:"error",name:"LimitPresaleStakersExceeded"},{inputs:[],type:"error",name:"PresaleStakingDisabled"},{inputs:[],type:"error",name:"PublicStakingDisabled"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotGoldenFisher"},{inputs:[],type:"error",name:"SenderIsNotProposedAdmin"},{inputs:[{internalType:"uint256",name:"requiredAmount",type:"uint256"}],type:"error",name:"ServiceDoesNotFulfillCorrectStakingAmount"},{inputs:[],type:"error",name:"ServiceDoesNotStakeInSameTx"},{inputs:[],type:"error",name:"TimeToAcceptProposalNotReached"},{inputs:[],type:"error",name:"UserIsNotPresaleStaker"},{inputs:[],type:"error",name:"UserPresaleStakerLimitExceeded"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewEstimator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewGoldenFisher"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptSetSecondsToUnlockStaking"},{inputs:[{internalType:"address",name:"_staker",type:"address"}],stateMutability:"nonpayable",type:"function",name:"addPresaleStaker"},{inputs:[{internalType:"address[]",name:"_stakers",type:"address[]"}],stateMutability:"nonpayable",type:"function",name:"addPresaleStakers"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeAllowPublicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelSetSecondsToUnllockFullUnstaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmChangeAllowPublicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmServiceStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmSetSecondsToUnllockFullUnstaking"},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getAddressHistory",outputs:[{internalType:"struct StakingStructs.HistoryMetadata[]",name:"",type:"tuple[]",components:[{internalType:"bytes32",name:"transactionType",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"_account",type:"address"},{internalType:"uint256",name:"_index",type:"uint256"}],stateMutability:"view",type:"function",name:"getAddressHistoryByIndex",outputs:[{internalType:"struct StakingStructs.HistoryMetadata",name:"",type:"tuple",components:[{internalType:"bytes32",name:"transactionType",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllowPresaleStaking",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllowPublicStaking",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEstimatorAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEstimatorProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getGoldenFisher",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getGoldenFisherProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getMateAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getPresaleStaker",outputs:[{internalType:"bool",name:"",type:"bool"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPresaleStakerCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getSecondsToUnlockFullUnstaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getSecondsToUnlockStaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getSizeOfAddressHistory",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getTimeToUserUnlockFullUnstakingTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getTimeToUserUnlockStakingTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getUserAmountStaked",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"nonpayable",type:"function",name:"gimmeYiel",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenToBeRewarded",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwriteUserHistory",type:"uint256"},{internalType:"uint256",name:"timestampToBeOverwritten",type:"uint256"}]},{inputs:[{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"uint256",name:"amountOfStaking",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"goldenStaking"},{inputs:[{internalType:"address",name:"_estimator",type:"address"},{internalType:"address",name:"_core",type:"address"}],stateMutability:"nonpayable",type:"function",name:"initializeSystemContracts"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"prepareChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"prepareChangeAllowPublicStaking"},{inputs:[{internalType:"uint256",name:"amountOfStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"prepareServiceStaking"},{inputs:[{internalType:"uint256",name:"_secondsToUnllockFullUnstaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"prepareSetSecondsToUnllockFullUnstaking"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"presaleStaking"},{inputs:[],stateMutability:"pure",type:"function",name:"priceOfStaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_newAdmin",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"address",name:"_estimator",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeEstimator"},{inputs:[{internalType:"address",name:"_goldenFisher",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeGoldenFisher"},{inputs:[{internalType:"uint256",name:"_secondsToUnlockStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeSetSecondsToUnlockStaking"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"uint256",name:"amountOfStaking",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"publicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalEstimator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalGoldenFisher"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalSetSecondsToUnlockStaking"},{inputs:[{internalType:"uint256",name:"amountOfStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"serviceUnstaking"}],devdoc:{kind:"dev",methods:{"acceptNewAdmin()":{details:"Can only be called by the proposed admin after the time delay has passed"},"acceptNewEstimator()":{details:"Can only be called by the current admin after the 1-day time delay"},"acceptNewGoldenFisher()":{details:"Can only be called by the current admin after the 1-day time delay"},"acceptSetSecondsToUnlockStaking()":{details:"Can only be called by the current admin after the 1-day time delay"},"addPresaleStaker(address)":{details:"Only admin can call this function, limited to 800 presale stakers total",params:{_staker:"Address to be added to the presale staker list"}},"addPresaleStakers(address[])":{details:"Only admin can call this function, limited to 800 presale stakers total",params:{_stakers:"Array of addresses to be added to the presale staker list"}},"cancelChangeAllowPresaleStaking()":{details:"Only current admin can cancel the pending presale staking toggle"},"cancelChangeAllowPublicStaking()":{details:"Only current admin can cancel the pending public staking toggle"},"cancelSetSecondsToUnllockFullUnstaking()":{details:"Only current admin can cancel the pending full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{details:"Toggles between enabled/disabled state for presale staking after 1-day delay"},"confirmChangeAllowPublicStaking()":{details:"Toggles between enabled/disabled state for public staking after 1-day delay"},"confirmServiceStaking()":{details:"Validates payment and completes atomic staking Validation Checks: 1. Timestamp: Must equal prepareServiceStaking tx - Ensures atomicity (same transaction) - serviceStakingData.timestamp == block.timestamp 2. Caller: Must match prepareServiceStaking caller - serviceStakingData.service == msg.sender - Prevents staking hijacking 3. Payment Amount: Validates exact transfer - Service balance decreased by exact amount - Staking balance increased by exact amount - totalStakingRequired = PRICE_OF_STAKING * amountOfStaking Core.sol Integration: - Validates caPay occurred between steps 1 and 3 - Checks balance deltas via Evvm.getBalance - Token: core.getPrincipalTokenAddress() - Must be exact amount (no overpayment/underpayment) Completion: - Calls stakingBaseProcess on success - Records history with transaction type 0x01 - Updates userHistory with staking event - Service becomes staker (isAddressStaker = true) Error Cases: - ServiceDoesNotStakeInSameTx: timestamp mismatch - AddressMismatch: caller mismatch - ServiceDoesNotFulfillCorrectStakingAmount: payment incorrect Access Control: - onlyCA modifier: Only contracts allowed"},"confirmSetSecondsToUnllockFullUnstaking()":{details:"Can only be called by the current admin after the 1-day time delay"},constructor:{params:{initialAdmin:"System administrator.",initialGoldenFisher:"Authorized Golden Fisher address."}},"getAddressHistory(address)":{details:"Returns an array of all staking transactions and rewards for the user",params:{_account:"Address to query the history for"},returns:{_0:"Array of Structs.HistoryMetadata containing all transactions"}},"getAddressHistoryByIndex(address,uint256)":{details:"Allows accessing individual transactions by index",params:{_account:"Address to query the history for",_index:"Index of the transaction to retrieve (0-based)"},returns:{_0:"Structs.HistoryMetadata of the transaction at the specified index"}},"getAllowPresaleStaking()":{details:"Includes current flag state and any pending changes with timestamps",returns:{_0:"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getAllowPublicStaking()":{details:"Includes current flag state and any pending changes with timestamps",returns:{_0:"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getCoreAddress()":{details:"The EVVM contract handles payments and staker registration",returns:{_0:"Address of the EVVM core contract"}},"getEstimatorAddress()":{details:"The estimator calculates staking rewards and yields",returns:{_0:"Address of the current estimator contract"}},"getEstimatorProposal()":{details:"Shows pending estimator changes in the governance system",returns:{_0:"Address of the proposed estimator contract (zero address if none)"}},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getGoldenFisher()":{details:"The golden fisher has special staking privileges",returns:{_0:"Address of the current golden fisher"}},"getGoldenFisherProposal()":{details:"Shows pending golden fisher changes in the governance system",returns:{_0:"Address of the proposed golden fisher (zero address if none)"}},"getMateAddress()":{details:"This is a constant address used to represent the principal token",returns:{_0:"Address representing the Principal Token (0x...0001)"}},"getOwner()":{details:"The admin has full control over contract parameters and governance",returns:{_0:"Address of the current contract admin"}},"getPresaleStaker(address)":{details:"Shows if an address is allowed for presale and how many tokens they've staked",params:{_account:"Address to check presale status for"},returns:{_0:"isAllow True if the address is allowed for presale staking",_1:"stakingAmount Number of staking tokens currently staked in presale (max 2)"}},"getPresaleStakerCount()":{details:"Maximum allowed is 800 presale stakers",returns:{_0:"Current count of presale stakers"}},"getSecondsToUnlockFullUnstaking()":{details:"Full unstaking requires waiting this many seconds (default: 21 days)",returns:{_0:"Number of seconds required to wait for full unstaking"}},"getSecondsToUnlockStaking()":{details:"Users must wait this many seconds after unstaking before they can stake again",returns:{_0:"Number of seconds required to wait between unstaking and staking"}},"getSizeOfAddressHistory(address)":{details:"Useful for pagination or checking if an address has any staking history",params:{_account:"Address to query the history size for"},returns:{_0:"Number of transactions in the history"}},"getTimeToUserUnlockFullUnstakingTime(address)":{details:"Full unstaking requires waiting 21 days after the last time their balance reached 0",params:{_account:"Address to check the unlock time for"},returns:{_0:"Timestamp when full unstaking will be allowed"}},"getTimeToUserUnlockStakingTime(address)":{details:"Users must wait a configurable period after unstaking before they can stake again",params:{_account:"Address to check the unlock time for"},returns:{_0:"Timestamp when staking will be allowed again (0 if already allowed)"}},"getUserAmountStaked(address)":{details:"Returns the total staked amount from the user's most recent transaction",params:{_account:"Address to check the staked amount for"},returns:{_0:"Amount of staking tokens currently staked by the user"}},"gimmeYiel(address)":{details:"Interacts with the Estimator contract to calculate and distribute rewards",params:{user:"Address of the user claiming rewards"},returns:{amountTotalToBeRewarded:"Total amount of rewards to be distributed",epochAnswer:"Epoch identifier for the reward calculation",idToOverwriteUserHistory:"Index in user history to update with reward info",timestampToBeOverwritten:"Timestamp to record for the reward transaction",tokenToBeRewarded:"Address of the token being rewarded"}},"goldenStaking(bool,uint256,bytes)":{details:"Uses sync nonces for coordination with Core operations.",params:{amountOfStaking:"Number of staking tokens.",isStaking:"True to stake, false to unstake.",signaturePay:"Authorization signature for Core payment."}},"initializeSystemContracts(address,address)":{params:{_core:"EVVM Core contract address (payments).",_estimator:"Estimator contract address (yield calculations)."}},"prepareChangeAllowPresaleStaking()":{details:"Initiates the time-delayed process to enable/disable presale staking"},"prepareChangeAllowPublicStaking()":{details:"Initiates the time-delayed process to enable/disable public staking"},"prepareServiceStaking(uint256)":{details:"Records pre-staking state for atomic validation Service Staking Process (ATOMIC - Same TX): 1. prepareServiceStaking: Record balances 2. Evvm.caPay: Transfer Principal Tokens 3. confirmServiceStaking: Validate and complete CRITICAL WARNING: - All 3 steps MUST occur in single transaction - If incomplete, tokens permanently locked - No recovery mechanism for failed process - Service loses tokens if not atomic Metadata Recorded: - service: msg.sender (contract address) - timestamp: block.timestamp (atomicity check) - amountOfStaking: Requested staking tokens - amountServiceBeforeStaking: Service PT balance - amountStakingBeforeStaking: Staking PT balance Core.sol Payment (Step 2): - Service must call Evvm.caPay after this - Transfer: PRICE_OF_STAKING * amountOfStaking - Recipient: address(this) (Staking contract) - Token: Principal Token from Core.sol Access Control: - onlyCA modifier: Only contracts allowed - Checks code size via assembly - EOAs rejected (size == 0)",params:{amountOfStaking:"Number of staking tokens to acquire"}},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{details:"Part of the time-delayed governance system for full unstaking time changes",params:{_secondsToUnllockFullUnstaking:"New number of seconds users must wait for full unstaking (default: 21 days)"}},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{params:{isStaking:"True to stake, false to unstake.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment.",priorityFeePay:"Optional priority fee.",signature:"Participant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"Participant address."}},"priceOfStaking()":{details:"Returns the constant price of 5083 Principal Tokens per staking",returns:{_0:"Price of one staking token in Principal Tokens (with 18 decimals)"}},"proposeAdmin(address)":{details:"Part of the time-delayed governance system for admin changes",params:{_newAdmin:"Address of the proposed new admin"}},"proposeEstimator(address)":{details:"Part of the time-delayed governance system for estimator contract changes",params:{_estimator:"Address of the proposed new estimator contract"}},"proposeGoldenFisher(address)":{details:"Part of the time-delayed governance system for golden fisher changes",params:{_goldenFisher:"Address of the proposed new golden fisher"}},"proposeSetSecondsToUnlockStaking(uint256)":{details:"Part of the time-delayed governance system for staking unlock time changes",params:{_secondsToUnlockStaking:"New number of seconds users must wait after unstaking before staking again"}},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{params:{amountOfStaking:"Number of tokens.",isStaking:"True to stake, false to unstake.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment.",priorityFeePay:"Optional priority fee.",signature:"Participant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"Participant address."}},"rejectProposalAdmin()":{details:"Only current admin can reject the pending proposal"},"rejectProposalEstimator()":{details:"Only current admin can reject the pending estimator contract proposal"},"rejectProposalGoldenFisher()":{details:"Only current admin can reject the pending golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{details:"Only current admin can reject the pending staking unlock time proposal"},"serviceUnstaking(uint256)":{details:"Simplified unstaking process for services - no signature or payment required, just direct unstakingThe service will receive Principal Tokens equal to: amountOfStaking * PRICE_OF_STAKINGSubject to the same time locks as regular unstaking (21 days for full unstake)Only callable by contract accounts (services), not EOAs",params:{amountOfStaking:"Amount of staking tokens to unstake"}}},version:1},userdoc:{kind:"user",methods:{"acceptNewAdmin()":{notice:"Accepts the admin proposal and becomes the new admin"},"acceptNewEstimator()":{notice:"Accepts the estimator contract proposal after the time delay has passed"},"acceptNewGoldenFisher()":{notice:"Accepts the golden fisher proposal after the time delay has passed"},"acceptSetSecondsToUnlockStaking()":{notice:"Accepts the staking unlock time proposal after the time delay has passed"},"addPresaleStaker(address)":{notice:"Adds a single address to the presale staker list"},"addPresaleStakers(address[])":{notice:"Adds multiple addresses to the presale staker list in batch"},"cancelChangeAllowPresaleStaking()":{notice:"Cancels the pending presale staking flag change"},"cancelChangeAllowPublicStaking()":{notice:"Cancels the pending public staking flag change"},"cancelSetSecondsToUnllockFullUnstaking()":{notice:"Cancels the current full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{notice:"Confirms and executes the presale staking flag toggle after the time delay has passed"},"confirmChangeAllowPublicStaking()":{notice:"Confirms and executes the public staking flag toggle after the time delay has passed"},"confirmServiceStaking()":{notice:"Step 3: Confirm service staking after payment"},"confirmSetSecondsToUnllockFullUnstaking()":{notice:"Confirms the full unstaking time proposal after the time delay has passed"},constructor:{notice:"Initializes the staking contract."},"getAddressHistory(address)":{notice:"Returns the complete staking history for an address"},"getAddressHistoryByIndex(address,uint256)":{notice:"Returns a specific transaction from an address's staking history"},"getAllowPresaleStaking()":{notice:"Returns the complete presale staking configuration and status"},"getAllowPublicStaking()":{notice:"Returns the complete public staking configuration and status"},"getCoreAddress()":{notice:"Returns the address of the EVVM core contract"},"getEstimatorAddress()":{notice:"Returns the current estimator contract address"},"getEstimatorProposal()":{notice:"Returns the proposed new estimator contract address (if any)"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getGoldenFisher()":{notice:"Returns the current golden fisher address"},"getGoldenFisherProposal()":{notice:"Returns the proposed new golden fisher address (if any)"},"getMateAddress()":{notice:"Returns the address representing the Principal Token"},"getOwner()":{notice:"Returns the current admin/owner address"},"getPresaleStaker(address)":{notice:"Returns presale staker information for a given address"},"getPresaleStakerCount()":{notice:"Returns the current number of registered presale stakers"},"getSecondsToUnlockFullUnstaking()":{notice:"Returns the current time delay for full unstaking operations"},"getSecondsToUnlockStaking()":{notice:"Returns the current time delay for regular staking operations"},"getSizeOfAddressHistory(address)":{notice:"Returns the number of transactions in an address's staking history"},"getTimeToUserUnlockFullUnstakingTime(address)":{notice:"Calculates when a user can perform full unstaking (withdraw all tokens)"},"getTimeToUserUnlockStakingTime(address)":{notice:"Calculates when a user can stake again after unstaking"},"getUserAmountStaked(address)":{notice:"Returns the current amount of staking tokens staked by a user"},"gimmeYiel(address)":{notice:"Allows users to claim their staking rewards (yield)"},"goldenStaking(bool,uint256,bytes)":{notice:"Unlimited staking/unstaking for the Golden Fisher."},"initializeSystemContracts(address,address)":{notice:"Configures system contract integrations once."},"prepareChangeAllowPresaleStaking()":{notice:"Prepares to toggle the presale staking flag with 1-day time delay"},"prepareChangeAllowPublicStaking()":{notice:"Prepares to toggle the public staking flag with 1-day time delay"},"prepareServiceStaking(uint256)":{notice:"Step 1: Prepare service (contract) staking"},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{notice:"Proposes a new time delay for full unstaking operations with 1-day time delay"},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"White-listed presale staking (max 2 tokens per user)."},"priceOfStaking()":{notice:"Returns the fixed price of one staking token in Principal Tokens"},"proposeAdmin(address)":{notice:"Proposes a new admin address with 1-day time delay"},"proposeEstimator(address)":{notice:"Proposes a new estimator contract address with 1-day time delay"},"proposeGoldenFisher(address)":{notice:"Proposes a new golden fisher address with 1-day time delay"},"proposeSetSecondsToUnlockStaking(uint256)":{notice:"Proposes a new time delay for staking after unstaking with 1-day time delay"},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Public staking open to any user when enabled."},"rejectProposalAdmin()":{notice:"Rejects the current admin proposal"},"rejectProposalEstimator()":{notice:"Rejects the current estimator contract proposal"},"rejectProposalGoldenFisher()":{notice:"Rejects the current golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{notice:"Rejects the current staking unlock time proposal"},"serviceUnstaking(uint256)":{notice:"Allows a service/contract account to unstake their staking tokens"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/staking/Staking.sol":"Staking"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:68},kh=sF.abi,eF=iF.abi,YP=tF.abi,JP=nF.abi,QP=aF.abi;class DX extends JG{constructor(Y){super({...Y,abi:eF})}async getNextCurrentSyncNonce(){return this.view("getNextCurrentSyncNonce",[this.signer.address])}async getIfUsedAsyncNonce(Y){return this.view("getIfUsedAsyncNonce",[this.signer.address,Y])}async getBalance(Y,J){return this.view("getBalance",[Y,J])}async pay({toAddress:Y=K0,toIdentity:J="",tokenAddress:Q,amount:X,priorityFee:q,senderExecutor:G=K0,originExecutor:$=K0,nonce:W,isAsyncExec:j}){let K=await this.getEvvmID(),z="pay";if(Y!=K0&&J!="")throw Error("Can't call Core.pay with both toAddress and toIdentity");let M=this.buildHashPayload("pay",{to_address:Y,to_identity:J,token:Q,amount:X,priorityFee:q}),N=this.buildMessageToSign(K,G,M,$,W,j),O=await this.signer.signMessage(N);return new b0(this,K,"pay",{from:this.signer.address,to_address:Y,to_identity:J,token:Q,amount:X,priorityFee:q,senderExecutor:G,originExecutor:$,nonce:W,isAsyncExec:j,signature:O})}async dispersePay({toData:Y,tokenAddress:J,amount:Q,priorityFee:X,senderExecutor:q=K0,originExecutor:G=K0,nonce:$,isAsyncExec:W}){let j=await this.getEvvmID(),K="dispersePay",z=this.buildHashPayload("dispersePay",{toData:Y.map((O,D)=>{if(O.toAddress&&O.toIdentity)throw Error(`Error, cannot provide both toAddress and toIdentity (toData at index ${D})`);return[O.amount,O.toAddress?O.toAddress:K0,O.toIdentity?O.toIdentity:""]}),token:J,amount:Q,priorityFee:X}),M=this.buildMessageToSign(j,q,z,G,$,W),N=await this.signer.signMessage(M);return new b0(this,j,"dispersePay",{from:this.signer.address,toData:Y.map(({amount:O,toAddress:D,toIdentity:U})=>({amount:O,to_address:D?D:K0,to_identity:U?U:""})),token:J,amount:Q,priorityFee:X,senderExecutor:q,originExecutor:G,nonce:$,isAsyncExec:W,signature:N})}}t0([n0],DX.prototype,"pay",null),t0([n0],DX.prototype,"dispersePay",null);class n8 extends JG{constructor(Y){super({...Y,abi:YP})}async makeOffer({username:Y,expirationDate:J,amount:Q,senderExecutor:X=K0,originExecutor:q=K0,nonce:G,evvmSignedAction:$}){let W=await this.getEvvmID(),j="makeOffer",K=this.buildHashPayload("makeOffer",{username:Y,amount:Q,expirationDate:J}),z=this.buildMessageToSign(W,X,K,q,G,!0),M=await this.signer.signMessage(z);return new b0(this,W,"makeOffer",{user:this.signer.address,username:Y,expirationDate:J,amount:Q,senderExecutor:X,originExecutor:q,nonce:G,signature:M,priorityFeePay:$?.data.priorityFee,noncePay:$?.data.nonce,signaturePay:$?.data.signature})}async withdrawOffer({username:Y,offerID:J,senderExecutor:Q=K0,originExecutor:X=K0,nonce:q,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("withdrawOffer",{username:Y,offerID:J}),j=this.buildMessageToSign($,Q,W,X,q,!0),K=await this.signer.signMessage(j);return new b0(this,$,"withdrawOffer",{user:this.signer.address,username:Y,offerID:J,senderExecutor:Q,originExecutor:X,nonce:q,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async acceptOffer({username:Y,offerID:J,senderExecutor:Q=K0,originExecutor:X=K0,nonce:q,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("acceptOffer",{username:Y,offerID:J}),j=this.buildMessageToSign($,Q,W,X,q,!0),K=await this.signer.signMessage(j);return new b0(this,$,"acceptOffer",{user:this.signer.address,username:Y,offerID:J,senderExecutor:Q,originExecutor:X,nonce:q,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async preRegistrationUsername({hashPreRegisteredUsername:Y,senderExecutor:J=K0,originExecutor:Q=K0,nonce:X,evvmSignedAction:q}){let G=await this.getEvvmID(),$=this.buildHashPayload("preRegistrationUsername",{hashPreRegisteredUsername:Y}),W=this.buildMessageToSign(G,J,$,Q,X,!0),j=await this.signer.signMessage(W);return new b0(this,G,"preRegistrationUsername",{user:this.signer.address,hashPreRegisteredUsername:Y,senderExecutor:J,originExecutor:Q,nonce:X,signature:j,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async registrationUsername({username:Y,lockNumber:J,senderExecutor:Q=K0,originExecutor:X=K0,nonce:q,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("registrationUsername",{username:Y,lockNumber:J}),j=this.buildMessageToSign($,Q,W,X,q,!0),K=await this.signer.signMessage(j);return new b0(this,$,"registrationUsername",{user:this.signer.address,username:Y,lockNumber:J,senderExecutor:Q,originExecutor:X,nonce:q,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async addCustomMetadata({identity:Y,value:J,senderExecutor:Q=K0,originExecutor:X=K0,nonce:q,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("addCustomMetadata",{identity:Y,value:J}),j=this.buildMessageToSign($,Q,W,X,q,!0),K=await this.signer.signMessage(j);return new b0(this,$,"addCustomMetadata",{user:this.signer.address,identity:Y,value:J,senderExecutor:Q,originExecutor:X,nonce:q,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async removeCustomMetadata({identity:Y,key:J,senderExecutor:Q=K0,originExecutor:X=K0,nonce:q,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("removeCustomMetadata",{identity:Y,key:J}),j=this.buildMessageToSign($,Q,W,X,q,!0),K=await this.signer.signMessage(j);return new b0(this,$,"removeCustomMetadata",{user:this.signer.address,identity:Y,key:J,senderExecutor:Q,originExecutor:X,nonce:q,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async flushCustomMetadata({identity:Y,senderExecutor:J=K0,originExecutor:Q=K0,nonce:X,evvmSignedAction:q}){let G=await this.getEvvmID(),$=this.buildHashPayload("flushCustomMetadata",{identity:Y}),W=this.buildMessageToSign(G,J,$,Q,X,!0),j=await this.signer.signMessage(W);return new b0(this,G,"flushCustomMetadata",{user:this.signer.address,identity:Y,senderExecutor:J,originExecutor:Q,nonce:X,signature:j,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async flushUsername({username:Y,senderExecutor:J=K0,originExecutor:Q=K0,nonce:X,evvmSignedAction:q}){let G=await this.getEvvmID(),$=this.buildHashPayload("flushUsername",{username:Y}),W=this.buildMessageToSign(G,J,$,Q,X,!0),j=await this.signer.signMessage(W);return new b0(this,G,"flushUsername",{user:this.signer.address,username:Y,senderExecutor:J,originExecutor:Q,nonce:X,signature:j,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async renewUsername({username:Y,senderExecutor:J=K0,originExecutor:Q=K0,nonce:X,evvmSignedAction:q}){let G=await this.getEvvmID(),$=this.buildHashPayload("renewUsername",{username:Y}),W=this.buildMessageToSign(G,J,$,Q,X,!0),j=await this.signer.signMessage(W);return new b0(this,G,"renewUsername",{user:this.signer.address,username:Y,senderExecutor:J,originExecutor:Q,nonce:X,signature:j,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}}t0([n0],n8.prototype,"makeOffer",null),t0([n0],n8.prototype,"withdrawOffer",null),t0([n0],n8.prototype,"acceptOffer",null),t0([n0],n8.prototype,"preRegistrationUsername",null),t0([n0],n8.prototype,"registrationUsername",null),t0([n0],n8.prototype,"addCustomMetadata",null),t0([n0],n8.prototype,"removeCustomMetadata",null),t0([n0],n8.prototype,"flushCustomMetadata",null),t0([n0],n8.prototype,"flushUsername",null),t0([n0],n8.prototype,"renewUsername",null);class X$ extends JG{constructor(Y){super({...Y,abi:QP})}async presaleStaking({isStaking:Y,senderExecutor:J=K0,originExecutor:Q=K0,nonce:X,evvmSignedAction:q}){let G=await this.getEvvmID(),$="presaleStaking",W=this.buildHashPayload("presaleStaking",{isStaking:Y,amountOfStaking:1n},{customAbiParams:[{name:"amountOfStaking",type:"uint256",insertAfter:"isStaking"}]}),j=this.buildMessageToSign(G,J,W,Q,X,!0),K=await this.signer.signMessage(j);return new b0(this,G,"presaleStaking",{user:this.signer.address,isStaking:Y,senderExecutor:J,originExecutor:Q,nonce:X,signature:K,priorityFeePay:q?.data.priorityFee,noncePay:q?.data.nonce,signaturePay:q?.data.signature})}async publicStaking({isStaking:Y,amountOfStaking:J,senderExecutor:Q=K0,originExecutor:X=K0,nonce:q,evvmSignedAction:G}){let $=await this.getEvvmID(),W="publicStaking",j=this.buildHashPayload("publicStaking",{isStaking:Y,amountOfStaking:J}),K=this.buildMessageToSign($,Q,j,X,q,!0),z=await this.signer.signMessage(K);return new b0(this,$,"publicStaking",{user:this.signer.address,isStaking:Y,amountOfStaking:J,senderExecutor:Q,originExecutor:X,nonce:q,signature:z,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async goldenStaking({isStaking:Y,amountOfStaking:J,evvmSignedAction:Q}){let X=await this.getEvvmID(),q=Q?.data.signature;return new b0(this,X,"goldenStaking",{isStaking:Y,amountOfStaking:J,signaturePay:q})}}t0([n0],X$.prototype,"presaleStaking",null),t0([n0],X$.prototype,"publicStaking",null),t0([n0],X$.prototype,"goldenStaking",null);class nq extends JG{constructor(Y){super({...Y,abi:JP})}async makeOrder({nonce:Y,tokenA:J,tokenB:Q,amountA:X,amountB:q,senderExecutor:G=K0,originExecutor:$=K0,evvmSignedAction:W}){let j=await this.getEvvmID(),K="makeOrder",z=this.buildHashPayload("makeOrder",{tokenA:J,tokenB:Q,amountA:X,amountB:q}),M=this.buildMessageToSign(j,G,z,$,Y,!0),N=await this.signer.signMessage(M);return new b0(this,j,"makeOrder",{user:this.signer.address,tokenA:J,tokenB:Q,amountA:X,amountB:q,senderExecutor:G,originExecutor:$,nonce:Y,signature:N,priorityFeePay:W.data.priorityFee,noncePay:W.data.nonce,signaturePay:W.data.signature})}async cancelOrder({nonce:Y,tokenA:J,tokenB:Q,orderId:X,senderExecutor:q=K0,originExecutor:G=K0,evvmSignedAction:$}){let W=await this.getEvvmID(),j="cancelOrder",K=this.buildHashPayload("cancelOrder",{tokenA:J,tokenB:Q,orderId:X}),z=this.buildMessageToSign(W,q,K,G,Y,!0),M=await this.signer.signMessage(z);return new b0(this,W,"cancelOrder",{user:this.signer.address,tokenA:J,tokenB:Q,orderId:X,senderExecutor:q,originExecutor:G,nonce:Y,signature:M,priorityFeePay:$?.data.priorityFee,noncePay:$?.data.nonce,signaturePay:$?.data.signature})}async dispatchOrder_fillPropotionalFee({nonce:Y,tokenA:J,tokenB:Q,orderId:X,amountOfTokenBToFill:q,senderExecutor:G=K0,originExecutor:$=K0,evvmSignedAction:W}){let j=await this.getEvvmID(),K="dispatchOrder_fillPropotionalFee",z=this.buildHashPayload("dispatchOrder_fillPropotionalFee",{tokenA:J,tokenB:Q,orderId:X}),M=this.buildMessageToSign(j,G,z,$,Y,!0),N=await this.signer.signMessage(M);return new b0(this,j,"dispatchOrder_fillPropotionalFee",{user:this.signer.address,tokenA:J,tokenB:Q,orderId:X,amountOfTokenBToFill:q,senderExecutor:G,originExecutor:$,nonce:Y,signature:N,priorityFeePay:W.data.priorityFee,noncePay:W.data.nonce,signaturePay:W.data.signature})}async dispatchOrder_fillFixedFee({nonce:Y,tokenA:J,tokenB:Q,orderId:X,amountOfTokenBToFill:q,maxFillFixedFee:G,senderExecutor:$=K0,originExecutor:W=K0,evvmSignedAction:j}){let K=await this.getEvvmID(),z="dispatchOrder_fillFixedFee",M=this.buildHashPayload("dispatchOrder_fillFixedFee",{tokenA:J,tokenB:Q,orderId:X}),N=this.buildMessageToSign(K,$,M,W,Y,!0),O=await this.signer.signMessage(N);return new b0(this,K,"dispatchOrder_fillFixedFee",{user:this.signer.address,tokenA:J,tokenB:Q,orderId:X,amountOfTokenBToFill:q,senderExecutor:$,originExecutor:W,nonce:Y,signature:O,maxFillFixedFee:G,priorityFeePay:j.data.priorityFee,noncePay:j.data.nonce,signaturePay:j.data.signature})}}t0([n0],nq.prototype,"makeOrder",null),t0([n0],nq.prototype,"cancelOrder",null),t0([n0],nq.prototype,"dispatchOrder_fillPropotionalFee",null),t0([n0],nq.prototype,"dispatchOrder_fillFixedFee",null);ZD();xD();g8();J8();Bj();Rj();II();OU();var qP="6.16.0";function XP(Y,J,Q){let X=J.split("|").map((G)=>G.trim());for(let G=0;G<X.length;G++)switch(J){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof Y===J)return}let q=Error(`invalid value for type ${J}`);throw q.code="INVALID_ARGUMENT",q.argument=`value.${Q}`,q.value=Y,q}async function U8(Y){let J=Object.keys(Y);return(await Promise.all(J.map((Q)=>Promise.resolve(Y[Q])))).reduce((Q,X,q)=>{return Q[J[q]]=X,Q},{})}function Y0(Y,J,Q){for(let X in J){let q=J[X],G=Q?Q[X]:null;if(G)XP(q,G,X);Object.defineProperty(Y,X,{enumerable:!0,value:q,writable:!1})}}function fQ(Y,J){if(Y==null)return"null";if(J==null)J=new Set;if(typeof Y==="object"){if(J.has(Y))return"[Circular]";J.add(Y)}if(Array.isArray(Y))return"[ "+Y.map((Q)=>fQ(Q,J)).join(", ")+" ]";if(Y instanceof Uint8Array){let Q="0x";for(let X=0;X<Y.length;X++)Q+="0123456789abcdef"[Y[X]>>4],Q+="0123456789abcdef"[Y[X]&15];return Q}if(typeof Y==="object"&&typeof Y.toJSON==="function")return fQ(Y.toJSON(),J);switch(typeof Y){case"boolean":case"number":case"symbol":return Y.toString();case"bigint":return BigInt(Y).toString();case"string":return JSON.stringify(Y);case"object":{let Q=Object.keys(Y);return Q.sort(),"{ "+Q.map((X)=>`${fQ(X,J)}: ${fQ(Y[X],J)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function X8(Y,J){return Y&&Y.code===J}function Ez(Y){return X8(Y,"CALL_EXCEPTION")}function P0(Y,J,Q){let X=Y;{let G=[];if(Q){if("message"in Q||"code"in Q||"name"in Q)throw Error(`value will overwrite populated values: ${fQ(Q)}`);for(let $ in Q){if($==="shortMessage")continue;let W=Q[$];G.push($+"="+fQ(W))}}if(G.push(`code=${J}`),G.push(`version=${qP}`),G.length)Y+=" ("+G.join(", ")+")"}let q;switch(J){case"INVALID_ARGUMENT":q=TypeError(Y);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":q=RangeError(Y);break;default:q=Error(Y)}if(Y0(q,{code:J}),Q)Object.assign(q,Q);if(q.shortMessage==null)Y0(q,{shortMessage:X});return q}function _(Y,J,Q,X){if(!Y)throw P0(J,Q,X)}function H(Y,J,Q,X){_(Y,J,"INVALID_ARGUMENT",{argument:Q,value:X})}function q7(Y,J,Q){if(Q==null)Q="";if(Q)Q=": "+Q;_(Y>=J,"missing argument"+Q,"MISSING_ARGUMENT",{count:Y,expectedCount:J}),_(Y<=J,"too many arguments"+Q,"UNEXPECTED_ARGUMENT",{count:Y,expectedCount:J})}var GP=["NFD","NFC","NFKD","NFKC"].reduce((Y,J)=>{try{if("test".normalize(J)!=="test")throw Error("bad");if(J==="NFD"){let Q=String.fromCharCode(233).normalize("NFD"),X=String.fromCharCode(101,769);if(Q!==X)throw Error("broken")}Y.push(J)}catch(Q){}return Y},[]);function $P(Y){_(GP.indexOf(Y)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:Y}})}function m9(Y,J,Q){if(Q==null)Q="";if(Y!==J){let X=Q,q="new";if(Q)X+=".",q+=" "+Q;_(!1,`private constructor; use ${X}from* methods`,"UNSUPPORTED_OPERATION",{operation:q})}}function X7(Y,J,Q){if(Y instanceof Uint8Array){if(Q)return new Uint8Array(Y);return Y}if(typeof Y==="string"&&Y.length%2===0&&Y.match(/^0x[0-9a-f]*$/i)){let X=new Uint8Array((Y.length-2)/2),q=2;for(let G=0;G<X.length;G++)X[G]=parseInt(Y.substring(q,q+2),16),q+=2;return X}H(!1,"invalid BytesLike value",J||"value",Y)}function z0(Y,J){return X7(Y,J,!1)}function j8(Y,J){return X7(Y,J,!0)}function k0(Y,J){if(typeof Y!=="string"||!Y.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof J==="number"&&Y.length!==2+2*J)return!1;if(J===!0&&Y.length%2!==0)return!1;return!0}function wz(Y){return k0(Y,!0)||Y instanceof Uint8Array}var jO="0123456789abcdef";function l(Y){let J=z0(Y),Q="0x";for(let X=0;X<J.length;X++){let q=J[X];Q+=jO[(q&240)>>4]+jO[q&15]}return Q}function Z0(Y){return"0x"+Y.map((J)=>l(J).substring(2)).join("")}function yQ(Y){if(k0(Y,!0))return(Y.length-2)/2;return z0(Y).length}function y0(Y,J,Q){let X=z0(Y);if(Q!=null&&Q>X.length)_(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:X,length:X.length,offset:Q});return l(X.slice(J==null?0:J,Q==null?X.length:Q))}function G7(Y,J,Q){let X=z0(Y);_(J>=X.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(X),length:J,offset:J+1});let q=new Uint8Array(J);if(q.fill(0),Q)q.set(X,J-X.length);else q.set(X,0);return l(q)}function rY(Y,J){return G7(Y,J,!0)}function WP(Y,J){return G7(Y,J,!1)}var QG=BigInt(0),QY=BigInt(1),hQ=9007199254740991;function jP(Y,J){let Q=y9(Y,"value"),X=BigInt(j0(J,"width"));if(_(Q>>X===QG,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:Y}),Q>>X-QY){let q=(QY<<X)-QY;return-((~Q&q)+QY)}return Q}function $7(Y,J){let Q=d(Y,"value"),X=BigInt(j0(J,"width")),q=QY<<X-QY;if(Q<QG){Q=-Q,_(Q<=q,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:Y});let G=(QY<<X)-QY;return(~Q&G)+QY}else _(Q<q,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:Y});return Q}function aq(Y,J){let Q=y9(Y,"value"),X=BigInt(j0(J,"bits"));return Q&(QY<<X)-QY}function d(Y,J){switch(typeof Y){case"bigint":return Y;case"number":return H(Number.isInteger(Y),"underflow",J||"value",Y),H(Y>=-hQ&&Y<=hQ,"overflow",J||"value",Y),BigInt(Y);case"string":try{if(Y==="")throw Error("empty string");if(Y[0]==="-"&&Y[1]!=="-")return-BigInt(Y.substring(1));return BigInt(Y)}catch(Q){H(!1,`invalid BigNumberish string: ${Q.message}`,J||"value",Y)}}H(!1,"invalid BigNumberish value",J||"value",Y)}function y9(Y,J){let Q=d(Y,J);return _(Q>=QG,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:Y}),Q}var KO="0123456789abcdef";function Az(Y){if(Y instanceof Uint8Array){let J="0x0";for(let Q of Y)J+=KO[Q>>4],J+=KO[Q&15];return BigInt(J)}return d(Y)}function j0(Y,J){switch(typeof Y){case"bigint":return H(Y>=-hQ&&Y<=hQ,"overflow",J||"value",Y),Number(Y);case"number":return H(Number.isInteger(Y),"underflow",J||"value",Y),H(Y>=-hQ&&Y<=hQ,"overflow",J||"value",Y),Y;case"string":try{if(Y==="")throw Error("empty string");return j0(BigInt(Y),J)}catch(Q){H(!1,`invalid numeric string: ${Q.message}`,J||"value",Y)}}H(!1,"invalid numeric value",J||"value",Y)}function KP(Y){return j0(Az(Y))}function EJ(Y,J){let Q=y9(Y,"value"),X=Q.toString(16);if(J==null){if(X.length%2)X="0"+X}else{let q=j0(J,"width");if(q===0&&Q===QG)return"0x";_(q*2>=X.length,`value exceeds width (${q} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:Y});while(X.length<q*2)X="0"+X}return"0x"+X}function r0(Y,J){let Q=y9(Y,"value");if(Q===QG){let G=J!=null?j0(J,"width"):0;return new Uint8Array(G)}let X=Q.toString(16);if(X.length%2)X="0"+X;if(J!=null){let G=j0(J,"width");while(X.length<G*2)X="00"+X;_(G*2===X.length,`value exceeds width (${G} bytes)`,"NUMERIC_FAULT",{operation:"toBeArray",fault:"overflow",value:Y})}let q=new Uint8Array(X.length/2);for(let G=0;G<q.length;G++){let $=G*2;q[G]=parseInt(X.substring($,$+2),16)}return q}function YY(Y){let J=l(wz(Y)?Y:r0(Y)).substring(2);while(J.startsWith("0"))J=J.substring(1);if(J==="")J="0";return"0x"+J}var zO="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Fh=BigInt(0),MO=BigInt(58);function zP(Y){let J=z0(Y),Q=Az(J),X="";while(Q)X=zO[Number(Q%MO)]+X,Q/=MO;for(let q=0;q<J.length;q++){if(J[q])break;X=zO[0]+X}return X}function MP(Y){return j8(Buffer.from(Y,"base64"))}function NP(Y){return Buffer.from(z0(Y)).toString("base64")}class Cz{filter;emitter;#Y;constructor(Y,J,Q){this.#Y=J,Y0(this,{emitter:Y,filter:Q})}async removeListener(){if(this.#Y==null)return;await this.emitter.off(this.filter,this.#Y)}}function OP(Y,J,Q,X,q){H(!1,`invalid codepoint at offset ${J}; ${Y}`,"bytes",Q)}function W7(Y,J,Q,X,q){if(Y==="BAD_PREFIX"||Y==="UNEXPECTED_CONTINUE"){let G=0;for(let $=J+1;$<Q.length;$++){if(Q[$]>>6!==2)break;G++}return G}if(Y==="OVERRUN")return Q.length-J-1;return 0}function DP(Y,J,Q,X,q){if(Y==="OVERLONG")return H(typeof q==="number","invalid bad code point for replacement","badCodepoint",q),X.push(q),0;return X.push(65533),W7(Y,J,Q,X,q)}var UP=Object.freeze({error:OP,ignore:W7,replace:DP});function HP(Y,J){if(J==null)J=UP.error;let Q=z0(Y,"bytes"),X=[],q=0;while(q<Q.length){let G=Q[q++];if(G>>7===0){X.push(G);continue}let $=null,W=null;if((G&224)===192)$=1,W=127;else if((G&240)===224)$=2,W=2047;else if((G&248)===240)$=3,W=65535;else{if((G&192)===128)q+=J("UNEXPECTED_CONTINUE",q-1,Q,X);else q+=J("BAD_PREFIX",q-1,Q,X);continue}if(q-1+$>=Q.length){q+=J("OVERRUN",q-1,Q,X);continue}let j=G&(1<<8-$-1)-1;for(let K=0;K<$;K++){let z=Q[q];if((z&192)!=128){q+=J("MISSING_CONTINUE",q,Q,X),j=null;break}j=j<<6|z&63,q++}if(j===null)continue;if(j>1114111){q+=J("OUT_OF_RANGE",q-1-$,Q,X,j);continue}if(j>=55296&&j<=57343){q+=J("UTF16_SURROGATE",q-1-$,Q,X,j);continue}if(j<=W){q+=J("OVERLONG",q-1-$,Q,X,j);continue}X.push(j)}return X}function uY(Y,J){if(H(typeof Y==="string","invalid string value","str",Y),J!=null)$P(J),Y=Y.normalize(J);let Q=[];for(let X=0;X<Y.length;X++){let q=Y.charCodeAt(X);if(q<128)Q.push(q);else if(q<2048)Q.push(q>>6|192),Q.push(q&63|128);else if((q&64512)==55296){X++;let G=Y.charCodeAt(X);H(X<Y.length&&(G&64512)===56320,"invalid surrogate pair","str",Y);let $=65536+((q&1023)<<10)+(G&1023);Q.push($>>18|240),Q.push($>>12&63|128),Q.push($>>6&63|128),Q.push($&63|128)}else Q.push(q>>12|224),Q.push(q>>6&63|128),Q.push(q&63|128)}return new Uint8Array(Q)}function BP(Y){return Y.map((J)=>{if(J<=65535)return String.fromCharCode(J);return J-=65536,String.fromCharCode((J>>10&1023)+55296,(J&1023)+56320)}).join("")}function T$(Y,J){return BP(HP(Y,J))}function Iz(Y){async function J(Q,X){_(X==null||!X.cancelled,"request cancelled before sending","CANCELLED");let q=Q.url.split(":")[0].toLowerCase();_(q==="http"||q==="https",`unsupported protocol ${q}`,"UNSUPPORTED_OPERATION",{info:{protocol:q},operation:"request"}),_(q==="https"||!Q.credentials||Q.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let G=Q.method,$=Object.assign({},Q.headers),W={method:G,headers:$};if(Y){if(Y.agent)W.agent=Y.agent}let j=null;try{j=new AbortController,W.abort=j.signal}catch(M){console.log(M)}let K=(q==="http"?j7.default:K7.default).request(Q.url,W);K.setTimeout(Q.timeout);let z=Q.body;if(z)K.write(Buffer.from(z));return K.end(),new Promise((M,N)=>{if(X)X.addListener(()=>{if(j)j.abort();N(P0("request cancelled","CANCELLED"))});K.on("timeout",()=>{N(P0("request timeout","TIMEOUT"))}),K.once("response",(O)=>{let D=O.statusCode||0,U=O.statusMessage||"",A=Object.keys(O.headers||{}).reduce((v,R)=>{let E=O.headers[R]||"";if(Array.isArray(E))E=E.join(", ");return v[R]=E,v},{}),w=null;O.on("data",(v)=>{if(X)try{X.checkSignal()}catch(R){return N(R)}if(w==null)w=v;else{let R=new Uint8Array(w.length+v.length);R.set(w,0),R.set(v,w.length),w=R}}),O.on("end",()=>{try{if(A["content-encoding"]==="gzip"&&w)w=z0(z7.gunzipSync(w));M({statusCode:D,statusMessage:U,headers:A,body:w})}catch(v){N(P0("bad response data","SERVER_ERROR",{request:Q,info:{response:O,error:v}}))}}),O.on("error",(v)=>{v.response={statusCode:D,statusMessage:U,headers:A,body:w},N(v)})}),K.on("error",(O)=>{N(O)})})}return J}var Ph=Iz({}),RP=12,VP=250,NO=Iz(),LP=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),EP=new RegExp("^ipfs://(ipfs/)?(.*)$","i"),ZW=!1;async function M7(Y,J){try{let Q=Y.match(LP);if(!Q)throw Error("invalid data");return new HJ(200,"OK",{"content-type":Q[1]||"text/plain"},Q[2]?MP(Q[3]):wP(Q[3]))}catch(Q){return new HJ(599,"BAD REQUEST (invalid data: URI)",{},null,new LY(Y))}}function N7(Y){async function J(Q,X){try{let q=Q.match(EP);if(!q)throw Error("invalid link");return new LY(`${Y}${q[2]}`)}catch(q){return new HJ(599,"BAD REQUEST (invalid IPFS URI)",{},null,new LY(Q))}}return J}var dG={data:M7,ipfs:N7("https://gateway.ipfs.io/ipfs/")},O7=new WeakMap;class D7{#Y;#J;constructor(Y){this.#Y=[],this.#J=!1,O7.set(Y,()=>{if(this.#J)return;this.#J=!0;for(let J of this.#Y)setTimeout(()=>{J()},0);this.#Y=[]})}addListener(Y){_(!this.#J,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#Y.push(Y)}get cancelled(){return this.#J}checkSignal(){_(!this.cancelled,"cancelled","CANCELLED",{})}}function rG(Y){if(Y==null)throw Error("missing signal; should not happen");return Y.checkSignal(),Y}class LY{#Y;#J;#Q;#q;#X;#$;#G;#W;#O;#K;#D;#U;#j;#z;#M;get url(){return this.#$}set url(Y){this.#$=String(Y)}get body(){if(this.#G==null)return null;return new Uint8Array(this.#G)}set body(Y){if(Y==null)this.#G=void 0,this.#W=void 0;else if(typeof Y==="string")this.#G=uY(Y),this.#W="text/plain";else if(Y instanceof Uint8Array)this.#G=Y,this.#W="application/octet-stream";else if(typeof Y==="object")this.#G=uY(JSON.stringify(Y)),this.#W="application/json";else throw Error("invalid body")}hasBody(){return this.#G!=null}get method(){if(this.#q)return this.#q;if(this.hasBody())return"POST";return"GET"}set method(Y){if(Y==null)Y="";this.#q=String(Y).toUpperCase()}get headers(){let Y=Object.assign({},this.#Q);if(this.#O)Y.authorization=`Basic ${NP(uY(this.#O))}`;if(this.allowGzip)Y["accept-encoding"]="gzip";if(Y["content-type"]==null&&this.#W)Y["content-type"]=this.#W;if(this.body)Y["content-length"]=String(this.body.length);return Y}getHeader(Y){return this.headers[Y.toLowerCase()]}setHeader(Y,J){this.#Q[String(Y).toLowerCase()]=String(J)}clearHeaders(){this.#Q={}}[Symbol.iterator](){let Y=this.headers,J=Object.keys(Y),Q=0;return{next:()=>{if(Q<J.length){let X=J[Q++];return{value:[X,Y[X]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#O||null}setCredentials(Y,J){H(!Y.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#O=`${Y}:${J}`}get allowGzip(){return this.#J}set allowGzip(Y){this.#J=!!Y}get allowInsecureAuthentication(){return!!this.#Y}set allowInsecureAuthentication(Y){this.#Y=!!Y}get timeout(){return this.#X}set timeout(Y){H(Y>=0,"timeout must be non-zero","timeout",Y),this.#X=Y}get preflightFunc(){return this.#K||null}set preflightFunc(Y){this.#K=Y}get processFunc(){return this.#D||null}set processFunc(Y){this.#D=Y}get retryFunc(){return this.#U||null}set retryFunc(Y){this.#U=Y}get getUrlFunc(){return this.#M||NO}set getUrlFunc(Y){this.#M=Y}constructor(Y){this.#$=String(Y),this.#Y=!1,this.#J=!0,this.#Q={},this.#q="",this.#X=300000,this.#z={slotInterval:VP,maxAttempts:RP},this.#M=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#G?l(this.#G):"null"}>`}setThrottleParams(Y){if(Y.slotInterval!=null)this.#z.slotInterval=Y.slotInterval;if(Y.maxAttempts!=null)this.#z.maxAttempts=Y.maxAttempts}async#N(Y,J,Q,X,q){if(Y>=this.#z.maxAttempts)return q.makeServerError("exceeded maximum retry limit");if(_(OO()<=J,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:X}),Q>0)await AP(Q);let G=this.clone(),$=(G.url.split(":")[0]||"").toLowerCase();if($ in dG){let K=await dG[$](G.url,rG(X.#j));if(K instanceof HJ){let z=K;if(this.processFunc){rG(X.#j);try{z=await this.processFunc(G,z)}catch(M){if(M.throttle==null||typeof M.stall!=="number")z.makeServerError("error in post-processing function",M).assertOk()}}return z}G=K}if(this.preflightFunc)G=await this.preflightFunc(G);let W=await this.getUrlFunc(G,rG(X.#j)),j=new HJ(W.statusCode,W.statusMessage,W.headers,W.body,X);if(j.statusCode===301||j.statusCode===302){try{let K=j.headers.location||"";return G.redirect(K).#N(Y+1,J,0,X,j)}catch(K){}return j}else if(j.statusCode===429){if(this.retryFunc==null||await this.retryFunc(G,j,Y)){let K=j.headers["retry-after"],z=this.#z.slotInterval*Math.trunc(Math.random()*Math.pow(2,Y));if(typeof K==="string"&&K.match(/^[1-9][0-9]*$/))z=parseInt(K);return G.clone().#N(Y+1,J,z,X,j)}}if(this.processFunc){rG(X.#j);try{j=await this.processFunc(G,j)}catch(K){if(K.throttle==null||typeof K.stall!=="number")j.makeServerError("error in post-processing function",K).assertOk();let z=this.#z.slotInterval*Math.trunc(Math.random()*Math.pow(2,Y));if(K.stall>=0)z=K.stall;return G.clone().#N(Y+1,J,z,X,j)}}return j}send(){return _(this.#j==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#j=new D7(this),this.#N(0,OO()+this.timeout,0,this,new HJ(0,"",{},null,this))}cancel(){_(this.#j!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});let Y=O7.get(this);if(!Y)throw Error("missing signal; should not happen");Y()}redirect(Y){let J=this.url.split(":")[0].toLowerCase(),Q=Y.split(":")[0].toLowerCase();_(this.method==="GET"&&(J!=="https"||Q!=="http")&&Y.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(Y)})`});let X=new LY(Y);if(X.method="GET",X.allowGzip=this.allowGzip,X.timeout=this.timeout,X.#Q=Object.assign({},this.#Q),this.#G)X.#G=new Uint8Array(this.#G);return X.#W=this.#W,X}clone(){let Y=new LY(this.url);if(Y.#q=this.#q,this.#G)Y.#G=this.#G;if(Y.#W=this.#W,Y.#Q=Object.assign({},this.#Q),Y.#O=this.#O,this.allowGzip)Y.allowGzip=!0;if(Y.timeout=this.timeout,this.allowInsecureAuthentication)Y.allowInsecureAuthentication=!0;return Y.#K=this.#K,Y.#D=this.#D,Y.#U=this.#U,Y.#z=Object.assign({},this.#z),Y.#M=this.#M,Y}static lockConfig(){ZW=!0}static getGateway(Y){return dG[Y.toLowerCase()]||null}static registerGateway(Y,J){if(Y=Y.toLowerCase(),Y==="http"||Y==="https")throw Error(`cannot intercept ${Y}; use registerGetUrl`);if(ZW)throw Error("gateways locked");dG[Y]=J}static registerGetUrl(Y){if(ZW)throw Error("gateways locked");NO=Y}static createGetUrlFunc(Y){return Iz(Y)}static createDataGateway(){return M7}static createIpfsGatewayFunc(Y){return N7(Y)}}class HJ{#Y;#J;#Q;#q;#X;#$;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#q?l(this.#q):"null"}>`}get statusCode(){return this.#Y}get statusMessage(){return this.#J}get headers(){return Object.assign({},this.#Q)}get body(){return this.#q==null?null:new Uint8Array(this.#q)}get bodyText(){try{return this.#q==null?"":T$(this.#q)}catch(Y){_(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch(Y){_(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){let Y=this.headers,J=Object.keys(Y),Q=0;return{next:()=>{if(Q<J.length){let X=J[Q++];return{value:[X,Y[X]],done:!1}}return{value:void 0,done:!0}}}}constructor(Y,J,Q,X,q){this.#Y=Y,this.#J=J,this.#Q=Object.keys(Q).reduce((G,$)=>{return G[$.toLowerCase()]=String(Q[$]),G},{}),this.#q=X==null?null:new Uint8Array(X),this.#X=q||null,this.#$={message:""}}makeServerError(Y,J){let Q;if(!Y)Y=`${this.statusCode} ${this.statusMessage}`,Q=`CLIENT ESCALATED SERVER ERROR (${Y})`;else Q=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${Y})`;let X=new HJ(599,Q,this.headers,this.body,this.#X||void 0);return X.#$={message:Y,error:J},X}throwThrottleError(Y,J){if(J==null)J=-1;else H(Number.isInteger(J)&&J>=0,"invalid stall timeout","stall",J);let Q=Error(Y||"throttling requests");throw Y0(Q,{stall:J,throttle:!0}),Q}getHeader(Y){return this.headers[Y.toLowerCase()]}hasBody(){return this.#q!=null}get request(){return this.#X}ok(){return this.#$.message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:Y,error:J}=this.#$;if(Y==="")Y=`server response ${this.statusCode} ${this.statusMessage}`;let Q=null;if(this.request)Q=this.request.url;let X=null;try{if(this.#q)X=T$(this.#q)}catch(q){}_(!1,Y,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:J,info:{requestUrl:Q,responseBody:X,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function OO(){return new Date().getTime()}function wP(Y){return uY(Y.replace(/%([0-9a-f][0-9a-f])/gi,(J,Q)=>{return String.fromCharCode(parseInt(Q,16))}))}function AP(Y){return new Promise((J)=>setTimeout(J,Y))}function CP(Y){let J=Y.toString(16);while(J.length<2)J="0"+J;return"0x"+J}function DO(Y,J,Q){let X=0;for(let q=0;q<Q;q++)X=X*256+Y[J+q];return X}function UO(Y,J,Q,X){let q=[];while(Q<J+1+X){let G=U7(Y,Q);q.push(G.result),Q+=G.consumed,_(Q<=J+1+X,"child data too short","BUFFER_OVERRUN",{buffer:Y,length:X,offset:J})}return{consumed:1+X,result:q}}function U7(Y,J){_(Y.length!==0,"data too short","BUFFER_OVERRUN",{buffer:Y,length:0,offset:1});let Q=(X)=>{_(X<=Y.length,"data short segment too short","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X})};if(Y[J]>=248){let X=Y[J]-247;Q(J+1+X);let q=DO(Y,J+1,X);return Q(J+1+X+q),UO(Y,J,J+1+X,X+q)}else if(Y[J]>=192){let X=Y[J]-192;return Q(J+1+X),UO(Y,J,J+1,X)}else if(Y[J]>=184){let X=Y[J]-183;Q(J+1+X);let q=DO(Y,J+1,X);Q(J+1+X+q);let G=l(Y.slice(J+1+X,J+1+X+q));return{consumed:1+X+q,result:G}}else if(Y[J]>=128){let X=Y[J]-128;Q(J+1+X);let q=l(Y.slice(J+1,J+1+X));return{consumed:1+X,result:q}}return{consumed:1,result:CP(Y[J])}}function qG(Y){let J=z0(Y,"data"),Q=U7(J,0);return H(Q.consumed===J.length,"unexpected junk after rlp payload","data",Y),Q.result}function HO(Y){let J=[];while(Y)J.unshift(Y&255),Y>>=8;return J}function H7(Y){if(Array.isArray(Y)){let X=[];if(Y.forEach(function(G){X=X.concat(H7(G))}),X.length<=55)return X.unshift(192+X.length),X;let q=HO(X.length);return q.unshift(247+q.length),q.concat(X)}let J=Array.prototype.slice.call(z0(Y,"object"));if(J.length===1&&J[0]<=127)return J;else if(J.length<=55)return J.unshift(128+J.length),J;let Q=HO(J.length);return Q.unshift(183+Q.length),Q.concat(J)}var BO="0123456789abcdef";function cY(Y){let J="0x";for(let Q of H7(Y))J+=BO[Q>>4],J+=BO[Q&15];return J}var H8=32,H5=new Uint8Array(H8),IP=["then"],sG={},B7=new WeakMap;function cJ(Y){return B7.get(Y)}function RO(Y,J){B7.set(Y,J)}function rq(Y,J){let Q=Error(`deferred error during ABI decoding triggered accessing ${Y}`);throw Q.error=J,Q}function B5(Y,J,Q){if(Y.indexOf(null)>=0)return J.map((X,q)=>{if(X instanceof mY)return B5(cJ(X),X,Q);return X});return Y.reduce((X,q,G)=>{let $=J.getValue(q);if(!(q in X)){if(Q&&$ instanceof mY)$=B5(cJ($),$,Q);X[q]=$}return X},{})}class mY extends Array{#Y;constructor(...Y){let J=Y[0],Q=Y[1],X=(Y[2]||[]).slice(),q=!0;if(J!==sG)Q=Y,X=[],q=!1;super(Q.length);Q.forEach((W,j)=>{this[j]=W});let G=X.reduce((W,j)=>{if(typeof j==="string")W.set(j,(W.get(j)||0)+1);return W},new Map);if(RO(this,Object.freeze(Q.map((W,j)=>{let K=X[j];if(K!=null&&G.get(K)===1)return K;return null}))),this.#Y=[],this.#Y==null)this.#Y;if(!q)return;Object.freeze(this);let $=new Proxy(this,{get:(W,j,K)=>{if(typeof j==="string"){if(j.match(/^[0-9]+$/)){let M=j0(j,"%index");if(M<0||M>=this.length)throw RangeError("out of result range");let N=W[M];if(N instanceof Error)rq(`index ${M}`,N);return N}if(IP.indexOf(j)>=0)return Reflect.get(W,j,K);let z=W[j];if(z instanceof Function)return function(...M){return z.apply(this===K?W:this,M)};else if(!(j in W))return W.getValue.apply(this===K?W:this,[j])}return Reflect.get(W,j,K)}});return RO($,cJ(this)),$}toArray(Y){let J=[];return this.forEach((Q,X)=>{if(Q instanceof Error)rq(`index ${X}`,Q);if(Y&&Q instanceof mY)Q=Q.toArray(Y);J.push(Q)}),J}toObject(Y){let J=cJ(this);return J.reduce((Q,X,q)=>{return _(X!=null,`value at index ${q} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),B5(J,this,Y)},{})}slice(Y,J){if(Y==null)Y=0;if(Y<0){if(Y+=this.length,Y<0)Y=0}if(J==null)J=this.length;if(J<0){if(J+=this.length,J<0)J=0}if(J>this.length)J=this.length;let Q=cJ(this),X=[],q=[];for(let G=Y;G<J;G++)X.push(this[G]),q.push(Q[G]);return new mY(sG,X,q)}filter(Y,J){let Q=cJ(this),X=[],q=[];for(let G=0;G<this.length;G++){let $=this[G];if($ instanceof Error)rq(`index ${G}`,$);if(Y.call(J,$,G,this))X.push($),q.push(Q[G])}return new mY(sG,X,q)}map(Y,J){let Q=[];for(let X=0;X<this.length;X++){let q=this[X];if(q instanceof Error)rq(`index ${X}`,q);Q.push(Y.call(J,q,X,this))}return Q}getValue(Y){let J=cJ(this).indexOf(Y);if(J===-1)return;let Q=this[J];if(Q instanceof Error)rq(`property ${JSON.stringify(Y)}`,Q.error);return Q}static fromItems(Y,J){return new mY(sG,Y,J)}}function VO(Y){let J=r0(Y);if(_(J.length<=H8,"value out-of-bounds","BUFFER_OVERRUN",{buffer:J,length:H8,offset:J.length}),J.length!==H8)J=j8(Z0([H5.slice(J.length%H8),J]));return J}class wY{name;type;localName;dynamic;constructor(Y,J,Q,X){Y0(this,{name:Y,type:J,localName:Q,dynamic:X},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(Y,J){H(!1,Y,this.localName,J)}}class Z${#Y;#J;constructor(){this.#Y=[],this.#J=0}get data(){return Z0(this.#Y)}get length(){return this.#J}#Q(Y){return this.#Y.push(Y),this.#J+=Y.length,Y.length}appendWriter(Y){return this.#Q(j8(Y.data))}writeBytes(Y){let J=j8(Y),Q=J.length%H8;if(Q)J=j8(Z0([J,H5.slice(Q)]));return this.#Q(J)}writeValue(Y){return this.#Q(VO(Y))}writeUpdatableValue(){let Y=this.#Y.length;return this.#Y.push(H5),this.#J+=H8,(J)=>{this.#Y[Y]=VO(J)}}}class Sz{allowLoose;#Y;#J;#Q;#q;#X;constructor(Y,J,Q){Y0(this,{allowLoose:!!J}),this.#Y=j8(Y),this.#Q=0,this.#q=null,this.#X=Q!=null?Q:1024,this.#J=0}get data(){return l(this.#Y)}get dataLength(){return this.#Y.length}get consumed(){return this.#J}get bytes(){return new Uint8Array(this.#Y)}#$(Y){if(this.#q)return this.#q.#$(Y);this.#Q+=Y,_(this.#X<1||this.#Q<=this.#X*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#X} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:j8(this.#Y),offset:this.#J,length:Y,info:{bytesRead:this.#Q,dataLength:this.dataLength}})}#G(Y,J,Q){let X=Math.ceil(J/H8)*H8;if(this.#J+X>this.#Y.length)if(this.allowLoose&&Q&&this.#J+J<=this.#Y.length)X=J;else _(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:j8(this.#Y),length:this.#Y.length,offset:this.#J+X});return this.#Y.slice(this.#J,this.#J+X)}subReader(Y){let J=new Sz(this.#Y.slice(this.#J+Y),this.allowLoose,this.#X);return J.#q=this,J}readBytes(Y,J){let Q=this.#G(0,Y,!!J);return this.#$(Y),this.#J+=Q.length,Q.slice(0,Y)}readValue(){return Az(this.readBytes(H8))}readIndex(){return KP(this.readBytes(H8))}}function x$(Y){if(!Number.isSafeInteger(Y)||Y<0)throw Error(`Wrong positive integer: ${Y}`)}function vz(Y,...J){if(!(Y instanceof Uint8Array))throw Error("Expected Uint8Array");if(J.length>0&&!J.includes(Y.length))throw Error(`Expected Uint8Array of length ${J}, not of length=${Y.length}`)}function SP(Y){if(typeof Y!=="function"||typeof Y.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");x$(Y.outputLen),x$(Y.blockLen)}function eQ(Y,J=!0){if(Y.destroyed)throw Error("Hash instance has been destroyed");if(J&&Y.finished)throw Error("Hash#digest() has already been called")}function R7(Y,J){vz(Y);let Q=J.outputLen;if(Y.length<Q)throw Error(`digestInto() expects output buffer of length at least ${Q}`)}var iG=BigInt(4294967295),LO=BigInt(32);function vP(Y,J=!1){if(J)return{h:Number(Y&iG),l:Number(Y>>LO&iG)};return{h:Number(Y>>LO&iG)|0,l:Number(Y&iG)|0}}function _P(Y,J=!1){let Q=new Uint32Array(Y.length),X=new Uint32Array(Y.length);for(let q=0;q<Y.length;q++){let{h:G,l:$}=vP(Y[q],J);[Q[q],X[q]]=[G,$]}return[Q,X]}var kP=(Y,J,Q)=>Y<<Q|J>>>32-Q,FP=(Y,J,Q)=>J<<Q|Y>>>32-Q,PP=(Y,J,Q)=>J<<Q-32|Y>>>64-Q,TP=(Y,J,Q)=>Y<<Q-32|J>>>64-Q,xW=QX&&typeof QX==="object"&&"webcrypto"in QX?QX.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var V7=(Y)=>Y instanceof Uint8Array,ZP=(Y)=>new Uint32Array(Y.buffer,Y.byteOffset,Math.floor(Y.byteLength/4)),gW=(Y)=>new DataView(Y.buffer,Y.byteOffset,Y.byteLength),UY=(Y,J)=>Y<<32-J|Y>>>J,xP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!xP)throw Error("Non little-endian hardware is not supported");function gP(Y){if(typeof Y!=="string")throw Error(`utf8ToBytes expected string, got ${typeof Y}`);return new Uint8Array(new TextEncoder().encode(Y))}function l9(Y){if(typeof Y==="string")Y=gP(Y);if(!V7(Y))throw Error(`expected Uint8Array, got ${typeof Y}`);return Y}function fP(...Y){let J=new Uint8Array(Y.reduce((X,q)=>X+q.length,0)),Q=0;return Y.forEach((X)=>{if(!V7(X))throw Error("Uint8Array expected");J.set(X,Q),Q+=X.length}),J}class u9{clone(){return this._cloneInto()}}var Th={}.toString;function L7(Y){let J=(X)=>Y().update(l9(X)).digest(),Q=Y();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>Y(),J}function hP(Y=32){if(xW&&typeof xW.getRandomValues==="function")return xW.getRandomValues(new Uint8Array(Y));throw Error("crypto.getRandomValues must be defined")}var[E7,w7,A7]=[[],[],[]],mP=BigInt(0),sq=BigInt(1),yP=BigInt(2),lP=BigInt(7),uP=BigInt(256),cP=BigInt(113);for(let Y=0,J=sq,Q=1,X=0;Y<24;Y++){[Q,X]=[X,(2*Q+3*X)%5],E7.push(2*(5*X+Q)),w7.push((Y+1)*(Y+2)/2%64);let q=mP;for(let G=0;G<7;G++)if(J=(J<<sq^(J>>lP)*cP)%uP,J&yP)q^=sq<<(sq<<BigInt(G))-sq;A7.push(q)}var[bP,pP]=_P(A7,!0),EO=(Y,J,Q)=>Q>32?PP(Y,J,Q):kP(Y,J,Q),wO=(Y,J,Q)=>Q>32?TP(Y,J,Q):FP(Y,J,Q);function oP(Y,J=24){let Q=new Uint32Array(10);for(let X=24-J;X<24;X++){for(let $=0;$<10;$++)Q[$]=Y[$]^Y[$+10]^Y[$+20]^Y[$+30]^Y[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=Q[j],z=Q[j+1],M=EO(K,z,1)^Q[W],N=wO(K,z,1)^Q[W+1];for(let O=0;O<50;O+=10)Y[$+O]^=M,Y[$+O+1]^=N}let q=Y[2],G=Y[3];for(let $=0;$<24;$++){let W=w7[$],j=EO(q,G,W),K=wO(q,G,W),z=E7[$];q=Y[z],G=Y[z+1],Y[z]=j,Y[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)Q[W]=Y[$+W];for(let W=0;W<10;W++)Y[$+W]^=~Q[(W+2)%10]&Q[(W+4)%10]}Y[0]^=bP[X],Y[1]^=pP[X]}Q.fill(0)}class _z extends u9{constructor(Y,J,Q,X=!1,q=24){super();if(this.blockLen=Y,this.suffix=J,this.outputLen=Q,this.enableXOF=X,this.rounds=q,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,x$(Q),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=ZP(this.state)}keccak(){oP(this.state32,this.rounds),this.posOut=0,this.pos=0}update(Y){eQ(this);let{blockLen:J,state:Q}=this;Y=l9(Y);let X=Y.length;for(let q=0;q<X;){let G=Math.min(J-this.pos,X-q);for(let $=0;$<G;$++)Q[this.pos++]^=Y[q++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:Y,suffix:J,pos:Q,blockLen:X}=this;if(Y[Q]^=J,(J&128)!==0&&Q===X-1)this.keccak();Y[X-1]^=128,this.keccak()}writeInto(Y){eQ(this,!1),vz(Y),this.finish();let J=this.state,{blockLen:Q}=this;for(let X=0,q=Y.length;X<q;){if(this.posOut>=Q)this.keccak();let G=Math.min(Q-this.posOut,q-X);Y.set(J.subarray(this.posOut,this.posOut+G),X),this.posOut+=G,X+=G}return Y}xofInto(Y){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(Y)}xof(Y){return x$(Y),this.xofInto(new Uint8Array(Y))}digestInto(Y){if(R7(Y,this),this.finished)throw Error("digest() was already called");return this.writeInto(Y),this.destroy(),Y}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(Y){let{blockLen:J,suffix:Q,outputLen:X,rounds:q,enableXOF:G}=this;return Y||(Y=new _z(J,Q,X,G,q)),Y.state32.set(this.state32),Y.pos=this.pos,Y.posOut=this.posOut,Y.finished=this.finished,Y.rounds=q,Y.suffix=Q,Y.outputLen=X,Y.enableXOF=G,Y.destroyed=this.destroyed,Y}}var dP=(Y,J,Q)=>L7(()=>new _z(J,Y,Q)),rP=dP(1,136,32),C7=!1,I7=function(Y){return rP(Y)},S7=I7;function d0(Y){let J=z0(Y,"data");return l(S7(J))}d0._=I7;d0.lock=function(){C7=!0};d0.register=function(Y){if(C7)throw TypeError("keccak256 is locked");S7=Y};Object.freeze(d0);function sP(Y,J,Q,X){if(typeof Y.setBigUint64==="function")return Y.setBigUint64(J,Q,X);let q=BigInt(32),G=BigInt(4294967295),$=Number(Q>>q&G),W=Number(Q&G),j=X?4:0,K=X?0:4;Y.setUint32(J+j,$,X),Y.setUint32(J+K,W,X)}class v7 extends u9{constructor(Y,J,Q,X){super();this.blockLen=Y,this.outputLen=J,this.padOffset=Q,this.isLE=X,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(Y),this.view=gW(this.buffer)}update(Y){eQ(this);let{view:J,buffer:Q,blockLen:X}=this;Y=l9(Y);let q=Y.length;for(let G=0;G<q;){let $=Math.min(X-this.pos,q-G);if($===X){let W=gW(Y);for(;X<=q-G;G+=X)this.process(W,G);continue}if(Q.set(Y.subarray(G,G+$),this.pos),this.pos+=$,G+=$,this.pos===X)this.process(J,0),this.pos=0}return this.length+=Y.length,this.roundClean(),this}digestInto(Y){eQ(this),R7(Y,this),this.finished=!0;let{buffer:J,view:Q,blockLen:X,isLE:q}=this,{pos:G}=this;if(J[G++]=128,this.buffer.subarray(G).fill(0),this.padOffset>X-G)this.process(Q,0),G=0;for(let z=G;z<X;z++)J[z]=0;sP(Q,X-8,BigInt(this.length*8),q),this.process(Q,0);let $=gW(Y),W=this.outputLen;if(W%4)throw Error("_sha2: outputLen should be aligned to 32bit");let j=W/4,K=this.get();if(j>K.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<j;z++)$.setUint32(4*z,K[z],q)}digest(){let{buffer:Y,outputLen:J}=this;this.digestInto(Y);let Q=Y.slice(0,J);return this.destroy(),Q}_cloneInto(Y){Y||(Y=new this.constructor),Y.set(...this.get());let{blockLen:J,buffer:Q,length:X,finished:q,destroyed:G,pos:$}=this;if(Y.length=X,Y.pos=$,Y.finished=q,Y.destroyed=G,X%J)Y.buffer.set(Q);return Y}}var iP=(Y,J,Q)=>Y&J^~Y&Q,tP=(Y,J,Q)=>Y&J^Y&Q^J&Q,nP=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),MJ=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),NJ=new Uint32Array(64);class _7 extends v7{constructor(){super(64,32,8,!1);this.A=MJ[0]|0,this.B=MJ[1]|0,this.C=MJ[2]|0,this.D=MJ[3]|0,this.E=MJ[4]|0,this.F=MJ[5]|0,this.G=MJ[6]|0,this.H=MJ[7]|0}get(){let{A:Y,B:J,C:Q,D:X,E:q,F:G,G:$,H:W}=this;return[Y,J,Q,X,q,G,$,W]}set(Y,J,Q,X,q,G,$,W){this.A=Y|0,this.B=J|0,this.C=Q|0,this.D=X|0,this.E=q|0,this.F=G|0,this.G=$|0,this.H=W|0}process(Y,J){for(let z=0;z<16;z++,J+=4)NJ[z]=Y.getUint32(J,!1);for(let z=16;z<64;z++){let M=NJ[z-15],N=NJ[z-2],O=UY(M,7)^UY(M,18)^M>>>3,D=UY(N,17)^UY(N,19)^N>>>10;NJ[z]=D+NJ[z-7]+O+NJ[z-16]|0}let{A:Q,B:X,C:q,D:G,E:$,F:W,G:j,H:K}=this;for(let z=0;z<64;z++){let M=UY($,6)^UY($,11)^UY($,25),N=K+M+iP($,W,j)+nP[z]+NJ[z]|0,O=(UY(Q,2)^UY(Q,13)^UY(Q,22))+tP(Q,X,q)|0;K=j,j=W,W=$,$=G+N|0,G=q,q=X,X=Q,Q=N+O|0}Q=Q+this.A|0,X=X+this.B|0,q=q+this.C|0,G=G+this.D|0,$=$+this.E|0,W=W+this.F|0,j=j+this.G|0,K=K+this.H|0,this.set(Q,X,q,G,$,W,j,K)}roundClean(){NJ.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var aP=L7(()=>new _7);class kz extends u9{constructor(Y,J){super();this.finished=!1,this.destroyed=!1,SP(Y);let Q=l9(J);if(this.iHash=Y.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let X=this.blockLen,q=new Uint8Array(X);q.set(Q.length>X?Y.create().update(Q).digest():Q);for(let G=0;G<q.length;G++)q[G]^=54;this.iHash.update(q),this.oHash=Y.create();for(let G=0;G<q.length;G++)q[G]^=106;this.oHash.update(q),q.fill(0)}update(Y){return eQ(this),this.iHash.update(Y),this}digestInto(Y){eQ(this),vz(Y,this.outputLen),this.finished=!0,this.iHash.digestInto(Y),this.oHash.update(Y),this.oHash.digestInto(Y),this.destroy()}digest(){let Y=new Uint8Array(this.oHash.outputLen);return this.digestInto(Y),Y}_cloneInto(Y){Y||(Y=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:Q,finished:X,destroyed:q,blockLen:G,outputLen:$}=this;return Y=Y,Y.finished=X,Y.destroyed=q,Y.blockLen=G,Y.outputLen=$,Y.oHash=J._cloneInto(Y.oHash),Y.iHash=Q._cloneInto(Y.iHash),Y}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var k7=(Y,J,Q)=>new kz(Y,J).update(Q).digest();k7.create=(Y,J)=>new kz(Y,J);var F7=function(Y){return Uq.createHash("sha256").update(Y).digest()},P7=function(Y){return Uq.createHash("sha512").update(Y).digest()},T7=F7,Z7=P7,x7=!1,g7=!1;function Hq(Y){let J=z0(Y,"data");return l(T7(J))}Hq._=F7;Hq.lock=function(){x7=!0};Hq.register=function(Y){if(x7)throw Error("sha256 is locked");T7=Y};Object.freeze(Hq);function Fz(Y){let J=z0(Y,"data");return l(Z7(J))}Fz._=P7;Fz.lock=function(){g7=!0};Fz.register=function(Y){if(g7)throw Error("sha512 is locked");Z7=Y};Object.freeze(Hq);var f7={};XY(f7,{validateObject:()=>XG,utf8ToBytes:()=>q2,numberToVarBytesBE:()=>J2,numberToHexUnpadded:()=>m7,numberToBytesLE:()=>Zz,numberToBytesBE:()=>Qq,hexToNumber:()=>Pz,hexToBytes:()=>Jq,equalBytes:()=>Q2,ensureBytes:()=>a8,createHmacDrbg:()=>y7,concatBytes:()=>UX,bytesToNumberLE:()=>Tz,bytesToNumberBE:()=>nJ,bytesToHex:()=>Yq,bitSet:()=>$2,bitMask:()=>xz,bitLen:()=>X2,bitGet:()=>G2});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var h7=BigInt(0),c9=BigInt(1),eP=BigInt(2),b9=(Y)=>Y instanceof Uint8Array,Y2=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0"));function Yq(Y){if(!b9(Y))throw Error("Uint8Array expected");let J="";for(let Q=0;Q<Y.length;Q++)J+=Y2[Y[Q]];return J}function m7(Y){let J=Y.toString(16);return J.length&1?`0${J}`:J}function Pz(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);return BigInt(Y===""?"0":`0x${Y}`)}function Jq(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);let J=Y.length;if(J%2)throw Error("padded hex string expected, got unpadded hex of length "+J);let Q=new Uint8Array(J/2);for(let X=0;X<Q.length;X++){let q=X*2,G=Y.slice(q,q+2),$=Number.parseInt(G,16);if(Number.isNaN($)||$<0)throw Error("Invalid byte sequence");Q[X]=$}return Q}function nJ(Y){return Pz(Yq(Y))}function Tz(Y){if(!b9(Y))throw Error("Uint8Array expected");return Pz(Yq(Uint8Array.from(Y).reverse()))}function Qq(Y,J){return Jq(Y.toString(16).padStart(J*2,"0"))}function Zz(Y,J){return Qq(Y,J).reverse()}function J2(Y){return Jq(m7(Y))}function a8(Y,J,Q){let X;if(typeof J==="string")try{X=Jq(J)}catch(G){throw Error(`${Y} must be valid hex string, got "${J}". Cause: ${G}`)}else if(b9(J))X=Uint8Array.from(J);else throw Error(`${Y} must be hex string or Uint8Array`);let q=X.length;if(typeof Q==="number"&&q!==Q)throw Error(`${Y} expected ${Q} bytes, got ${q}`);return X}function UX(...Y){let J=new Uint8Array(Y.reduce((X,q)=>X+q.length,0)),Q=0;return Y.forEach((X)=>{if(!b9(X))throw Error("Uint8Array expected");J.set(X,Q),Q+=X.length}),J}function Q2(Y,J){if(Y.length!==J.length)return!1;for(let Q=0;Q<Y.length;Q++)if(Y[Q]!==J[Q])return!1;return!0}function q2(Y){if(typeof Y!=="string")throw Error(`utf8ToBytes expected string, got ${typeof Y}`);return new Uint8Array(new TextEncoder().encode(Y))}function X2(Y){let J;for(J=0;Y>h7;Y>>=c9,J+=1);return J}function G2(Y,J){return Y>>BigInt(J)&c9}var $2=(Y,J,Q)=>{return Y|(Q?c9:h7)<<BigInt(J)},xz=(Y)=>(eP<<BigInt(Y-1))-c9,fW=(Y)=>new Uint8Array(Y),AO=(Y)=>Uint8Array.from(Y);function y7(Y,J,Q){if(typeof Y!=="number"||Y<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof Q!=="function")throw Error("hmacFn must be a function");let X=fW(Y),q=fW(Y),G=0,$=()=>{X.fill(1),q.fill(0),G=0},W=(...z)=>Q(q,X,...z),j=(z=fW())=>{if(q=W(AO([0]),z),X=W(),z.length===0)return;q=W(AO([1]),z),X=W()},K=()=>{if(G++>=1000)throw Error("drbg: tried 1000 values");let z=0,M=[];while(z<J){X=W();let N=X.slice();M.push(N),z+=X.length}return UX(...M)};return(z,M)=>{$(),j(z);let N=void 0;while(!(N=M(K())))j();return $(),N}}var W2={bigint:(Y)=>typeof Y==="bigint",function:(Y)=>typeof Y==="function",boolean:(Y)=>typeof Y==="boolean",string:(Y)=>typeof Y==="string",stringOrUint8Array:(Y)=>typeof Y==="string"||Y instanceof Uint8Array,isSafeInteger:(Y)=>Number.isSafeInteger(Y),array:(Y)=>Array.isArray(Y),field:(Y,J)=>J.Fp.isValid(Y),hash:(Y)=>typeof Y==="function"&&Number.isSafeInteger(Y.outputLen)};function XG(Y,J,Q={}){let X=(q,G,$)=>{let W=W2[G];if(typeof W!=="function")throw Error(`Invalid validator "${G}", expected function`);let j=Y[q];if($&&j===void 0)return;if(!W(j,Y))throw Error(`Invalid param ${String(q)}=${j} (${typeof j}), expected ${G}`)};for(let[q,G]of Object.entries(J))X(q,G,!1);for(let[q,G]of Object.entries(Q))X(q,G,!0);return Y}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var a0=BigInt(0),u0=BigInt(1),bJ=BigInt(2),j2=BigInt(3),R5=BigInt(4),CO=BigInt(5),IO=BigInt(8),K2=BigInt(9),z2=BigInt(16);function A8(Y,J){let Q=Y%J;return Q>=a0?Q:J+Q}function M2(Y,J,Q){if(Q<=a0||J<a0)throw Error("Expected power/modulo > 0");if(Q===u0)return a0;let X=u0;while(J>a0){if(J&u0)X=X*Y%Q;Y=Y*Y%Q,J>>=u0}return X}function u8(Y,J,Q){let X=Y;while(J-- >a0)X*=X,X%=Q;return X}function V5(Y,J){if(Y===a0||J<=a0)throw Error(`invert: expected positive integers, got n=${Y} mod=${J}`);let Q=A8(Y,J),X=J,q=a0,G=u0,$=u0,W=a0;while(Q!==a0){let j=X/Q,K=X%Q,z=q-$*j,M=G-W*j;X=Q,Q=K,q=$,G=W,$=z,W=M}if(X!==u0)throw Error("invert: does not exist");return A8(q,J)}function N2(Y){let J=(Y-u0)/bJ,Q,X,q;for(Q=Y-u0,X=0;Q%bJ===a0;Q/=bJ,X++);for(q=bJ;q<Y&&M2(q,J,Y)!==Y-u0;q++);if(X===1){let $=(Y+u0)/R5;return function(W,j){let K=W.pow(j,$);if(!W.eql(W.sqr(K),j))throw Error("Cannot find square root");return K}}let G=(Q+u0)/bJ;return function($,W){if($.pow(W,J)===$.neg($.ONE))throw Error("Cannot find square root");let j=X,K=$.pow($.mul($.ONE,q),Q),z=$.pow(W,G),M=$.pow(W,Q);while(!$.eql(M,$.ONE)){if($.eql(M,$.ZERO))return $.ZERO;let N=1;for(let D=$.sqr(M);N<j;N++){if($.eql(D,$.ONE))break;D=$.sqr(D)}let O=$.pow(K,u0<<BigInt(j-N-1));K=$.sqr(O),z=$.mul(z,O),M=$.mul(M,K),j=N}return z}}function O2(Y){if(Y%R5===j2){let J=(Y+u0)/R5;return function(Q,X){let q=Q.pow(X,J);if(!Q.eql(Q.sqr(q),X))throw Error("Cannot find square root");return q}}if(Y%IO===CO){let J=(Y-CO)/IO;return function(Q,X){let q=Q.mul(X,bJ),G=Q.pow(q,J),$=Q.mul(X,G),W=Q.mul(Q.mul($,bJ),G),j=Q.mul($,Q.sub(W,Q.ONE));if(!Q.eql(Q.sqr(j),X))throw Error("Cannot find square root");return j}}if(Y%z2===K2);return N2(Y)}var D2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function U2(Y){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=D2.reduce((X,q)=>{return X[q]="function",X},J);return XG(Y,Q)}function H2(Y,J,Q){if(Q<a0)throw Error("Expected power > 0");if(Q===a0)return Y.ONE;if(Q===u0)return J;let X=Y.ONE,q=J;while(Q>a0){if(Q&u0)X=Y.mul(X,q);q=Y.sqr(q),Q>>=u0}return X}function B2(Y,J){let Q=Array(J.length),X=J.reduce((G,$,W)=>{if(Y.is0($))return G;return Q[W]=G,Y.mul(G,$)},Y.ONE),q=Y.inv(X);return J.reduceRight((G,$,W)=>{if(Y.is0($))return G;return Q[W]=Y.mul(G,Q[W]),Y.mul(G,$)},q),Q}function l7(Y,J){let Q=J!==void 0?J:Y.toString(2).length,X=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:X}}function R2(Y,J,Q=!1,X={}){if(Y<=a0)throw Error(`Expected Field ORDER > 0, got ${Y}`);let{nBitLength:q,nByteLength:G}=l7(Y,J);if(G>2048)throw Error("Field lengths over 2048 bytes are not supported");let $=O2(Y),W=Object.freeze({ORDER:Y,BITS:q,BYTES:G,MASK:xz(q),ZERO:a0,ONE:u0,create:(j)=>A8(j,Y),isValid:(j)=>{if(typeof j!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof j}`);return a0<=j&&j<Y},is0:(j)=>j===a0,isOdd:(j)=>(j&u0)===u0,neg:(j)=>A8(-j,Y),eql:(j,K)=>j===K,sqr:(j)=>A8(j*j,Y),add:(j,K)=>A8(j+K,Y),sub:(j,K)=>A8(j-K,Y),mul:(j,K)=>A8(j*K,Y),pow:(j,K)=>H2(W,j,K),div:(j,K)=>A8(j*V5(K,Y),Y),sqrN:(j)=>j*j,addN:(j,K)=>j+K,subN:(j,K)=>j-K,mulN:(j,K)=>j*K,inv:(j)=>V5(j,Y),sqrt:X.sqrt||((j)=>$(W,j)),invertBatch:(j)=>B2(W,j),cmov:(j,K,z)=>z?K:j,toBytes:(j)=>Q?Zz(j,G):Qq(j,G),fromBytes:(j)=>{if(j.length!==G)throw Error(`Fp.fromBytes: expected ${G}, got ${j.length}`);return Q?Tz(j):nJ(j)}});return Object.freeze(W)}function u7(Y){if(typeof Y!=="bigint")throw Error("field order must be bigint");let J=Y.toString(2).length;return Math.ceil(J/8)}function c7(Y){let J=u7(Y);return J+Math.ceil(J/2)}function V2(Y,J,Q=!1){let X=Y.length,q=u7(J),G=c7(J);if(X<16||X<G||X>1024)throw Error(`expected ${G}-1024 bytes of input, got ${X}`);let $=Q?nJ(Y):Tz(Y),W=A8($,J-u0)+u0;return Q?Zz(W,q):Qq(W,q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var L2=BigInt(0),hW=BigInt(1);function E2(Y,J){let Q=(q,G)=>{let $=G.negate();return q?$:G},X=(q)=>{let G=Math.ceil(J/q)+1,$=2**(q-1);return{windows:G,windowSize:$}};return{constTimeNegate:Q,unsafeLadder(q,G){let $=Y.ZERO,W=q;while(G>L2){if(G&hW)$=$.add(W);W=W.double(),G>>=hW}return $},precomputeWindow(q,G){let{windows:$,windowSize:W}=X(G),j=[],K=q,z=K;for(let M=0;M<$;M++){z=K,j.push(z);for(let N=1;N<W;N++)z=z.add(K),j.push(z);K=z.double()}return j},wNAF(q,G,$){let{windows:W,windowSize:j}=X(q),K=Y.ZERO,z=Y.BASE,M=BigInt(2**q-1),N=2**q,O=BigInt(q);for(let D=0;D<W;D++){let U=D*j,A=Number($&M);if($>>=O,A>j)A-=N,$+=hW;let w=U,v=U+Math.abs(A)-1,R=D%2!==0,E=A<0;if(A===0)z=z.add(Q(R,G[w]));else K=K.add(Q(E,G[v]))}return{p:K,f:z}},wNAFCached(q,G,$,W){let j=q._WINDOW_SIZE||1,K=G.get(q);if(!K){if(K=this.precomputeWindow(q,j),j!==1)G.set(q,W(K))}return this.wNAF(j,K,$)}}}function b7(Y){return U2(Y.Fp),XG(Y,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...l7(Y.n,Y.nBitLength),...Y,...{p:Y.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function w2(Y){let J=b7(Y);XG(J,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:Q,Fp:X,a:q}=J;if(Q){if(!X.eql(q,X.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...J})}var{bytesToNumberBE:A2,hexToBytes:C2}=f7,sJ={Err:class extends Error{constructor(Y=""){super(Y)}},_parseInt(Y){let{Err:J}=sJ;if(Y.length<2||Y[0]!==2)throw new J("Invalid signature integer tag");let Q=Y[1],X=Y.subarray(2,Q+2);if(!Q||X.length!==Q)throw new J("Invalid signature integer: wrong length");if(X[0]&128)throw new J("Invalid signature integer: negative");if(X[0]===0&&!(X[1]&128))throw new J("Invalid signature integer: unnecessary leading zero");return{d:A2(X),l:Y.subarray(Q+2)}},toSig(Y){let{Err:J}=sJ,Q=typeof Y==="string"?C2(Y):Y;if(!(Q instanceof Uint8Array))throw Error("ui8a expected");let X=Q.length;if(X<2||Q[0]!=48)throw new J("Invalid signature tag");if(Q[1]!==X-2)throw new J("Invalid signature: incorrect length");let{d:q,l:G}=sJ._parseInt(Q.subarray(2)),{d:$,l:W}=sJ._parseInt(G);if(W.length)throw new J("Invalid signature: left bytes after parsing");return{r:q,s:$}},hexFromSig(Y){let J=(K)=>Number.parseInt(K[0],16)&8?"00"+K:K,Q=(K)=>{let z=K.toString(16);return z.length&1?`0${z}`:z},X=J(Q(Y.s)),q=J(Q(Y.r)),G=X.length/2,$=q.length/2,W=Q(G),j=Q($);return`30${Q($+G+4)}02${j}${q}02${W}${X}`}},fY=BigInt(0),c8=BigInt(1),Zh=BigInt(2),SO=BigInt(3),xh=BigInt(4);function I2(Y){let J=w2(Y),{Fp:Q}=J,X=J.toBytes||((D,U,A)=>{let w=U.toAffine();return UX(Uint8Array.from([4]),Q.toBytes(w.x),Q.toBytes(w.y))}),q=J.fromBytes||((D)=>{let U=D.subarray(1),A=Q.fromBytes(U.subarray(0,Q.BYTES)),w=Q.fromBytes(U.subarray(Q.BYTES,2*Q.BYTES));return{x:A,y:w}});function G(D){let{a:U,b:A}=J,w=Q.sqr(D),v=Q.mul(w,D);return Q.add(Q.add(v,Q.mul(D,U)),A)}if(!Q.eql(Q.sqr(J.Gy),G(J.Gx)))throw Error("bad generator point: equation left != right");function $(D){return typeof D==="bigint"&&fY<D&&D<J.n}function W(D){if(!$(D))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function j(D){let{allowedPrivateKeyLengths:U,nByteLength:A,wrapPrivateKey:w,n:v}=J;if(U&&typeof D!=="bigint"){if(D instanceof Uint8Array)D=Yq(D);if(typeof D!=="string"||!U.includes(D.length))throw Error("Invalid key");D=D.padStart(A*2,"0")}let R;try{R=typeof D==="bigint"?D:nJ(a8("private key",D,A))}catch(E){throw Error(`private key must be ${A} bytes, hex or bigint, not ${typeof D}`)}if(w)R=A8(R,v);return W(R),R}let K=new Map;function z(D){if(!(D instanceof M))throw Error("ProjectivePoint expected")}class M{constructor(D,U,A){if(this.px=D,this.py=U,this.pz=A,D==null||!Q.isValid(D))throw Error("x required");if(U==null||!Q.isValid(U))throw Error("y required");if(A==null||!Q.isValid(A))throw Error("z required")}static fromAffine(D){let{x:U,y:A}=D||{};if(!D||!Q.isValid(U)||!Q.isValid(A))throw Error("invalid affine point");if(D instanceof M)throw Error("projective point not allowed");let w=(v)=>Q.eql(v,Q.ZERO);if(w(U)&&w(A))return M.ZERO;return new M(U,A,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(D){let U=Q.invertBatch(D.map((A)=>A.pz));return D.map((A,w)=>A.toAffine(U[w])).map(M.fromAffine)}static fromHex(D){let U=M.fromAffine(q(a8("pointHex",D)));return U.assertValidity(),U}static fromPrivateKey(D){return M.BASE.multiply(j(D))}_setWindowSize(D){this._WINDOW_SIZE=D,K.delete(this)}assertValidity(){if(this.is0()){if(J.allowInfinityPoint&&!Q.is0(this.py))return;throw Error("bad point: ZERO")}let{x:D,y:U}=this.toAffine();if(!Q.isValid(D)||!Q.isValid(U))throw Error("bad point: x or y not FE");let A=Q.sqr(U),w=G(D);if(!Q.eql(A,w))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:D}=this.toAffine();if(Q.isOdd)return!Q.isOdd(D);throw Error("Field doesn't support isOdd")}equals(D){z(D);let{px:U,py:A,pz:w}=this,{px:v,py:R,pz:E}=D,C=Q.eql(Q.mul(U,E),Q.mul(v,w)),S=Q.eql(Q.mul(A,E),Q.mul(R,w));return C&&S}negate(){return new M(this.px,Q.neg(this.py),this.pz)}double(){let{a:D,b:U}=J,A=Q.mul(U,SO),{px:w,py:v,pz:R}=this,E=Q.ZERO,C=Q.ZERO,S=Q.ZERO,Z=Q.mul(w,w),r=Q.mul(v,v),c=Q.mul(R,R),h=Q.mul(w,v);return h=Q.add(h,h),S=Q.mul(w,R),S=Q.add(S,S),E=Q.mul(D,S),C=Q.mul(A,c),C=Q.add(E,C),E=Q.sub(r,C),C=Q.add(r,C),C=Q.mul(E,C),E=Q.mul(h,E),S=Q.mul(A,S),c=Q.mul(D,c),h=Q.sub(Z,c),h=Q.mul(D,h),h=Q.add(h,S),S=Q.add(Z,Z),Z=Q.add(S,Z),Z=Q.add(Z,c),Z=Q.mul(Z,h),C=Q.add(C,Z),c=Q.mul(v,R),c=Q.add(c,c),Z=Q.mul(c,h),E=Q.sub(E,Z),S=Q.mul(c,r),S=Q.add(S,S),S=Q.add(S,S),new M(E,C,S)}add(D){z(D);let{px:U,py:A,pz:w}=this,{px:v,py:R,pz:E}=D,C=Q.ZERO,S=Q.ZERO,Z=Q.ZERO,r=J.a,c=Q.mul(J.b,SO),h=Q.mul(U,v),a=Q.mul(A,R),n=Q.mul(w,E),V0=Q.add(U,A),e=Q.add(v,R);V0=Q.mul(V0,e),e=Q.add(h,a),V0=Q.sub(V0,e),e=Q.add(U,w);let B=Q.add(v,E);return e=Q.mul(e,B),B=Q.add(h,n),e=Q.sub(e,B),B=Q.add(A,w),C=Q.add(R,E),B=Q.mul(B,C),C=Q.add(a,n),B=Q.sub(B,C),Z=Q.mul(r,e),C=Q.mul(c,n),Z=Q.add(C,Z),C=Q.sub(a,Z),Z=Q.add(a,Z),S=Q.mul(C,Z),a=Q.add(h,h),a=Q.add(a,h),n=Q.mul(r,n),e=Q.mul(c,e),a=Q.add(a,n),n=Q.sub(h,n),n=Q.mul(r,n),e=Q.add(e,n),h=Q.mul(a,e),S=Q.add(S,h),h=Q.mul(B,e),C=Q.mul(V0,C),C=Q.sub(C,h),h=Q.mul(V0,a),Z=Q.mul(B,Z),Z=Q.add(Z,h),new M(C,S,Z)}subtract(D){return this.add(D.negate())}is0(){return this.equals(M.ZERO)}wNAF(D){return O.wNAFCached(this,K,D,(U)=>{let A=Q.invertBatch(U.map((w)=>w.pz));return U.map((w,v)=>w.toAffine(A[v])).map(M.fromAffine)})}multiplyUnsafe(D){let U=M.ZERO;if(D===fY)return U;if(W(D),D===c8)return this;let{endo:A}=J;if(!A)return O.unsafeLadder(this,D);let{k1neg:w,k1:v,k2neg:R,k2:E}=A.splitScalar(D),C=U,S=U,Z=this;while(v>fY||E>fY){if(v&c8)C=C.add(Z);if(E&c8)S=S.add(Z);Z=Z.double(),v>>=c8,E>>=c8}if(w)C=C.negate();if(R)S=S.negate();return S=new M(Q.mul(S.px,A.beta),S.py,S.pz),C.add(S)}multiply(D){W(D);let U=D,A,w,{endo:v}=J;if(v){let{k1neg:R,k1:E,k2neg:C,k2:S}=v.splitScalar(U),{p:Z,f:r}=this.wNAF(E),{p:c,f:h}=this.wNAF(S);Z=O.constTimeNegate(R,Z),c=O.constTimeNegate(C,c),c=new M(Q.mul(c.px,v.beta),c.py,c.pz),A=Z.add(c),w=r.add(h)}else{let{p:R,f:E}=this.wNAF(U);A=R,w=E}return M.normalizeZ([A,w])[0]}multiplyAndAddUnsafe(D,U,A){let w=M.BASE,v=(E,C)=>C===fY||C===c8||!E.equals(w)?E.multiplyUnsafe(C):E.multiply(C),R=v(this,U).add(v(D,A));return R.is0()?void 0:R}toAffine(D){let{px:U,py:A,pz:w}=this,v=this.is0();if(D==null)D=v?Q.ONE:Q.inv(w);let R=Q.mul(U,D),E=Q.mul(A,D),C=Q.mul(w,D);if(v)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(C,Q.ONE))throw Error("invZ was invalid");return{x:R,y:E}}isTorsionFree(){let{h:D,isTorsionFree:U}=J;if(D===c8)return!0;if(U)return U(M,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:D,clearCofactor:U}=J;if(D===c8)return this;if(U)return U(M,this);return this.multiplyUnsafe(J.h)}toRawBytes(D=!0){return this.assertValidity(),X(M,this,D)}toHex(D=!0){return Yq(this.toRawBytes(D))}}M.BASE=new M(J.Gx,J.Gy,Q.ONE),M.ZERO=new M(Q.ZERO,Q.ONE,Q.ZERO);let N=J.nBitLength,O=E2(M,J.endo?Math.ceil(N/2):N);return{CURVE:J,ProjectivePoint:M,normPrivateKeyToScalar:j,weierstrassEquation:G,isWithinCurveOrder:$}}function S2(Y){let J=b7(Y);return XG(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function v2(Y){let J=S2(Y),{Fp:Q,n:X}=J,q=Q.BYTES+1,G=2*Q.BYTES+1;function $(B){return fY<B&&B<Q.ORDER}function W(B){return A8(B,X)}function j(B){return V5(B,X)}let{ProjectivePoint:K,normPrivateKeyToScalar:z,weierstrassEquation:M,isWithinCurveOrder:N}=I2({...J,toBytes(B,I,f){let t=I.toAffine(),u=Q.toBytes(t.x),p=UX;if(f)return p(Uint8Array.from([I.hasEvenY()?2:3]),u);else return p(Uint8Array.from([4]),u,Q.toBytes(t.y))},fromBytes(B){let I=B.length,f=B[0],t=B.subarray(1);if(I===q&&(f===2||f===3)){let u=nJ(t);if(!$(u))throw Error("Point is not on curve");let p=M(u),g0=Q.sqrt(p),E0=(g0&c8)===c8;if((f&1)===1!==E0)g0=Q.neg(g0);return{x:u,y:g0}}else if(I===G&&f===4){let u=Q.fromBytes(t.subarray(0,Q.BYTES)),p=Q.fromBytes(t.subarray(Q.BYTES,2*Q.BYTES));return{x:u,y:p}}else throw Error(`Point of length ${I} was invalid. Expected ${q} compressed bytes or ${G} uncompressed bytes`)}}),O=(B)=>Yq(Qq(B,J.nByteLength));function D(B){let I=X>>c8;return B>I}function U(B){return D(B)?W(-B):B}let A=(B,I,f)=>nJ(B.slice(I,f));class w{constructor(B,I,f){this.r=B,this.s=I,this.recovery=f,this.assertValidity()}static fromCompact(B){let I=J.nByteLength;return B=a8("compactSignature",B,I*2),new w(A(B,0,I),A(B,I,2*I))}static fromDER(B){let{r:I,s:f}=sJ.toSig(a8("DER",B));return new w(I,f)}assertValidity(){if(!N(this.r))throw Error("r must be 0 < r < CURVE.n");if(!N(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(B){return new w(this.r,this.s,B)}recoverPublicKey(B){let{r:I,s:f,recovery:t}=this,u=Z(a8("msgHash",B));if(t==null||![0,1,2,3].includes(t))throw Error("recovery id invalid");let p=t===2||t===3?I+J.n:I;if(p>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let g0=(t&1)===0?"02":"03",E0=K.fromHex(g0+O(p)),i0=j(p),e0=W(-u*i0),c0=W(f*i0),$8=K.BASE.multiplyAndAddUnsafe(E0,e0,c0);if(!$8)throw Error("point at infinify");return $8.assertValidity(),$8}hasHighS(){return D(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,W(-this.s),this.recovery):this}toDERRawBytes(){return Jq(this.toDERHex())}toDERHex(){return sJ.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Jq(this.toCompactHex())}toCompactHex(){return O(this.r)+O(this.s)}}let v={isValidPrivateKey(B){try{return z(B),!0}catch(I){return!1}},normPrivateKeyToScalar:z,randomPrivateKey:()=>{let B=c7(J.n);return V2(J.randomBytes(B),J.n)},precompute(B=8,I=K.BASE){return I._setWindowSize(B),I.multiply(BigInt(3)),I}};function R(B,I=!0){return K.fromPrivateKey(B).toRawBytes(I)}function E(B){let I=B instanceof Uint8Array,f=typeof B==="string",t=(I||f)&&B.length;if(I)return t===q||t===G;if(f)return t===2*q||t===2*G;if(B instanceof K)return!0;return!1}function C(B,I,f=!0){if(E(B))throw Error("first arg must be private key");if(!E(I))throw Error("second arg must be public key");return K.fromHex(I).multiply(z(B)).toRawBytes(f)}let S=J.bits2int||function(B){let I=nJ(B),f=B.length*8-J.nBitLength;return f>0?I>>BigInt(f):I},Z=J.bits2int_modN||function(B){return W(S(B))},r=xz(J.nBitLength);function c(B){if(typeof B!=="bigint")throw Error("bigint expected");if(!(fY<=B&&B<r))throw Error(`bigint expected < 2^${J.nBitLength}`);return Qq(B,J.nByteLength)}function h(B,I,f=a){if(["recovered","canonical"].some((O8)=>(O8 in f)))throw Error("sign() legacy options not supported");let{hash:t,randomBytes:u}=J,{lowS:p,prehash:g0,extraEntropy:E0}=f;if(p==null)p=!0;if(B=a8("msgHash",B),g0)B=a8("prehashed msgHash",t(B));let i0=Z(B),e0=z(I),c0=[c(e0),c(i0)];if(E0!=null){let O8=E0===!0?u(Q.BYTES):E0;c0.push(a8("extraEntropy",O8))}let $8=UX(...c0),PY=i0;function mJ(O8){let k8=S(O8);if(!N(k8))return;let y8=j(k8),t8=K.BASE.multiply(k8).toAffine(),l8=W(t8.x);if(l8===fY)return;let DY=W(y8*W(PY+l8*e0));if(DY===fY)return;let TY=(t8.x===l8?0:2)|Number(t8.y&c8),bq=DY;if(p&&D(DY))bq=U(DY),TY^=1;return new w(l8,bq,TY)}return{seed:$8,k2sig:mJ}}let a={lowS:J.lowS,prehash:!1},n={lowS:J.lowS,prehash:!1};function V0(B,I,f=a){let{seed:t,k2sig:u}=h(B,I,f),p=J;return y7(p.hash.outputLen,p.nByteLength,p.hmac)(t,u)}K.BASE._setWindowSize(8);function e(B,I,f,t=n){let u=B;if(I=a8("msgHash",I),f=a8("publicKey",f),"strict"in t)throw Error("options.strict was renamed to lowS");let{lowS:p,prehash:g0}=t,E0=void 0,i0;try{if(typeof u==="string"||u instanceof Uint8Array)try{E0=w.fromDER(u)}catch(y8){if(!(y8 instanceof sJ.Err))throw y8;E0=w.fromCompact(u)}else if(typeof u==="object"&&typeof u.r==="bigint"&&typeof u.s==="bigint"){let{r:y8,s:t8}=u;E0=new w(y8,t8)}else throw Error("PARSE");i0=K.fromHex(f)}catch(y8){if(y8.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(p&&E0.hasHighS())return!1;if(g0)I=J.hash(I);let{r:e0,s:c0}=E0,$8=Z(I),PY=j(c0),mJ=W($8*PY),O8=W(e0*PY),k8=K.BASE.multiplyAndAddUnsafe(i0,mJ,O8)?.toAffine();if(!k8)return!1;return W(k8.x)===e0}return{CURVE:J,getPublicKey:R,getSharedSecret:C,sign:V0,verify:e,ProjectivePoint:K,Signature:w,utils:v}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _2(Y){return{hash:Y,hmac:(J,...Q)=>k7(Y,J,fP(...Q)),randomBytes:hP}}function k2(Y,J){let Q=(X)=>v2({...Y,..._2(X)});return Object.freeze({...Q(J),create:Q})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var p7=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),vO=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),F2=BigInt(1),L5=BigInt(2),_O=(Y,J)=>(Y+J/L5)/J;function P2(Y){let J=p7,Q=BigInt(3),X=BigInt(6),q=BigInt(11),G=BigInt(22),$=BigInt(23),W=BigInt(44),j=BigInt(88),K=Y*Y*Y%J,z=K*K*Y%J,M=u8(z,Q,J)*z%J,N=u8(M,Q,J)*z%J,O=u8(N,L5,J)*K%J,D=u8(O,q,J)*O%J,U=u8(D,G,J)*D%J,A=u8(U,W,J)*U%J,w=u8(A,j,J)*A%J,v=u8(w,W,J)*U%J,R=u8(v,Q,J)*z%J,E=u8(R,$,J)*D%J,C=u8(E,X,J)*K%J,S=u8(C,L5,J);if(!E5.eql(E5.sqr(S),Y))throw Error("Cannot find square root");return S}var E5=R2(p7,void 0,void 0,{sqrt:P2}),OJ=k2({a:BigInt(0),b:BigInt(7),Fp:E5,n:vO,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(Y)=>{let J=vO,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),X=-F2*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),q=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),G=Q,$=BigInt("0x100000000000000000000000000000000"),W=_O(G*Y,J),j=_O(-X*Y,J),K=A8(Y-W*Q-j*q,J),z=A8(-W*X-j*G,J),M=K>$,N=z>$;if(M)K=J-K;if(N)z=J-z;if(K>$||z>$)throw Error("splitScalar: Endomorphism failed, k="+Y);return{k1neg:M,k1:K,k2neg:N,k2:z}}}},aP),gh=BigInt(0),fh=OJ.ProjectivePoint,HX="0x0000000000000000000000000000000000000000",kO="0x0000000000000000000000000000000000000000000000000000000000000000",FO=BigInt(0),PO=BigInt(1),w5=BigInt(2),TO=BigInt(27),ZO=BigInt(28),tG=BigInt(35),o7=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),T2=o7/w5,Z2=Symbol.for("nodejs.util.inspect.custom"),yJ={};function mW(Y){return rY(r0(Y),32)}class f0{#Y;#J;#Q;#q;get r(){return this.#Y}set r(Y){H(yQ(Y)===32,"invalid r","value",Y),this.#Y=l(Y)}get s(){return H(parseInt(this.#J.substring(0,3))<8,"non-canonical s; use ._s","s",this.#J),this.#J}set s(Y){H(yQ(Y)===32,"invalid s","value",Y),this.#J=l(Y)}get _s(){return this.#J}isValid(){return BigInt(this.#J)<=T2}get v(){return this.#Q}set v(Y){let J=j0(Y,"value");H(J===27||J===28,"invalid v","v",Y),this.#Q=J}get networkV(){return this.#q}get legacyChainId(){let Y=this.networkV;if(Y==null)return null;return f0.getChainId(Y)}get yParity(){return this.v===27?0:1}get yParityAndS(){let Y=z0(this.s);if(this.yParity)Y[0]|=128;return l(Y)}get compactSerialized(){return Z0([this.r,this.yParityAndS])}get serialized(){return Z0([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(Y,J,Q,X){m9(Y,yJ,"Signature"),this.#Y=J,this.#J=Q,this.#Q=X,this.#q=null}getCanonical(){if(this.isValid())return this;let Y=o7-BigInt(this._s),J=55-this.v,Q=new f0(yJ,this.r,mW(Y),J);if(this.networkV)Q.#q=this.networkV;return Q}clone(){let Y=new f0(yJ,this.r,this._s,this.v);if(this.networkV)Y.#q=this.networkV;return Y}toJSON(){let Y=this.networkV;return{_type:"signature",networkV:Y!=null?Y.toString():null,r:this.r,s:this._s,v:this.v}}[Z2](){return this.toString()}toString(){if(this.isValid())return`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v} }`;return`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v}, valid: false }`}static getChainId(Y){let J=d(Y,"v");if(J==TO||J==ZO)return FO;return H(J>=tG,"invalid EIP-155 v","v",Y),(J-tG)/w5}static getChainIdV(Y,J){return d(Y)*w5+BigInt(35+J-27)}static getNormalizedV(Y){let J=d(Y);if(J===FO||J===TO)return 27;if(J===PO||J===ZO)return 28;return H(J>=tG,"invalid v","v",Y),J&PO?27:28}static from(Y){function J(j,K){H(j,K,"signature",Y)}if(Y==null)return new f0(yJ,kO,kO,27);if(typeof Y==="string"){let j=z0(Y,"signature");if(j.length===64){let K=l(j.slice(0,32)),z=j.slice(32,64),M=z[0]&128?28:27;return z[0]&=127,new f0(yJ,K,l(z),M)}if(j.length===65){let K=l(j.slice(0,32)),z=l(j.slice(32,64)),M=f0.getNormalizedV(j[64]);return new f0(yJ,K,z,M)}J(!1,"invalid raw signature length")}if(Y instanceof f0)return Y.clone();let Q=Y.r;J(Q!=null,"missing r");let X=mW(Q),q=function(j,K){if(j!=null)return mW(j);if(K!=null){J(k0(K,32),"invalid yParityAndS");let z=z0(K);return z[0]&=127,l(z)}J(!1,"missing s")}(Y.s,Y.yParityAndS),{networkV:G,v:$}=function(j,K,z){if(j!=null){let M=d(j);return{networkV:M>=tG?M:void 0,v:f0.getNormalizedV(M)}}if(K!=null)return J(k0(K,32),"invalid yParityAndS"),{v:z0(K)[0]&128?28:27};if(z!=null){switch(j0(z,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}J(!1,"invalid yParity")}J(!1,"missing v")}(Y.v,Y.yParityAndS,Y.yParity),W=new f0(yJ,X,q,$);if(G)W.#q=G;return J(Y.yParity==null||j0(Y.yParity,"sig.yParity")===W.yParity,"yParity mismatch"),J(Y.yParityAndS==null||Y.yParityAndS===W.yParityAndS,"yParityAndS mismatch"),W}}class hY{#Y;constructor(Y){H(yQ(Y)===32,"invalid private key","privateKey","[REDACTED]"),this.#Y=l(Y)}get privateKey(){return this.#Y}get publicKey(){return hY.computePublicKey(this.#Y)}get compressedPublicKey(){return hY.computePublicKey(this.#Y,!0)}sign(Y){H(yQ(Y)===32,"invalid digest length","digest",Y);let J=OJ.sign(j8(Y),j8(this.#Y),{lowS:!0});return f0.from({r:EJ(J.r,32),s:EJ(J.s,32),v:J.recovery?28:27})}computeSharedSecret(Y){let J=hY.computePublicKey(Y);return l(OJ.getSharedSecret(j8(this.#Y),z0(J),!1))}static computePublicKey(Y,J){let Q=z0(Y,"key");if(Q.length===32){let q=OJ.getPublicKey(Q,!!J);return l(q)}if(Q.length===64){let q=new Uint8Array(65);q[0]=4,q.set(Q,1),Q=q}let X=OJ.ProjectivePoint.fromHex(Q);return l(X.toRawBytes(J))}static recoverPublicKey(Y,J){H(yQ(Y)===32,"invalid digest length","digest",Y);let Q=f0.from(J),X=OJ.Signature.fromCompact(j8(Z0([Q.r,Q.s])));X=X.addRecoveryBit(Q.yParity);let q=X.recoverPublicKey(j8(Y));return H(q!=null,"invalid signature for digest","signature",J),"0x"+q.toHex(!1)}static addPoints(Y,J,Q){let X=OJ.ProjectivePoint.fromHex(hY.computePublicKey(Y).substring(2)),q=OJ.ProjectivePoint.fromHex(hY.computePublicKey(J).substring(2));return"0x"+X.add(q).toHex(!!Q)}}var x2=BigInt(0),g2=BigInt(36);function xO(Y){Y=Y.toLowerCase();let J=Y.substring(2).split(""),Q=new Uint8Array(40);for(let q=0;q<40;q++)Q[q]=J[q].charCodeAt(0);let X=z0(d0(Q));for(let q=0;q<40;q+=2){if(X[q>>1]>>4>=8)J[q]=J[q].toUpperCase();if((X[q>>1]&15)>=8)J[q+1]=J[q+1].toUpperCase()}return"0x"+J.join("")}var gz={};for(let Y=0;Y<10;Y++)gz[String(Y)]=String(Y);for(let Y=0;Y<26;Y++)gz[String.fromCharCode(65+Y)]=String(10+Y);var gO=15;function f2(Y){Y=Y.toUpperCase(),Y=Y.substring(4)+Y.substring(0,2)+"00";let J=Y.split("").map((X)=>{return gz[X]}).join("");while(J.length>=gO){let X=J.substring(0,gO);J=parseInt(X,10)%97+J.substring(X.length)}let Q=String(98-parseInt(J,10)%97);while(Q.length<2)Q="0"+Q;return Q}var h2=function(){let Y={};for(let J=0;J<36;J++){let Q="0123456789abcdefghijklmnopqrstuvwxyz"[J];Y[Q]=BigInt(J)}return Y}();function m2(Y){Y=Y.toLowerCase();let J=x2;for(let Q=0;Q<Y.length;Q++)J=J*g2+h2[Y[Q]];return J}function L0(Y){if(H(typeof Y==="string","invalid address","address",Y),Y.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!Y.startsWith("0x"))Y="0x"+Y;let J=xO(Y);return H(!Y.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||J===Y,"bad address checksum","address",Y),J}if(Y.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){H(Y.substring(2,4)===f2(Y),"bad icap checksum","address",Y);let J=m2(Y.substring(4)).toString(16);while(J.length<40)J="0"+J;return xO("0x"+J)}H(!1,"invalid address","address",Y)}function y2(Y){let J=L0(Y.from),Q=d(Y.nonce,"tx.nonce").toString(16);if(Q==="0")Q="0x";else if(Q.length%2)Q="0x0"+Q;else Q="0x"+Q;return L0(y0(d0(cY([J,Q])),12))}function d7(Y){return Y&&typeof Y.getAddress==="function"}async function yW(Y,J){let Q=await J;if(Q==null||Q==="0x0000000000000000000000000000000000000000")_(typeof Y!=="string","unconfigured name","UNCONFIGURED_NAME",{value:Y}),H(!1,"invalid AddressLike value; did not resolve to a value address","target",Y);return L0(Q)}function B8(Y,J){if(typeof Y==="string"){if(Y.match(/^0x[0-9a-f]{40}$/i))return L0(Y);return _(J!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),yW(Y,J.resolveName(Y))}else if(d7(Y))return yW(Y,Y.getAddress());else if(Y&&typeof Y.then==="function")return yW(Y,Y);H(!1,"unsupported addressable value","target",Y)}var ZY={};function b(Y,J){let Q=!1;if(J<0)Q=!0,J*=-1;return new l0(ZY,`${Q?"":"u"}int${J}`,Y,{signed:Q,width:J})}function R0(Y,J){return new l0(ZY,`bytes${J?J:""}`,Y,{size:J})}var fO=Symbol.for("_ethers_typed");class l0{type;value;#Y;_typedSymbol;constructor(Y,J,Q,X){if(X==null)X=null;m9(ZY,Y,"Typed"),Y0(this,{_typedSymbol:fO,type:J,value:Q}),this.#Y=X,this.format()}format(){if(this.type==="array")throw Error("");else if(this.type==="dynamicArray")throw Error("");else if(this.type==="tuple")return`tuple(${this.value.map((Y)=>Y.format()).join(",")})`;return this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return this.#Y}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");if(this.#Y===!0)return-1;if(this.#Y===!1)return this.value.length;return null}static from(Y,J){return new l0(ZY,Y,J)}static uint8(Y){return b(Y,8)}static uint16(Y){return b(Y,16)}static uint24(Y){return b(Y,24)}static uint32(Y){return b(Y,32)}static uint40(Y){return b(Y,40)}static uint48(Y){return b(Y,48)}static uint56(Y){return b(Y,56)}static uint64(Y){return b(Y,64)}static uint72(Y){return b(Y,72)}static uint80(Y){return b(Y,80)}static uint88(Y){return b(Y,88)}static uint96(Y){return b(Y,96)}static uint104(Y){return b(Y,104)}static uint112(Y){return b(Y,112)}static uint120(Y){return b(Y,120)}static uint128(Y){return b(Y,128)}static uint136(Y){return b(Y,136)}static uint144(Y){return b(Y,144)}static uint152(Y){return b(Y,152)}static uint160(Y){return b(Y,160)}static uint168(Y){return b(Y,168)}static uint176(Y){return b(Y,176)}static uint184(Y){return b(Y,184)}static uint192(Y){return b(Y,192)}static uint200(Y){return b(Y,200)}static uint208(Y){return b(Y,208)}static uint216(Y){return b(Y,216)}static uint224(Y){return b(Y,224)}static uint232(Y){return b(Y,232)}static uint240(Y){return b(Y,240)}static uint248(Y){return b(Y,248)}static uint256(Y){return b(Y,256)}static uint(Y){return b(Y,256)}static int8(Y){return b(Y,-8)}static int16(Y){return b(Y,-16)}static int24(Y){return b(Y,-24)}static int32(Y){return b(Y,-32)}static int40(Y){return b(Y,-40)}static int48(Y){return b(Y,-48)}static int56(Y){return b(Y,-56)}static int64(Y){return b(Y,-64)}static int72(Y){return b(Y,-72)}static int80(Y){return b(Y,-80)}static int88(Y){return b(Y,-88)}static int96(Y){return b(Y,-96)}static int104(Y){return b(Y,-104)}static int112(Y){return b(Y,-112)}static int120(Y){return b(Y,-120)}static int128(Y){return b(Y,-128)}static int136(Y){return b(Y,-136)}static int144(Y){return b(Y,-144)}static int152(Y){return b(Y,-152)}static int160(Y){return b(Y,-160)}static int168(Y){return b(Y,-168)}static int176(Y){return b(Y,-176)}static int184(Y){return b(Y,-184)}static int192(Y){return b(Y,-192)}static int200(Y){return b(Y,-200)}static int208(Y){return b(Y,-208)}static int216(Y){return b(Y,-216)}static int224(Y){return b(Y,-224)}static int232(Y){return b(Y,-232)}static int240(Y){return b(Y,-240)}static int248(Y){return b(Y,-248)}static int256(Y){return b(Y,-256)}static int(Y){return b(Y,-256)}static bytes1(Y){return R0(Y,1)}static bytes2(Y){return R0(Y,2)}static bytes3(Y){return R0(Y,3)}static bytes4(Y){return R0(Y,4)}static bytes5(Y){return R0(Y,5)}static bytes6(Y){return R0(Y,6)}static bytes7(Y){return R0(Y,7)}static bytes8(Y){return R0(Y,8)}static bytes9(Y){return R0(Y,9)}static bytes10(Y){return R0(Y,10)}static bytes11(Y){return R0(Y,11)}static bytes12(Y){return R0(Y,12)}static bytes13(Y){return R0(Y,13)}static bytes14(Y){return R0(Y,14)}static bytes15(Y){return R0(Y,15)}static bytes16(Y){return R0(Y,16)}static bytes17(Y){return R0(Y,17)}static bytes18(Y){return R0(Y,18)}static bytes19(Y){return R0(Y,19)}static bytes20(Y){return R0(Y,20)}static bytes21(Y){return R0(Y,21)}static bytes22(Y){return R0(Y,22)}static bytes23(Y){return R0(Y,23)}static bytes24(Y){return R0(Y,24)}static bytes25(Y){return R0(Y,25)}static bytes26(Y){return R0(Y,26)}static bytes27(Y){return R0(Y,27)}static bytes28(Y){return R0(Y,28)}static bytes29(Y){return R0(Y,29)}static bytes30(Y){return R0(Y,30)}static bytes31(Y){return R0(Y,31)}static bytes32(Y){return R0(Y,32)}static address(Y){return new l0(ZY,"address",Y)}static bool(Y){return new l0(ZY,"bool",!!Y)}static bytes(Y){return new l0(ZY,"bytes",Y)}static string(Y){return new l0(ZY,"string",Y)}static array(Y,J){throw Error("not implemented yet")}static tuple(Y,J){throw Error("not implemented yet")}static overrides(Y){return new l0(ZY,"overrides",Object.assign({},Y))}static isTyped(Y){return Y&&typeof Y==="object"&&"_typedSymbol"in Y&&Y._typedSymbol===fO}static dereference(Y,J){if(l0.isTyped(Y)){if(Y.type!==J)throw Error(`invalid type: expecetd ${J}, got ${Y.type}`);return Y.value}return Y}}class r7 extends wY{constructor(Y){super("address","address",Y,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(Y,J){let Q=l0.dereference(J,"string");try{Q=L0(Q)}catch(X){return this._throwError(X.message,J)}return Y.writeValue(Q)}decode(Y){return L0(EJ(Y.readValue(),20))}}class s7 extends wY{coder;constructor(Y){super(Y.name,Y.type,"_",Y.dynamic);this.coder=Y}defaultValue(){return this.coder.defaultValue()}encode(Y,J){return this.coder.encode(Y,J)}decode(Y){return this.coder.decode(Y)}}function i7(Y,J,Q){let X=[];if(Array.isArray(Q))X=Q;else if(Q&&typeof Q==="object"){let j={};X=J.map((K)=>{let z=K.localName;return _(z,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:K},value:Q}),_(!j[z],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:K},value:Q}),j[z]=!0,Q[z]})}else H(!1,"invalid tuple value","tuple",Q);H(J.length===X.length,"types/value length mismatch","tuple",Q);let q=new Z$,G=new Z$,$=[];J.forEach((j,K)=>{let z=X[K];if(j.dynamic){let M=G.length;j.encode(G,z);let N=q.writeUpdatableValue();$.push((O)=>{N(O+M)})}else j.encode(q,z)}),$.forEach((j)=>{j(q.length)});let W=Y.appendWriter(q);return W+=Y.appendWriter(G),W}function t7(Y,J){let Q=[],X=[],q=Y.subReader(0);return J.forEach((G)=>{let $=null;if(G.dynamic){let W=Y.readIndex(),j=q.subReader(W);try{$=G.decode(j)}catch(K){if(X8(K,"BUFFER_OVERRUN"))throw K;$=K,$.baseType=G.name,$.name=G.localName,$.type=G.type}}else try{$=G.decode(Y)}catch(W){if(X8(W,"BUFFER_OVERRUN"))throw W;$=W,$.baseType=G.name,$.name=G.localName,$.type=G.type}if($==null)throw Error("investigate");Q.push($),X.push(G.localName||null)}),mY.fromItems(Q,X)}class n7 extends wY{coder;length;constructor(Y,J,Q){let X=Y.type+"["+(J>=0?J:"")+"]",q=J===-1||Y.dynamic;super("array",X,Q,q);Y0(this,{coder:Y,length:J})}defaultValue(){let Y=this.coder.defaultValue(),J=[];for(let Q=0;Q<this.length;Q++)J.push(Y);return J}encode(Y,J){let Q=l0.dereference(J,"array");if(!Array.isArray(Q))this._throwError("expected array value",Q);let X=this.length;if(X===-1)X=Q.length,Y.writeValue(Q.length);q7(Q.length,X,"coder array"+(this.localName?" "+this.localName:""));let q=[];for(let G=0;G<Q.length;G++)q.push(this.coder);return i7(Y,q,Q)}decode(Y){let J=this.length;if(J===-1)J=Y.readIndex(),_(J*H8<=Y.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:Y.bytes,offset:J*H8,length:Y.dataLength});let Q=[];for(let X=0;X<J;X++)Q.push(new s7(this.coder));return t7(Y,Q)}}class a7 extends wY{constructor(Y){super("bool","bool",Y,!1)}defaultValue(){return!1}encode(Y,J){let Q=l0.dereference(J,"bool");return Y.writeValue(Q?1:0)}decode(Y){return!!Y.readValue()}}class fz extends wY{constructor(Y,J){super(Y,Y,J,!0)}defaultValue(){return"0x"}encode(Y,J){J=j8(J);let Q=Y.writeValue(J.length);return Q+=Y.writeBytes(J),Q}decode(Y){return Y.readBytes(Y.readIndex(),!0)}}class e7 extends fz{constructor(Y){super("bytes",Y)}decode(Y){return l(super.decode(Y))}}class YL extends wY{size;constructor(Y,J){let Q="bytes"+String(Y);super(Q,Q,J,!1);Y0(this,{size:Y},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(Y,J){let Q=j8(l0.dereference(J,this.type));if(Q.length!==this.size)this._throwError("incorrect data length",J);return Y.writeBytes(Q)}decode(Y){return l(Y.readBytes(this.size))}}var l2=new Uint8Array([]);class JL extends wY{constructor(Y){super("null","",Y,!1)}defaultValue(){return null}encode(Y,J){if(J!=null)this._throwError("not null",J);return Y.writeBytes(l2)}decode(Y){return Y.readBytes(0),null}}var u2=BigInt(0),c2=BigInt(1),b2=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class QL extends wY{size;signed;constructor(Y,J,Q){let X=(J?"int":"uint")+Y*8;super(X,X,Q,!1);Y0(this,{size:Y,signed:J},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(Y,J){let Q=d(l0.dereference(J,this.type)),X=aq(b2,H8*8);if(this.signed){let q=aq(X,this.size*8-1);if(Q>q||Q<-(q+c2))this._throwError("value out-of-bounds",J);Q=$7(Q,8*H8)}else if(Q<u2||Q>aq(X,this.size*8))this._throwError("value out-of-bounds",J);return Y.writeValue(Q)}decode(Y){let J=aq(Y.readValue(),this.size*8);if(this.signed)J=jP(J,this.size*8);return J}}class qL extends fz{constructor(Y){super("string",Y)}defaultValue(){return""}encode(Y,J){return super.encode(Y,uY(l0.dereference(J,"string")))}decode(Y){return T$(super.decode(Y))}}class eq extends wY{coders;constructor(Y,J){let Q=!1,X=[];Y.forEach((G)=>{if(G.dynamic)Q=!0;X.push(G.type)});let q="tuple("+X.join(",")+")";super("tuple",q,J,Q);Y0(this,{coders:Object.freeze(Y.slice())})}defaultValue(){let Y=[];this.coders.forEach((Q)=>{Y.push(Q.defaultValue())});let J=this.coders.reduce((Q,X)=>{let q=X.localName;if(q){if(!Q[q])Q[q]=0;Q[q]++}return Q},{});return this.coders.forEach((Q,X)=>{let q=Q.localName;if(!q||J[q]!==1)return;if(q==="length")q="_length";if(Y[q]!=null)return;Y[q]=Y[X]}),Object.freeze(Y)}encode(Y,J){let Q=l0.dereference(J,"tuple");return i7(Y,this.coders,Q)}decode(Y){return t7(Y,this.coders)}}function lW(Y,J){return{address:L0(Y),storageKeys:J.map((Q,X)=>{return H(k0(Q,32),"invalid slot",`storageKeys[${X}]`,Q),Q.toLowerCase()})}}function UQ(Y){if(Array.isArray(Y))return Y.map((Q,X)=>{if(Array.isArray(Q))return H(Q.length===2,"invalid slot set",`value[${X}]`,Q),lW(Q[0],Q[1]);return H(Q!=null&&typeof Q==="object","invalid address-slot set","value",Y),lW(Q.address,Q.storageKeys)});H(Y!=null&&typeof Y==="object","invalid access list","value",Y);let J=Object.keys(Y).map((Q)=>{let X=Y[Q].reduce((q,G)=>{return q[G]=!0,q},{});return lW(Q,Object.keys(X).sort())});return J.sort((Q,X)=>Q.address.localeCompare(X.address)),J}function XL(Y){return{address:L0(Y.address),nonce:d(Y.nonce!=null?Y.nonce:0),chainId:d(Y.chainId!=null?Y.chainId:0),signature:f0.from(Y.signature)}}function p2(Y){let J;if(typeof Y==="string")J=hY.computePublicKey(Y,!1);else J=Y.publicKey;return L0(d0("0x"+J.substring(4)).substring(26))}function o2(Y,J){return p2(hY.recoverPublicKey(Y,J))}var Y8=BigInt(0),d2=BigInt(2),r2=BigInt(27),s2=BigInt(28),i2=BigInt(35),t2=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n2=Symbol.for("nodejs.util.inspect.custom"),uW=131072,G$=128;function a2(Y){return{blobToKzgCommitment:(J)=>{if("computeBlobProof"in Y){if("blobToKzgCommitment"in Y&&typeof Y.blobToKzgCommitment==="function")return z0(Y.blobToKzgCommitment(l(J)))}else if("blobToKzgCommitment"in Y&&typeof Y.blobToKzgCommitment==="function")return z0(Y.blobToKzgCommitment(J));if("blobToKZGCommitment"in Y&&typeof Y.blobToKZGCommitment==="function")return z0(Y.blobToKZGCommitment(l(J)));H(!1,"unsupported KZG library","kzg",Y)},computeBlobKzgProof:(J,Q)=>{if("computeBlobProof"in Y&&typeof Y.computeBlobProof==="function")return z0(Y.computeBlobProof(l(J),l(Q)));if("computeBlobKzgProof"in Y&&typeof Y.computeBlobKzgProof==="function")return Y.computeBlobKzgProof(J,Q);if("computeBlobKZGProof"in Y&&typeof Y.computeBlobKZGProof==="function")return z0(Y.computeBlobKZGProof(l(J),l(Q)));H(!1,"unsupported KZG library","kzg",Y)}}}function hO(Y,J){let Q=Y.toString(16);while(Q.length<2)Q="0"+Q;return Q+=Hq(J).substring(4),"0x"+Q}function Bq(Y){if(Y==="0x")return null;return L0(Y)}function p9(Y,J){try{return UQ(Y)}catch(Q){H(!1,Q.message,J,Y)}}function e2(Y,J){try{if(!Array.isArray(Y))throw Error("authorizationList: invalid array");let Q=[];for(let X=0;X<Y.length;X++){let q=Y[X];if(!Array.isArray(q))throw Error(`authorization[${X}]: invalid array`);if(q.length!==6)throw Error(`authorization[${X}]: wrong length`);if(!q[1])throw Error(`authorization[${X}]: null address`);Q.push({address:Bq(q[1]),nonce:w0(q[2],"nonce"),chainId:w0(q[0],"chainId"),signature:f0.from({yParity:HQ(q[3],"yParity"),r:rY(q[4],32),s:rY(q[5],32)})})}return Q}catch(Q){H(!1,Q.message,J,Y)}}function HQ(Y,J){if(Y==="0x")return 0;return j0(Y,J)}function w0(Y,J){if(Y==="0x")return Y8;let Q=d(Y,J);return H(Q<=t2,"value exceeds uint size",J,Q),Q}function H0(Y,J){let Q=d(Y,"value"),X=r0(Q);return H(X.length<=32,"value too large",`tx.${J}`,Q),X}function o9(Y){return UQ(Y).map((J)=>[J.address,J.storageKeys])}function YT(Y){return Y.map((J)=>{return[H0(J.chainId,"chainId"),J.address,H0(J.nonce,"nonce"),H0(J.signature.yParity,"yParity"),r0(J.signature.r),r0(J.signature._s)]})}function JT(Y,J){H(Array.isArray(Y),`invalid ${J}`,"value",Y);for(let Q=0;Q<Y.length;Q++)H(k0(Y[Q],32),"invalid ${ param } hash",`value[${Q}]`,Y[Q]);return Y}function QT(Y){let J=qG(Y);H(Array.isArray(J)&&(J.length===9||J.length===6),"invalid field count for legacy transaction","data",Y);let Q={type:0,nonce:HQ(J[0],"nonce"),gasPrice:w0(J[1],"gasPrice"),gasLimit:w0(J[2],"gasLimit"),to:Bq(J[3]),value:w0(J[4],"value"),data:l(J[5]),chainId:Y8};if(J.length===6)return Q;let X=w0(J[6],"v"),q=w0(J[7],"r"),G=w0(J[8],"s");if(q===Y8&&G===Y8)Q.chainId=X;else{let $=(X-i2)/d2;if($<Y8)$=Y8;Q.chainId=$,H($!==Y8||(X===r2||X===s2),"non-canonical legacy v","v",J[6]),Q.signature=f0.from({r:rY(J[7],32),s:rY(J[8],32),v:X})}return Q}function qT(Y,J){let Q=[H0(Y.nonce,"nonce"),H0(Y.gasPrice||0,"gasPrice"),H0(Y.gasLimit,"gasLimit"),Y.to||"0x",H0(Y.value,"value"),Y.data],X=Y8;if(Y.chainId!=Y8)X=d(Y.chainId,"tx.chainId"),H(!J||J.networkV==null||J.legacyChainId===X,"tx.chainId/sig.v mismatch","sig",J);else if(Y.signature){let G=Y.signature.legacyChainId;if(G!=null)X=G}if(!J){if(X!==Y8)Q.push(r0(X)),Q.push("0x"),Q.push("0x");return cY(Q)}let q=BigInt(27+J.yParity);if(X!==Y8)q=f0.getChainIdV(X,J.v);else if(BigInt(J.v)!==q)H(!1,"tx.chainId/sig.v mismatch","sig",J);return Q.push(r0(q)),Q.push(r0(J.r)),Q.push(r0(J._s)),cY(Q)}function d9(Y,J){let Q;try{if(Q=HQ(J[0],"yParity"),Q!==0&&Q!==1)throw Error("bad yParity")}catch($){H(!1,"invalid yParity","yParity",J[0])}let X=rY(J[1],32),q=rY(J[2],32),G=f0.from({r:X,s:q,yParity:Q});Y.signature=G}function XT(Y){let J=qG(z0(Y).slice(1));H(Array.isArray(J)&&(J.length===9||J.length===12),"invalid field count for transaction type: 2","data",l(Y));let Q={type:2,chainId:w0(J[0],"chainId"),nonce:HQ(J[1],"nonce"),maxPriorityFeePerGas:w0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:w0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:w0(J[4],"gasLimit"),to:Bq(J[5]),value:w0(J[6],"value"),data:l(J[7]),accessList:p9(J[8],"accessList")};if(J.length===9)return Q;return d9(Q,J.slice(9)),Q}function GT(Y,J){let Q=[H0(Y.chainId,"chainId"),H0(Y.nonce,"nonce"),H0(Y.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),H0(Y.maxFeePerGas||0,"maxFeePerGas"),H0(Y.gasLimit,"gasLimit"),Y.to||"0x",H0(Y.value,"value"),Y.data,o9(Y.accessList||[])];if(J)Q.push(H0(J.yParity,"yParity")),Q.push(r0(J.r)),Q.push(r0(J.s));return Z0(["0x02",cY(Q)])}function $T(Y){let J=qG(z0(Y).slice(1));H(Array.isArray(J)&&(J.length===8||J.length===11),"invalid field count for transaction type: 1","data",l(Y));let Q={type:1,chainId:w0(J[0],"chainId"),nonce:HQ(J[1],"nonce"),gasPrice:w0(J[2],"gasPrice"),gasLimit:w0(J[3],"gasLimit"),to:Bq(J[4]),value:w0(J[5],"value"),data:l(J[6]),accessList:p9(J[7],"accessList")};if(J.length===8)return Q;return d9(Q,J.slice(8)),Q}function WT(Y,J){let Q=[H0(Y.chainId,"chainId"),H0(Y.nonce,"nonce"),H0(Y.gasPrice||0,"gasPrice"),H0(Y.gasLimit,"gasLimit"),Y.to||"0x",H0(Y.value,"value"),Y.data,o9(Y.accessList||[])];if(J)Q.push(H0(J.yParity,"recoveryParam")),Q.push(r0(J.r)),Q.push(r0(J.s));return Z0(["0x01",cY(Q)])}function jT(Y){let J=qG(z0(Y).slice(1)),Q="3",X=null,q=null;if(J.length===4&&Array.isArray(J[0])){Q="3 (network format)";let $=J[1],W=J[2],j=J[3];H(Array.isArray($),"invalid network format: blobs not an array","fields[1]",$),H(Array.isArray(W),"invalid network format: commitments not an array","fields[2]",W),H(Array.isArray(j),"invalid network format: proofs not an array","fields[3]",j),H($.length===W.length,"invalid network format: blobs/commitments length mismatch","fields",J),H($.length===j.length,"invalid network format: blobs/proofs length mismatch","fields",J),q=[];for(let K=0;K<J[1].length;K++)q.push({data:$[K],commitment:W[K],proof:j[K]});J=J[0]}else if(J.length===5&&Array.isArray(J[0])){Q="3 (EIP-7594 network format)",X=j0(J[1]);let $=J[2],W=J[3],j=J[4];H(X===1,`unsupported EIP-7594 network format version: ${X}`,"fields[1]",X),H(Array.isArray($),"invalid EIP-7594 network format: blobs not an array","fields[2]",$),H(Array.isArray(W),"invalid EIP-7594 network format: commitments not an array","fields[3]",W),H(Array.isArray(j),"invalid EIP-7594 network format: proofs not an array","fields[4]",j),H($.length===W.length,"invalid network format: blobs/commitments length mismatch","fields",J),H($.length*G$===j.length,"invalid network format: blobs/proofs length mismatch","fields",J),q=[];for(let K=0;K<$.length;K++){let z=[];for(let M=0;M<G$;M++)z.push(j[K*G$+M]);q.push({data:$[K],commitment:W[K],proof:Z0(z)})}J=J[0]}H(Array.isArray(J)&&(J.length===11||J.length===14),`invalid field count for transaction type: ${Q}`,"data",l(Y));let G={type:3,chainId:w0(J[0],"chainId"),nonce:HQ(J[1],"nonce"),maxPriorityFeePerGas:w0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:w0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:w0(J[4],"gasLimit"),to:Bq(J[5]),value:w0(J[6],"value"),data:l(J[7]),accessList:p9(J[8],"accessList"),maxFeePerBlobGas:w0(J[9],"maxFeePerBlobGas"),blobVersionedHashes:J[10],blobWrapperVersion:X};if(q)G.blobs=q;H(G.to!=null,`invalid address for transaction type: ${Q}`,"data",Y),H(Array.isArray(G.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",Y);for(let $=0;$<G.blobVersionedHashes.length;$++)H(k0(G.blobVersionedHashes[$],32),`invalid blobVersionedHash at index ${$}: must be length 32`,"data",Y);if(J.length===11)return G;return d9(G,J.slice(11)),G}function KT(Y,J,Q){let X=[H0(Y.chainId,"chainId"),H0(Y.nonce,"nonce"),H0(Y.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),H0(Y.maxFeePerGas||0,"maxFeePerGas"),H0(Y.gasLimit,"gasLimit"),Y.to||HX,H0(Y.value,"value"),Y.data,o9(Y.accessList||[]),H0(Y.maxFeePerBlobGas||0,"maxFeePerBlobGas"),JT(Y.blobVersionedHashes||[],"blobVersionedHashes")];if(J){if(X.push(H0(J.yParity,"yParity")),X.push(r0(J.r)),X.push(r0(J.s)),Q){if(Y.blobWrapperVersion!=null){let q=r0(Y.blobWrapperVersion),G=[];for(let{proof:$}of Q){let W=z0($),j=W.length/G$;for(let K=0;K<W.length;K+=j)G.push(W.subarray(K,K+j))}return Z0(["0x03",cY([X,q,Q.map(($)=>$.data),Q.map(($)=>$.commitment),G])])}return Z0(["0x03",cY([X,Q.map((q)=>q.data),Q.map((q)=>q.commitment),Q.map((q)=>q.proof)])])}}return Z0(["0x03",cY(X)])}function zT(Y){let J=qG(z0(Y).slice(1));H(Array.isArray(J)&&(J.length===10||J.length===13),"invalid field count for transaction type: 4","data",l(Y));let Q={type:4,chainId:w0(J[0],"chainId"),nonce:HQ(J[1],"nonce"),maxPriorityFeePerGas:w0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:w0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:w0(J[4],"gasLimit"),to:Bq(J[5]),value:w0(J[6],"value"),data:l(J[7]),accessList:p9(J[8],"accessList"),authorizationList:e2(J[9],"authorizationList")};if(J.length===10)return Q;return d9(Q,J.slice(10)),Q}function MT(Y,J){let Q=[H0(Y.chainId,"chainId"),H0(Y.nonce,"nonce"),H0(Y.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),H0(Y.maxFeePerGas||0,"maxFeePerGas"),H0(Y.gasLimit,"gasLimit"),Y.to||"0x",H0(Y.value,"value"),Y.data,o9(Y.accessList||[]),YT(Y.authorizationList||[])];if(J)Q.push(H0(J.yParity,"yParity")),Q.push(r0(J.r)),Q.push(r0(J.s));return Z0(["0x04",cY(Q)])}class e8{#Y;#J;#Q;#q;#X;#$;#G;#W;#O;#K;#D;#U;#j;#z;#M;#N;#R;#H;get type(){return this.#Y}set type(Y){switch(Y){case null:this.#Y=null;break;case 0:case"legacy":this.#Y=0;break;case 1:case"berlin":case"eip-2930":this.#Y=1;break;case 2:case"london":case"eip-1559":this.#Y=2;break;case 3:case"cancun":case"eip-4844":this.#Y=3;break;case 4:case"pectra":case"eip-7702":this.#Y=4;break;default:H(!1,"unsupported transaction type","type",Y)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let Y=this.#J;if(Y==null&&this.type===3)return HX;return Y}set to(Y){this.#J=Y==null?null:L0(Y)}get nonce(){return this.#q}set nonce(Y){this.#q=j0(Y,"value")}get gasLimit(){return this.#X}set gasLimit(Y){this.#X=d(Y)}get gasPrice(){let Y=this.#$;if(Y==null&&(this.type===0||this.type===1))return Y8;return Y}set gasPrice(Y){this.#$=Y==null?null:d(Y,"gasPrice")}get maxPriorityFeePerGas(){let Y=this.#G;if(Y==null){if(this.type===2||this.type===3)return Y8;return null}return Y}set maxPriorityFeePerGas(Y){this.#G=Y==null?null:d(Y,"maxPriorityFeePerGas")}get maxFeePerGas(){let Y=this.#W;if(Y==null){if(this.type===2||this.type===3)return Y8;return null}return Y}set maxFeePerGas(Y){this.#W=Y==null?null:d(Y,"maxFeePerGas")}get data(){return this.#Q}set data(Y){this.#Q=l(Y)}get value(){return this.#O}set value(Y){this.#O=d(Y,"value")}get chainId(){return this.#K}set chainId(Y){this.#K=d(Y)}get signature(){return this.#D||null}set signature(Y){this.#D=Y==null?null:f0.from(Y)}isValid(){let Y=this.signature;if(Y&&!Y.isValid())return!1;let J=this.authorizationList;if(J){for(let Q of J)if(!Q.signature.isValid())return!1}return!0}get accessList(){let Y=this.#U||null;if(Y==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return Y}set accessList(Y){this.#U=Y==null?null:UQ(Y)}get authorizationList(){let Y=this.#R||null;if(Y==null){if(this.type===4)return[]}return Y}set authorizationList(Y){this.#R=Y==null?null:Y.map((J)=>XL(J))}get maxFeePerBlobGas(){let Y=this.#j;if(Y==null&&this.type===3)return Y8;return Y}set maxFeePerBlobGas(Y){this.#j=Y==null?null:d(Y,"maxFeePerBlobGas")}get blobVersionedHashes(){let Y=this.#z;if(Y==null&&this.type===3)return[];return Y}set blobVersionedHashes(Y){if(Y!=null){H(Array.isArray(Y),"blobVersionedHashes must be an Array","value",Y),Y=Y.slice();for(let J=0;J<Y.length;J++)H(k0(Y[J],32),"invalid blobVersionedHash",`value[${J}]`,Y[J])}this.#z=Y}get blobs(){if(this.#N==null)return null;return this.#N.map((Y)=>Object.assign({},Y))}set blobs(Y){if(Y==null){this.#N=null;return}let J=[],Q=[];for(let X=0;X<Y.length;X++){let q=Y[X];if(wz(q)){_(this.#M,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let G=z0(q);if(H(G.length<=uW,"blob is too large",`blobs[${X}]`,q),G.length!==uW){let j=new Uint8Array(uW);j.set(G),G=j}let $=this.#M.blobToKzgCommitment(G),W=l(this.#M.computeBlobKzgProof(G,$));J.push({data:l(G),commitment:l($),proof:W}),Q.push(hO(1,$))}else{let G=l(q.data),$=l(q.commitment),W=l(q.proof);J.push({data:G,commitment:$,proof:W}),Q.push(hO(1,$))}}this.#N=J,this.#z=Q}get kzg(){return this.#M}set kzg(Y){if(Y==null)this.#M=null;else this.#M=a2(Y)}get blobWrapperVersion(){return this.#H}set blobWrapperVersion(Y){this.#H=Y}constructor(){this.#Y=null,this.#J=null,this.#q=0,this.#X=Y8,this.#$=null,this.#G=null,this.#W=null,this.#Q="0x",this.#O=Y8,this.#K=Y8,this.#D=null,this.#U=null,this.#j=null,this.#z=null,this.#M=null,this.#N=null,this.#R=null,this.#H=null}get hash(){if(this.signature==null)return null;return d0(this.#B(!0,!1))}get unsignedHash(){return d0(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return o2(this.unsignedHash,this.signature.getCanonical())}get fromPublicKey(){if(this.signature==null)return null;return hY.recoverPublicKey(this.unsignedHash,this.signature.getCanonical())}isSigned(){return this.signature!=null}#B(Y,J){_(!Y||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let Q=Y?this.signature:null;switch(this.inferType()){case 0:return qT(this,Q);case 1:return WT(this,Q);case 2:return GT(this,Q);case 3:return KT(this,Q,J?this.blobs:null);case 4:return MT(this,Q)}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#B(!0,!0)}get unsignedSerialized(){return this.#B(!1,!1)}inferType(){let Y=this.inferTypes();if(Y.indexOf(2)>=0)return 2;return Y.pop()}inferTypes(){let Y=this.gasPrice!=null,J=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,Q=this.accessList!=null,X=this.#j!=null||this.#z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)_(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});_(!J||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),_(this.type!==0||!Q,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let q=[];if(this.type!=null)q.push(this.type);else if(this.authorizationList&&this.authorizationList.length)q.push(4);else if(J)q.push(2);else if(Y){if(q.push(1),!Q)q.push(0)}else if(Q)q.push(1),q.push(2);else if(X&&this.to)q.push(3);else q.push(0),q.push(1),q.push(2),q.push(3);return q.sort(),q}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return e8.from(this)}toJSON(){let Y=(J)=>{if(J==null)return null;return J.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:Y(this.gasLimit),gasPrice:Y(this.gasPrice),maxPriorityFeePerGas:Y(this.maxPriorityFeePerGas),maxFeePerGas:Y(this.maxFeePerGas),value:Y(this.value),chainId:Y(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}[n2](){return this.toString()}toString(){let Y=[],J=(X)=>{let q=this[X];if(typeof q==="string")q=JSON.stringify(q);Y.push(`${X}: ${q}`)};if(this.type)J("type");if(J("to"),J("data"),J("nonce"),J("gasLimit"),J("value"),this.chainId!=null)J("chainId");if(this.signature)J("from"),Y.push(`signature: ${this.signature.toString()}`);let Q=this.authorizationList;if(Q){let X=[];for(let q of Q){let G=[];if(G.push(`address: ${JSON.stringify(q.address)}`),q.nonce!=null)G.push(`nonce: ${q.nonce}`);if(q.chainId!=null)G.push(`chainId: ${q.chainId}`);if(q.signature)G.push(`signature: ${q.signature.toString()}`);X.push(`Authorization { ${G.join(", ")} }`)}Y.push(`authorizations: [ ${X.join(", ")} ]`)}return`Transaction { ${Y.join(", ")} }`}static from(Y){if(Y==null)return new e8;if(typeof Y==="string"){let Q=z0(Y);if(Q[0]>=127)return e8.from(QT(Q));switch(Q[0]){case 1:return e8.from($T(Q));case 2:return e8.from(XT(Q));case 3:return e8.from(jT(Q));case 4:return e8.from(zT(Q))}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let J=new e8;if(Y.type!=null)J.type=Y.type;if(Y.to!=null)J.to=Y.to;if(Y.nonce!=null)J.nonce=Y.nonce;if(Y.gasLimit!=null)J.gasLimit=Y.gasLimit;if(Y.gasPrice!=null)J.gasPrice=Y.gasPrice;if(Y.maxPriorityFeePerGas!=null)J.maxPriorityFeePerGas=Y.maxPriorityFeePerGas;if(Y.maxFeePerGas!=null)J.maxFeePerGas=Y.maxFeePerGas;if(Y.maxFeePerBlobGas!=null)J.maxFeePerBlobGas=Y.maxFeePerBlobGas;if(Y.data!=null)J.data=Y.data;if(Y.value!=null)J.value=Y.value;if(Y.chainId!=null)J.chainId=Y.chainId;if(Y.signature!=null)J.signature=f0.from(Y.signature);if(Y.accessList!=null)J.accessList=Y.accessList;if(Y.authorizationList!=null)J.authorizationList=Y.authorizationList;if(Y.blobVersionedHashes!=null)J.blobVersionedHashes=Y.blobVersionedHashes;if(Y.kzg!=null)J.kzg=Y.kzg;if(Y.blobWrapperVersion!=null)J.blobWrapperVersion=Y.blobWrapperVersion;if(Y.blobs!=null)J.blobs=Y.blobs;if(Y.hash!=null)H(J.isSigned(),"unsigned transaction cannot define '.hash'","tx",Y),H(J.hash===Y.hash,"hash mismatch","tx",Y);if(Y.from!=null)H(J.isSigned(),"unsigned transaction cannot define '.from'","tx",Y),H(J.from.toLowerCase()===(Y.from||"").toLowerCase(),"from mismatch","tx",Y);return J}}function $Q(Y){return d0(uY(Y))}var NT="AEEUdwmgDS8BxQKKAP4BOgDjATAAngDUAIMAoABoAOAAagCOAEQAhABMAHIAOwA9ACsANgAmAGIAHgAuACgAJwAXAC0AGgAjAB8ALwAUACkAEgAeAAkAGwARABkAFgA5ACgALQArADcAFQApABAAHgAiABAAGgAeABMAGAUhBe8BFxREN8sF2wC5AK5HAW8ArQkDzQCuhzc3NzcBP68NEfMABQdHBuw5BV8FYAA9MzkI9r4ZBg7QyQAWA9CeOwLNCjcCjqkChuA/lm+RAsXTAoP6ASfnEQDytQFJAjWVCkeXAOsA6godAB/cwdAUE0WlBCN/AQUCQRjFD/MRBjHxDQSJbw0jBzUAswBxme+tnIcAYwabAysG8QAjAEMMmxcDqgPKQyDXCMMxA7kUQwD3NXOrAKmFIAAfBC0D3x4BJQDBGdUFAhEgVD8JnwmQJiNWYUzrg0oAGwAUAB0AFnNcACkAFgBP9h3gPfsDOWDKneY2ChglX1UDYD30ABsAFAAdABZzIGRAnwDD8wAjAEEMzRbDqgMB2sAFYwXqAtCnAsS4AwpUJKRtFHsadUz9AMMVbwLpABM1NJEX0ZkCgYMBEyMAxRVvAukAEzUBUFAtmUwSAy4DBTER33EftQHfSwB5MxJ/AjkWKQLzL8E/cwBB6QH9LQDPDtO9ASNriQC5DQANAwCK21EFI91zHwCoL9kBqQcHBwcHKzUDowBvAQohPvU3fAQgHwCyAc8CKQMA5zMSezr7ULgFmDp/LzVQBgEGAi8FYQVgt8AFcTtlQhpCWEmfe5tmZ6IAExsDzQ8t+X8rBKtTAltbAn0jsy8Bl6utPWMDTR8Ei2kRANkDBrNHNysDBzECQWUAcwFpJ3kAiyUhAJ0BUb8AL3EfAbfNAz81KUsFWwF3YQZtAm0A+VEfAzEJDQBRSQCzAQBlAHsAM70GD/v3IZWHBwARKQAxALsjTwHZAeMPEzmXgIHwABIAGQA8AEUAQDt3gdvIEGcQZAkGTRFMdEIVEwK0D64L7REdDNkq09PgADSxB/MDWwfzA1sDWwfzB/MDWwfzA1sDWwNbA1scEvAi28gQZw9QBHUFlgWTBN4IiyZREYkHMAjaVBV0JhxPA00BBCMtSSQ7mzMTJUpMFE0LCAQ2SmyvfUADTzGzVP2QqgPTMlc5dAkGHnkSqAAyD3skNb1OhnpPcagKU0+2tYdJak5vAsY6sEAACikJm2/Dd1YGRRAfJ6kQ+ww3AbkBPw3xS9wE9QY/BM0fgRkdD9GVoAipLeEM8SbnLqWAXiP5KocF8Uv4POELUVFsD10LaQnnOmeBUgMlAREijwrhDT0IcRD3Cs1vDekRSQc9A9lJngCpBwULFR05FbkmFGKwCw05ewb/GvoLkyazEy17AAXXGiUGUQEtGwMA0y7rhbRaNVwgT2MGBwspI8sUrFAkDSlAu3hMGh8HGSWtApVDdEqLUToelyH6PEENai4XUYAH+TwJGVMLhTyiRq9FEhHWPpE9TCJNTDAEOYMsMyePCdMPiQy9fHYBXQklCbUMdRM1ERs3yQg9Bx0xlygnGQglRplgngT7owP3E9UDDwVDCUUHFwO5HDETMhUtBRGBKNsC9zbZLrcCk1aEARsFzw8pH+MQVEfkDu0InwJpA4cl7wAxFSUAGyKfCEdnAGOP3FMJLs8Iy2pwI3gDaxTrZRF3B5UOWwerHDcVwxzlcMxeD4YMKKezCV8BeQmdAWME5wgNNV+MpCBFZ1eLXBifIGVBQ14AAjUMaRWjRMGHfAKPD28SHwE5AXcHPQ0FAnsR8RFvEJkI74YINbkz/DopBFMhhyAVCisDU2zSCysm/Qz8bQGnEmYDEDRBd/Jnr2C6KBgBBx0yyUFkIfULlk/RDKAaxRhGVDIZ6AfDA/ca9yfuQVsGAwOnBxc6UTPyBMELbQiPCUMATQ6nGwfbGG4KdYzUATWPAbudA1uVhwJzkwY7Bw8Aaw+LBX3pACECqwinAAkA0wNbAD0CsQehAB0AiUUBQQMrMwEl6QKTA5cINc8BmTMB9y0EH8cMGQD7O25OAsO1AoBuZqYF4VwCkgJNOQFRKQQJUktVA7N15QDfAE8GF+NLARmvTs8e50cB43MvAMsA/wAJOQcJRQHRAfdxALsBYws1Caa3uQFR7S0AhwAZbwHbAo0A4QA5AIP1AVcAUQVd/QXXAlNNARU1HC9bZQG/AyMBNwERAH0Gz5GpzQsjBHEH1wIQHxXlAu8yB7kFAyLjE9FCyQK94lkAMhoKPAqrCqpgX2Q3CjV2PVQAEh+sPss/UgVVO1c7XDtXO1w7VztcO1c7XDtXO1wDm8Pmw+YKcF9JYe8Mqg3YRMw6TRPfYFVgNhPMLbsUxRXSJVoZQRrAJwkl6FUNDwgt12Y0CDA0eRfAAEMpbINFY4oeNApPHOtTlVT8LR8AtUumM7MNsBsZREQFS3XxYi4WEgomAmSFAmJGX1GzAV83JAKh+wJonAJmDQKfiDgfDwJmPwJmKgRyBIMDfxcDfpY5Cjl7GzmGOicnAmwhAjI6OA4CbcsCbbLzjgM3a0kvAWsA4gDlAE4JB5wMkQECD8YAEbkCdzMCdqZDAnlPRwJ4viFg30WyRvcCfEMCeswCfQ0CfPRIBEiBZygALxlJXEpfGRtK0ALRBQLQ0EsrA4hTA4fqRMmRNgLypV0HAwOyS9JMMSkH001QTbMCi0MCitzFHwshR2sJuwKOOwKOYESbhQKO3QKOYHxRuFM5AQ5S2FSJApP/ApMQAO0AIFUiVbNV1AosHymZijLleGpFPz0Cl6MC77ZYJawAXSkClpMCloCgAK1ZsFoNhVEAPwKWuQKWUlxIXNUCmc8CmWhczl0LHQKcnznGOqECnBoCn58CnryOACETNS4TAp31Ap6WALlBYThh8wKe1wKgcgGtAp6jIwKeUqljzGQrKS8CJ7MCJoICoP8CoFDbAqYzAqXSAqgDAIECp/ZogGi1AAdNaiBq1QKs5wKssgKtawKtBgJXIQJV4AKx5dsDH1JsmwKywRECsuwbbORtZ21MYwMl0QK2YD9DbpQDKUkCuGICuUsZArkue3A6cOUCvR0DLbYDMhUCvoxyBgMzdQK+HnMmc1MCw88CwwhzhnRPOUl05AM8qwEDPJ4DPcMCxYACxksCxhSNAshtVQLISALJUwLJMgJkoQLd1nh9ZXiyeSlL1AMYp2cGAmH4GfeVKHsPXpZevxUCz28Cz3AzT1fW9xejAMqxAs93AS3uA04Wfk8JAtwrAtuOAtJTA1JgA1NjAQUDVZCAjUMEzxrxZEl5A4LSg5EC2ssC2eKEFIRNp0ADhqkAMwNkEoZ1Xf0AWQLfaQLevHd7AuIz7RgB8zQrAfSfAfLWiwLr9wLpdH0DAur9AuroAP1LAb0C7o0C66CWrpcHAu5DA4XkmH1w5HGlAvMHAG0DjhqZlwL3FwORcgOSiwL3nAL53QL4apogmq+/O5siA52HAv7+AR8APZ8gAZ+3AwWRA6ZuA6bdANXJAwZuoYyiCQ0DDE0BEwEjB3EGZb1rCQC/BG/DFY8etxEAG3k9ACcDNxJRA42DAWcrJQCM8wAlAOanC6OVCLsGI6fJBgCvBRnDBvElRUYFFoAFcD9GSDNCKUK8X3kZX8QAls0FOgCQVCGbwTsuYDoZutcONxjOGJHJ/gVfBWAFXwVgBWsFYAVfBWAFXwVgBV8FYAVfBWBOHQjfjW8KCgoKbF7xMwTRA7kGN8PDAMMEr8MA70gxFroFTj5xPnhCR0K+X30/X/AAWBkzswCNBsxzzASm70aCRS4rDDMeLz49fnXfcsH5GcoscQFz13Y4HwVnBXLJycnACNdRYwgICAqEXoWTxgA7P4kACxbZBu21Kw0AjMsTAwkVAOVtJUUsJ1JCuULESUArXy9gPi9AKwnJRQYKTD9LPoA+iT54PnkCkULEUUpDX9NWV3JVEjQAc1w3A3IBE3YnX+g7QiMJb6MKaiszRCUuQrNCxDPMCcwEX9EWJzYREBEEBwIHKn6l33JCNVIfybPJtAltydPUCmhBZw/tEKsZAJOVJU1CLRuxbUHOQAo7P0s+eEJHHA8SJVRPdGM0NVrpvBoKhfUlM0JHHGUQUhEWO1xLSj8MO0ucNAqJIzVCRxv9EFsqKyA4OQgNj2nwZgp5ZNFgE2A1K3YHS2AhQQojJmC7DgpzGG1WYFUZCQYHZO9gHWCdYIVgu2BTYJlwFh8GvRbcXbG8YgtDHrMBwzPVyQonHQgkCyYBgQJ0Ajc4nVqIAwGSCsBPIgDsK3SWEtIVBa5N8gGjAo+kVwVIZwD/AEUSCDweX4ITrRQsJ8K3TwBXFDwEAB0TvzVcAtoTS20RIwDgVgZ9BBImYgA5AL4Coi8LFnezOkCnIQFjAY4KBAPh9RcGsgZSBsEAJctdsWIRu2kTkQstRw7DAcMBKgpPBGIGMDAwKCYnKTQaLg4AKRSVAFwCdl+YUZ0JdicFD3lPAdt1F9ZZKCGxuE3yBxkFVGcA/wBFEgiCBwAOLHQSjxOtQDg1z7deFRMAZ8QTAGtKb1ApIiPHADkAvgKiLy1DFtYCmBiDAlDDWNB0eo7fpaMO/aEVRRv0ATEQZBIODyMEAc8JQhCbDRgzFD4TAEMAu9YBCgCsAOkAm5I3ABwAYxvONnR+MhXJAxgKQyxL2+kkJhMbhQKDBMkSsvF0AD9BNQ6uQC7WqSQHwxEAEEIu1hkhAH2z4iQPwyJPHNWpdyYBRSpnJALzoBAEVPPsH20MxA0CCEQKRgAFyAtFAlMNwwjEDUQJRArELtapMg7DDZgJIw+TGukEIwvDFkMAqAtDEMMMBhioe+QAO3MMRAACrgnEBSPY9Q0FDnbSBoMAB8MSYxkSxAEJAPIJAAB8FWMOFtMc/HcXwxhDAC7DAvOowwAewwJdKDKHAAHDAALrFUQVwwAbwyvzpWMWv8wA/ABpAy++bcYDUKPD0KhDCwKmJ1MAAmMA5+UZwxAagwipBRL/eADfw6fDGOMCGsOjk3l6BwOpo4sAEsMOGxMAA5sAbcMOAAvDp0MJGkMDwgipnNIPAwfIqUMGAOGDAAPzABXDAAcDAAnDAGmTABrDAA7DChjDjnEWAwABYwAOcwAuUyYABsMAF8MIKQANUgC6wy4AA8MADqMq8wCyYgAcIwAB8wqpAAXOCx0V4wAHowBCwwEKAGnDAAuDAB3DAAjDCakABdIAbqcZ3QCZCCkABdIAAAFDAAfjAB2jCCkABqIACYMAGzMAbSMA5sOIAAhjAAhDABTDBAkpAAbSAOOTAAlDC6kOzPtnAAdDAG6kQFAATwAKwwwAA0MACbUDPwAHIwAZgwACE6cDAAojAApDAAoDp/MGwwAJIwADEwAQQwgAFEMAEXMAD5MADfMADcMAGRMOFiMAFUMAbqMWuwHDAMIAE0MLAGkzEgDhUwACQwAEWgAXgwUjAAbYABjDBSYBgzBaAEFNALcQBxUMegAwMngBrA0IZgJ0KxQHBREPd1N0ZzKRJwaIHAZqNT4DqQq8BwngAB4DAwt2AX56T1ocKQNXAh1GATQGC3tOxYNagkgAMQA5CQADAQEAWxLjAIOYNAEzAH7tFRk6TglSAF8NAAlYAQ+S1ACAQwQorQBiAN4dAJ1wPyeTANVzuQDX3AIeEMp9eyMgXiUAEdkBkJizKltbVVAaRMqRAAEAhyQ/SDEz6BmfVwB6ATEsOClKIRcDOF0E/832AFNt5AByAnkCRxGCOs94NjXdAwINGBonDBwPALW2AwICAgAAAAAAAAYDBQMDARrUAwAtAAAAAgEGBgYGBgYFBQUFBQUEBQYHCAkEBQUFBQQAAAICAAAAIgCNAJAAlT0A6gC7ANwApEQAwgCyAK0AqADuAKYA2gCjAOcBCAEDAMcAgQBiANIA1AEDAN4A8gCQAKkBMQDqAN8A3AsBCQ8yO9ra2tq8xuLT1tRJOB0BUgFcNU0BWgFpAWgBWwFMUUlLbhMBUxsNEAs6PhMOACcUKy0vMj5AQENDQ0RFFEYGJFdXV1dZWVhZL1pbXVxcI2NnZ2ZoZypsbnZ1eHh4eHh4enp6enp6enp6enp8fH18e2IARPIASQCaAHgAMgBm+ACOAFcAVwA3AnbvAIsABfj4AGQAk/IAnwBPAGIAZP//sACFAIUAaQBWALEAJAC2AIMCQAJDAPwA5wD+AP4A6AD/AOkA6QDoAOYALwJ7AVEBQAE+AVQBPgE+AT4BOQE4ATgBOAEcAVgXADEQCAEAUx8SHgsdHhYAjgCWAKYAUQBqIAIxAHYAbwCXAxUDJzIDIUlGTzEAkQJPAMcCVwKkAMAClgKWApYClgKWApYCiwKWApYClgKWApYClgKVApUCmAKgApcClgKWApQClAKUApQCkgKVAnUB1AKXAp8ClgKWApUeAIETBQD+DQOfAmECOh8BVBg9AuIZEjMbAU4/G1WZAXusRAFpYQEFA0FPAQYAmTEeIJdyADFoAHEANgCRA5zMk/C2jGINwjMWygIZCaXdfDILBCs5dAE7YnQBugDlhoiHhoiGiYqKhouOjIaNkI6Ij4qQipGGkoaThpSSlYaWhpeKmIaZhpqGm4aci52QnoqfhuIC4XTpAt90AIp0LHSoAIsAdHQEQwRABEIERQRDBEkERgRBBEcESQRIBEQERgRJAJ5udACrA490ALxuAQ10ANFZdHQA13QCFHQA/mJ0AP4BIQD+APwA/AD9APwDhGZ03ASMK23HAP4A/AD8AP0A/CR0dACRYnQA/gCRASEA/gCRAvQA/gCRA4RmdNwEjCttxyR0AP9idAEhAP4A/gD8APwA/QD8AP8A/AD8AP0A/AOEZnTcBIwrbcckdHQAkWJ0ASEA/gCRAP4AkQL0AP4AkQOEZnTcBIwrbcckdAJLAT50AlIBQXQCU8l0dAJfdHQDpgL0A6YDpgOnA6cDpwOnA4RmdNwEjCttxyR0dACRYnQBIQOmAJEDpgCRAvQDpgCRA4RmdNwEjCttxyR0BDh0AJEEOQCRDpU5dSgCADR03gV2CwArdAEFAM5iCnR0AF1iAAYcOgp0dACRCnQAXAEIwWZ0CnRmdHQAkWZ0CnRmdEXgAFF03gp0dEY0tlT2u3SOAQTwscwhjZZKrhYcBSfFp9XNbKiVDOD2b+cpe4/Z17mQnbtzzhaeQtE2GGj0IDNTjRUSyTxxw/RPHW/+vS7d1NfRt9z9QPZg4X7QFfhCnkvgNPIItOsC2eV6hPannZNHlZ9xrwZXIMOlu3jSoQSq78WEjwLjw1ELSlF1aBvfzwk5ZX7AUvQzjPQKbDuQ+sm4wNOp4A6AdVuRS0t1y/DZpg4R6m7FNjM9HgvW7Bi88zaMjOo6lM8wtBBdj8LP4ylv3zCXPhebMKJc066o9sF71oFW/8JXu86HJbwDID5lzw5GWLR/LhT0Qqnp2JQxNZNfcbLIzPy+YypqRm/lBmGmex+82+PisxUumSeJkALIT6rJezxMH+CTJmQtt5uwTVbL3ptmjDUQzlSIvWi8Tl7ng1NpuRn1Ng4n14Qc+3Iil7OwkvNWogLSPkn3pihIFytyIGmMhOe3n1tWsuMy9BdKyqF4Z3v2SgggTL9KVvMXPnCbRe+oOuFFP3HejBG/w9gvmfNYvg6JuWia2lcSSN1uIjBktzoIazOHPJZ7kKHPz8mRWVdW3lA8WGF9dQF6Bm673boov3BUWDU2JNcahR23GtfHKLOz/viZ+rYnZFaIznXO67CYEJ1fXuTRpZhYZkKe54xeoagkNGLs+NTZHE0rX45/XvQ2RGADX6vcAvdxIUBV27wxGm2zjZo4X3ILgAlrOFheuZ6wtsvaIj4yLY7qqawlliaIcrz2G+c3vscAnCkCuMzMmZvMfu9lLwTvfX+3cVSyPdN9ZwgDZhfjRgNJcLiJ67b9xx8JHswprbiE3v9UphotAPIgnXVIN5KmMc0piXhc6cChPnN+MRhG9adtdttQTTwSIpl8I4/j//d3sz1326qTBTpPRM/Hgh3kzqEXs8ZAk4ErQhNO8hzrQ0DLkWMA/N+91tn2MdOJnWC2FCZehkQrwzwbKOjhvZsbM95QoeL9skYyMf4srVPVJSgg7pOLUtr/n9eT99oe9nLtFRpjA9okV2Kj8h9k5HaC0oivRD8VyXkJ81tcd4fHNXPCfloIQasxsuO18/46dR2jgul/UIet2G0kRvnyONMKhHs6J26FEoqSqd+rfYjeEGwHWVDpX1fh1jBBcKGMqRepju9Y00mDVHC+Xdij/j44rKfvfjGinNs1jO/0F3jB83XCDINN/HB84axlP+3E/klktRo+vl3U/aiyMJbIodE1XSsDn6UAzIoMtUObY2+k/4gY/l+AkZJ5Sj2vQrkyLm3FoxjhDX+31UXBFf9XrAH31fFqoBmDEZvhvvpnZ87N+oZEu7U9O/nnk+QWj3x8uyoRbEnf+O5UMr9i0nHP38IF5AvzrBW8YWBUR0mIAzIvndQq9N3v/Jto3aPjPXUPl8ASdPPyAp7jENf8bk7VMM9ol9XGmlBmeDMuGqt+WzuL6CXAxXjIhCPM5vACchgMJ/8XBGLO/D1isVvGhwwHHr1DLaI5mn2Jr/b1pUD90uciDaS8cXNDzCWvNmT/PhQe5e8nTnnnkt8Ds/SIjibcum/fqDhKopxAY8AkSrPn+IGDEKOO+U3XOP6djFs2H5N9+orhOahiQk5KnEUWa+CzkVzhp8bMHRbg81qhjjXuIKbHjSLSIBKWqockGtKinY+z4/RdBUF6pcc3JmnlxVcNgrI4SEzKUZSwcD2QCyxzKve+gAmg6ZuSRkpPFa6mfThu7LJNu3H5K42uCpNvPAsoedolKV/LHe/eJ+BbaG5MG0NaSGVPRUmNFMFFSSpXEcXwbVh7UETOZZtoVNRGOIbbkig3McEtR68cG0RZAoJevWYo7Dg/lZ1CQzblWeUvVHmr8fY4Nqd9JJiH/zEX24mJviH60fAyFr0A3c4bC1j3yZU60VgJxXn8JgJXLUIsiBnmKmMYz+7yBQFBvqb2eYnuW59joZBf56/wXvWIR4R8wTmV80i1mZy+S4+BUES+hzjk0uXpC///z/IlqHZ1monzlXp8aCfhGKMti73FI1KbL1q6IKO4fuBuZ59gagjn5xU79muMpHXg6S+e+gDM/U9BKLHbl9l6o8czQKl4RUkJJiqftQG2i3BMg/TQlUYFkJDYBOOvAugYuzYSDnZbDDd/aSd9x0Oe6F+bJcHfl9+gp6L5/TgA+BdFFovbfCrQ40s5vMPw8866pNX8zyFGeFWdxIpPVp9Rg1UPOVFbFZrvaFq/YAzHQgqMWpahMYfqHpmwXfHL1/kpYmGuHFwT55mQu0dylfNuq2Oq0hTMCPwqfxnuBIPLXfci4Y1ANy+1CUipQxld/izVh16WyG2Q0CQQ9NqtAnx1HCHwDj7sYxOSB0wopZSnOzxQOcExmxrVTF2BkOthVpGfuhaGECfCJpJKpjnihY+xOT2QJxN61+9K6QSqtv2Shr82I3jgJrqBg0wELFZPjvHpvzTtaJnLK6Vb97Yn933koO/saN7fsjwNKzp4l2lJVx2orjCGzC/4ZL4zCver6aQYtC5sdoychuFE6ufOiog+VWi5UDkbmvmtah/3aArEBIi39s5ILUnlFLgilcGuz9CQshEY7fw2ouoILAYPVT/gyAIq3TFAIwVsl+ktkRz/qGfnCDGrm5gsl/l9QdvCWGsjPz3dU7XuqKfdUrr/6XIgjp4rey6AJBmCmUJMjITHVdFb5m1p+dLMCL8t55zD42cmftmLEJC0Da04YiRCVUBLLa8D071/N5UBNBXDh0LFsmhV/5B5ExOB4j3WVG/S3lfK5o+V6ELHvy6RR9n4ac+VsK4VE4yphPvV+kG9FegTBH4ZRXL2HytUHCduJazB/KykjfetYxOXTLws267aGOd+I+JhKP//+VnXmS90OD/jvLcVu0asyqcuYN1mSb6XTlCkqv1vigZPIYwNF/zpWcT1GR/6aEIRjkh0yhg4LXJfaGobYJTY4JI58KiAKgmmgAKWdl5nYCeLqavRJGQNuYuZtZFGx+IkI4w4NS2xwbetNMunOjBu/hmKCI/w7tfiiyUd//4rbTeWt4izBY8YvGIN6vyKYmP/8X8wHKCeN+WRcKM70+tXKNGyevU9H2Dg5BsljnTf8YbsJ1TmMs74Ce2XlHisleguhyeg44rQOHZuw/6HTkhnnurK2d62q6yS7210SsAIaR+jXMQA+svkrLpsUY+F30Uw89uOdGAR6vo4FIME0EfVVeHTu6eKicfhSqOeXJhbftcd08sWEnNUL1C9fnprTgd83IMut8onVUF0hvqzZfHduPjbjwEXIcoYmy+P6tcJZHmeOv6VrvEdkHDJecjHuHeWANe79VG662qTjA/HCvumVv3qL+LrOcpqGps2ZGwQdFJ7PU4iuyRlBrwfO+xnPyr47s2cXVbWzAyznDiBGjCM3ksxjjqM62GE9C8f5U38kB3VjtabKp/nRdvMESPGDG90bWRLAt1Qk5DyLuazRR1YzdC1c+hZXvAWV8xA72S4A8B67vjVhbba3MMop293FeEXpe7zItMWrJG/LOH9ByOXmYnNJfjmfuX9KbrpgLOba4nZ+fl8Gbdv/ihv+6wFGKHCYrVwmhFC0J3V2bn2tIB1wCc1CST3d3X2OyxhguXcs4sm679UngzofuSeBewMFJboIQHbUh/m2JhW2hG9DIvG2t7yZIzKBTz9wBtnNC+2pCRYhSIuQ1j8xsz5VvqnyUIthvuoyyu7fNIrg/KQUVmGQaqkqZk/Vx5b33/gsEs8yX7SC1J+NV4icz6bvIE7C5G6McBaI8rVg56q5QBJWxn/87Q1sPK4+sQa8fLU5gXo4paaq4cOcQ4wR0VBHPGjKh+UlPCbA1nLXyEUX45qZ8J7/Ln4FPJE2TdzD0Z8MLSNQiykMMmSyOCiFfy84Rq60emYB2vD09KjYwsoIpeDcBDTElBbXxND72yhd9pC/1CMid/5HUMvAL27OtcIJDzNKpRPNqPOpyt2aPGz9QWIs9hQ9LiX5s8m9hjTUu/f7MyIatjjd+tSfQ3ufZxPpmJhTaBtZtKLUcfOCUqADuO+QoH8B9v6U+P0HV1GLQmtoNFTb3s74ivZgjES0qfK+8RdGgBbcCMSy8eBvh98+et1KIFqSe1KQPyXULBMTsIYnysIwiZBJYdI20vseV+wuJkcqGemehKjaAb9L57xZm3g2zX0bZ2xk/fU+bCo7TlnbW7JuF1YdURo/2Gw7VclDG1W7LOtas2LX4upifZ/23rzpsnY/ALfRgrcWP5hYmV9VxVOQA1fZvp9F2UNU+7d7xRyVm5wiLp3/0dlV7vdw1PMiZrbDAYzIVqEjRY2YU03sJhPnlwIPcZUG5ltL6S8XCxU1eYS5cjr34veBmXAvy7yN4ZjArIG0dfD/5UpBNlX1ZPoxJOwyqRi3wQWtOzd4oNKh0LkoTm8cwqgIfKhqqGOhwo71I+zXnMemTv2B2AUzABWyFztGgGULjDDzWYwJUVBTjKCn5K2QGMK1CQT7SzziOjo+BhAmqBjzuc3xYym2eedGeOIRJVyTwDw37iCMe4g5Vbnsb5ZBdxOAnMT7HU4DHpxWGuQ7GeiY30Cpbvzss55+5Km1YsbD5ea3NI9QNYIXol5apgSu9dZ8f8xS5dtHpido5BclDuLWY4lhik0tbJa07yJhH0BOyEut/GRbYTS6RfiTYWGMCkNpfSHi7HvdiTglEVHKZXaVhezH4kkXiIvKopYAlPusftpE4a5IZwvw1x/eLvoDIh/zpo9FiQInsTb2SAkKHV42XYBjpJDg4374XiVb3ws4qM0s9eSQ5HzsMU4OZJKuopFjBM+dAZEl8RUMx5uU2N486Kr141tVsGQfGjORYMCJAMsxELeNT4RmWjRcpdTGBwcx6XN9drWqPmJzcrGrH4+DRc7+n1w3kPZwu0BkNr6hQrqgo7JTB9A5kdJ/H7P4cWBMwsmuixAzJB3yrQpnGIq90lxAXLzDCdn1LPibsRt7rHNjgQBklRgPZ8vTbjXdgXrTWQsK5MdrXXQVPp0Rinq3frzZKJ0qD6Qhc40VzAraUXlob1gvkhK3vpmHgI6FRlQZNx6eRqkp0zy4AQlX813fAPtL3jMRaitGFFjo0zmErloC+h+YYdVQ6k4F/epxAoF0BmqEoKNTt6j4vQZNQ2BoqF9Vj53TOIoNmDiu9Xp15RkIgQIGcoLpfoIbenzpGUAtqFJp5W+LLnx38jHeECTJ/navKY1NWfN0sY1T8/pB8kIH3DU3DX+u6W3YwpypBMYOhbSxGjq84RZ84fWJow8pyHqn4S/9J15EcCMsXqrfwyd9mhiu3+rEo9pPpoJkdZqHjra4NvzFwuThNKy6hao/SlLw3ZADUcUp3w3SRVfW2rhl80zOgTYnKE0Hs2qp1J6H3xqPqIkvUDRMFDYyRbsFI3M9MEyovPk8rlw7/0a81cDVLmBsR2ze2pBuKb23fbeZC0uXoIvDppfTwIDxk1Oq2dGesGc+oJXWJLGkOha3CX+DUnzgAp9HGH9RsPZN63Hn4RMA5eSVhPHO+9RcRb/IOgtW31V1Q5IPGtoxPjC+MEJbVlIMYADd9aHYWUIQKopuPOHmoqSkubnAKnzgKHqgIOfW5RdAgotN6BN+O2ZYHkuemLnvQ8U9THVrS1RtLmKbcC7PeeDsYznvqzeg6VCNwmr0Yyx1wnLjyT84BZz3EJyCptD3yeueAyDWIs0L2qs/VQ3HUyqfrja0V1LdDzqAikeWuV4sc7RLIB69jEIBjCkyZedoUHqCrOvShVzyd73OdrJW0hPOuQv2qOoHDc9xVb6Yu6uq3Xqp2ZaH46A7lzevbxQEmfrzvAYSJuZ4WDk1Hz3QX1LVdiUK0EvlAGAYlG3Md30r7dcPN63yqBCIj25prpvZP0nI4+EgWoFG95V596CurXpKRBGRjQlHCvy5Ib/iW8nZJWwrET3mgd6mEhfP4KCuaLjopWs7h+MdXFdIv8dHQJgg1xi1eYqB0uDYjxwVmri0Sv5XKut/onqapC+FQiC2C1lvYJ9MVco6yDYsS3AANUfMtvtbYI2hfwZatiSsnoUeMZd34GVjkMMKA+XnjJpXgRW2SHTZplVowPmJsvXy6w3cfO1AK2dvtZEKTkC/TY9LFiKHCG0DnrMQdGm2lzlBHM9iEYynH2UcVMhUEjsc0oDBTgo2ZSQ1gzkAHeWeBXYFjYLuuf8yzTCy7/RFR81WDjXMbq2BOH5dURnxo6oivmxL3cKzKInlZkD31nvpHB9Kk7GfcfE1t+1V64b9LtgeJGlpRFxQCAqWJ5DoY77ski8gsOEOr2uywZaoO/NGa0X0y1pNQHBi3b2SUGNpcZxDT7rLbBf1FSnQ8guxGW3W+36BW0gBje4DOz6Ba6SVk0xiKgt+q2JOFyr4SYfnu+Ic1QZYIuwHBrgzr6UvOcSCzPTOo7D6IC4ISeS7zkl4h+2VoeHpnG/uWR3+ysNgPcOIXQbv0n4mr3BwQcdKJxgPSeyuP/z1Jjg4e9nUvoXegqQVIE30EHx5GHv+FAVUNTowYDJgyFhf5IvlYmEqRif6+WN1MkEJmDcQITx9FX23a4mxy1AQRsOHO/+eImX9l8EMJI3oPWzVXxSOeHU1dUWYr2uAA7AMb+vAEZSbU3qob9ibCyXeypEMpZ6863o6QPqlqGHZkuWABSTVNd4cOh9hv3qEpSx2Zy/DJMP6cItEmiBJ5PFqQnDEIt3NrA3COlOSgz43D7gpNFNJ5MBh4oFzhDPiglC2ypsNU4ISywY2erkyb1NC3Qh/IfWj0eDgZI4/ln8WPfBsT3meTjq1Uqt1E7Zl/qftqkx6aM9KueMCekSnMrcHj1CqTWWzEzPsZGcDe3Ue4Ws+XFYVxNbOFF8ezkvQGR6ZOtOLU2lQEnMBStx47vE6Pb7AYMBRj2OOfZXfisjJnpTfSNjo6sZ6qSvNxZNmDeS7Gk3yYyCk1HtKN2UnhMIjOXUzAqDv90lx9O/q/AT1ZMnit5XQe9wmQxnE/WSH0CqZ9/2Hy+Sfmpeg8RwsHI5Z8kC8H293m/LHVVM/BA7HaTJYg5Enk7M/xWpq0192ACfBai2LA/qrCjCr6Dh1BIMzMXINBmX96MJ5Hn2nxln/RXPFhwHxUmSV0EV2V0jm86/dxxuYSU1W7sVkEbN9EzkG0QFwPhyHKyb3t+Fj5WoUUTErcazE/N6EW6Lvp0d//SDPj7EV9UdJN+Amnf3Wwk3A0SlJ9Z00yvXZ7n3z70G47Hfsow8Wq1JXcfwnA+Yxa5mFsgV464KKP4T31wqIgzFPd3eCe3j5ory5fBF2hgCFyVFrLzI9eetNXvM7oQqyFgDo4CTp/hDV9NMX9JDHQ/nyHTLvZLNLF6ftn2OxjGm8+PqOwhxnPHWipkE/8wbtyri80Sr7pMNkQGMfo4ZYK9OcCC4ESVFFbLMIvlxSoRqWie0wxqnLfcLSXMSpMMQEJYDVObYsXIQNv4TGNwjq1kvT1UOkicTrG3IaBZ3XdScS3u8sgeZPVpOLkbiF940FjbCeNRINNvDbd01EPBrTCPpm12m43ze1bBB59Ia6Ovhnur/Nvx3IxwSWol+3H2qfCJR8df6aQf4v6WiONxkK+IqT4pKQrZK/LplgDI/PJZbOep8dtbV7oCr6CgfpWa8NczOkPx81iSHbsNhVSJBOtrLIMrL31LK9TqHqAbAHe0RLmmV806kRLDLNEhUEJfm9u0sxpkL93Zgd6rw+tqBfTMi59xqXHLXSHwSbSBl0EK0+loECOPtrl+/nsaFe197di4yUgoe4jKoAJDXc6DGDjrQOoFDWZJ9HXwt8xDrQP+7aRwWKWI1GF8s8O4KzxWBBcwnl3vnl1Oez3oh6Ea1vjR7/z7DDTrFtqU2W/KAEzAuXDNZ7MY73MF216dzdSbWmUp4lcm7keJfWaMHgut9x5C9mj66Z0lJ+yhsjVvyiWrfk1lzPOTdhG15Y7gQlXtacvI7qv/XNSscDwqkgwHT/gUsD5yB7LdRRvJxQGYINn9hTpodKFVSTPrtGvyQw+HlRFXIkodErAGu9Iy1YpfSPc3jkFh5CX3lPxv7aqjE/JAfTIpEjGb/H7MO0e2vsViSW1qa/Lmi4/n4DEI3g7lYrcanspDfEpKkdV1OjSLOy0BCUqVoECaB55vs06rXl4jqmLsPsFM/7vYJ0vrBhDCm/00A/H81l1uekJ/6Lml3Hb9+NKiLqATJmDpyzfYZFHumEjC662L0Bwkxi7E9U4cQA0XMVDuMYAIeLMPgQaMVOd8fmt5SflFIfuBoszeAw7ow5gXPE2Y/yBc/7jExARUf/BxIHQBF5Sn3i61w4z5xJdCyO1F1X3+3ax+JSvMeZ7S6QSKp1Fp/sjYz6Z+VgCZzibGeEoujryfMulH7Rai5kAft9ebcW50DyJr2uo2z97mTWIu45YsSnNSMrrNUuG1XsYBtD9TDYzQffKB87vWbkM4EbPAFgoBV4GQS+vtFDUqOFAoi1nTtmIOvg38N4hT2Sn8r8clmBCXspBlMBYTnrqFJGBT3wZOzAyJDre9dHH7+x7qaaKDOB4UQALD5ecS0DE4obubQEiuJZ0EpBVpLuYcce8Aa4PYd/V4DLDAJBYKQPCWTcrEaZ5HYbJi11Gd6hjGom1ii18VHYnG28NKpkz2UKVPxlhYSp8uZr367iOmoy7zsxehW9wzcy2zG0a80PBMCRQMb32hnaHeOR8fnNDzZhaNYhkOdDsBUZ3loDMa1YP0uS0cjUP3b/6DBlqmZOeNABDsLl5BI5QJups8uxAuWJdkUB/pO6Zax6tsg7fN5mjjDgMGngO+DPcKqiHIDbFIGudxtPTIyDi9SFMKBDcfdGQRv41q1AqmxgkVfJMnP8w/Bc7N9/TR6C7mGObFqFkIEom8sKi2xYqJLTCHK7cxzaZvqODo22c3wisBCP4HeAgcRbNPAsBkNRhSmD48dHupdBRw4mIvtS5oeF6zeT1KMCyhMnmhpkFAGWnGscoNkwvQ8ZM5lE/vgTHFYL99OuNxdFBxTEDd5v2qLR8y9WkXsWgG6kZNndFG+pO/UAkOCipqIhL3hq7cRSdrCq7YhUsTocEcnaFa6nVkhnSeRYUA1YO0z5itF9Sly3VlxYDw239TJJH6f3EUfYO5lb7bcFcz8Bp7Oo8QmnsUHOz/fagVUBtKEw1iT88j+aKkv8cscKNkMxjYr8344D1kFoZ7/td1W6LCNYN594301tUGRmFjAzeRg5vyoM1F6+bJZ/Q54jN/k8SFd3DxPTYaAUsivsBfgTn7Mx8H2SpPt4GOdYRnEJOH6jHM2p6SgB0gzIRq6fHxGMmSmqaPCmlfwxiuloaVIitLGN8wie2CDWhkzLoCJcODh7KIOAqbHEvXdUxaS4TTTs07Clzj/6GmVs9kiZDerMxEnhUB6QQPlcfqkG9882RqHoLiHGBoHfQuXIsAG8GTAtao2KVwRnvvam8jo1e312GQAKWEa4sUVEAMG4G6ckcONDwRcg1e2D3+ohXgY4UAWF8wHKQMrSnzCgfFpsxh+aHXMGtPQroQasRY4U6UdG0rz1Vjbka0MekOGRZQEvqQFlxseFor8zWFgHek3v29+WqN6gaK5gZOTOMZzpQIC1201LkMCXild3vWXSc5UX9xcFYfbRPzGFa1FDcPfPB/jUEq/FeGt419CI3YmBlVoHsa4KdcwQP5ZSwHHhFJ7/Ph/Rap/4vmG91eDwPP0lDfCDRCLszTqfzM71xpmiKi2HwS4WlqvGNwtvwF5Dqpn6KTq8ax00UMPkxDcZrEEEsIvHiUXXEphdb4GB4FymlPwBz4Gperqq5pW7TQ6/yNRhW8VT5NhuP0udlxo4gILq5ZxAZk8ZGh3g4CqxJlPKY7AQxupfUcVpWT5VItp1+30UqoyP4wWsRo3olRRgkWZZ2ZN6VC3OZFeXB8NbnUrSdikNptD1QiGuKkr8EmSR/AK9Rw+FF3s5uwuPbvHGiPeFOViltMK7AUaOsq9+x9cndk3iJEE5LKZRlWJbKOZweROzmPNVPkjE3K/TyA57Rs68TkZ3MR8akKpm7cFjnjPd/DdkWjgYoKHSr5Wu5ssoBYU4acRs5g2DHxUmdq8VXOXRbunD8QN0LhgkssgahcdoYsNvuXGUK/KXD/7oFb+VGdhqIn02veuM5bLudJOc2Ky0GMaG4W/xWBxIJcL7yliJOXOpx0AkBqUgzlDczmLT4iILXDxxtRR1oZa2JWFgiAb43obrJnG/TZC2KSK2wqOzRZTXavZZFMb1f3bXvVaNaK828w9TO610gk8JNf3gMfETzXXsbcvRGCG9JWQZ6+cDPqc4466Yo2RcKH+PILeKOqtnlbInR3MmBeGG3FH10yzkybuqEC2HSQwpA0An7d9+73BkDUTm30bZmoP/RGbgFN+GrCOfADgqr0WbI1a1okpFms8iHYw9hm0zUvlEMivBRxModrbJJ+9/p3jUdQQ9BCtQdxnOGrT5dzRUmw0593/mbRSdBg0nRvRZM5/E16m7ZHmDEtWhwvfdZCZ8J8M12W0yRMszXamWfQTwIZ4ayYktrnscQuWr8idp3PjT2eF/jmtdhIfcpMnb+IfZY2FebW6UY/AK3jP4u3Tu4zE4qlnQgLFbM19EBIsNf7KhjdbqQ/D6yiDb+NlEi2SKD+ivXVUK8ib0oBo366gXkR8ZxGjpJIDcEgZPa9TcYe0TIbiPl/rPUQDu3XBJ9X/GNq3FAUsKsll57DzaGMrjcT+gctp+9MLYXCq+sqP81eVQ0r9lt+gcQfZbACRbEjvlMskztZG8gbC8Qn9tt26Q7y7nDrbZq/LEz7kR6Jc6pg3N9rVX8Y5MJrGlML9p9lU4jbTkKqCveeZUJjHB03m2KRKR2TytoFkTXOLg7keU1s1lrPMQJpoOKLuAAC+y1HlJucU6ysB5hsXhvSPPLq5J7JtnqHKZ4vYjC4Vy8153QY+6780xDuGARsGbOs1WqzH0QS765rnSKEbbKlkO8oI/VDwUd0is13tKpqILu1mDJFNy/iJAWcvDgjxvusIT+PGz3ST/J9r9Mtfd0jpaGeiLYIqXc7DiHSS8TcjFVksi66PEkxW1z6ujbLLUGNNYnzOWpH8BZGK4bCK7iR+MbIv8ncDAz1u4StN3vTTzewr9IQjk9wxFxn+6N1ddKs0vffJiS08N3a4G1SVrlZ97Q/M+8G9fe5AP6d9/Qq4WRnORVhofPIKEdCr3llspUfE0oKIIYoByBRPh+bX1HLS3JWGJRhIvE1aW4NTd8ePi4Z+kXb+Z8snYfSNcqijhAgVsx4RCM54cXUiYkjeBmmC4ajOHrChoELscJJC7+9jjMjw5BagZKlgRMiSNYz7h7vvZIoQqbtQmspc0cUk1G/73iXtSpROl5wtLgQi0mW2Ex8i3WULhcggx6E1LMVHUsdc9GHI1PH3U2Ko0PyGdn9KdVOLm7FPBui0i9a0HpA60MsewVE4z8CAt5d401Gv6zXlIT5Ybit1VIA0FCs7wtvYreru1fUyW3oLAZ/+aTnZrOcYRNVA8spoRtlRoWflsRClFcgzkqiHOrf0/SVw+EpVaFlJ0g4Kxq1MMOmiQdpMNpte8lMMQqm6cIFXlnGbfJllysKDi+0JJMotkqgIxOSQgU9dn/lWkeVf8nUm3iwX2Nl3WDw9i6AUK3vBAbZZrcJpDQ/N64AVwjT07Jef30GSSmtNu2WlW7YoyW2FlWfZFQUwk867EdLYKk9VG6JgEnBiBxkY7LMo4YLQJJlAo9l/oTvJkSARDF/XtyAzM8O2t3eT/iXa6wDN3WewNmQHdPfsxChU/KtLG2Mn8i4ZqKdSlIaBZadxJmRzVS/o4yA65RTSViq60oa395Lqw0pzY4SipwE0SXXsKV+GZraGSkr/RW08wPRvqvSUkYBMA9lPx4m24az+IHmCbXA+0faxTRE9wuGeO06DIXa6QlKJ3puIyiuAVfPr736vzo2pBirS+Vxel3TMm3JKhz9o2ZoRvaFVpIkykb0Hcm4oHFBMcNSNj7/4GJt43ogonY2Vg4nsDQIWxAcorpXACzgBqQPjYsE/VUpXpwNManEru4NwMCFPkXvMoqvoeLN3qyu/N1eWEHttMD65v19l/0kH2mR35iv/FI+yjoHJ9gPMz67af3Mq/BoWXqu3rphiWMXVkmnPSEkpGpUI2h1MThideGFEOK6YZHPwYzMBvpNC7+ZHxPb7epfefGyIB4JzO9DTNEYnDLVVHdQyvOEVefrk6Uv5kTQYVYWWdqrdcIl7yljwwIWdfQ/y+2QB3eR/qxYObuYyB4gTbo2in4PzarU1sO9nETkmj9/AoxDA+JM3GMqQtJR4jtduHtnoCLxd1gQUscHRB/MoRYIEsP2pDZ9KvHgtlk1iTbWWbHhohwFEYX7y51fUV2nuUmnoUcqnWIQAAgl9LTVX+Bc0QGNEhChxHR4YjfE51PUdGfsSFE6ck7BL3/hTf9jLq4G1IafINxOLKeAtO7quulYvH5YOBc+zX7CrMgWnW47/jfRsWnJjYYoE7xMfWV2HN2iyIqLI",mO=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),yO=4;function OT(Y){let J=0;function Q(){return Y[J++]<<8|Y[J++]}let X=Q(),q=1,G=[0,1];for(let C=1;C<X;C++)G.push(q+=Q());let $=Q(),W=J;J+=$;let j=0,K=0;function z(){if(j==0)K=K<<8|Y[J++],j=8;return K>>--j&1}let M=31,N=2**M,O=N>>>1,D=O>>1,U=N-1,A=0;for(let C=0;C<M;C++)A=A<<1|z();let w=[],v=0,R=N;while(!0){let C=Math.floor(((A-v+1)*q-1)/R),S=0,Z=X;while(Z-S>1){let h=S+Z>>>1;if(C<G[h])Z=h;else S=h}if(S==0)break;w.push(S);let r=v+Math.floor(R*G[S]/q),c=v+Math.floor(R*G[S+1]/q)-1;while(((r^c)&O)==0)A=A<<1&U|z(),r=r<<1&U,c=c<<1&U|1;while(r&~c&D)A=A&O|A<<1&U>>>1|z(),r=r<<1^O,c=(c^O)<<1|O|1;v=r,R=1+c-r}let E=X-4;return w.map((C)=>{switch(C-E){case 3:return E+65792+(Y[W++]<<16|Y[W++]<<8|Y[W++]);case 2:return E+256+(Y[W++]<<8|Y[W++]);case 1:return E+Y[W++];default:return C-1}})}function DT(Y){let J=0;return()=>Y[J++]}function GL(Y){return DT(OT(UT(Y)))}function UT(Y){let J=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((q,G)=>J[q.charCodeAt(0)]=G);let Q=Y.length,X=new Uint8Array(6*Q>>3);for(let q=0,G=0,$=0,W=0;q<Q;q++)if(W=W<<6|J[Y.charCodeAt(q)],$+=6,$>=8)X[G++]=W>>($-=8);return X}function HT(Y){return Y&1?~Y>>1:Y>>1}function BT(Y,J){let Q=Array(Y);for(let X=0,q=0;X<Y;X++)Q[X]=q+=HT(J());return Q}function BX(Y,J=0){let Q=[];while(!0){let X=Y(),q=Y();if(!q)break;J+=X;for(let G=0;G<q;G++)Q.push(J+G);J+=q+1}return Q}function $L(Y){return RX(()=>{let J=BX(Y);if(J.length)return J})}function WL(Y){let J=[];while(!0){let Q=Y();if(Q==0)break;J.push(RT(Q,Y))}while(!0){let Q=Y()-1;if(Q<0)break;J.push(VT(Q,Y))}return J.flat()}function RX(Y){let J=[];while(!0){let Q=Y(J.length);if(!Q)break;J.push(Q)}return J}function jL(Y,J,Q){let X=Array(Y).fill().map(()=>[]);for(let q=0;q<J;q++)BT(Y,Q).forEach((G,$)=>X[$].push(G));return X}function RT(Y,J){let Q=1+J(),X=J(),q=RX(J);return jL(q.length,1+Y,J).flatMap((G,$)=>{let[W,...j]=G;return Array(q[$]).fill().map((K,z)=>{let M=z*X;return[W+z*Q,j.map((N)=>N+M)]})})}function VT(Y,J){let Q=1+J();return jL(Q,1+Y,J).map((X)=>[X[0],X.slice(1)])}function LT(Y){let J=[],Q=BX(Y);return q(X([]),[]),J;function X(G){let $=Y(),W=RX(()=>{let j=BX(Y).map((K)=>Q[K]);if(j.length)return X(j)});return{S:$,B:W,Q:G}}function q({S:G,B:$},W,j){if(G&4&&j===W[W.length-1])return;if(G&2)j=W[W.length-1];if(G&1)J.push(W);for(let K of $)for(let z of K.Q)q(K,[...W,z],j)}}function ET(Y){return Y.toString(16).toUpperCase().padStart(2,"0")}function KL(Y){return`{${ET(Y)}}`}function wT(Y){let J=[];for(let Q=0,X=Y.length;Q<X;){let q=Y.codePointAt(Q);Q+=q<65536?1:2,J.push(q)}return J}function qq(Y){let J=Y.length;if(J<4096)return String.fromCodePoint(...Y);let Q=[];for(let X=0;X<J;)Q.push(String.fromCodePoint(...Y.slice(X,X+=4096)));return Q.join("")}function AT(Y,J){let Q=Y.length,X=Q-J.length;for(let q=0;X==0&&q<Q;q++)X=Y[q]-J[q];return X}var CT="AEUDTAHBCFQATQDRADAAcgAgADQAFAAsABQAHwAOACQADQARAAoAFwAHABIACAAPAAUACwAFAAwABAAQAAMABwAEAAoABQAIAAIACgABAAQAFAALAAIACwABAAIAAQAHAAMAAwAEAAsADAAMAAwACgANAA0AAwAKAAkABAAdAAYAZwDSAdsDJgC0CkMB8xhZAqfoC190UGcThgBurwf7PT09Pb09AjgJum8OjDllxHYUKXAPxzq6tABAxgK8ysUvWAgMPT09PT09PSs6LT2HcgWXWwFLoSMEEEl5RFVMKvO0XQ8ExDdJMnIgsj26PTQyy8FfEQ8AY8IPAGcEbwRwBHEEcgRzBHQEdQR2BHcEeAR6BHsEfAR+BIAEgfndBQoBYgULAWIFDAFiBNcE2ATZBRAFEQUvBdALFAsVDPcNBw13DYcOMA4xDjMB4BllHI0B2grbAMDpHLkQ7QHVAPRNQQFnGRUEg0yEB2uaJF8AJpIBpob5AERSMAKNoAXqaQLUBMCzEiACnwRZEkkVsS7tANAsBG0RuAQLEPABv9HICTUBXigPZwRBApMDOwAamhtaABqEAY8KvKx3LQ4ArAB8UhwEBAVSagD8AEFZADkBIadVj2UMUgx5Il4ANQC9AxIB1BlbEPMAs30CGxlXAhwZKQIECBc6EbsCoxngzv7UzRQA8M0BawL6ZwkN7wABAD33OQRcsgLJCjMCjqUChtw/km+NAsXPAoP2BT84PwURAK0RAvptb6cApQS/OMMey5HJS84UdxpxTPkCogVFITaTOwERAK5pAvkNBOVyA7q3BKlOJSALAgUIBRcEdASpBXqzABXFSWZOawLCOqw//AolCZdvv3dSBkEQGyelEPcMMwG1ATsN7UvYBPEGOwTJH30ZGQ/NlZwIpS3dDO0m4y6hgFoj9SqDBe1L9DzdC01RaA9ZC2UJ4zpjgU4DIQENIosK3Q05CG0Q8wrJaw3lEUUHOQPVSZoApQcBCxEdNRW1JhBirAsJOXcG+xr2C48mrxMpevwF0xohBk0BKRr/AM8u54WwWjFcHE9fBgMLJSPHFKhQIA0lQLd4SBobBxUlqQKRQ3BKh1E2HpMh9jw9DWYuE1F8B/U8BRlPC4E8nkarRQ4R0j6NPUgiSUwsBDV/LC8niwnPD4UMuXxyAVkJIQmxDHETMREXN8UIOQcZLZckJxUIIUaVYJoE958D8xPRAwsFPwlBBxMDtRwtEy4VKQUNgSTXAvM21S6zAo9WgAEXBcsPJR/fEFBH4A7pCJsCZQODJesALRUhABcimwhDYwBfj9hTBS7LCMdqbCN0A2cU52ERcweRDlcHpxwzFb8c4XDIXguGCCijrwlbAXUJmQFfBOMICTVbjKAgQWdTi1gYmyBhQT9d/AIxDGUVn0S9h3gCiw9rEhsBNQFzBzkNAQJ3Ee0RaxCVCOuGBDW1M/g6JQRPIYMgEQonA09szgsnJvkM+GkBoxJiAww0PXfuZ6tgtiQX/QcZMsVBYCHxC5JPzQycGsEYQlQuGeQHvwPzGvMn6kFXBf8DowMTOk0z7gS9C2kIiwk/AEkOoxcH1xhqCnGM0AExiwG3mQNXkYMCb48GNwcLAGcLhwV55QAdAqcIowAFAM8DVwA5Aq0HnQAZAIVBAT0DJy8BIeUCjwOTCDHLAZUvAfMpBBvDDBUA9zduSgLDsQKAamaiBd1YAo4CSTUBTSUEBU5HUQOvceEA2wBLBhPfRwEVq0rLGuNDAd9vKwDHAPsABTUHBUEBzQHzbQC3AV8LMQmis7UBTekpAIMAFWsB1wKJAN0ANQB/8QFTAE0FWfkF0wJPSQERMRgrV2EBuwMfATMBDQB5BsuNpckHHwRtB9MCEBsV4QLvLge1AQMi3xPNQsUCvd5VoWACZIECYkJbTa9bNyACofcCaJgCZgkCn4Q4GwsCZjsCZiYEbgR/A38TA36SOQY5dxc5gjojIwJsHQIyNjgKAm3HAm2u74ozZ0UrAWcA3gDhAEoFB5gMjQD+C8IADbUCdy8CdqI/AnlLQwJ4uh1c20WuRtcCfD8CesgCfQkCfPAFWQUgSABIfWMkAoFtAoAAAoAFAn+uSVhKWxUXSswC0QEC0MxLJwOITwOH5kTFkTIC8qFdAwMDrkvOTC0lA89NTE2vAos/AorYwRsHHUNnBbcCjjcCjlxAl4ECjtkCjlx4UbRTNQpS1FSFApP7ApMMAOkAHFUeVa9V0AYsGymVhjLheGZFOzkCl58C77JYIagAWSUClo8ClnycAKlZrFoJgU0AOwKWtQKWTlxEXNECmcsCmWRcyl0HGQKcmznCOp0CnBYCn5sCnriKAB0PMSoPAp3xAp6SALU9YTRh7wKe0wKgbgGpAp6fHwKeTqVjyGQnJSsCJ68CJn4CoPsCoEwCot0CocQCpi8Cpc4Cp/8AfQKn8mh8aLEAA0lqHGrRAqzjAqyuAq1nAq0CAlcdAlXcArHh1wMfTmyXArK9DQKy6Bds4G1jbUhfAyXNArZcOz9ukAMpRQK4XgK5RxUCuSp3cDZw4QK9GQK72nCWAzIRAr6IcgIDM3ECvhpzInNPAsPLAsMEc4J0SzVFdOADPKcDPJoDPb8CxXwCxkcCxhCJAshpUQLIRALJTwLJLgJknQLd0nh5YXiueSVL0AMYo2cCAmH0GfOVJHsLXpJeuxECz2sCz2wvS1PS8xOfAMatAs9zASnqA04SfksFAtwnAtuKAtJPA1JcA1NfAQEDVYyAiT8AyxbtYEWCHILTgs6DjQLaxwLZ3oQQhEmnPAOGpQAvA2QOhnFZ+QBVAt9lAt64c3cC4i/tFAHzMCcB9JsB8tKHAuvzAulweQLq+QLq5AD5RwG5Au6JAuuclqqXAwLuPwOF4Jh5cOBxoQLzAwBpA44WmZMC9xMDkW4DkocC95gC+dkC+GaaHJqruzebHgOdgwL++gEbADmfHJ+zAwWNA6ZqA6bZANHFAwZqoYiiBQkDDEkCwAA/AwDhQRdTARHzA2sHl2cFAJMtK7evvdsBiZkUfxEEOQH7KQUhDp0JnwCS/SlXxQL3AZ0AtwW5AG8LbUEuFCaNLgFDAYD8AbUmAHUDDgRtACwCFgyhAAAKAj0CagPdA34EkQEgRQUhfAoABQBEABMANhICdwEABdUDa+8KxQIA9wqfJ7+xt+UBkSFBQgHpFH8RNMCJAAQAGwBaAkUChIsABjpTOpSNbQC4Oo860ACNOME63AClAOgAywE6gTo7Ofw5+Tt2iTpbO56JOm85GAFWATMBbAUvNV01njWtNWY1dTW2NcU1gjWRNdI14TWeNa017jX9NbI1wTYCNhE1xjXVNhY2JzXeNe02LjY9Ni41LSE2OjY9Njw2yTcIBJA8VzY4Nt03IDcPNsogN4k3MAoEsDxnNiQ3GTdsOo03IULUQwdC4EMLHA8PCZsobShRVQYA6X8A6bABFCnXAukBowC9BbcAbwNzBL8MDAMMAQgDAAkKCwsLCQoGBAVVBI/DvwDz9b29kaUCb0QtsRTNLt4eGBcSHAMZFhYZEhYEARAEBUEcQRxBHEEcQRxBHEEaQRxBHEFCSTxBPElISUhBNkM2QTYbNklISVmBVIgBFLWZAu0BhQCjBcEAbykBvwGJAaQcEZ0ePCklMAAhMvAIMAL54gC7Bm8EescjzQMpARQpKgDUABavAj626xQAJP0A3etzuf4NNRA7efy2Z9NQrCnC0OSyANz5BBIbJ5IFDR6miIavYS6tprjjmuKebxm5C74Q225X1pkaYYPb6f1DK4k3xMEBb9S2WMjEibTNWhsRJIA+vwNVEiXTE5iXs/wezV66oFLfp9NZGYW+Gk19J2+bCT6Ye2w6LDYdgzKMUabk595eLBCXANz9HUpWbATq9vqXVx9XDg+Pc9Xp4+bsS005SVM/BJBM4687WUuf+Uj9dEi8aDNaPxtpbDxcG1THTImUMZq4UCaaNYpsVqraNyKLJXDYsFZ/5jl7bLRtO88t7P3xZaAxhb5OdPMXqsSkp1WCieG8jXm1U99+blvLlXzPCS+M93VnJCiK+09LfaSaBAVBomyDgJua8dfUzR7ga34IvR2Nvj+A9heJ6lsl1KG4NkI1032Cnff1m1wof2B9oHJK4bi6JkEdSqeNeiuo6QoZZincoc73/TH9SXF8sCE7XyuYyW8WSgbGFCjPV0ihLKhdPs08Tx82fYAkLLc4I2wdl4apY7GU5lHRFzRWJep7Ww3wbeA3qmd59/86P4xuNaqDpygXt6M85glSBHOCGgJDnt+pN9bK7HApMguX6+06RZNjzVmcZJ+wcUrJ9//bpRNxNuKpNl9uFds+S9tdx7LaM5ZkIrPj6nIU9mnbFtVbs9s/uLgl8MVczAwet+iOEzzBlYW7RCMgE6gyNLeq6+1tIx4dpgZnd0DksJS5f+JNDpwwcPNXaaVspq1fbQajOrJgK0ofKtJ1Ne90L6VO4MOl5S886p7u6xo7OLjG8TGL+HU1JXGJgppg4nNbNJ5nlzSpuPYy21JUEcUA94PoFiZfjZue+QnyQ80ekOuZVkxx4g+cvhJfHgNl4hy1/a6+RKcKlar/J29y//EztlbVPHVUeQ1zX86eQVAjR/M3dA9w4W8LfaXp4EgM85wOWasli837PzVMOnsLzR+k3o75/lRPAJSE1xAKQzEi5v10ke+VBvRt1cwQRMd+U5mLCTGVd6XiZtgBG5cDi0w22GKcVNvHiu5LQbZEDVtz0onn7k5+heuKXVsZtSzilkLRAUmjMXEMB3J9YC50XBxPiz53SC+EhnPl9WsKCv92SM/OFFIMJZYfl0WW8tIO3UxYcwdMAj7FSmgrsZ2aAZO03BOhP1bNNZItyXYQFTpC3SG1VuPDqH9GkiCDmE+JwxyIVSO5siDErAOpEXFgjy6PQtOVDj+s6e1r8heWVvmZnTciuf4EiNZzCAd7SOMhXERIOlsHIMG399i9aLTy3m2hRLZjJVDNLS53iGIK11dPqQt0zBDyg6qc7YqkDm2M5Ve6dCWCaCbTXX2rToaIgz6+zh4lYUi/+6nqcFMAkQJKHYLK0wYk5N9szV6xihDbDDFr45lN1K4aCXBq/FitPSud9gLt5ZVn+ZqGX7cwm2z5EGMgfFpIFyhGGuDPmso6TItTMwny+7uPnLCf4W6goFQFV0oQSsc9VfMmVLcLr6ZetDZbaSFTLqnSO/bIPjA3/zAUoqgGFAEQS4IhuMzEp2I3jJzbzkk/IEmyax+rhZTwd6f+CGtwPixu8IvzACquPWPREu9ZvGkUzpRwvRRuaNN6cr0W1wWits9ICdYJ7ltbgMiSL3sTPeufgNcVqMVWFkCPDH4jG2jA0XcVgQj62Cb29v9f/z/+2KbYvIv/zzjpQAPkliaVDzNrW57TZ/ZOyZD0nlfMmAIBIAGAI0D3k/mdN4xr9v85ZbZbbqfH2jGd5hUqNZWwl5SPfoGmfElmazUIeNL1j/mkF7VNAzTq4jNt8JoQ11NQOcmhprXoxSxfRGJ9LDEOAQ+dmxAQH90iti9e2u/MoeuaGcDTHoC+xsmEeWmxEKefQuIzHbpw5Tc5cEocboAD09oipWQhtTO1wivf/O+DRe2rpl/E9wlrzBorjJsOeG1B/XPW4EaJEFdNlECEZga5ZoGRHXgYouGRuVkm8tDESiEyFNo+3s5M5puSdTyUL2llnINVHEt91XUNW4ewdMgJ4boJfEyt/iY5WXqbA+A2Fkt5Z0lutiWhe9nZIyIUjyXDC3UsaG1t+eNx6z4W/OYoTB7A6x+dNSTOi9AInctbESqm5gvOLww7OWXPrmHwVZasrl4eD113pm+JtT7JVOvnCXqdzzdTRHgJ0PiGTFYW5Gvt9R9LD6Lzfs0v/TZZHSmyVNq7viIHE6DBK7Qp07Iz55EM8SYtQvZf/obBniTWi5C2/ovHfw4VndkE5XYdjOhCMRjDeOEfXeN/CwfGduiUIfsoFeUxXeQXba7c7972XNv8w+dTjjUM0QeNAReW+J014dKAD/McQYXT7c0GQPIkn3Ll6R7gGjuiQoZD0TEeEqQpKoZ15g/0OPQI17QiSv9AUROa/V/TQN3dvLArec3RrsYlvBm1b8LWzltdugsC50lNKYLEp2a+ZZYqPejULRlOJh5zj/LVMyTDvwKhMxxwuDkxJ1QpoNI0OTWLom4Z71SNzI9TV1iXJrIu9Wcnd+MCaAw8o1jSXd94YU/1gnkrC9BUEOtQvEIQ7g0i6h+KL2JKk8Ydl7HruvgWMSAmNe+LshGhV4qnWHhO9/RIPQzY1tHRj2VqOyNsDpK0cww+56AdDC4gsWwY0XxoucIWIqs/GcwnWqlaT0KPr8mbK5U94/301i1WLt4YINTVvCFBrFZbIbY8eycOdeJ2teD5IfPLCRg7jjcFTwlMFNl9zdh/o3E/hHPwj7BWg0MU09pPrBLbrCgm54A6H+I6v27+jL5gkjWg/iYdks9jbfVP5y/n0dlgWEMlKasl7JvFZd56LfybW1eeaVO0gxTfXZwD8G4SI116yx7UKVRgui6Ya1YpixqXeNLc8IxtAwCU5IhwQgn+NqHnRaDv61CxKhOq4pOX7M6pkA+Pmpd4j1vn6ACUALoLLc4vpXci8VidLxzm7qFBe7s+quuJs6ETYmnpgS3LwSZxPIltgBDXz8M1k/W2ySNv2f9/NPhxLGK2D21dkHeSGmenRT3Yqcdl0m/h3OYr8V+lXNYGf8aCCpd4bWjE4QIPj7vUKN4Nrfs7ML6Y2OyS830JCnofg/k7lpFpt4SqZc5HGg1HCOrHvOdC8bP6FGDbE/VV0mX4IakzbdS/op+Kt3G24/8QbBV7y86sGSQ/vZzU8FXs7u6jIvwchsEP2BpIhW3G8uWNwa3HmjfH/ZjhhCWvluAcF+nMf14ClKg5hGgtPLJ98ueNAkc5Hs2WZlk2QHvfreCK1CCGO6nMZVSb99VM/ajr8WHTte9JSmkXq/i/U943HEbdzW6Re/S88dKgg8pGOLlAeNiqrcLkUR3/aClFpMXcOUP3rmETcWSfMXZE3TUOi8i+fqRnTYLflVx/Vb/6GJ7eIRZUA6k3RYR3iFSK9c4iDdNwJuZL2FKz/IK5VimcNWEqdXjSoxSgmF0UPlDoUlNrPcM7ftmA8Y9gKiqKEHuWN+AZRIwtVSxye2Kf8rM3lhJ5XcBXU9n4v0Oy1RU2M+4qM8AQPVwse8ErNSob5oFPWxuqZnVzo1qB/IBxkM3EVUKFUUlO3e51259GgNcJbCmlvrdjtoTW7rChm1wyCKzpCTwozUUEOIcWLneRLgMXh+SjGSFkAllzbGS5HK7LlfCMRNRDSvbQPjcXaenNYxCvu2Qyznz6StuxVj66SgI0T8B6/sfHAJYZaZ78thjOSIFumNWLQbeZixDCCC+v0YBtkxiBB3jefHqZ/dFHU+crbj6OvS1x/JDD7vlm7zOVPwpUC01nhxZuY/63E7g",VX=44032,g$=4352,f$=4449,h$=4519,zL=19,ML=21,Xq=28,m$=ML*Xq,IT=zL*m$,ST=VX+IT,vT=g$+zL,_T=f$+ML,kT=h$+Xq;function YX(Y){return Y>>24&255}function NL(Y){return Y&16777215}var A5,lO,C5,$$;function FT(){let Y=GL(CT);A5=new Map($L(Y).flatMap((J,Q)=>J.map((X)=>[X,Q+1<<24]))),lO=new Set(BX(Y)),C5=new Map,$$=new Map;for(let[J,Q]of WL(Y)){if(!lO.has(J)&&Q.length==2){let[X,q]=Q,G=$$.get(X);if(!G)G=new Map,$$.set(X,G);G.set(q,J)}C5.set(J,Q.reverse())}}function OL(Y){return Y>=VX&&Y<ST}function PT(Y,J){if(Y>=g$&&Y<vT&&J>=f$&&J<_T)return VX+(Y-g$)*m$+(J-f$)*Xq;else if(OL(Y)&&J>h$&&J<kT&&(Y-VX)%Xq==0)return Y+(J-h$);else{let Q=$$.get(Y);if(Q){if(Q=Q.get(J),Q)return Q}return-1}}function DL(Y){if(!A5)FT();let J=[],Q=[],X=!1;function q(G){let $=A5.get(G);if($)X=!0,G|=$;J.push(G)}for(let G of Y)while(!0){if(G<128)J.push(G);else if(OL(G)){let $=G-VX,W=$/m$|0,j=$%m$/Xq|0,K=$%Xq;if(q(g$+W),q(f$+j),K>0)q(h$+K)}else{let $=C5.get(G);if($)Q.push(...$);else q(G)}if(!Q.length)break;G=Q.pop()}if(X&&J.length>1){let G=YX(J[0]);for(let $=1;$<J.length;$++){let W=YX(J[$]);if(W==0||G<=W){G=W;continue}let j=$-1;while(!0){let K=J[j+1];if(J[j+1]=J[j],J[j]=K,!j)break;if(G=YX(J[--j]),G<=W)break}G=YX(J[$])}}return J}function TT(Y){let J=[],Q=[],X=-1,q=0;for(let G of Y){let $=YX(G),W=NL(G);if(X==-1)if($==0)X=W;else J.push(W);else if(q>0&&q>=$){if($==0)J.push(X,...Q),Q.length=0,X=W;else Q.push(W);q=$}else{let j=PT(X,W);if(j>=0)X=j;else if(q==0&&$==0)J.push(X),X=W;else Q.push(W),q=$}}if(X>=0)J.push(X,...Q);return J}function UL(Y){return DL(Y).map(NL)}function ZT(Y){return TT(DL(Y))}var uO=45,HL=".",BL=65039,RL=1,y$=(Y)=>Array.from(Y);function LX(Y,J){return Y.P.has(J)||Y.Q.has(J)}class VL extends Array{get is_emoji(){return!0}}var I5,LL,iJ,S5,EL,xT,lQ,cW,xQ,uJ,cO,v5;function hz(){if(I5)return;let Y=GL(NT),J=()=>BX(Y),Q=()=>new Set(J()),X=(z,M)=>M.forEach((N)=>z.add(N));I5=new Map(WL(Y)),LL=Q(),iJ=J(),S5=new Set(J().map((z)=>iJ[z])),iJ=new Set(iJ),EL=Q(),xT=Q();let q=$L(Y),G=Y(),$=()=>{let z=new Set;return J().forEach((M)=>X(z,q[M])),X(z,J()),z};lQ=RX((z)=>{let M=RX(Y).map((N)=>N+96);if(M.length){let N=z>=G;if(M[0]-=32,M=qq(M),N)M=`Restricted[${M}]`;let O=$(),D=$(),U=!Y();return{N:M,P:O,Q:D,M:U,R:N}}}),cW=Q(),xQ=new Map;let W=J().concat(y$(cW)).sort((z,M)=>z-M);W.forEach((z,M)=>{let N=Y(),O=W[M]=N?W[M-N]:{V:[],M:new Map};if(O.V.push(z),!cW.has(z))xQ.set(z,O)});for(let{V:z,M}of new Set(xQ.values())){let N=[];for(let D of z){let U=lQ.filter((w)=>LX(w,D)),A=N.find(({G:w})=>U.some((v)=>w.has(v)));if(!A)A={G:new Set,V:[]},N.push(A);A.V.push(D),X(A.G,U)}let O=N.flatMap((D)=>y$(D.G));for(let{G:D,V:U}of N){let A=new Set(O.filter((w)=>!D.has(w)));for(let w of U)M.set(w,A)}}uJ=new Set;let j=new Set,K=(z)=>uJ.has(z)?j.add(z):uJ.add(z);for(let z of lQ){for(let M of z.P)K(M);for(let M of z.Q)K(M)}for(let z of uJ)if(!xQ.has(z)&&!j.has(z))xQ.set(z,RL);X(uJ,UL(uJ)),cO=LT(Y).map((z)=>VL.from(z)).sort(AT),v5=new Map;for(let z of cO){let M=[v5];for(let N of z){let O=M.map((D)=>{let U=D.get(N);if(!U)U=new Map,D.set(N,U);return U});if(N===BL)M.push(...O);else M=O}for(let N of M)N.V=z}}function mz(Y){return(wL(Y)?"":`${yz(r9([Y]))} `)+KL(Y)}function yz(Y){return`"${Y}"‎`}function gT(Y){if(Y.length>=4&&Y[2]==uO&&Y[3]==uO)throw Error(`invalid label extension: "${qq(Y.slice(0,4))}"`)}function fT(Y){for(let J=Y.lastIndexOf(95);J>0;)if(Y[--J]!==95)throw Error("underscore allowed only at start")}function hT(Y){let J=Y[0],Q=mO.get(J);if(Q)throw qX(`leading ${Q}`);let X=Y.length,q=-1;for(let G=1;G<X;G++){J=Y[G];let $=mO.get(J);if($){if(q==G)throw qX(`${Q} + ${$}`);q=G+1,Q=$}}if(q==X)throw qX(`trailing ${Q}`)}function r9(Y,J=1/0,Q=KL){let X=[];if(mT(Y[0]))X.push("◌");if(Y.length>J)J>>=1,Y=[...Y.slice(0,J),8230,...Y.slice(-J)];let q=0,G=Y.length;for(let $=0;$<G;$++){let W=Y[$];if(wL(W))X.push(qq(Y.slice(q,$))),X.push(Q(W)),q=$+1}return X.push(qq(Y.slice(q,G))),X.join("")}function mT(Y){return hz(),iJ.has(Y)}function wL(Y){return hz(),EL.has(Y)}function yT(Y){return bT(lT(Y,ZT,dT))}function lT(Y,J,Q){if(!Y)return[];hz();let X=0;return Y.split(HL).map((q)=>{let G=wT(q),$={input:G,offset:X};X+=G.length+1;try{let W=$.tokens=oT(G,J,Q),j=W.length,K;if(!j)throw Error("empty label");let z=$.output=W.flat();if(fT(z),!($.emoji=j>1||W[0].is_emoji)&&z.every((M)=>M<128))gT(z),K="ASCII";else{let M=W.flatMap((N)=>N.is_emoji?[]:N);if(!M.length)K="Emoji";else{if(iJ.has(z[0]))throw qX("leading combining mark");for(let D=1;D<j;D++){let U=W[D];if(!U.is_emoji&&iJ.has(U[0]))throw qX(`emoji + combining mark: "${qq(W[D-1])} + ${r9([U[0]])}"`)}hT(z);let N=y$(new Set(M)),[O]=cT(N);pT(O,M),uT(O,N),K=O.N}}$.type=K}catch(W){$.error=W}return $})}function uT(Y,J){let Q,X=[];for(let q of J){let G=xQ.get(q);if(G===RL)return;if(G){let $=G.M.get(q);if(Q=Q?Q.filter((W)=>$.has(W)):y$($),!Q.length)return}else X.push(q)}if(Q){for(let q of Q)if(X.every((G)=>LX(q,G)))throw Error(`whole-script confusable: ${Y.N}/${q.N}`)}}function cT(Y){let J=lQ;for(let Q of Y){let X=J.filter((q)=>LX(q,Q));if(!X.length)if(!lQ.some((q)=>LX(q,Q)))throw AL(Q);else throw CL(J[0],Q);if(J=X,X.length==1)break}return J}function bT(Y){return Y.map(({input:J,error:Q,output:X})=>{if(Q){let q=Q.message;throw Error(Y.length==1?q:`Invalid label ${yz(r9(J,63))}: ${q}`)}return qq(X)}).join(HL)}function AL(Y){return Error(`disallowed character: ${mz(Y)}`)}function CL(Y,J){let Q=mz(J),X=lQ.find((q)=>q.P.has(J));if(X)Q=`${X.N} ${Q}`;return Error(`illegal mixture: ${Y.N} + ${Q}`)}function qX(Y){return Error(`illegal placement: ${Y}`)}function pT(Y,J){for(let Q of J)if(!LX(Y,Q))throw CL(Y,Q);if(Y.M){let Q=UL(J);for(let X=1,q=Q.length;X<q;X++)if(S5.has(Q[X])){let G=X+1;for(let $;G<q&&S5.has($=Q[G]);G++)for(let W=X;W<G;W++)if(Q[W]==$)throw Error(`duplicate non-spacing marks: ${mz($)}`);if(G-X>yO)throw Error(`excessive non-spacing marks: ${yz(r9(Q.slice(X-1,G)))} (${G-X}/${yO})`);X=G}}}function oT(Y,J,Q){let X=[],q=[];Y=Y.slice().reverse();while(Y.length){let G=rT(Y);if(G){if(q.length)X.push(J(q)),q=[];X.push(Q(G))}else{let $=Y.pop();if(uJ.has($))q.push($);else{let W=I5.get($);if(W)q.push(...W);else if(!LL.has($))throw AL($)}}}if(q.length)X.push(J(q));return X}function dT(Y){return Y.filter((J)=>J!=BL)}function rT(Y,J){let Q=v5,X,q=Y.length;while(q){if(Q=Q.get(Y[--q]),!Q)break;let{V:G}=Q;if(G){if(X=G,J)J.push(...Y.slice(q).reverse());Y.length=q}}return X}var IL=new Uint8Array(32);IL.fill(0);function bO(Y){return H(Y.length!==0,"invalid ENS name; empty component","comp",Y),Y}function SL(Y){let J=uY(sT(Y)),Q=[];if(Y.length===0)return Q;let X=0;for(let q=0;q<J.length;q++)if(J[q]===46)Q.push(bO(J.slice(X,q))),X=q+1;return H(X<J.length,"invalid ENS name; empty component","name",Y),Q.push(bO(J.slice(X))),Q}function sT(Y){try{if(Y.length===0)throw Error("empty label");return yT(Y)}catch(J){H(!1,`invalid ENS name (${J.message})`,"name",Y)}}function _5(Y){H(typeof Y==="string","invalid ENS name; not a string","name",Y),H(Y.length,"invalid ENS name (empty label)","name",Y);let J=IL,Q=SL(Y);while(Q.length)J=d0(Z0([J,d0(Q.pop())]));return l(J)}function iT(Y,J){let Q=J!=null?J:63;return H(Q<=255,"DNS encoded label cannot exceed 255","length",Q),l(Z0(SL(Y).map((X)=>{H(X.length<=Q,`label ${JSON.stringify(Y)} exceeds ${Q} bytes`,"name",Y);let q=new Uint8Array(X.length+1);return q.set(X,1),q[0]=q.length-1,q})))+"00"}var vL=new Uint8Array(32);vL.fill(0);var tT=BigInt(-1),_L=BigInt(0),kL=BigInt(1),nT=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function aT(Y){let J=z0(Y),Q=J.length%32;if(Q)return Z0([J,vL.slice(Q)]);return l(J)}var eT=EJ(kL,32),YZ=EJ(_L,32),pO={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},bW=["name","version","chainId","verifyingContract","salt"];function oO(Y){return function(J){return H(typeof J==="string",`invalid domain value for ${JSON.stringify(Y)}`,`domain.${Y}`,J),J}}var JZ={name:oO("name"),version:oO("version"),chainId:function(Y){let J=d(Y,"domain.chainId");if(H(J>=0,"invalid chain ID","domain.chainId",Y),Number.isSafeInteger(J))return Number(J);return YY(J)},verifyingContract:function(Y){try{return L0(Y).toLowerCase()}catch(J){}H(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",Y)},salt:function(Y){let J=z0(Y,"domain.salt");return H(J.length===32,'invalid domain value "salt"',"domain.salt",Y),l(J)}};function pW(Y){{let J=Y.match(/^(u?)int(\d+)$/);if(J){let Q=J[1]==="",X=parseInt(J[2]);H(X%8===0&&X!==0&&X<=256&&J[2]===String(X),"invalid numeric width","type",Y);let q=aq(nT,Q?X-1:X),G=Q?(q+kL)*tT:_L;return function($){let W=d($,"value");return H(W>=G&&W<=q,`value out-of-bounds for ${Y}`,"value",W),EJ(Q?$7(W,256):W,32)}}}{let J=Y.match(/^bytes(\d+)$/);if(J){let Q=parseInt(J[1]);return H(Q!==0&&Q<=32&&J[1]===String(Q),"invalid bytes width","type",Y),function(X){let q=z0(X);return H(q.length===Q,`invalid length for ${Y}`,"value",X),aT(X)}}}switch(Y){case"address":return function(J){return rY(L0(J),32)};case"bool":return function(J){return!J?YZ:eT};case"bytes":return function(J){return d0(J)};case"string":return function(J){return $Q(J)}}return null}function dO(Y,J){return`${Y}(${J.map(({name:Q,type:X})=>X+" "+Q).join(",")})`}function nG(Y){let J=Y.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(J)return{base:J[1],index:J[2]+J[4],array:{base:J[1],prefix:J[1]+J[2],count:J[5]?parseInt(J[5]):-1}};return{base:Y}}class P8{primaryType;#Y;get types(){return JSON.parse(this.#Y)}#J;#Q;constructor(Y){this.#J=new Map,this.#Q=new Map;let J=new Map,Q=new Map,X=new Map,q={};Object.keys(Y).forEach((W)=>{q[W]=Y[W].map(({name:j,type:K})=>{let{base:z,index:M}=nG(K);if(z==="int"&&!Y.int)z="int256";if(z==="uint"&&!Y.uint)z="uint256";return{name:j,type:z+(M||"")}}),J.set(W,new Set),Q.set(W,[]),X.set(W,new Set)}),this.#Y=JSON.stringify(q);for(let W in q){let j=new Set;for(let K of q[W]){H(!j.has(K.name),`duplicate variable name ${JSON.stringify(K.name)} in ${JSON.stringify(W)}`,"types",Y),j.add(K.name);let z=nG(K.type).base;if(H(z!==W,`circular type reference to ${JSON.stringify(z)}`,"types",Y),pW(z))continue;H(Q.has(z),`unknown type ${JSON.stringify(z)}`,"types",Y),Q.get(z).push(W),J.get(W).add(z)}}let G=Array.from(Q.keys()).filter((W)=>Q.get(W).length===0);H(G.length!==0,"missing primary type","types",Y),H(G.length===1,`ambiguous primary types or unused types: ${G.map((W)=>JSON.stringify(W)).join(", ")}`,"types",Y),Y0(this,{primaryType:G[0]});function $(W,j){H(!j.has(W),`circular type reference to ${JSON.stringify(W)}`,"types",Y),j.add(W);for(let K of J.get(W)){if(!Q.has(K))continue;$(K,j);for(let z of j)X.get(z).add(K)}j.delete(W)}$(this.primaryType,new Set);for(let[W,j]of X){let K=Array.from(j);K.sort(),this.#J.set(W,dO(W,q[W])+K.map((z)=>dO(z,q[z])).join(""))}}getEncoder(Y){let J=this.#Q.get(Y);if(!J)J=this.#q(Y),this.#Q.set(Y,J);return J}#q(Y){{let X=pW(Y);if(X)return X}let J=nG(Y).array;if(J){let X=J.prefix,q=this.getEncoder(X);return(G)=>{H(J.count===-1||J.count===G.length,`array length mismatch; expected length ${J.count}`,"value",G);let $=G.map(q);if(this.#J.has(X))$=$.map(d0);return d0(Z0($))}}let Q=this.types[Y];if(Q){let X=$Q(this.#J.get(Y));return(q)=>{let G=Q.map(({name:$,type:W})=>{let j=this.getEncoder(W)(q[$]);if(this.#J.has(W))return d0(j);return j});return G.unshift(X),Z0(G)}}H(!1,`unknown type: ${Y}`,"type",Y)}encodeType(Y){let J=this.#J.get(Y);return H(J,`unknown type: ${JSON.stringify(Y)}`,"name",Y),J}encodeData(Y,J){return this.getEncoder(Y)(J)}hashStruct(Y,J){return d0(this.encodeData(Y,J))}encode(Y){return this.encodeData(this.primaryType,Y)}hash(Y){return this.hashStruct(this.primaryType,Y)}_visit(Y,J,Q){if(pW(Y))return Q(Y,J);let X=nG(Y).array;if(X)return H(X.count===-1||X.count===J.length,`array length mismatch; expected length ${X.count}`,"value",J),J.map((G)=>this._visit(X.prefix,G,Q));let q=this.types[Y];if(q)return q.reduce((G,{name:$,type:W})=>{return G[$]=this._visit(W,J[$],Q),G},{});H(!1,`unknown type: ${Y}`,"type",Y)}visit(Y,J){return this._visit(this.primaryType,Y,J)}static from(Y){return new P8(Y)}static getPrimaryType(Y){return P8.from(Y).primaryType}static hashStruct(Y,J,Q){return P8.from(J).hashStruct(Y,Q)}static hashDomain(Y){let J=[];for(let Q in Y){if(Y[Q]==null)continue;let X=pO[Q];H(X,`invalid typed-data domain key: ${JSON.stringify(Q)}`,"domain",Y),J.push({name:Q,type:X})}return J.sort((Q,X)=>{return bW.indexOf(Q.name)-bW.indexOf(X.name)}),P8.hashStruct("EIP712Domain",{EIP712Domain:J},Y)}static encode(Y,J,Q){return Z0(["0x1901",P8.hashDomain(Y),P8.from(J).hash(Q)])}static hash(Y,J,Q){return d0(P8.encode(Y,J,Q))}static async resolveNames(Y,J,Q,X){Y=Object.assign({},Y);for(let $ in Y)if(Y[$]==null)delete Y[$];let q={};if(Y.verifyingContract&&!k0(Y.verifyingContract,20))q[Y.verifyingContract]="0x";let G=P8.from(J);G.visit(Q,($,W)=>{if($==="address"&&!k0(W,20))q[W]="0x";return W});for(let $ in q)q[$]=await X($);if(Y.verifyingContract&&q[Y.verifyingContract])Y.verifyingContract=q[Y.verifyingContract];return Q=G.visit(Q,($,W)=>{if($==="address"&&q[W])return q[W];return W}),{domain:Y,value:Q}}static getPayload(Y,J,Q){P8.hashDomain(Y);let X={},q=[];bW.forEach((W)=>{let j=Y[W];if(j==null)return;X[W]=JZ[W](j),q.push({name:W,type:pO[W]})});let G=P8.from(J);J=G.types;let $=Object.assign({},J);return H($.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",J),$.EIP712Domain=q,G.encode(Q),{types:$,domain:X,primaryType:G.primaryType,message:G.visit(Q,(W,j)=>{if(W.match(/^bytes(\d*)/))return l(z0(j));if(W.match(/^u?int/))return d(j).toString();switch(W){case"address":return j.toLowerCase();case"bool":return!!j;case"string":return H(typeof j==="string","invalid string","value",j),j}H(!1,"unsupported type","type",W)})}}}function R8(Y){let J=new Set;return Y.forEach((Q)=>J.add(Q)),Object.freeze(J)}var QZ="external public payable override",qZ=R8(QZ.split(" ")),FL="constant external internal payable private public pure view override",XZ=R8(FL.split(" ")),PL="constructor error event fallback function receive struct",TL=R8(PL.split(" ")),ZL="calldata memory storage payable indexed",GZ=R8(ZL.split(" ")),$Z="tuple returns",WZ=[PL,ZL,$Z,FL].join(" "),jZ=R8(WZ.split(" ")),KZ={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},zZ=new RegExp("^(\\s*)"),MZ=new RegExp("^([0-9]+)"),NZ=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),xL=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),gL=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class d8{#Y;#J;get offset(){return this.#Y}get length(){return this.#J.length-this.#Y}constructor(Y){this.#Y=0,this.#J=Y.slice()}clone(){return new d8(this.#J)}reset(){this.#Y=0}#Q(Y=0,J=0){return new d8(this.#J.slice(Y,J).map((Q)=>{return Object.freeze(Object.assign({},Q,{match:Q.match-Y,linkBack:Q.linkBack-Y,linkNext:Q.linkNext-Y}))}))}popKeyword(Y){let J=this.peek();if(J.type!=="KEYWORD"||!Y.has(J.text))throw Error(`expected keyword ${J.text}`);return this.pop().text}popType(Y){if(this.peek().type!==Y){let J=this.peek();throw Error(`expected ${Y}; got ${J.type} ${JSON.stringify(J.text)}`)}return this.pop().text}popParen(){let Y=this.peek();if(Y.type!=="OPEN_PAREN")throw Error("bad start");let J=this.#Q(this.#Y+1,Y.match+1);return this.#Y=Y.match+1,J}popParams(){let Y=this.peek();if(Y.type!=="OPEN_PAREN")throw Error("bad start");let J=[];while(this.#Y<Y.match-1){let Q=this.peek().linkNext;J.push(this.#Q(this.#Y+1,Q)),this.#Y=Q}return this.#Y=Y.match+1,J}peek(){if(this.#Y>=this.#J.length)throw Error("out-of-bounds");return this.#J[this.#Y]}peekKeyword(Y){let J=this.peekType("KEYWORD");return J!=null&&Y.has(J)?J:null}peekType(Y){if(this.length===0)return null;let J=this.peek();return J.type===Y?J.text:null}pop(){let Y=this.peek();return this.#Y++,Y}toString(){let Y=[];for(let J=this.#Y;J<this.#J.length;J++){let Q=this.#J[J];Y.push(`${Q.type}:${Q.text}`)}return`<TokenString ${Y.join(" ")}>`}}function CJ(Y){let J=[],Q=($)=>{let W=G<Y.length?JSON.stringify(Y[G]):"$EOI";throw Error(`invalid token ${W} at ${G}: ${$}`)},X=[],q=[],G=0;while(G<Y.length){let $=Y.substring(G),W=$.match(zZ);if(W)G+=W[1].length,$=Y.substring(G);let j={depth:X.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:G,value:-1};J.push(j);let K=KZ[$[0]]||"";if(K){if(j.type=K,j.text=$[0],G++,K==="OPEN_PAREN")X.push(J.length-1),q.push(J.length-1);else if(K=="CLOSE_PAREN"){if(X.length===0)Q("no matching open bracket");j.match=X.pop(),J[j.match].match=J.length-1,j.depth--,j.linkBack=q.pop(),J[j.linkBack].linkNext=J.length-1}else if(K==="COMMA")j.linkBack=q.pop(),J[j.linkBack].linkNext=J.length-1,q.push(J.length-1);else if(K==="OPEN_BRACKET")j.type="BRACKET";else if(K==="CLOSE_BRACKET"){let z=J.pop().text;if(J.length>0&&J[J.length-1].type==="NUMBER"){let M=J.pop().text;z=M+z,J[J.length-1].value=j0(M)}if(J.length===0||J[J.length-1].type!=="BRACKET")throw Error("missing opening bracket");J[J.length-1].text+=z}continue}if(W=$.match(NZ),W){if(j.text=W[1],G+=j.text.length,jZ.has(j.text)){j.type="KEYWORD";continue}if(j.text.match(gL)){j.type="TYPE";continue}j.type="ID";continue}if(W=$.match(MZ),W){j.text=W[1],j.type="NUMBER",G+=j.text.length;continue}throw Error(`unexpected token ${JSON.stringify($[0])} at position ${G}`)}return new d8(J.map(($)=>Object.freeze($)))}function rO(Y,J){let Q=[];for(let X in J.keys())if(Y.has(X))Q.push(X);if(Q.length>1)throw Error(`conflicting types: ${Q.join(", ")}`)}function s9(Y,J){if(J.peekKeyword(TL)){let Q=J.pop().text;if(Q!==Y)throw Error(`expected ${Y}, got ${Q}`)}return J.popType("ID")}function sY(Y,J){let Q=new Set;while(!0){let X=Y.peekType("KEYWORD");if(X==null||J&&!J.has(X))break;if(Y.pop(),Q.has(X))throw Error(`duplicate keywords: ${JSON.stringify(X)}`);Q.add(X)}return Object.freeze(Q)}function fL(Y){let J=sY(Y,XZ);if(rO(J,R8("constant payable nonpayable".split(" "))),rO(J,R8("pure view payable nonpayable".split(" "))),J.has("view"))return"view";if(J.has("pure"))return"pure";if(J.has("payable"))return"payable";if(J.has("nonpayable"))return"nonpayable";if(J.has("constant"))return"view";return"nonpayable"}function bY(Y,J){return Y.popParams().map((Q)=>_0.from(Q,J))}function hL(Y){if(Y.peekType("AT")){if(Y.pop(),Y.peekType("NUMBER"))return d(Y.pop().text);throw Error("invalid gas")}return null}function WQ(Y){if(Y.length)throw Error(`unexpected tokens at offset ${Y.offset}: ${Y.toString()}`)}var OZ=new RegExp(/^(.*)\[([0-9]*)\]$/);function sO(Y){let J=Y.match(gL);if(H(J,"invalid type","type",Y),Y==="uint")return"uint256";if(Y==="int")return"int256";if(J[2]){let Q=parseInt(J[2]);H(Q!==0&&Q<=32,"invalid bytes length","type",Y)}else if(J[3]){let Q=parseInt(J[3]);H(Q!==0&&Q<=256&&Q%8===0,"invalid numeric width","type",Y)}return Y}var h0={},S8=Symbol.for("_ethers_internal"),iO="_ParamTypeInternal",tO="_ErrorInternal",nO="_EventInternal",aO="_ConstructorInternal",eO="_FallbackInternal",Y4="_FunctionInternal",J4="_StructInternal";class _0{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(Y,J,Q,X,q,G,$,W){if(m9(Y,h0,"ParamType"),Object.defineProperty(this,S8,{value:iO}),G)G=Object.freeze(G.slice());if(X==="array"){if($==null||W==null)throw Error("")}else if($!=null||W!=null)throw Error("");if(X==="tuple"){if(G==null)throw Error("")}else if(G!=null)throw Error("");Y0(this,{name:J,type:Q,baseType:X,indexed:q,components:G,arrayLength:$,arrayChildren:W})}format(Y){if(Y==null)Y="sighash";if(Y==="json"){let Q=this.name||"";if(this.isArray()){let q=JSON.parse(this.arrayChildren.format("json"));return q.name=Q,q.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(q)}let X={type:this.baseType==="tuple"?"tuple":this.type,name:Q};if(typeof this.indexed==="boolean")X.indexed=this.indexed;if(this.isTuple())X.components=this.components.map((q)=>JSON.parse(q.format(Y)));return JSON.stringify(X)}let J="";if(this.isArray())J+=this.arrayChildren.format(Y),J+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`;else if(this.isTuple())J+="("+this.components.map((Q)=>Q.format(Y)).join(Y==="full"?", ":",")+")";else J+=this.type;if(Y!=="sighash"){if(this.indexed===!0)J+=" indexed";if(Y==="full"&&this.name)J+=" "+this.name}return J}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(Y,J){if(this.isArray()){if(!Array.isArray(Y))throw Error("invalid array value");if(this.arrayLength!==-1&&Y.length!==this.arrayLength)throw Error("array is wrong length");let Q=this;return Y.map((X)=>Q.arrayChildren.walk(X,J))}if(this.isTuple()){if(!Array.isArray(Y))throw Error("invalid tuple value");if(Y.length!==this.components.length)throw Error("array is wrong length");let Q=this;return Y.map((X,q)=>Q.components[q].walk(X,J))}return J(this.type,Y)}#Y(Y,J,Q,X){if(this.isArray()){if(!Array.isArray(J))throw Error("invalid array value");if(this.arrayLength!==-1&&J.length!==this.arrayLength)throw Error("array is wrong length");let G=this.arrayChildren,$=J.slice();$.forEach((W,j)=>{G.#Y(Y,W,Q,(K)=>{$[j]=K})}),X($);return}if(this.isTuple()){let G=this.components,$;if(Array.isArray(J))$=J.slice();else{if(J==null||typeof J!=="object")throw Error("invalid tuple value");$=G.map((W)=>{if(!W.name)throw Error("cannot use object value with unnamed components");if(!(W.name in J))throw Error(`missing value for component ${W.name}`);return J[W.name]})}if($.length!==this.components.length)throw Error("array is wrong length");$.forEach((W,j)=>{G[j].#Y(Y,W,Q,(K)=>{$[j]=K})}),X($);return}let q=Q(this.type,J);if(q.then)Y.push(async function(){X(await q)}());else X(q)}async walkAsync(Y,J){let Q=[],X=[Y];if(this.#Y(Q,Y,J,(q)=>{X[0]=q}),Q.length)await Promise.all(Q);return X[0]}static from(Y,J){if(_0.isParamType(Y))return Y;if(typeof Y==="string")try{return _0.from(CJ(Y),J)}catch($){H(!1,"invalid param type","obj",Y)}else if(Y instanceof d8){let $="",W="",j=null;if(sY(Y,R8(["tuple"])).has("tuple")||Y.peekType("OPEN_PAREN"))W="tuple",j=Y.popParams().map((O)=>_0.from(O)),$=`tuple(${j.map((O)=>O.format()).join(",")})`;else $=sO(Y.popType("TYPE")),W=$;let K=null,z=null;while(Y.length&&Y.peekType("BRACKET")){let O=Y.pop();K=new _0(h0,"",$,W,null,j,z,K),z=O.value,$+=O.text,W="array",j=null}let M=null;if(sY(Y,GZ).has("indexed")){if(!J)throw Error("");M=!0}let N=Y.peekType("ID")?Y.pop().text:"";if(Y.length)throw Error("leftover tokens");return new _0(h0,N,$,W,M,j,z,K)}let Q=Y.name;H(!Q||typeof Q==="string"&&Q.match(xL),"invalid name","obj.name",Q);let X=Y.indexed;if(X!=null)H(J,"parameter cannot be indexed","obj.indexed",Y.indexed),X=!!X;let q=Y.type,G=q.match(OZ);if(G){let $=parseInt(G[2]||"-1"),W=_0.from({type:G[1],components:Y.components});return new _0(h0,Q||"",q,"array",X,null,$,W)}if(q==="tuple"||q.startsWith("tuple(")||q.startsWith("(")){let $=Y.components!=null?Y.components.map((W)=>_0.from(W)):null;return new _0(h0,Q||"",q,"tuple",X,$,null,null)}return q=sO(Y.type),new _0(h0,Q||"",q,q,X,null,null,null)}static isParamType(Y){return Y&&Y[S8]===iO}}class jQ{type;inputs;constructor(Y,J,Q){m9(Y,h0,"Fragment"),Q=Object.freeze(Q.slice()),Y0(this,{type:J,inputs:Q})}static from(Y){if(typeof Y==="string"){try{jQ.from(JSON.parse(Y))}catch(J){}return jQ.from(CJ(Y))}if(Y instanceof d8)switch(Y.peekKeyword(TL)){case"constructor":return yY.from(Y);case"error":return C8.from(Y);case"event":return BY.from(Y);case"fallback":case"receive":return gY.from(Y);case"function":return RY.from(Y);case"struct":return aJ.from(Y)}else if(typeof Y==="object"){switch(Y.type){case"constructor":return yY.from(Y);case"error":return C8.from(Y);case"event":return BY.from(Y);case"fallback":case"receive":return gY.from(Y);case"function":return RY.from(Y);case"struct":return aJ.from(Y)}_(!1,`unsupported type: ${Y.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}H(!1,"unsupported frgament object","obj",Y)}static isConstructor(Y){return yY.isFragment(Y)}static isError(Y){return C8.isFragment(Y)}static isEvent(Y){return BY.isFragment(Y)}static isFunction(Y){return RY.isFragment(Y)}static isStruct(Y){return aJ.isFragment(Y)}}class GG extends jQ{name;constructor(Y,J,Q,X){super(Y,J,X);H(typeof Q==="string"&&Q.match(xL),"invalid identifier","name",Q),X=Object.freeze(X.slice()),Y0(this,{name:Q})}}function EX(Y,J){return"("+J.map((Q)=>Q.format(Y)).join(Y==="full"?", ":",")+")"}class C8 extends GG{constructor(Y,J,Q){super(Y,"error",J,Q);Object.defineProperty(this,S8,{value:tO})}get selector(){return $Q(this.format("sighash")).substring(0,10)}format(Y){if(Y==null)Y="sighash";if(Y==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[];if(Y!=="sighash")J.push("error");return J.push(this.name+EX(Y,this.inputs)),J.join(" ")}static from(Y){if(C8.isFragment(Y))return Y;if(typeof Y==="string")return C8.from(CJ(Y));else if(Y instanceof d8){let J=s9("error",Y),Q=bY(Y);return WQ(Y),new C8(h0,J,Q)}return new C8(h0,Y.name,Y.inputs?Y.inputs.map(_0.from):[])}static isFragment(Y){return Y&&Y[S8]===tO}}class BY extends GG{anonymous;constructor(Y,J,Q,X){super(Y,"event",J,Q);Object.defineProperty(this,S8,{value:nO}),Y0(this,{anonymous:X})}get topicHash(){return $Q(this.format("sighash"))}format(Y){if(Y==null)Y="sighash";if(Y==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[];if(Y!=="sighash")J.push("event");if(J.push(this.name+EX(Y,this.inputs)),Y!=="sighash"&&this.anonymous)J.push("anonymous");return J.join(" ")}static getTopicHash(Y,J){return J=(J||[]).map((Q)=>_0.from(Q)),new BY(h0,Y,J,!1).topicHash}static from(Y){if(BY.isFragment(Y))return Y;if(typeof Y==="string")try{return BY.from(CJ(Y))}catch(J){H(!1,"invalid event fragment","obj",Y)}else if(Y instanceof d8){let J=s9("event",Y),Q=bY(Y,!0),X=!!sY(Y,R8(["anonymous"])).has("anonymous");return WQ(Y),new BY(h0,J,Q,X)}return new BY(h0,Y.name,Y.inputs?Y.inputs.map((J)=>_0.from(J,!0)):[],!!Y.anonymous)}static isFragment(Y){return Y&&Y[S8]===nO}}class yY extends jQ{payable;gas;constructor(Y,J,Q,X,q){super(Y,J,Q);Object.defineProperty(this,S8,{value:aO}),Y0(this,{payable:X,gas:q})}format(Y){if(_(Y!=null&&Y!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),Y==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[`constructor${EX(Y,this.inputs)}`];if(this.payable)J.push("payable");if(this.gas!=null)J.push(`@${this.gas.toString()}`);return J.join(" ")}static from(Y){if(yY.isFragment(Y))return Y;if(typeof Y==="string")try{return yY.from(CJ(Y))}catch(J){H(!1,"invalid constuctor fragment","obj",Y)}else if(Y instanceof d8){sY(Y,R8(["constructor"]));let J=bY(Y),Q=!!sY(Y,qZ).has("payable"),X=hL(Y);return WQ(Y),new yY(h0,"constructor",J,Q,X)}return new yY(h0,"constructor",Y.inputs?Y.inputs.map(_0.from):[],!!Y.payable,Y.gas!=null?Y.gas:null)}static isFragment(Y){return Y&&Y[S8]===aO}}class gY extends jQ{payable;constructor(Y,J,Q){super(Y,"fallback",J);Object.defineProperty(this,S8,{value:eO}),Y0(this,{payable:Q})}format(Y){let J=this.inputs.length===0?"receive":"fallback";if(Y==="json"){let Q=this.payable?"payable":"nonpayable";return JSON.stringify({type:J,stateMutability:Q})}return`${J}()${this.payable?" payable":""}`}static from(Y){if(gY.isFragment(Y))return Y;if(typeof Y==="string")try{return gY.from(CJ(Y))}catch(J){H(!1,"invalid fallback fragment","obj",Y)}else if(Y instanceof d8){let J=Y.toString(),Q=Y.peekKeyword(R8(["fallback","receive"]));if(H(Q,"type must be fallback or receive","obj",J),Y.popKeyword(R8(["fallback","receive"]))==="receive"){let G=bY(Y);return H(G.length===0,"receive cannot have arguments","obj.inputs",G),sY(Y,R8(["payable"])),WQ(Y),new gY(h0,[],!0)}let X=bY(Y);if(X.length)H(X.length===1&&X[0].type==="bytes","invalid fallback inputs","obj.inputs",X.map((G)=>G.format("minimal")).join(", "));else X=[_0.from("bytes")];let q=fL(Y);if(H(q==="nonpayable"||q==="payable","fallback cannot be constants","obj.stateMutability",q),sY(Y,R8(["returns"])).has("returns")){let G=bY(Y);H(G.length===1&&G[0].type==="bytes","invalid fallback outputs","obj.outputs",G.map(($)=>$.format("minimal")).join(", "))}return WQ(Y),new gY(h0,X,q==="payable")}if(Y.type==="receive")return new gY(h0,[],!0);if(Y.type==="fallback"){let J=[_0.from("bytes")],Q=Y.stateMutability==="payable";return new gY(h0,J,Q)}H(!1,"invalid fallback description","obj",Y)}static isFragment(Y){return Y&&Y[S8]===eO}}class RY extends GG{constant;outputs;stateMutability;payable;gas;constructor(Y,J,Q,X,q,G){super(Y,"function",J,X);Object.defineProperty(this,S8,{value:Y4}),q=Object.freeze(q.slice()),Y0(this,{constant:Q==="view"||Q==="pure",gas:G,outputs:q,payable:Q==="payable",stateMutability:Q})}get selector(){return $Q(this.format("sighash")).substring(0,10)}format(Y){if(Y==null)Y="sighash";if(Y==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y))),outputs:this.outputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[];if(Y!=="sighash")J.push("function");if(J.push(this.name+EX(Y,this.inputs)),Y!=="sighash"){if(this.stateMutability!=="nonpayable")J.push(this.stateMutability);if(this.outputs&&this.outputs.length)J.push("returns"),J.push(EX(Y,this.outputs));if(this.gas!=null)J.push(`@${this.gas.toString()}`)}return J.join(" ")}static getSelector(Y,J){return J=(J||[]).map((Q)=>_0.from(Q)),new RY(h0,Y,"view",J,[],null).selector}static from(Y){if(RY.isFragment(Y))return Y;if(typeof Y==="string")try{return RY.from(CJ(Y))}catch(Q){H(!1,"invalid function fragment","obj",Y)}else if(Y instanceof d8){let Q=s9("function",Y),X=bY(Y),q=fL(Y),G=[];if(sY(Y,R8(["returns"])).has("returns"))G=bY(Y);let $=hL(Y);return WQ(Y),new RY(h0,Q,q,X,G,$)}let J=Y.stateMutability;if(J==null){if(J="payable",typeof Y.constant==="boolean"){if(J="view",!Y.constant){if(J="payable",typeof Y.payable==="boolean"&&!Y.payable)J="nonpayable"}}else if(typeof Y.payable==="boolean"&&!Y.payable)J="nonpayable"}return new RY(h0,Y.name,J,Y.inputs?Y.inputs.map(_0.from):[],Y.outputs?Y.outputs.map(_0.from):[],Y.gas!=null?Y.gas:null)}static isFragment(Y){return Y&&Y[S8]===Y4}}class aJ extends GG{constructor(Y,J,Q){super(Y,"struct",J,Q);Object.defineProperty(this,S8,{value:J4})}format(){throw Error("@TODO")}static from(Y){if(typeof Y==="string")try{return aJ.from(CJ(Y))}catch(J){H(!1,"invalid struct fragment","obj",Y)}else if(Y instanceof d8){let J=s9("struct",Y),Q=bY(Y);return WQ(Y),new aJ(h0,J,Q)}return new aJ(h0,Y.name,Y.inputs?Y.inputs.map(_0.from):[])}static isFragment(Y){return Y&&Y[S8]===J4}}var GY=new Map;GY.set(0,"GENERIC_PANIC");GY.set(1,"ASSERT_FALSE");GY.set(17,"OVERFLOW");GY.set(18,"DIVIDE_BY_ZERO");GY.set(33,"ENUM_RANGE_ERROR");GY.set(34,"BAD_STORAGE_DATA");GY.set(49,"STACK_UNDERFLOW");GY.set(50,"ARRAY_RANGE_ERROR");GY.set(65,"OUT_OF_MEMORY");GY.set(81,"UNINITIALIZED_FUNCTION_CALL");var DZ=new RegExp(/^bytes([0-9]*)$/),UZ=new RegExp(/^(u?int)([0-9]*)$/),oW=null,Q4=1024;function HZ(Y,J,Q,X){let q="missing revert data",G=null,$=null,W=null;if(Q){q="execution reverted";let K=z0(Q);if(Q=l(Q),K.length===0)q+=" (no data present; likely require(false) occurred",G="require(false)";else if(K.length%32!==4)q+=" (could not decode reason; invalid data length)";else if(l(K.slice(0,4))==="0x08c379a0")try{G=X.decode(["string"],K.slice(4))[0],W={signature:"Error(string)",name:"Error",args:[G]},q+=`: ${JSON.stringify(G)}`}catch(z){q+=" (could not decode reason; invalid string data)"}else if(l(K.slice(0,4))==="0x4e487b71")try{let z=Number(X.decode(["uint256"],K.slice(4))[0]);W={signature:"Panic(uint256)",name:"Panic",args:[z]},G=`Panic due to ${GY.get(z)||"UNKNOWN"}(${z})`,q+=`: ${G}`}catch(z){q+=" (could not decode panic code)"}else q+=" (unknown custom error)"}let j={to:J.to?L0(J.to):null,data:J.data||"0x"};if(J.from)j.from=L0(J.from);return P0(q,"CALL_EXCEPTION",{action:Y,data:Q,reason:G,transaction:j,invocation:$,revert:W})}class Gq{#Y(Y){if(Y.isArray())return new n7(this.#Y(Y.arrayChildren),Y.arrayLength,Y.name);if(Y.isTuple())return new eq(Y.components.map((Q)=>this.#Y(Q)),Y.name);switch(Y.baseType){case"address":return new r7(Y.name);case"bool":return new a7(Y.name);case"string":return new qL(Y.name);case"bytes":return new e7(Y.name);case"":return new JL(Y.name)}let J=Y.type.match(UZ);if(J){let Q=parseInt(J[2]||"256");return H(Q!==0&&Q<=256&&Q%8===0,"invalid "+J[1]+" bit length","param",Y),new QL(Q/8,J[1]==="int",Y.name)}if(J=Y.type.match(DZ),J){let Q=parseInt(J[1]);return H(Q!==0&&Q<=32,"invalid bytes length","param",Y),new YL(Q,Y.name)}H(!1,"invalid type","type",Y.type)}getDefaultValue(Y){let J=Y.map((Q)=>this.#Y(_0.from(Q)));return new eq(J,"_").defaultValue()}encode(Y,J){q7(J.length,Y.length,"types/values length mismatch");let Q=Y.map((G)=>this.#Y(_0.from(G))),X=new eq(Q,"_"),q=new Z$;return X.encode(q,J),q.data}decode(Y,J,Q){let X=Y.map((q)=>this.#Y(_0.from(q)));return new eq(X,"_").decode(new Sz(J,Q,Q4))}static _setDefaultMaxInflation(Y){H(typeof Y==="number"&&Number.isInteger(Y),"invalid defaultMaxInflation factor","value",Y),Q4=Y}static defaultAbiCoder(){if(oW==null)oW=new Gq;return oW}static getBuiltinCallException(Y,J,Q){return HZ(Y,J,Q,Gq.defaultAbiCoder())}}class mL{fragment;name;signature;topic;args;constructor(Y,J,Q){let X=Y.name,q=Y.format();Y0(this,{fragment:Y,name:X,signature:q,topic:J,args:Q})}}class yL{fragment;name;args;signature;selector;value;constructor(Y,J,Q,X){let q=Y.name,G=Y.format();Y0(this,{fragment:Y,name:q,args:Q,signature:G,selector:J,value:X})}}class lL{fragment;name;args;signature;selector;constructor(Y,J,Q){let X=Y.name,q=Y.format();Y0(this,{fragment:Y,name:X,args:Q,signature:q,selector:J})}}class k5{hash;_isIndexed;static isIndexed(Y){return!!(Y&&Y._isIndexed)}constructor(Y){Y0(this,{hash:Y,_isIndexed:!0})}}var q4={"0":"generic panic","1":"assert(false)","17":"arithmetic overflow","18":"division or modulo by zero","33":"enum overflow","34":"invalid encoded storage byte array accessed","49":"out-of-bounds array access; popping on an empty array","50":"out-of-bounds access of an array or bytesN","65":"out of memory","81":"uninitialized function"},X4={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:(Y)=>{return`reverted with reason string ${JSON.stringify(Y)}`}},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:(Y)=>{let J="unknown panic code";if(Y>=0&&Y<=255&&q4[Y.toString()])J=q4[Y.toString()];return`reverted with panic code 0x${Y.toString(16)} (${J})`}}};class pJ{fragments;deploy;fallback;receive;#Y;#J;#Q;#q;constructor(Y){let J=[];if(typeof Y==="string")J=JSON.parse(Y);else J=Y;this.#Q=new Map,this.#Y=new Map,this.#J=new Map;let Q=[];for(let G of J)try{Q.push(jQ.from(G))}catch($){console.log(`[Warning] Invalid Fragment ${JSON.stringify(G)}:`,$.message)}Y0(this,{fragments:Object.freeze(Q)});let X=null,q=!1;if(this.#q=this.getAbiCoder(),this.fragments.forEach((G,$)=>{let W;switch(G.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}Y0(this,{deploy:G});return;case"fallback":if(G.inputs.length===0)q=!0;else H(!X||G.payable!==X.payable,"conflicting fallback fragments",`fragments[${$}]`,G),X=G,q=X.payable;return;case"function":W=this.#Q;break;case"event":W=this.#J;break;case"error":W=this.#Y;break;default:return}let j=G.format();if(W.has(j))return;W.set(j,G)}),!this.deploy)Y0(this,{deploy:yY.from("constructor()")});Y0(this,{fallback:X,receive:q})}format(Y){let J=Y?"minimal":"full";return this.fragments.map((Q)=>Q.format(J))}formatJson(){let Y=this.fragments.map((J)=>J.format("json"));return JSON.stringify(Y.map((J)=>JSON.parse(J)))}getAbiCoder(){return Gq.defaultAbiCoder()}#X(Y,J,Q){if(k0(Y)){let q=Y.toLowerCase();for(let G of this.#Q.values())if(q===G.selector)return G;return null}if(Y.indexOf("(")===-1){let q=[];for(let[G,$]of this.#Q)if(G.split("(")[0]===Y)q.push($);if(J){let G=J.length>0?J[J.length-1]:null,$=J.length,W=!0;if(l0.isTyped(G)&&G.type==="overrides")W=!1,$--;for(let j=q.length-1;j>=0;j--){let K=q[j].inputs.length;if(K!==$&&(!W||K!==$-1))q.splice(j,1)}for(let j=q.length-1;j>=0;j--){let K=q[j].inputs;for(let z=0;z<J.length;z++){if(!l0.isTyped(J[z]))continue;if(z>=K.length){if(J[z].type==="overrides")continue;q.splice(j,1);break}if(J[z].type!==K[z].baseType){q.splice(j,1);break}}}}if(q.length===1&&J&&J.length!==q[0].inputs.length){let G=J[J.length-1];if(G==null||Array.isArray(G)||typeof G!=="object")q.splice(0,1)}if(q.length===0)return null;if(q.length>1&&Q){let G=q.map(($)=>JSON.stringify($.format())).join(", ");H(!1,`ambiguous function description (i.e. matches ${G})`,"key",Y)}return q[0]}let X=this.#Q.get(RY.from(Y).format());if(X)return X;return null}getFunctionName(Y){let J=this.#X(Y,null,!1);return H(J,"no matching function","key",Y),J.name}hasFunction(Y){return!!this.#X(Y,null,!1)}getFunction(Y,J){return this.#X(Y,J||null,!0)}forEachFunction(Y){let J=Array.from(this.#Q.keys());J.sort((Q,X)=>Q.localeCompare(X));for(let Q=0;Q<J.length;Q++){let X=J[Q];Y(this.#Q.get(X),Q)}}#$(Y,J,Q){if(k0(Y)){let q=Y.toLowerCase();for(let G of this.#J.values())if(q===G.topicHash)return G;return null}if(Y.indexOf("(")===-1){let q=[];for(let[G,$]of this.#J)if(G.split("(")[0]===Y)q.push($);if(J){for(let G=q.length-1;G>=0;G--)if(q[G].inputs.length<J.length)q.splice(G,1);for(let G=q.length-1;G>=0;G--){let $=q[G].inputs;for(let W=0;W<J.length;W++){if(!l0.isTyped(J[W]))continue;if(J[W].type!==$[W].baseType){q.splice(G,1);break}}}}if(q.length===0)return null;if(q.length>1&&Q){let G=q.map(($)=>JSON.stringify($.format())).join(", ");H(!1,`ambiguous event description (i.e. matches ${G})`,"key",Y)}return q[0]}let X=this.#J.get(BY.from(Y).format());if(X)return X;return null}getEventName(Y){let J=this.#$(Y,null,!1);return H(J,"no matching event","key",Y),J.name}hasEvent(Y){return!!this.#$(Y,null,!1)}getEvent(Y,J){return this.#$(Y,J||null,!0)}forEachEvent(Y){let J=Array.from(this.#J.keys());J.sort((Q,X)=>Q.localeCompare(X));for(let Q=0;Q<J.length;Q++){let X=J[Q];Y(this.#J.get(X),Q)}}getError(Y,J){if(k0(Y)){let X=Y.toLowerCase();if(X4[X])return C8.from(X4[X].signature);for(let q of this.#Y.values())if(X===q.selector)return q;return null}if(Y.indexOf("(")===-1){let X=[];for(let[q,G]of this.#Y)if(q.split("(")[0]===Y)X.push(G);if(X.length===0){if(Y==="Error")return C8.from("error Error(string)");if(Y==="Panic")return C8.from("error Panic(uint256)");return null}else if(X.length>1){let q=X.map((G)=>JSON.stringify(G.format())).join(", ");H(!1,`ambiguous error description (i.e. ${q})`,"name",Y)}return X[0]}if(Y=C8.from(Y).format(),Y==="Error(string)")return C8.from("error Error(string)");if(Y==="Panic(uint256)")return C8.from("error Panic(uint256)");let Q=this.#Y.get(Y);if(Q)return Q;return null}forEachError(Y){let J=Array.from(this.#Y.keys());J.sort((Q,X)=>Q.localeCompare(X));for(let Q=0;Q<J.length;Q++){let X=J[Q];Y(this.#Y.get(X),Q)}}_decodeParams(Y,J){return this.#q.decode(Y,J)}_encodeParams(Y,J){return this.#q.encode(Y,J)}encodeDeploy(Y){return this._encodeParams(this.deploy.inputs,Y||[])}decodeErrorResult(Y,J){if(typeof Y==="string"){let Q=this.getError(Y);H(Q,"unknown error","fragment",Y),Y=Q}return H(y0(J,0,4)===Y.selector,`data signature does not match error ${Y.name}.`,"data",J),this._decodeParams(Y.inputs,y0(J,4))}encodeErrorResult(Y,J){if(typeof Y==="string"){let Q=this.getError(Y);H(Q,"unknown error","fragment",Y),Y=Q}return Z0([Y.selector,this._encodeParams(Y.inputs,J||[])])}decodeFunctionData(Y,J){if(typeof Y==="string"){let Q=this.getFunction(Y);H(Q,"unknown function","fragment",Y),Y=Q}return H(y0(J,0,4)===Y.selector,`data signature does not match function ${Y.name}.`,"data",J),this._decodeParams(Y.inputs,y0(J,4))}encodeFunctionData(Y,J){if(typeof Y==="string"){let Q=this.getFunction(Y);H(Q,"unknown function","fragment",Y),Y=Q}return Z0([Y.selector,this._encodeParams(Y.inputs,J||[])])}decodeFunctionResult(Y,J){if(typeof Y==="string"){let q=this.getFunction(Y);H(q,"unknown function","fragment",Y),Y=q}let Q="invalid length for result data",X=j8(J);if(X.length%32===0)try{return this.#q.decode(Y.outputs,X)}catch(q){Q="could not decode result data"}_(!1,Q,"BAD_DATA",{value:l(X),info:{method:Y.name,signature:Y.format()}})}makeError(Y,J){let Q=z0(Y,"data"),X=Gq.getBuiltinCallException("call",J,Q),q="execution reverted (unknown custom error)";if(X.message.startsWith("execution reverted (unknown custom error)")){let $=l(Q.slice(0,4)),W=this.getError($);if(W)try{let j=this.#q.decode(W.inputs,Q.slice(4));X.revert={name:W.name,signature:W.format(),args:j},X.reason=X.revert.signature,X.message=`execution reverted: ${X.reason}`}catch(j){X.message="execution reverted (coult not decode custom error)"}}let G=this.parseTransaction(J);if(G)X.invocation={method:G.name,signature:G.signature,args:G.args};return X}encodeFunctionResult(Y,J){if(typeof Y==="string"){let Q=this.getFunction(Y);H(Q,"unknown function","fragment",Y),Y=Q}return l(this.#q.encode(Y.outputs,J||[]))}encodeFilterTopics(Y,J){if(typeof Y==="string"){let q=this.getEvent(Y);H(q,"unknown event","eventFragment",Y),Y=q}_(J.length<=Y.inputs.length,`too many arguments for ${Y.format()}`,"UNEXPECTED_ARGUMENT",{count:J.length,expectedCount:Y.inputs.length});let Q=[];if(!Y.anonymous)Q.push(Y.topicHash);let X=(q,G)=>{if(q.type==="string")return $Q(G);else if(q.type==="bytes")return d0(l(G));if(q.type==="bool"&&typeof G==="boolean")G=G?"0x01":"0x00";else if(q.type.match(/^u?int/))G=EJ(G);else if(q.type.match(/^bytes/))G=WP(G,32);else if(q.type==="address")this.#q.encode(["address"],[G]);return rY(l(G),32)};J.forEach((q,G)=>{let $=Y.inputs[G];if(!$.indexed){H(q==null,"cannot filter non-indexed parameters; must be null","contract."+$.name,q);return}if(q==null)Q.push(null);else if($.baseType==="array"||$.baseType==="tuple")H(!1,"filtering with tuples or arrays not supported","contract."+$.name,q);else if(Array.isArray(q))Q.push(q.map((W)=>X($,W)));else Q.push(X($,q))});while(Q.length&&Q[Q.length-1]===null)Q.pop();return Q}encodeEventLog(Y,J){if(typeof Y==="string"){let G=this.getEvent(Y);H(G,"unknown event","eventFragment",Y),Y=G}let Q=[],X=[],q=[];if(!Y.anonymous)Q.push(Y.topicHash);return H(J.length===Y.inputs.length,"event arguments/values mismatch","values",J),Y.inputs.forEach((G,$)=>{let W=J[$];if(G.indexed)if(G.type==="string")Q.push($Q(W));else if(G.type==="bytes")Q.push(d0(W));else if(G.baseType==="tuple"||G.baseType==="array")throw Error("not implemented");else Q.push(this.#q.encode([G.type],[W]));else X.push(G),q.push(W)}),{data:this.#q.encode(X,q),topics:Q}}decodeEventLog(Y,J,Q){if(typeof Y==="string"){let N=this.getEvent(Y);H(N,"unknown event","eventFragment",Y),Y=N}if(Q!=null&&!Y.anonymous){let N=Y.topicHash;H(k0(Q[0],32)&&Q[0].toLowerCase()===N,"fragment/topic mismatch","topics[0]",Q[0]),Q=Q.slice(1)}let X=[],q=[],G=[];Y.inputs.forEach((N,O)=>{if(N.indexed)if(N.type==="string"||N.type==="bytes"||N.baseType==="tuple"||N.baseType==="array")X.push(_0.from({type:"bytes32",name:N.name})),G.push(!0);else X.push(N),G.push(!1);else q.push(N),G.push(!1)});let $=Q!=null?this.#q.decode(X,Z0(Q)):null,W=this.#q.decode(q,J,!0),j=[],K=[],z=0,M=0;return Y.inputs.forEach((N,O)=>{let D=null;if(N.indexed)if($==null)D=new k5(null);else if(G[O])D=new k5($[M++]);else try{D=$[M++]}catch(U){D=U}else try{D=W[z++]}catch(U){D=U}j.push(D),K.push(N.name||null)}),mY.fromItems(j,K)}parseTransaction(Y){let J=z0(Y.data,"tx.data"),Q=d(Y.value!=null?Y.value:0,"tx.value"),X=this.getFunction(l(J.slice(0,4)));if(!X)return null;let q=this.#q.decode(X.inputs,J.slice(4));return new yL(X,X.selector,q,Q)}parseCallResult(Y){throw Error("@TODO")}parseLog(Y){let J=this.getEvent(Y.topics[0]);if(!J||J.anonymous)return null;return new mL(J,J.topicHash,this.decodeEventLog(J,Y.data,Y.topics))}parseError(Y){let J=l(Y),Q=this.getError(y0(J,0,4));if(!Q)return null;let X=this.#q.decode(Q.inputs,y0(J,4));return new lL(Q,Q.selector,X)}static from(Y){if(Y instanceof pJ)return Y;if(typeof Y==="string")return new pJ(JSON.parse(Y));if(typeof Y.formatJson==="function")return new pJ(Y.formatJson());if(typeof Y.format==="function")return new pJ(Y.format("json"));return new pJ(Y)}}var uL=BigInt(0);function uQ(Y){if(Y==null)return null;return Y}function p0(Y){if(Y==null)return null;return Y.toString()}class F5{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(Y,J,Q){Y0(this,{gasPrice:uQ(Y),maxFeePerGas:uQ(J),maxPriorityFeePerGas:uQ(Q)})}toJSON(){let{gasPrice:Y,maxFeePerGas:J,maxPriorityFeePerGas:Q}=this;return{_type:"FeeData",gasPrice:p0(Y),maxFeePerGas:p0(J),maxPriorityFeePerGas:p0(Q)}}}function l$(Y){let J={};if(Y.to)J.to=Y.to;if(Y.from)J.from=Y.from;if(Y.data)J.data=l(Y.data);let Q="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let q of Q){if(!(q in Y)||Y[q]==null)continue;J[q]=d(Y[q],`request.${q}`)}let X="type,nonce".split(/,/);for(let q of X){if(!(q in Y)||Y[q]==null)continue;J[q]=j0(Y[q],`request.${q}`)}if(Y.accessList)J.accessList=UQ(Y.accessList);if(Y.authorizationList)J.authorizationList=Y.authorizationList.slice();if("blockTag"in Y)J.blockTag=Y.blockTag;if("enableCcipRead"in Y)J.enableCcipRead=!!Y.enableCcipRead;if("customData"in Y)J.customData=Y.customData;if("blobVersionedHashes"in Y&&Y.blobVersionedHashes)J.blobVersionedHashes=Y.blobVersionedHashes.slice();if("kzg"in Y)J.kzg=Y.kzg;if("blobWrapperVersion"in Y)J.blobWrapperVersion=Y.blobWrapperVersion;if("blobs"in Y&&Y.blobs)J.blobs=Y.blobs.map((q)=>{if(wz(q))return l(q);return Object.assign({},q)});return J}class cL{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#Y;constructor(Y,J){this.#Y=Y.transactions.map((Q)=>{if(typeof Q!=="string")return new $G(Q,J);return Q}),Y0(this,{provider:J,hash:uQ(Y.hash),number:Y.number,timestamp:Y.timestamp,parentHash:Y.parentHash,parentBeaconBlockRoot:Y.parentBeaconBlockRoot,nonce:Y.nonce,difficulty:Y.difficulty,gasLimit:Y.gasLimit,gasUsed:Y.gasUsed,blobGasUsed:Y.blobGasUsed,excessBlobGas:Y.excessBlobGas,miner:Y.miner,prevRandao:uQ(Y.prevRandao),extraData:Y.extraData,baseFeePerGas:uQ(Y.baseFeePerGas),stateRoot:Y.stateRoot,receiptsRoot:Y.receiptsRoot})}get transactions(){return this.#Y.map((Y)=>{if(typeof Y==="string")return Y;return Y.hash})}get prefetchedTransactions(){let Y=this.#Y.slice();if(Y.length===0)return[];return _(typeof Y[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),Y}toJSON(){let{baseFeePerGas:Y,difficulty:J,extraData:Q,gasLimit:X,gasUsed:q,hash:G,miner:$,prevRandao:W,nonce:j,number:K,parentHash:z,parentBeaconBlockRoot:M,stateRoot:N,receiptsRoot:O,timestamp:D,transactions:U}=this;return{_type:"Block",baseFeePerGas:p0(Y),difficulty:p0(J),extraData:Q,gasLimit:p0(X),gasUsed:p0(q),blobGasUsed:p0(this.blobGasUsed),excessBlobGas:p0(this.excessBlobGas),hash:G,miner:$,prevRandao:W,nonce:j,number:K,parentHash:z,timestamp:D,parentBeaconBlockRoot:M,stateRoot:N,receiptsRoot:O,transactions:U}}[Symbol.iterator](){let Y=0,J=this.transactions;return{next:()=>{if(Y<this.length)return{value:J[Y++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#Y.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(Y){let J=void 0;if(typeof Y==="number")J=this.#Y[Y];else{let Q=Y.toLowerCase();for(let X of this.#Y)if(typeof X==="string"){if(X!==Q)continue;J=X;break}else{if(X.hash!==Q)continue;J=X;break}}if(J==null)throw Error("no such tx");if(typeof J==="string")return await this.provider.getTransaction(J);else return J}getPrefetchedTransaction(Y){let J=this.prefetchedTransactions;if(typeof Y==="number")return J[Y];Y=Y.toLowerCase();for(let Q of J)if(Q.hash===Y)return Q;H(!1,"no matching transaction","indexOrHash",Y)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return BZ(this)}}class Rq{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(Y,J){this.provider=J;let Q=Object.freeze(Y.topics.slice());Y0(this,{transactionHash:Y.transactionHash,blockHash:Y.blockHash,blockNumber:Y.blockNumber,removed:Y.removed,address:Y.address,data:Y.data,topics:Q,index:Y.index,transactionIndex:Y.transactionIndex})}toJSON(){let{address:Y,blockHash:J,blockNumber:Q,data:X,index:q,removed:G,topics:$,transactionHash:W,transactionIndex:j}=this;return{_type:"log",address:Y,blockHash:J,blockNumber:Q,data:X,index:q,removed:G,topics:$,transactionHash:W,transactionIndex:j}}async getBlock(){let Y=await this.provider.getBlock(this.blockHash);return _(!!Y,"failed to find transaction","UNKNOWN_ERROR",{}),Y}async getTransaction(){let Y=await this.provider.getTransaction(this.transactionHash);return _(!!Y,"failed to find transaction","UNKNOWN_ERROR",{}),Y}async getTransactionReceipt(){let Y=await this.provider.getTransactionReceipt(this.transactionHash);return _(!!Y,"failed to find transaction receipt","UNKNOWN_ERROR",{}),Y}removedEvent(){return RZ(this)}}class lz{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#Y;constructor(Y,J){this.#Y=Object.freeze(Y.logs.map((X)=>{return new Rq(X,J)}));let Q=uL;if(Y.effectiveGasPrice!=null)Q=Y.effectiveGasPrice;else if(Y.gasPrice!=null)Q=Y.gasPrice;Y0(this,{provider:J,to:Y.to,from:Y.from,contractAddress:Y.contractAddress,hash:Y.hash,index:Y.index,blockHash:Y.blockHash,blockNumber:Y.blockNumber,logsBloom:Y.logsBloom,gasUsed:Y.gasUsed,cumulativeGasUsed:Y.cumulativeGasUsed,blobGasUsed:Y.blobGasUsed,gasPrice:Q,blobGasPrice:Y.blobGasPrice,type:Y.type,status:Y.status,root:Y.root})}get logs(){return this.#Y}toJSON(){let{to:Y,from:J,contractAddress:Q,hash:X,index:q,blockHash:G,blockNumber:$,logsBloom:W,logs:j,status:K,root:z}=this;return{_type:"TransactionReceipt",blockHash:G,blockNumber:$,contractAddress:Q,cumulativeGasUsed:p0(this.cumulativeGasUsed),from:J,gasPrice:p0(this.gasPrice),blobGasUsed:p0(this.blobGasUsed),blobGasPrice:p0(this.blobGasPrice),gasUsed:p0(this.gasUsed),hash:X,index:q,logs:j,logsBloom:W,root:z,status:K,to:Y}}get length(){return this.logs.length}[Symbol.iterator](){let Y=0;return{next:()=>{if(Y<this.length)return{value:this.logs[Y++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let Y=await this.provider.getBlock(this.blockHash);if(Y==null)throw Error("TODO");return Y}async getTransaction(){let Y=await this.provider.getTransaction(this.hash);if(Y==null)throw Error("TODO");return Y}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return pL(this)}reorderedEvent(Y){return _(!Y||Y.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),bL(this,Y)}}class $G{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#Y;constructor(Y,J){this.provider=J,this.blockNumber=Y.blockNumber!=null?Y.blockNumber:null,this.blockHash=Y.blockHash!=null?Y.blockHash:null,this.hash=Y.hash,this.index=Y.index,this.type=Y.type,this.from=Y.from,this.to=Y.to||null,this.gasLimit=Y.gasLimit,this.nonce=Y.nonce,this.data=Y.data,this.value=Y.value,this.gasPrice=Y.gasPrice,this.maxPriorityFeePerGas=Y.maxPriorityFeePerGas!=null?Y.maxPriorityFeePerGas:null,this.maxFeePerGas=Y.maxFeePerGas!=null?Y.maxFeePerGas:null,this.maxFeePerBlobGas=Y.maxFeePerBlobGas!=null?Y.maxFeePerBlobGas:null,this.chainId=Y.chainId,this.signature=Y.signature,this.accessList=Y.accessList!=null?Y.accessList:null,this.blobVersionedHashes=Y.blobVersionedHashes!=null?Y.blobVersionedHashes:null,this.authorizationList=Y.authorizationList!=null?Y.authorizationList:null,this.#Y=-1}toJSON(){let{blockNumber:Y,blockHash:J,index:Q,hash:X,type:q,to:G,from:$,nonce:W,data:j,signature:K,accessList:z,blobVersionedHashes:M}=this;return{_type:"TransactionResponse",accessList:z,blockNumber:Y,blockHash:J,blobVersionedHashes:M,chainId:p0(this.chainId),data:j,from:$,gasLimit:p0(this.gasLimit),gasPrice:p0(this.gasPrice),hash:X,maxFeePerGas:p0(this.maxFeePerGas),maxPriorityFeePerGas:p0(this.maxPriorityFeePerGas),maxFeePerBlobGas:p0(this.maxFeePerBlobGas),nonce:W,signature:K,to:G,index:Q,type:q,value:p0(this.value)}}async getBlock(){let Y=this.blockNumber;if(Y==null){let Q=await this.getTransaction();if(Q)Y=Q.blockNumber}if(Y==null)return null;let J=this.provider.getBlock(Y);if(J==null)throw Error("TODO");return J}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Y,blockNumber:J}=await U8({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(Y==null||Y.blockNumber==null)return 0;return J-Y.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(Y,J){let Q=Y==null?1:Y,X=J==null?0:J,q=this.#Y,G=-1,$=q===-1?!0:!1,W=async()=>{if($)return null;let{blockNumber:z,nonce:M}=await U8({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(M<this.nonce){q=z;return}if($)return null;let N=await this.getTransaction();if(N&&N.blockNumber!=null)return;if(G===-1){if(G=q-3,G<this.#Y)G=this.#Y}while(G<=z){if($)return null;let O=await this.provider.getBlock(G,!0);if(O==null)return;for(let D of O)if(D===this.hash)return;for(let D=0;D<O.length;D++){let U=await O.getTransaction(D);if(U.from===this.from&&U.nonce===this.nonce){if($)return null;let A=await this.provider.getTransactionReceipt(U.hash);if(A==null)return;if(z-A.blockNumber+1<Q)return;let w="replaced";if(U.data===this.data&&U.to===this.to&&U.value===this.value)w="repriced";else if(U.data==="0x"&&U.from===U.to&&U.value===uL)w="cancelled";_(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:w==="replaced"||w==="cancelled",reason:w,replacement:U.replaceableTransaction(q),hash:U.hash,receipt:A})}}G++}return},j=(z)=>{if(z==null||z.status!==0)return z;_(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:z.to,from:z.from,data:""},receipt:z})},K=await this.provider.getTransactionReceipt(this.hash);if(Q===0)return j(K);if(K){if(Q===1||await K.confirmations()>=Q)return j(K)}else if(await W(),Q===0)return null;return await new Promise((z,M)=>{let N=[],O=()=>{N.forEach((U)=>U())};if(N.push(()=>{$=!0}),X>0){let U=setTimeout(()=>{O(),M(P0("wait for transaction timeout","TIMEOUT"))},X);N.push(()=>{clearTimeout(U)})}let D=async(U)=>{if(await U.confirmations()>=Q){O();try{z(j(U))}catch(A){M(A)}}};if(N.push(()=>{this.provider.off(this.hash,D)}),this.provider.on(this.hash,D),q>=0){let U=async()=>{try{await W()}catch(A){if(X8(A,"TRANSACTION_REPLACED")){O(),M(A);return}}if(!$)this.provider.once("block",U)};N.push(()=>{this.provider.off("block",U)}),this.provider.once("block",U)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),pL(this)}reorderedEvent(Y){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),_(!Y||Y.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),bL(this,Y)}replaceableTransaction(Y){H(Number.isInteger(Y)&&Y>=0,"invalid startBlock","startBlock",Y);let J=new $G(this,this.provider);return J.#Y=Y,J}}function BZ(Y){return{orphan:"drop-block",hash:Y.hash,number:Y.number}}function bL(Y,J){return{orphan:"reorder-transaction",tx:Y,other:J}}function pL(Y){return{orphan:"drop-transaction",tx:Y}}function RZ(Y){return{orphan:"drop-log",log:{transactionHash:Y.transactionHash,blockHash:Y.blockHash,blockNumber:Y.blockNumber,address:Y.address,data:Y.data,topics:Object.freeze(Y.topics.slice()),index:Y.index}}}class i9 extends Rq{interface;fragment;args;constructor(Y,J,Q){super(Y,Y.provider);let X=J.decodeEventLog(Q,Y.data,Y.topics);Y0(this,{args:X,fragment:Q,interface:J})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class uz extends Rq{error;constructor(Y,J){super(Y,Y.provider);Y0(this,{error:J})}}class oL extends lz{#Y;constructor(Y,J,Q){super(Q,J);this.#Y=Y}get logs(){return super.logs.map((Y)=>{let J=Y.topics.length?this.#Y.getEvent(Y.topics[0]):null;if(J)try{return new i9(Y,this.#Y,J)}catch(Q){return new uz(Y,Q)}return Y})}}class t9 extends $G{#Y;constructor(Y,J,Q){super(Q,J);this.#Y=Y}async wait(Y,J){let Q=await super.wait(Y,J);if(Q==null)return null;return new oL(this.#Y,this.provider,Q)}}class cz extends Cz{log;constructor(Y,J,Q,X){super(Y,J,Q);Y0(this,{log:X})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class dL extends cz{constructor(Y,J,Q,X,q){super(Y,J,Q,new i9(q,Y.interface,X));let G=Y.interface.decodeEventLog(X,this.log.data,this.log.topics);Y0(this,{args:G,fragment:X})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var G4=BigInt(0);function rL(Y){return Y&&typeof Y.call==="function"}function sL(Y){return Y&&typeof Y.estimateGas==="function"}function n9(Y){return Y&&typeof Y.resolveName==="function"}function iL(Y){return Y&&typeof Y.sendTransaction==="function"}function tL(Y){if(Y!=null){if(n9(Y))return Y;if(Y.provider)return Y.provider}return}class nL{#Y;fragment;constructor(Y,J,Q){if(Y0(this,{fragment:J}),J.inputs.length<Q.length)throw Error("too many arguments");let X=KQ(Y.runner,"resolveName"),q=n9(X)?X:null;this.#Y=async function(){let G=await Promise.all(J.inputs.map(($,W)=>{if(Q[W]==null)return null;return $.walkAsync(Q[W],(j,K)=>{if(j==="address"){if(Array.isArray(K))return Promise.all(K.map((z)=>B8(z,q)));return B8(K,q)}return K})}));return Y.interface.encodeFilterTopics(J,G)}()}getTopicFilter(){return this.#Y}}function KQ(Y,J){if(Y==null)return null;if(typeof Y[J]==="function")return Y;if(Y.provider&&typeof Y.provider[J]==="function")return Y.provider;return null}function tJ(Y){if(Y==null)return null;return Y.provider||null}async function aL(Y,J){let Q=l0.dereference(Y,"overrides");H(typeof Q==="object","invalid overrides parameter","overrides",Y);let X=l$(Q);if(H(X.to==null||(J||[]).indexOf("to")>=0,"cannot override to","overrides.to",X.to),H(X.data==null||(J||[]).indexOf("data")>=0,"cannot override data","overrides.data",X.data),X.from)X.from=X.from;return X}async function VZ(Y,J,Q){let X=KQ(Y,"resolveName"),q=n9(X)?X:null;return await Promise.all(J.map((G,$)=>{return G.walkAsync(Q[$],(W,j)=>{if(j=l0.dereference(j,W),W==="address")return B8(j,q);return j})}))}function LZ(Y){let J=async function($){let W=await aL($,["data"]);if(W.to=await Y.getAddress(),W.from)W.from=await B8(W.from,tL(Y.runner));let j=Y.interface,K=d(W.value||G4,"overrides.value")===G4,z=(W.data||"0x")==="0x";if(j.fallback&&!j.fallback.payable&&j.receive&&!z&&!K)H(!1,"cannot send data to receive or send value to non-payable fallback","overrides",$);H(j.fallback||z,"cannot send data to receive-only contract","overrides.data",W.data);let M=j.receive||j.fallback&&j.fallback.payable;return H(M||K,"cannot send value to non-payable fallback","overrides.value",W.value),H(j.fallback||z,"cannot send data to receive-only contract","overrides.data",W.data),W},Q=async function($){let W=KQ(Y.runner,"call");_(rL(W),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let j=await J($);try{return await W.call(j)}catch(K){if(Ez(K)&&K.data)throw Y.interface.makeError(K.data,j);throw K}},X=async function($){let W=Y.runner;_(iL(W),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let j=await W.sendTransaction(await J($)),K=tJ(Y.runner);return new t9(Y.interface,K,j)},q=async function($){let W=KQ(Y.runner,"estimateGas");return _(sL(W),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await W.estimateGas(await J($))},G=async($)=>{return await X($)};return Y0(G,{_contract:Y,estimateGas:q,populateTransaction:J,send:X,staticCall:Q}),G}function EZ(Y,J){let Q=function(...K){let z=Y.interface.getFunction(J,K);return _(z,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J,args:K}}),z},X=async function(...K){let z=Q(...K),M={};if(z.inputs.length+1===K.length){if(M=await aL(K.pop()),M.from)M.from=await B8(M.from,tL(Y.runner))}if(z.inputs.length!==K.length)throw Error("internal error: fragment inputs doesn't match arguments; should not happen");let N=await VZ(Y.runner,z.inputs,K);return Object.assign({},M,await U8({to:Y.getAddress(),data:Y.interface.encodeFunctionData(z,N)}))},q=async function(...K){let z=await W(...K);if(z.length===1)return z[0];return z},G=async function(...K){let z=Y.runner;_(iL(z),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let M=await z.sendTransaction(await X(...K)),N=tJ(Y.runner);return new t9(Y.interface,N,M)},$=async function(...K){let z=KQ(Y.runner,"estimateGas");return _(sL(z),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await z.estimateGas(await X(...K))},W=async function(...K){let z=KQ(Y.runner,"call");_(rL(z),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let M=await X(...K),N="0x";try{N=await z.call(M)}catch(D){if(Ez(D)&&D.data)throw Y.interface.makeError(D.data,M);throw D}let O=Q(...K);return Y.interface.decodeFunctionResult(O,N)},j=async(...K)=>{if(Q(...K).constant)return await q(...K);return await G(...K)};return Y0(j,{name:Y.interface.getFunctionName(J),_contract:Y,_key:J,getFragment:Q,estimateGas:$,populateTransaction:X,send:G,staticCall:q,staticCallResult:W}),Object.defineProperty(j,"fragment",{configurable:!1,enumerable:!0,get:()=>{let K=Y.interface.getFunction(J);return _(K,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J}}),K}}),j}function wZ(Y,J){let Q=function(...q){let G=Y.interface.getEvent(J,q);return _(G,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J,args:q}}),G},X=function(...q){return new nL(Y,Q(...q),q)};return Y0(X,{name:Y.interface.getEventName(J),_contract:Y,_key:J,getFragment:Q}),Object.defineProperty(X,"fragment",{configurable:!1,enumerable:!0,get:()=>{let q=Y.interface.getEvent(J);return _(q,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J}}),q}}),X}var u$=Symbol.for("_ethersInternal_contract"),eL=new WeakMap;function AZ(Y,J){eL.set(Y[u$],J)}function T8(Y){return eL.get(Y[u$])}function CZ(Y){return Y&&typeof Y==="object"&&"getTopicFilter"in Y&&typeof Y.getTopicFilter==="function"&&Y.fragment}async function bz(Y,J){let Q,X=null;if(Array.isArray(J)){let G=function($){if(k0($,32))return $;let W=Y.interface.getEvent($);return H(W,"unknown fragment","name",$),W.topicHash};Q=J.map(($)=>{if($==null)return null;if(Array.isArray($))return $.map(G);return G($)})}else if(J==="*")Q=[null];else if(typeof J==="string")if(k0(J,32))Q=[J];else X=Y.interface.getEvent(J),H(X,"unknown fragment","event",J),Q=[X.topicHash];else if(CZ(J))Q=await J.getTopicFilter();else if("fragment"in J)X=J.fragment,Q=[X.topicHash];else H(!1,"unknown event name","event",J);Q=Q.map((G)=>{if(G==null)return null;if(Array.isArray(G)){let $=Array.from(new Set(G.map((W)=>W.toLowerCase())).values());if($.length===1)return $[0];return $.sort(),$}return G.toLowerCase()});let q=Q.map((G)=>{if(G==null)return"null";if(Array.isArray(G))return G.join("|");return G}).join("&");return{fragment:X,tag:q,topics:Q}}async function JX(Y,J){let{subs:Q}=T8(Y);return Q.get((await bz(Y,J)).tag)||null}async function $4(Y,J,Q){let X=tJ(Y.runner);_(X,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:J});let{fragment:q,tag:G,topics:$}=await bz(Y,Q),{addr:W,subs:j}=T8(Y),K=j.get(G);if(!K){let z={address:W?W:Y,topics:$},M=(O)=>{let D=q;if(D==null)try{D=Y.interface.getEvent(O.topics[0])}catch(U){}if(D){let U=D,A=q?Y.interface.decodeEventLog(q,O.data,O.topics):[];T5(Y,Q,A,(w)=>{return new dL(Y,w,Q,U,O)})}else T5(Y,Q,[],(U)=>{return new cz(Y,U,Q,O)})},N=[];K={tag:G,listeners:[],start:()=>{if(N.length)return;N.push(X.on(z,M))},stop:async()=>{if(N.length==0)return;let O=N;N=[],await Promise.all(O),X.off(z,M)}},j.set(G,K)}return K}var P5=Promise.resolve();async function IZ(Y,J,Q,X){await P5;let q=await JX(Y,J);if(!q)return!1;let G=q.listeners.length;if(q.listeners=q.listeners.filter(({listener:$,once:W})=>{let j=Array.from(Q);if(X)j.push(X(W?null:$));try{$.call(Y,...j)}catch(K){}return!W}),q.listeners.length===0)q.stop(),T8(Y).subs.delete(q.tag);return G>0}async function T5(Y,J,Q,X){try{await P5}catch(G){}let q=IZ(Y,J,Q,X);return P5=q,await q}var aG=["then"];class XX{target;interface;runner;filters;[u$];fallback;constructor(Y,J,Q,X){if(H(typeof Y==="string"||d7(Y),"invalid value for Contract target","target",Y),Q==null)Q=null;let q=pJ.from(J);Y0(this,{target:Y,runner:Q,interface:q}),Object.defineProperty(this,u$,{value:{}});let G,$=null,W=null;if(X){let z=tJ(Q);W=new t9(this.interface,z,X)}let j=new Map;if(typeof Y==="string")if(k0(Y))$=Y,G=Promise.resolve(Y);else{let z=KQ(Q,"resolveName");if(!n9(z))throw P0("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});G=z.resolveName(Y).then((M)=>{if(M==null)throw P0("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:Y});return T8(this).addr=M,M})}else G=Y.getAddress().then((z)=>{if(z==null)throw Error("TODO");return T8(this).addr=z,z});AZ(this,{addrPromise:G,addr:$,deployTx:W,subs:j});let K=new Proxy({},{get:(z,M,N)=>{if(typeof M==="symbol"||aG.indexOf(M)>=0)return Reflect.get(z,M,N);try{return this.getEvent(M)}catch(O){if(!X8(O,"INVALID_ARGUMENT")||O.argument!=="key")throw O}return},has:(z,M)=>{if(aG.indexOf(M)>=0)return Reflect.has(z,M);return Reflect.has(z,M)||this.interface.hasEvent(String(M))}});return Y0(this,{filters:K}),Y0(this,{fallback:q.receive||q.fallback?LZ(this):null}),new Proxy(this,{get:(z,M,N)=>{if(typeof M==="symbol"||M in z||aG.indexOf(M)>=0)return Reflect.get(z,M,N);try{return z.getFunction(M)}catch(O){if(!X8(O,"INVALID_ARGUMENT")||O.argument!=="key")throw O}return},has:(z,M)=>{if(typeof M==="symbol"||M in z||aG.indexOf(M)>=0)return Reflect.has(z,M);return z.interface.hasFunction(M)}})}connect(Y){return new XX(this.target,this.interface,Y)}attach(Y){return new XX(Y,this.interface,this.runner)}async getAddress(){return await T8(this).addrPromise}async getDeployedCode(){let Y=tJ(this.runner);_(Y,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});let J=await Y.getCode(await this.getAddress());if(J==="0x")return null;return J}async waitForDeployment(){let Y=this.deploymentTransaction();if(Y)return await Y.wait(),this;if(await this.getDeployedCode()!=null)return this;let J=tJ(this.runner);return _(J!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((Q,X)=>{let q=async()=>{try{if(await this.getDeployedCode()!=null)return Q(this);J.once("block",q)}catch(G){X(G)}};q()})}deploymentTransaction(){return T8(this).deployTx}getFunction(Y){if(typeof Y!=="string")Y=Y.format();return EZ(this,Y)}getEvent(Y){if(typeof Y!=="string")Y=Y.format();return wZ(this,Y)}async queryTransaction(Y){throw Error("@TODO")}async queryFilter(Y,J,Q){if(J==null)J=0;if(Q==null)Q="latest";let{addr:X,addrPromise:q}=T8(this),G=X?X:await q,{fragment:$,topics:W}=await bz(this,Y),j={address:G,topics:W,fromBlock:J,toBlock:Q},K=tJ(this.runner);return _(K,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await K.getLogs(j)).map((z)=>{let M=$;if(M==null)try{M=this.interface.getEvent(z.topics[0])}catch(N){}if(M)try{return new i9(z,this.interface,M)}catch(N){return new uz(z,N)}return new Rq(z,K)})}async on(Y,J){let Q=await $4(this,"on",Y);return Q.listeners.push({listener:J,once:!1}),Q.start(),this}async once(Y,J){let Q=await $4(this,"once",Y);return Q.listeners.push({listener:J,once:!0}),Q.start(),this}async emit(Y,...J){return await T5(this,Y,J,null)}async listenerCount(Y){if(Y){let X=await JX(this,Y);if(!X)return 0;return X.listeners.length}let{subs:J}=T8(this),Q=0;for(let{listeners:X}of J.values())Q+=X.length;return Q}async listeners(Y){if(Y){let X=await JX(this,Y);if(!X)return[];return X.listeners.map(({listener:q})=>q)}let{subs:J}=T8(this),Q=[];for(let{listeners:X}of J.values())Q=Q.concat(X.map(({listener:q})=>q));return Q}async off(Y,J){let Q=await JX(this,Y);if(!Q)return this;if(J){let X=Q.listeners.map(({listener:q})=>q).indexOf(J);if(X>=0)Q.listeners.splice(X,1)}if(J==null||Q.listeners.length===0)Q.stop(),T8(this).subs.delete(Q.tag);return this}async removeAllListeners(Y){if(Y){let J=await JX(this,Y);if(!J)return this;J.stop(),T8(this).subs.delete(J.tag)}else{let{subs:J}=T8(this);for(let{tag:Q,stop:X}of J.values())X(),J.delete(Q)}return this}async addListener(Y,J){return await this.on(Y,J)}async removeListener(Y,J){return await this.off(Y,J)}static buildClass(Y){class J extends XX{constructor(Q,X=null){super(Q,Y,X)}}return J}static from(Y,J,Q){if(Q==null)Q=null;return new this(Y,J,Q)}}function SZ(){return XX}class cQ extends SZ(){}function dW(Y){if(Y.match(/^ipfs:\/\/ipfs\//i))Y=Y.substring(12);else if(Y.match(/^ipfs:\/\//i))Y=Y.substring(7);else H(!1,"unsupported IPFS format","link",Y);return`https://gateway.ipfs.io/ipfs/${Y}`}class YE{name;constructor(Y){Y0(this,{name:Y})}connect(Y){return this}supportsCoinType(Y){return!1}async encodeAddress(Y,J){throw Error("unsupported coin")}async decodeAddress(Y,J){throw Error("unsupported coin")}}var JE=new RegExp("^(ipfs)://(.*)$","i"),W4=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),JE,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class bQ{provider;address;name;#Y;#J;constructor(Y,J,Q){Y0(this,{provider:Y,address:J,name:Q}),this.#Y=null,this.#J=new cQ(J,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],Y)}async supportsWildcard(){if(this.#Y==null)this.#Y=(async()=>{try{return await this.#J.supportsInterface("0x9061b923")}catch(Y){if(X8(Y,"CALL_EXCEPTION"))return!1;throw this.#Y=null,Y}})();return await this.#Y}async#Q(Y,J){J=(J||[]).slice();let Q=this.#J.interface;J.unshift(_5(this.name));let X=null;if(await this.supportsWildcard())X=Q.getFunction(Y),_(X,"missing fragment","UNKNOWN_ERROR",{info:{funcName:Y}}),J=[iT(this.name,255),Q.encodeFunctionData(X,J)],Y="resolve(bytes,bytes)";J.push({enableCcipRead:!0});try{let q=await this.#J[Y](...J);if(X)return Q.decodeFunctionResult(X,q)[0];return q}catch(q){if(!X8(q,"CALL_EXCEPTION"))throw q}return null}async getAddress(Y){if(Y==null)Y=60;if(Y===60)try{let q=await this.#Q("addr(bytes32)");if(q==null||q===HX)return null;return q}catch(q){if(X8(q,"CALL_EXCEPTION"))return null;throw q}if(Y>=0&&Y<2147483648){let q=Y+2147483648,G=await this.#Q("addr(bytes32,uint)",[q]);if(k0(G,20))return L0(G)}let J=null;for(let q of this.provider.plugins){if(!(q instanceof YE))continue;if(q.supportsCoinType(Y)){J=q;break}}if(J==null)return null;let Q=await this.#Q("addr(bytes32,uint)",[Y]);if(Q==null||Q==="0x")return null;let X=await J.decodeAddress(Y,Q);if(X!=null)return X;_(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${Y})`,info:{coinType:Y,data:Q}})}async getText(Y){let J=await this.#Q("text(bytes32,string)",[Y]);if(J==null||J==="0x")return null;return J}async getContentHash(){let Y=await this.#Q("contenthash(bytes32)");if(Y==null||Y==="0x")return null;let J=Y.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(J){let X=J[1]==="e3010170"?"ipfs":"ipns",q=parseInt(J[4],16);if(J[5].length===q*2)return`${X}://${zP("0x"+J[2])}`}let Q=Y.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(Q&&Q[1].length===64)return`bzz://${Q[1]}`;_(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:Y}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){let Y=[{type:"name",value:this.name}];try{let J=await this.getText("avatar");if(J==null)return Y.push({type:"!avatar",value:""}),{url:null,linkage:Y};Y.push({type:"avatar",value:J});for(let Q=0;Q<W4.length;Q++){let X=J.match(W4[Q]);if(X==null)continue;let q=X[1].toLowerCase();switch(q){case"https":case"data":return Y.push({type:"url",value:J}),{linkage:Y,url:J};case"ipfs":{let G=dW(J);return Y.push({type:"ipfs",value:J}),Y.push({type:"url",value:G}),{linkage:Y,url:G}}case"erc721":case"erc1155":{let G=q==="erc721"?"tokenURI(uint256)":"uri(uint256)";Y.push({type:q,value:J});let $=await this.getAddress();if($==null)return Y.push({type:"!owner",value:""}),{url:null,linkage:Y};let W=(X[2]||"").split("/");if(W.length!==2)return Y.push({type:`!${q}caip`,value:X[2]||""}),{url:null,linkage:Y};let j=W[1],K=new cQ(W[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if(q==="erc721"){let D=await K.ownerOf(j);if($!==D)return Y.push({type:"!owner",value:D}),{url:null,linkage:Y};Y.push({type:"owner",value:D})}else if(q==="erc1155"){let D=await K.balanceOf($,j);if(!D)return Y.push({type:"!balance",value:"0"}),{url:null,linkage:Y};Y.push({type:"balance",value:D.toString()})}let z=await K[G](j);if(z==null||z==="0x")return Y.push({type:"!metadata-url",value:""}),{url:null,linkage:Y};if(Y.push({type:"metadata-url-base",value:z}),q==="erc1155")z=z.replace("{id}",EJ(j,32).substring(2)),Y.push({type:"metadata-url-expanded",value:z});if(z.match(/^ipfs:/i))z=dW(z);Y.push({type:"metadata-url",value:z});let M={},N=await new LY(z).send();N.assertOk();try{M=N.bodyJson}catch(D){try{Y.push({type:"!metadata",value:N.bodyText})}catch(U){let A=N.body;if(A)Y.push({type:"!metadata",value:l(A)});return{url:null,linkage:Y}}return{url:null,linkage:Y}}if(!M)return Y.push({type:"!metadata",value:""}),{url:null,linkage:Y};Y.push({type:"metadata",value:JSON.stringify(M)});let O=M.image;if(typeof O!=="string")return Y.push({type:"!imageUrl",value:""}),{url:null,linkage:Y};if(O.match(/^(https:\/\/|data:)/i));else{if(O.match(JE)==null)return Y.push({type:"!imageUrl-ipfs",value:O}),{url:null,linkage:Y};Y.push({type:"imageUrl-ipfs",value:O}),O=dW(O)}return Y.push({type:"url",value:O}),{linkage:Y,url:O}}}}}catch(J){}return{linkage:Y,url:null}}static async getEnsAddress(Y){let J=await Y.getNetwork(),Q=J.getPlugin("org.ethers.plugins.network.Ens");return _(Q,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:J}}),Q.address}static async#q(Y,J){let Q=await bQ.getEnsAddress(Y);try{let X=await new cQ(Q,["function resolver(bytes32) view returns (address)"],Y).resolver(_5(J),{enableCcipRead:!0});if(X===HX)return null;return X}catch(X){throw X}return null}static async fromName(Y,J){let Q=J;while(!0){if(Q===""||Q===".")return null;if(J!=="eth"&&Q==="eth")return null;let X=await bQ.#q(Y,Q);if(X!=null){let q=new bQ(Y,X,J);if(Q!==J&&!await q.supportsWildcard())return null;return q}Q=Q.split(".").slice(1).join(".")}}}var j4=BigInt(0);function U0(Y,J){return function(Q){if(Q==null)return J;return Y(Q)}}function wX(Y,J){return(Q)=>{if(J&&Q==null)return null;if(!Array.isArray(Q))throw Error("not an array");return Q.map((X)=>Y(X))}}function WG(Y,J){return(Q)=>{let X={};for(let q in Y){let G=q;if(J&&q in J&&!(G in Q)){for(let $ of J[q])if($ in Q){G=$;break}}try{let $=Y[q](Q[G]);if($!==void 0)X[q]=$}catch($){let W=$ instanceof Error?$.message:"not-an-error";_(!1,`invalid value for value.${q} (${W})`,"BAD_DATA",{value:Q})}}return X}}function vZ(Y){switch(Y){case!0:case"true":return!0;case!1:case"false":return!1}H(!1,`invalid boolean; ${JSON.stringify(Y)}`,"value",Y)}function $q(Y){return H(k0(Y,!0),"invalid data","value",Y),Y}function q8(Y){return H(k0(Y,32),"invalid hash","value",Y),Y}var _Z=WG({address:L0,blockHash:q8,blockNumber:j0,data:$q,index:j0,removed:U0(vZ,!1),topics:wX(q8),transactionHash:q8,transactionIndex:j0},{index:["logIndex"]});function kZ(Y){return _Z(Y)}var FZ=WG({hash:U0(q8),parentHash:q8,parentBeaconBlockRoot:U0(q8,null),number:j0,timestamp:j0,nonce:U0($q),difficulty:d,gasLimit:d,gasUsed:d,stateRoot:U0(q8,null),receiptsRoot:U0(q8,null),blobGasUsed:U0(d,null),excessBlobGas:U0(d,null),miner:U0(L0),prevRandao:U0(q8,null),extraData:$q,baseFeePerGas:U0(d)},{prevRandao:["mixHash"]});function PZ(Y){let J=FZ(Y);return J.transactions=Y.transactions.map((Q)=>{if(typeof Q==="string")return Q;return QE(Q)}),J}var TZ=WG({transactionIndex:j0,blockNumber:j0,transactionHash:q8,address:L0,topics:wX(q8),data:$q,index:j0,blockHash:q8},{index:["logIndex"]});function ZZ(Y){return TZ(Y)}var xZ=WG({to:U0(L0,null),from:U0(L0,null),contractAddress:U0(L0,null),index:j0,root:U0(l),gasUsed:d,blobGasUsed:U0(d,null),logsBloom:U0($q),blockHash:q8,hash:q8,logs:wX(ZZ),blockNumber:j0,cumulativeGasUsed:d,effectiveGasPrice:U0(d),blobGasPrice:U0(d,null),status:U0(j0),type:U0(j0,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function gZ(Y){return xZ(Y)}function QE(Y){if(Y.to&&d(Y.to)===j4)Y.to="0x0000000000000000000000000000000000000000";let J=WG({hash:q8,index:U0(j0,void 0),type:(Q)=>{if(Q==="0x"||Q==null)return 0;return j0(Q)},accessList:U0(UQ,null),blobVersionedHashes:U0(wX(q8,!0),null),authorizationList:U0(wX((Q)=>{let X;if(Q.signature)X=Q.signature;else{let q=Q.yParity;if(q==="0x1b")q=0;else if(q==="0x1c")q=1;X=Object.assign({},Q,{yParity:q})}return{address:L0(Q.address),chainId:d(Q.chainId),nonce:d(Q.nonce),signature:f0.from(X)}},!1),null),blockHash:U0(q8,null),blockNumber:U0(j0,null),transactionIndex:U0(j0,null),from:L0,gasPrice:U0(d),maxPriorityFeePerGas:U0(d),maxFeePerGas:U0(d),maxFeePerBlobGas:U0(d,null),gasLimit:d,to:U0(L0,null),value:d,nonce:j0,data:$q,creates:U0(L0,null),chainId:U0(d,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(Y);if(J.to==null&&J.creates==null)J.creates=y2(J);if((Y.type===1||Y.type===2)&&Y.accessList==null)J.accessList=[];if(Y.signature)J.signature=f0.from(Y.signature);else J.signature=f0.from(Y);if(J.chainId==null){let Q=J.signature.legacyChainId;if(Q!=null)J.chainId=Q}if(J.blockHash&&d(J.blockHash)===j4)J.blockHash=null;return J}var fZ="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class Vq{name;constructor(Y){Y0(this,{name:Y})}clone(){return new Vq(this.name)}}class a9 extends Vq{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(Y,J){if(Y==null)Y=0;super(`org.ethers.network.plugins.GasCost#${Y||0}`);let Q={effectiveBlock:Y};function X(q,G){let $=(J||{})[q];if($==null)$=G;H(typeof $==="number",`invalud value for ${q}`,"costs",J),Q[q]=$}X("txBase",21000),X("txCreate",32000),X("txDataZero",4),X("txDataNonzero",16),X("txAccessListStorageKey",1900),X("txAccessListAddress",2400),Y0(this,Q)}clone(){return new a9(this.effectiveBlock,this)}}class e9 extends Vq{address;targetNetwork;constructor(Y,J){super("org.ethers.plugins.network.Ens");Y0(this,{address:Y||fZ,targetNetwork:J==null?1:J})}clone(){return new e9(this.address,this.targetNetwork)}}class qE extends Vq{#Y;get feeDataFunc(){return this.#Y}constructor(Y){super("org.ethers.plugins.network.FeeData");this.#Y=Y}async getFeeData(Y){return await this.#Y(Y)}clone(){return new qE(this.#Y)}}class XE extends Vq{#Y;#J;get url(){return this.#Y}get processFunc(){return this.#J}constructor(Y,J){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");this.#Y=Y,this.#J=J}clone(){return this}}var rW=new Map;class x8{#Y;#J;#Q;constructor(Y,J){this.#Y=Y,this.#J=d(J),this.#Q=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#Y}set name(Y){this.#Y=Y}get chainId(){return this.#J}set chainId(Y){this.#J=d(Y,"chainId")}matches(Y){if(Y==null)return!1;if(typeof Y==="string"){try{return this.chainId===d(Y)}catch(J){}return this.name===Y}if(typeof Y==="number"||typeof Y==="bigint"){try{return this.chainId===d(Y)}catch(J){}return!1}if(typeof Y==="object"){if(Y.chainId!=null){try{return this.chainId===d(Y.chainId)}catch(J){}return!1}if(Y.name!=null)return this.name===Y.name;return!1}return!1}get plugins(){return Array.from(this.#Q.values())}attachPlugin(Y){if(this.#Q.get(Y.name))throw Error(`cannot replace existing plugin: ${Y.name} `);return this.#Q.set(Y.name,Y.clone()),this}getPlugin(Y){return this.#Q.get(Y)||null}getPlugins(Y){return this.plugins.filter((J)=>J.name.split("#")[0]===Y)}clone(){let Y=new x8(this.name,this.chainId);return this.plugins.forEach((J)=>{Y.attachPlugin(J.clone())}),Y}computeIntrinsicGas(Y){let J=this.getPlugin("org.ethers.plugins.network.GasCost")||new a9,Q=J.txBase;if(Y.to==null)Q+=J.txCreate;if(Y.data)for(let X=2;X<Y.data.length;X+=2)if(Y.data.substring(X,X+2)==="00")Q+=J.txDataZero;else Q+=J.txDataNonzero;if(Y.accessList){let X=UQ(Y.accessList);for(let q in X)Q+=J.txAccessListAddress+J.txAccessListStorageKey*X[q].storageKeys.length}return Q}static from(Y){if(hZ(),Y==null)return x8.from("mainnet");if(typeof Y==="number")Y=BigInt(Y);if(typeof Y==="string"||typeof Y==="bigint"){let J=rW.get(Y);if(J)return J();if(typeof Y==="bigint")return new x8("unknown",Y);H(!1,"unknown network","network",Y)}if(typeof Y.clone==="function")return Y.clone();if(typeof Y==="object"){H(typeof Y.name==="string"&&typeof Y.chainId==="number","invalid network object name or chainId","network",Y);let J=new x8(Y.name,Y.chainId);if(Y.ensAddress||Y.ensNetwork!=null)J.attachPlugin(new e9(Y.ensAddress,Y.ensNetwork));return J}H(!1,"invalid network","network",Y)}static register(Y,J){if(typeof Y==="number")Y=BigInt(Y);let Q=rW.get(Y);if(Q)H(!1,`conflicting network for ${JSON.stringify(Q.name)}`,"nameOrChainId",Y);rW.set(Y,J)}}function K4(Y,J){let Q=String(Y);if(!Q.match(/^[0-9.]+$/))throw Error(`invalid gwei value: ${Y}`);let X=Q.split(".");if(X.length===1)X.push("");if(X.length!==2)throw Error(`invalid gwei value: ${Y}`);while(X[1].length<J)X[1]+="0";if(X[1].length>9){let q=BigInt(X[1].substring(0,9));if(!X[1].substring(9).match(/^0+$/))q++;X[1]=q.toString()}return BigInt(X[0]+X[1])}function z4(Y){return new XE(Y,async(J,Q,X)=>{X.setHeader("User-Agent","ethers");let q;try{let[G,$]=await Promise.all([X.send(),J()]);q=G;let W=q.bodyJson.standard;return{gasPrice:$.gasPrice,maxFeePerGas:K4(W.maxFee,9),maxPriorityFeePerGas:K4(W.maxPriorityFee,9)}}catch(G){_(!1,`error encountered with polygon gas station (${JSON.stringify(X.url)})`,"SERVER_ERROR",{request:X,response:q,error:G})}})}var M4=!1;function hZ(){if(M4)return;M4=!0;function Y(J,Q,X){let q=function(){let G=new x8(J,Q);if(X.ensNetwork!=null)G.attachPlugin(new e9(null,X.ensNetwork));return G.attachPlugin(new a9),(X.plugins||[]).forEach(($)=>{G.attachPlugin($)}),G};if(x8.register(J,q),x8.register(Q,q),X.altNames)X.altNames.forEach((G)=>{x8.register(G,q)})}Y("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),Y("ropsten",3,{ensNetwork:3}),Y("rinkeby",4,{ensNetwork:4}),Y("goerli",5,{ensNetwork:5}),Y("kovan",42,{ensNetwork:42}),Y("sepolia",11155111,{ensNetwork:11155111}),Y("holesky",17000,{ensNetwork:17000}),Y("classic",61,{}),Y("classicKotti",6,{}),Y("arbitrum",42161,{ensNetwork:1}),Y("arbitrum-goerli",421613,{}),Y("arbitrum-sepolia",421614,{}),Y("base",8453,{ensNetwork:1}),Y("base-goerli",84531,{}),Y("base-sepolia",84532,{}),Y("bnb",56,{ensNetwork:1}),Y("bnbt",97,{}),Y("filecoin",314,{}),Y("filecoin-calibration",314159,{}),Y("linea",59144,{ensNetwork:1}),Y("linea-goerli",59140,{}),Y("linea-sepolia",59141,{}),Y("matic",137,{ensNetwork:1,plugins:[z4("https://gasstation.polygon.technology/v2")]}),Y("matic-amoy",80002,{}),Y("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[z4("https://gasstation-testnet.polygon.technology/v2")]}),Y("optimism",10,{ensNetwork:1,plugins:[]}),Y("optimism-goerli",420,{}),Y("optimism-sepolia",11155420,{}),Y("xdai",100,{ensNetwork:1})}function Z5(Y){return JSON.parse(JSON.stringify(Y))}class GE{#Y;#J;#Q;#q;constructor(Y){this.#Y=Y,this.#J=null,this.#Q=4000,this.#q=-2}get pollingInterval(){return this.#Q}set pollingInterval(Y){this.#Q=Y}async#X(){try{let Y=await this.#Y.getBlockNumber();if(this.#q===-2){this.#q=Y;return}if(Y!==this.#q){for(let J=this.#q+1;J<=Y;J++){if(this.#J==null)return;await this.#Y.emit("block",J)}this.#q=Y}}catch(Y){}if(this.#J==null)return;this.#J=this.#Y._setTimeout(this.#X.bind(this),this.#Q)}start(){if(this.#J)return;this.#J=this.#Y._setTimeout(this.#X.bind(this),this.#Q),this.#X()}stop(){if(!this.#J)return;this.#Y._clearTimeout(this.#J),this.#J=null}pause(Y){if(this.stop(),Y)this.#q=-2}resume(){this.start()}}class YW{#Y;#J;#Q;constructor(Y){this.#Y=Y,this.#Q=!1,this.#J=(J)=>{this._poll(J,this.#Y)}}async _poll(Y,J){throw Error("sub-classes must override this")}start(){if(this.#Q)return;this.#Q=!0,this.#J(-2),this.#Y.on("block",this.#J)}stop(){if(!this.#Q)return;this.#Q=!1,this.#Y.off("block",this.#J)}pause(Y){this.stop()}resume(){this.start()}}class $E extends YW{#Y;#J;constructor(Y,J){super(Y);this.#Y=J,this.#J=-2}pause(Y){if(Y)this.#J=-2;super.pause(Y)}async _poll(Y,J){let Q=await J.getBlock(this.#Y);if(Q==null)return;if(this.#J===-2)this.#J=Q.number;else if(Q.number>this.#J)J.emit(this.#Y,Q.number),this.#J=Q.number}}class WE extends YW{#Y;constructor(Y,J){super(Y);this.#Y=Z5(J)}async _poll(Y,J){throw Error("@TODO")}}class jE extends YW{#Y;constructor(Y,J){super(Y);this.#Y=J}async _poll(Y,J){let Q=await J.getTransactionReceipt(this.#Y);if(Q)J.emit(this.#Y,Q)}}class JW{#Y;#J;#Q;#q;#X;constructor(Y,J){this.#Y=Y,this.#J=Z5(J),this.#Q=this.#$.bind(this),this.#q=!1,this.#X=-2}async#$(Y){if(this.#X===-2)return;let J=Z5(this.#J);J.fromBlock=this.#X+1,J.toBlock=Y;let Q=await this.#Y.getLogs(J);if(Q.length===0){if(this.#X<Y-60)this.#X=Y-60;return}for(let X of Q)this.#Y.emit(this.#J,X),this.#X=X.blockNumber}start(){if(this.#q)return;if(this.#q=!0,this.#X===-2)this.#Y.getBlockNumber().then((Y)=>{this.#X=Y});this.#Y.on("block",this.#Q)}stop(){if(!this.#q)return;this.#q=!1,this.#Y.off("block",this.#Q)}pause(Y){if(this.stop(),Y)this.#X=-2}resume(){this.start()}}var mZ=BigInt(2),yZ=10;function eG(Y){return Y&&typeof Y.then==="function"}function W$(Y,J){return Y+":"+JSON.stringify(J,(Q,X)=>{if(X==null)return"null";if(typeof X==="bigint")return`bigint:${X.toString()}`;if(typeof X==="string")return X.toLowerCase();if(typeof X==="object"&&!Array.isArray(X)){let q=Object.keys(X);return q.sort(),q.reduce((G,$)=>{return G[$]=X[$],G},{})}return X})}class pz{name;constructor(Y){Y0(this,{name:Y})}start(){}stop(){}pause(Y){}resume(){}}function lZ(Y){return JSON.parse(JSON.stringify(Y))}function x5(Y){return Y=Array.from(new Set(Y).values()),Y.sort(),Y}async function sW(Y,J){if(Y==null)throw Error("invalid event");if(Array.isArray(Y))Y={topics:Y};if(typeof Y==="string")switch(Y){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:Y,tag:Y}}if(k0(Y,32)){let Q=Y.toLowerCase();return{type:"transaction",tag:W$("tx",{hash:Q}),hash:Q}}if(Y.orphan){let Q=Y;return{type:"orphan",tag:W$("orphan",Q),filter:lZ(Q)}}if(Y.address||Y.topics){let Q=Y,X={topics:(Q.topics||[]).map((q)=>{if(q==null)return null;if(Array.isArray(q))return x5(q.map((G)=>G.toLowerCase()));return q.toLowerCase()})};if(Q.address){let q=[],G=[],$=(W)=>{if(k0(W))q.push(W);else G.push((async()=>{q.push(await B8(W,J))})())};if(Array.isArray(Q.address))Q.address.forEach($);else $(Q.address);if(G.length)await Promise.all(G);X.address=x5(q.map((W)=>W.toLowerCase()))}return{filter:X,tag:W$("event",X),type:"event"}}H(!1,"unknown ProviderEvent","event",Y)}function iW(){return new Date().getTime()}var uZ={cacheTimeout:250,pollingInterval:4000};class KE{#Y;#J;#Q;#q;#X;#$;#G;#W;#O;#K;#D;#U;constructor(Y,J){if(this.#U=Object.assign({},uZ,J||{}),Y==="any")this.#$=!0,this.#X=null;else if(Y){let Q=x8.from(Y);this.#$=!1,this.#X=Promise.resolve(Q),setTimeout(()=>{this.emit("network",Q,null)},0)}else this.#$=!1,this.#X=null;this.#W=-1,this.#G=new Map,this.#Y=new Map,this.#J=new Map,this.#Q=null,this.#q=!1,this.#O=1,this.#K=new Map,this.#D=!1}get pollingInterval(){return this.#U.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#J.values())}attachPlugin(Y){if(this.#J.get(Y.name))throw Error(`cannot replace existing plugin: ${Y.name} `);return this.#J.set(Y.name,Y.connect(this)),this}getPlugin(Y){return this.#J.get(Y)||null}get disableCcipRead(){return this.#D}set disableCcipRead(Y){this.#D=!!Y}async#j(Y){let J=this.#U.cacheTimeout;if(J<0)return await this._perform(Y);let Q=W$(Y.method,Y),X=this.#G.get(Q);if(!X)X=this._perform(Y),this.#G.set(Q,X),setTimeout(()=>{if(this.#G.get(Q)===X)this.#G.delete(Q)},J);return await X}async ccipReadFetch(Y,J,Q){if(this.disableCcipRead||Q.length===0||Y.to==null)return null;let X=Y.to.toLowerCase(),q=J.toLowerCase(),G=[];for(let $=0;$<Q.length;$++){let W=Q[$],j=W.replace("{sender}",X).replace("{data}",q),K=new LY(j);if(W.indexOf("{data}")===-1)K.body={data:q,sender:X};this.emit("debug",{action:"sendCcipReadFetchRequest",request:K,index:$,urls:Q});let z="unknown error",M;try{M=await K.send()}catch(N){G.push(N.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:K,result:{error:N}});continue}try{let N=M.bodyJson;if(N.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:K,result:N}),N.data;if(N.message)z=N.message;this.emit("debug",{action:"receiveCcipReadFetchError",request:K,result:N})}catch(N){}_(M.statusCode<400||M.statusCode>=500,`response not found during CCIP fetch: ${z}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:Y,info:{url:W,errorMessage:z}}),G.push(z)}_(!1,`error encountered during CCIP fetch: ${G.map(($)=>JSON.stringify($)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:Y,info:{urls:Q,errorMessages:G}})}_wrapBlock(Y,J){return new cL(PZ(Y),this)}_wrapLog(Y,J){return new Rq(kZ(Y),this)}_wrapTransactionReceipt(Y,J){return new lz(gZ(Y),this)}_wrapTransactionResponse(Y,J){return new $G(QE(Y),this)}_detectNetwork(){_(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(Y){_(!1,`unsupported method: ${Y.method}`,"UNSUPPORTED_OPERATION",{operation:Y.method,info:Y})}async getBlockNumber(){let Y=j0(await this.#j({method:"getBlockNumber"}),"%response");if(this.#W>=0)this.#W=Y;return Y}_getAddress(Y){return B8(Y,this)}_getBlockTag(Y){if(Y==null)return"latest";switch(Y){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return Y}if(k0(Y)){if(k0(Y,32))return Y;return YY(Y)}if(typeof Y==="bigint")Y=j0(Y,"blockTag");if(typeof Y==="number"){if(Y>=0)return YY(Y);if(this.#W>=0)return YY(this.#W+Y);return this.getBlockNumber().then((J)=>YY(J+Y))}H(!1,"invalid blockTag","blockTag",Y)}_getFilter(Y){let J=(Y.topics||[]).map((W)=>{if(W==null)return null;if(Array.isArray(W))return x5(W.map((j)=>j.toLowerCase()));return W.toLowerCase()}),Q="blockHash"in Y?Y.blockHash:void 0,X=(W,j,K)=>{let z=void 0;switch(W.length){case 0:break;case 1:z=W[0];break;default:W.sort(),z=W}if(Q){if(j!=null||K!=null)throw Error("invalid filter")}let M={};if(z)M.address=z;if(J.length)M.topics=J;if(j)M.fromBlock=j;if(K)M.toBlock=K;if(Q)M.blockHash=Q;return M},q=[];if(Y.address)if(Array.isArray(Y.address))for(let W of Y.address)q.push(this._getAddress(W));else q.push(this._getAddress(Y.address));let G=void 0;if("fromBlock"in Y)G=this._getBlockTag(Y.fromBlock);let $=void 0;if("toBlock"in Y)$=this._getBlockTag(Y.toBlock);if(q.filter((W)=>typeof W!=="string").length||G!=null&&typeof G!=="string"||$!=null&&typeof $!=="string")return Promise.all([Promise.all(q),G,$]).then((W)=>{return X(W[0],W[1],W[2])});return X(q,G,$)}_getTransactionRequest(Y){let J=l$(Y),Q=[];if(["to","from"].forEach((X)=>{if(J[X]==null)return;let q=B8(J[X],this);if(eG(q))Q.push(async function(){J[X]=await q}());else J[X]=q}),J.blockTag!=null){let X=this._getBlockTag(J.blockTag);if(eG(X))Q.push(async function(){J.blockTag=await X}());else J.blockTag=X}if(Q.length)return async function(){return await Promise.all(Q),J}();return J}async getNetwork(){if(this.#X==null){let X=(async()=>{try{let q=await this._detectNetwork();return this.emit("network",q,null),q}catch(q){if(this.#X===X)this.#X=null;throw q}})();return this.#X=X,(await X).clone()}let Y=this.#X,[J,Q]=await Promise.all([Y,this._detectNetwork()]);if(J.chainId!==Q.chainId)if(this.#$){if(this.emit("network",Q,J),this.#X===Y)this.#X=Promise.resolve(Q)}else _(!1,`network changed: ${J.chainId} => ${Q.chainId} `,"NETWORK_ERROR",{event:"changed"});return J.clone()}async getFeeData(){let Y=await this.getNetwork(),J=async()=>{let{_block:X,gasPrice:q,priorityFee:G}=await U8({_block:this.#R("latest",!1),gasPrice:(async()=>{try{let K=await this.#j({method:"getGasPrice"});return d(K,"%response")}catch(K){}return null})(),priorityFee:(async()=>{try{let K=await this.#j({method:"getPriorityFee"});return d(K,"%response")}catch(K){}return null})()}),$=null,W=null,j=this._wrapBlock(X,Y);if(j&&j.baseFeePerGas)W=G!=null?G:BigInt("1000000000"),$=j.baseFeePerGas*mZ+W;return new F5(q,$,W)},Q=Y.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(Q){let X=new LY(Q.url),q=await Q.processFunc(J,this,X);return new F5(q.gasPrice,q.maxFeePerGas,q.maxPriorityFeePerGas)}return await J()}async estimateGas(Y){let J=this._getTransactionRequest(Y);if(eG(J))J=await J;return d(await this.#j({method:"estimateGas",transaction:J}),"%response")}async#z(Y,J,Q){_(Q<yZ,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},Y,{blockTag:J,enableCcipRead:!0})});let X=l$(Y);try{return l(await this._perform({method:"call",transaction:X,blockTag:J}))}catch(q){if(!this.disableCcipRead&&Ez(q)&&q.data&&Q>=0&&J==="latest"&&X.to!=null&&y0(q.data,0,4)==="0x556f1830"){let G=q.data,$=await B8(X.to,this),W;try{W=dZ(y0(q.data,4))}catch(z){_(!1,z.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:X,info:{data:G}})}_(W.sender.toLowerCase()===$.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:G,reason:"OffchainLookup",transaction:X,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:W.errorArgs}});let j=await this.ccipReadFetch(X,W.calldata,W.urls);_(j!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:X,info:{data:q.data,errorArgs:W.errorArgs}});let K={to:$,data:Z0([W.selector,oZ([j,W.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:K});try{let z=await this.#z(K,J,Q+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},K),result:z}),z}catch(z){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},K),error:z}),z}}throw q}}async#M(Y){let{value:J}=await U8({network:this.getNetwork(),value:Y});return J}async call(Y){let{tx:J,blockTag:Q}=await U8({tx:this._getTransactionRequest(Y),blockTag:this._getBlockTag(Y.blockTag)});return await this.#M(this.#z(J,Q,Y.enableCcipRead?0:-1))}async#N(Y,J,Q){let X=this._getAddress(J),q=this._getBlockTag(Q);if(typeof X!=="string"||typeof q!=="string")[X,q]=await Promise.all([X,q]);return await this.#M(this.#j(Object.assign(Y,{address:X,blockTag:q})))}async getBalance(Y,J){return d(await this.#N({method:"getBalance"},Y,J),"%response")}async getTransactionCount(Y,J){return j0(await this.#N({method:"getTransactionCount"},Y,J),"%response")}async getCode(Y,J){return l(await this.#N({method:"getCode"},Y,J))}async getStorage(Y,J,Q){let X=d(J,"position");return l(await this.#N({method:"getStorage",position:X},Y,Q))}async broadcastTransaction(Y){let{blockNumber:J,hash:Q,network:X}=await U8({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:Y}),network:this.getNetwork()}),q=e8.from(Y);if(q.hash!==Q)throw Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(q,X).replaceableTransaction(J)}async#R(Y,J){if(k0(Y,32))return await this.#j({method:"getBlock",blockHash:Y,includeTransactions:J});let Q=this._getBlockTag(Y);if(typeof Q!=="string")Q=await Q;return await this.#j({method:"getBlock",blockTag:Q,includeTransactions:J})}async getBlock(Y,J){let{network:Q,params:X}=await U8({network:this.getNetwork(),params:this.#R(Y,!!J)});if(X==null)return null;return this._wrapBlock(X,Q)}async getTransaction(Y){let{network:J,params:Q}=await U8({network:this.getNetwork(),params:this.#j({method:"getTransaction",hash:Y})});if(Q==null)return null;return this._wrapTransactionResponse(Q,J)}async getTransactionReceipt(Y){let{network:J,params:Q}=await U8({network:this.getNetwork(),params:this.#j({method:"getTransactionReceipt",hash:Y})});if(Q==null)return null;if(Q.gasPrice==null&&Q.effectiveGasPrice==null){let X=await this.#j({method:"getTransaction",hash:Y});if(X==null)throw Error("report this; could not find tx or effectiveGasPrice");Q.effectiveGasPrice=X.gasPrice}return this._wrapTransactionReceipt(Q,J)}async getTransactionResult(Y){let{result:J}=await U8({network:this.getNetwork(),result:this.#j({method:"getTransactionResult",hash:Y})});if(J==null)return null;return l(J)}async getLogs(Y){let J=this._getFilter(Y);if(eG(J))J=await J;let{network:Q,params:X}=await U8({network:this.getNetwork(),params:this.#j({method:"getLogs",filter:J})});return X.map((q)=>this._wrapLog(q,Q))}_getProvider(Y){_(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(Y){return await bQ.fromName(this,Y)}async getAvatar(Y){let J=await this.getResolver(Y);if(J)return await J.getAvatar();return null}async resolveName(Y){let J=await this.getResolver(Y);if(J)return await J.getAddress();return null}async lookupAddress(Y){Y=L0(Y);let J=_5(Y.substring(2).toLowerCase()+".addr.reverse");try{let Q=await bQ.getEnsAddress(this),X=await new cQ(Q,["function resolver(bytes32) view returns (address)"],this).resolver(J);if(X==null||X===HX)return null;let q=await new cQ(X,["function name(bytes32) view returns (string)"],this).name(J);if(await this.resolveName(q)!==Y)return null;return q}catch(Q){if(X8(Q,"BAD_DATA")&&Q.value==="0x")return null;if(X8(Q,"CALL_EXCEPTION"))return null;throw Q}return null}async waitForTransaction(Y,J,Q){let X=J!=null?J:1;if(X===0)return this.getTransactionReceipt(Y);return new Promise(async(q,G)=>{let $=null,W=async(j)=>{try{let K=await this.getTransactionReceipt(Y);if(K!=null){if(j-K.blockNumber+1>=X){if(q(K),$)clearTimeout($),$=null;return}}}catch(K){console.log("EEE",K)}this.once("block",W)};if(Q!=null)$=setTimeout(()=>{if($==null)return;$=null,this.off("block",W),G(P0("timeout","TIMEOUT",{reason:"timeout"}))},Q);W(await this.getBlockNumber())})}async waitForBlock(Y){_(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(Y){let J=this.#K.get(Y);if(!J)return;if(J.timer)clearTimeout(J.timer);this.#K.delete(Y)}_setTimeout(Y,J){if(J==null)J=0;let Q=this.#O++,X=()=>{this.#K.delete(Q),Y()};if(this.paused)this.#K.set(Q,{timer:null,func:X,time:J});else{let q=setTimeout(X,J);this.#K.set(Q,{timer:q,func:X,time:iW()})}return Q}_forEachSubscriber(Y){for(let J of this.#Y.values())Y(J.subscriber)}_getSubscriber(Y){switch(Y.type){case"debug":case"error":case"network":return new pz(Y.type);case"block":{let J=new GE(this);return J.pollingInterval=this.pollingInterval,J}case"safe":case"finalized":return new $E(this,Y.type);case"event":return new JW(this,Y.filter);case"transaction":return new jE(this,Y.hash);case"orphan":return new WE(this,Y.filter)}throw Error(`unsupported event: ${Y.type}`)}_recoverSubscriber(Y,J){for(let Q of this.#Y.values())if(Q.subscriber===Y){if(Q.started)Q.subscriber.stop();if(Q.subscriber=J,Q.started)J.start();if(this.#Q!=null)J.pause(this.#Q);break}}async#H(Y,J){let Q=await sW(Y,this);if(Q.type==="event"&&J&&J.length>0&&J[0].removed===!0)Q=await sW({orphan:"drop-log",log:J[0]},this);return this.#Y.get(Q.tag)||null}async#B(Y){let J=await sW(Y,this),Q=J.tag,X=this.#Y.get(Q);if(!X)X={subscriber:this._getSubscriber(J),tag:Q,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#Y.set(Q,X);return X}async on(Y,J){let Q=await this.#B(Y);if(Q.listeners.push({listener:J,once:!1}),!Q.started){if(Q.subscriber.start(),Q.started=!0,this.#Q!=null)Q.subscriber.pause(this.#Q)}return this}async once(Y,J){let Q=await this.#B(Y);if(Q.listeners.push({listener:J,once:!0}),!Q.started){if(Q.subscriber.start(),Q.started=!0,this.#Q!=null)Q.subscriber.pause(this.#Q)}return this}async emit(Y,...J){let Q=await this.#H(Y,J);if(!Q||Q.listeners.length===0)return!1;let X=Q.listeners.length;if(Q.listeners=Q.listeners.filter(({listener:q,once:G})=>{let $=new Cz(this,G?null:q,Y);try{q.call(this,...J,$)}catch(W){}return!G}),Q.listeners.length===0){if(Q.started)Q.subscriber.stop();this.#Y.delete(Q.tag)}return X>0}async listenerCount(Y){if(Y){let Q=await this.#H(Y);if(!Q)return 0;return Q.listeners.length}let J=0;for(let{listeners:Q}of this.#Y.values())J+=Q.length;return J}async listeners(Y){if(Y){let Q=await this.#H(Y);if(!Q)return[];return Q.listeners.map(({listener:X})=>X)}let J=[];for(let{listeners:Q}of this.#Y.values())J=J.concat(Q.map(({listener:X})=>X));return J}async off(Y,J){let Q=await this.#H(Y);if(!Q)return this;if(J){let X=Q.listeners.map(({listener:q})=>q).indexOf(J);if(X>=0)Q.listeners.splice(X,1)}if(!J||Q.listeners.length===0){if(Q.started)Q.subscriber.stop();this.#Y.delete(Q.tag)}return this}async removeAllListeners(Y){if(Y){let{tag:J,started:Q,subscriber:X}=await this.#B(Y);if(Q)X.stop();this.#Y.delete(J)}else for(let[J,{started:Q,subscriber:X}]of this.#Y){if(Q)X.stop();this.#Y.delete(J)}return this}async addListener(Y,J){return await this.on(Y,J)}async removeListener(Y,J){return this.off(Y,J)}get destroyed(){return this.#q}destroy(){this.removeAllListeners();for(let Y of this.#K.keys())this._clearTimeout(Y);this.#q=!0}get paused(){return this.#Q!=null}set paused(Y){if(!!Y===this.paused)return;if(this.paused)this.resume();else this.pause(!1)}pause(Y){if(this.#W=-1,this.#Q!=null){if(this.#Q==!!Y)return;_(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((J)=>J.pause(Y)),this.#Q=!!Y;for(let J of this.#K.values()){if(J.timer)clearTimeout(J.timer);J.time=iW()-J.time}}resume(){if(this.#Q==null)return;this._forEachSubscriber((Y)=>Y.resume()),this.#Q=null;for(let Y of this.#K.values()){let J=Y.time;if(J<0)J=0;Y.time=iW(),setTimeout(Y.func,J)}}}function cZ(Y,J){try{let Q=g5(Y,J);if(Q)return T$(Q)}catch(Q){}return null}function g5(Y,J){if(Y==="0x")return null;try{let Q=j0(y0(Y,J,J+32)),X=j0(y0(Y,Q,Q+32));return y0(Y,Q+32,Q+32+X)}catch(Q){}return null}function N4(Y){let J=r0(Y);if(J.length>32)throw Error("internal; should not happen");let Q=new Uint8Array(32);return Q.set(J,32-J.length),Q}function bZ(Y){if(Y.length%32===0)return Y;let J=new Uint8Array(Math.ceil(Y.length/32)*32);return J.set(Y),J}var pZ=new Uint8Array([]);function oZ(Y){let J=[],Q=0;for(let X=0;X<Y.length;X++)J.push(pZ),Q+=32;for(let X=0;X<Y.length;X++){let q=z0(Y[X]);J[X]=N4(Q),J.push(N4(q.length)),J.push(bZ(q)),Q+=32+Math.ceil(q.length/32)*32}return Z0(J)}var O4="0x0000000000000000000000000000000000000000000000000000000000000000";function dZ(Y){let J={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};_(yQ(Y)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});let Q=y0(Y,0,32);_(y0(Q,0,12)===y0(O4,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),J.sender=y0(Q,12);try{let X=[],q=j0(y0(Y,32,64)),G=j0(y0(Y,q,q+32)),$=y0(Y,q+32);for(let W=0;W<G;W++){let j=cZ($,W*32);if(j==null)throw Error("abort");X.push(j)}J.urls=X}catch(X){_(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{let X=g5(Y,64);if(X==null)throw Error("abort");J.calldata=X}catch(X){_(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}_(y0(Y,100,128)===y0(O4,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),J.selector=y0(Y,96,100);try{let X=g5(Y,128);if(X==null)throw Error("abort");J.extraData=X}catch(X){_(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return J.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((X)=>J[X]),J}function lJ(Y,J){if(Y.provider)return Y.provider;_(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:J})}async function D4(Y,J){let Q=l$(J);if(Q.to!=null)Q.to=B8(Q.to,Y);if(Q.from!=null){let X=Q.from;Q.from=Promise.all([Y.getAddress(),B8(X,Y)]).then(([q,G])=>{return H(q.toLowerCase()===G.toLowerCase(),"transaction from mismatch","tx.from",G),q})}else Q.from=Y.getAddress();return await U8(Q)}class oz{provider;constructor(Y){Y0(this,{provider:Y||null})}async getNonce(Y){return lJ(this,"getTransactionCount").getTransactionCount(await this.getAddress(),Y)}async populateCall(Y){return await D4(this,Y)}async populateTransaction(Y){let J=lJ(this,"populateTransaction"),Q=await D4(this,Y);if(Q.nonce==null)Q.nonce=await this.getNonce("pending");if(Q.gasLimit==null)Q.gasLimit=await this.estimateGas(Q);let X=await this.provider.getNetwork();if(Q.chainId!=null){let G=d(Q.chainId);H(G===X.chainId,"transaction chainId mismatch","tx.chainId",Y.chainId)}else Q.chainId=X.chainId;let q=Q.maxFeePerGas!=null||Q.maxPriorityFeePerGas!=null;if(Q.gasPrice!=null&&(Q.type===2||q))H(!1,"eip-1559 transaction do not support gasPrice","tx",Y);else if((Q.type===0||Q.type===1)&&q)H(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",Y);if((Q.type===2||Q.type==null)&&(Q.maxFeePerGas!=null&&Q.maxPriorityFeePerGas!=null))Q.type=2;else if(Q.type===0||Q.type===1){let G=await J.getFeeData();if(_(G.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),Q.gasPrice==null)Q.gasPrice=G.gasPrice}else{let G=await J.getFeeData();if(Q.type==null)if(G.maxFeePerGas!=null&&G.maxPriorityFeePerGas!=null){if(Q.authorizationList&&Q.authorizationList.length)Q.type=4;else Q.type=2;if(Q.gasPrice!=null){let $=Q.gasPrice;delete Q.gasPrice,Q.maxFeePerGas=$,Q.maxPriorityFeePerGas=$}else{if(Q.maxFeePerGas==null)Q.maxFeePerGas=G.maxFeePerGas;if(Q.maxPriorityFeePerGas==null)Q.maxPriorityFeePerGas=G.maxPriorityFeePerGas}}else if(G.gasPrice!=null){if(_(!q,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),Q.gasPrice==null)Q.gasPrice=G.gasPrice;Q.type=0}else _(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(Q.type===2||Q.type===3||Q.type===4){if(Q.maxFeePerGas==null)Q.maxFeePerGas=G.maxFeePerGas;if(Q.maxPriorityFeePerGas==null)Q.maxPriorityFeePerGas=G.maxPriorityFeePerGas}}return await U8(Q)}async populateAuthorization(Y){let J=Object.assign({},Y);if(J.chainId==null)J.chainId=(await lJ(this,"getNetwork").getNetwork()).chainId;if(J.nonce==null)J.nonce=await this.getNonce();return J}async estimateGas(Y){return lJ(this,"estimateGas").estimateGas(await this.populateCall(Y))}async call(Y){return lJ(this,"call").call(await this.populateCall(Y))}async resolveName(Y){return await lJ(this,"resolveName").resolveName(Y)}async sendTransaction(Y){let J=lJ(this,"sendTransaction"),Q=await this.populateTransaction(Y);delete Q.from;let X=e8.from(Q);return await J.broadcastTransaction(await this.signTransaction(X))}authorize(Y){_(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class zE extends oz{address;constructor(Y,J){super(J);Y0(this,{address:Y})}async getAddress(){return this.address}connect(Y){return new zE(this.address,Y)}#Y(Y,J){_(!1,`VoidSigner cannot sign ${Y}`,"UNSUPPORTED_OPERATION",{operation:J})}async signTransaction(Y){this.#Y("transactions","signTransaction")}async signMessage(Y){this.#Y("messages","signMessage")}async signTypedData(Y,J,Q){this.#Y("typed-data","signTypedData")}}function rZ(Y){return JSON.parse(JSON.stringify(Y))}class dz{#Y;#J;#Q;#q;#X;#$;constructor(Y){this.#Y=Y,this.#J=null,this.#Q=this.#G.bind(this),this.#q=!1,this.#X=null,this.#$=!1}_subscribe(Y){throw Error("subclasses must override this")}_emitResults(Y,J){throw Error("subclasses must override this")}_recover(Y){throw Error("subclasses must override this")}async#G(Y){try{if(this.#J==null)this.#J=this._subscribe(this.#Y);let J=null;try{J=await this.#J}catch(q){if(!X8(q,"UNSUPPORTED_OPERATION")||q.operation!=="eth_newFilter")throw q}if(J==null){this.#J=null,this.#Y._recoverSubscriber(this,this._recover(this.#Y));return}let Q=await this.#Y.getNetwork();if(!this.#X)this.#X=Q;if(this.#X.chainId!==Q.chainId)throw Error("chaid changed");if(this.#$)return;let X=await this.#Y.send("eth_getFilterChanges",[J]);await this._emitResults(this.#Y,X)}catch(J){console.log("@TODO",J)}this.#Y.once("block",this.#Q)}#W(){let Y=this.#J;if(Y)this.#J=null,Y.then((J)=>{if(this.#Y.destroyed)return;this.#Y.send("eth_uninstallFilter",[J])})}start(){if(this.#q)return;this.#q=!0,this.#G(-2)}stop(){if(!this.#q)return;this.#q=!1,this.#$=!0,this.#W(),this.#Y.off("block",this.#Q)}pause(Y){if(Y)this.#W();this.#Y.off("block",this.#Q)}resume(){this.start()}}class ME extends dz{#Y;constructor(Y,J){super(Y);this.#Y=rZ(J)}_recover(Y){return new JW(Y,this.#Y)}async _subscribe(Y){return await Y.send("eth_newFilter",[this.#Y])}async _emitResults(Y,J){for(let Q of J)Y.emit(this.#Y,Y._wrapLog(Q,Y._network))}}class NE extends dz{async _subscribe(Y){return await Y.send("eth_newPendingTransactionFilter",[])}async _emitResults(Y,J){for(let Q of J)Y.emit("pending",Q)}}var sZ="bigint,boolean,function,number,string,symbol".split(/,/g);function j$(Y){if(Y==null||sZ.indexOf(typeof Y)>=0)return Y;if(typeof Y.getAddress==="function")return Y;if(Array.isArray(Y))return Y.map(j$);if(typeof Y==="object")return Object.keys(Y).reduce((J,Q)=>{return J[Q]=Y[Q],J},{});throw Error(`should not happen: ${Y} (${typeof Y})`)}function iZ(Y){return new Promise((J)=>{setTimeout(J,Y)})}function ZQ(Y){if(Y)return Y.toLowerCase();return Y}function U4(Y){return Y&&typeof Y.pollingInterval==="number"}var OE={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1048576,batchMaxCount:100,cacheTimeout:250,pollingInterval:4000};class K$ extends oz{address;constructor(Y,J){super(Y);J=L0(J),Y0(this,{address:J})}connect(Y){_(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(Y){return await this.populateCall(Y)}async sendUncheckedTransaction(Y){let J=j$(Y),Q=[];if(J.from){let q=J.from;Q.push((async()=>{let G=await B8(q,this.provider);H(G!=null&&G.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",Y),J.from=G})())}else J.from=this.address;if(J.gasLimit==null)Q.push((async()=>{J.gasLimit=await this.provider.estimateGas({...J,from:this.address})})());if(J.to!=null){let q=J.to;Q.push((async()=>{J.to=await B8(q,this.provider)})())}if(Q.length)await Promise.all(Q);let X=this.provider.getRpcTransaction(J);return this.provider.send("eth_sendTransaction",[X])}async sendTransaction(Y){let J=await this.provider.getBlockNumber(),Q=await this.sendUncheckedTransaction(Y);return await new Promise((X,q)=>{let G=[1000,100],$=0,W=async()=>{try{let j=await this.provider.getTransaction(Q);if(j!=null){X(j.replaceableTransaction(J));return}}catch(j){if(X8(j,"CANCELLED")||X8(j,"BAD_DATA")||X8(j,"NETWORK_ERROR")||X8(j,"UNSUPPORTED_OPERATION")){if(j.info==null)j.info={};j.info.sendTransactionHash=Q,q(j);return}if(X8(j,"INVALID_ARGUMENT")){if($++,j.info==null)j.info={};if(j.info.sendTransactionHash=Q,$>10){q(j);return}}this.provider.emit("error",P0("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:j}))}this.provider._setTimeout(()=>{W()},G.pop()||4000)};W()})}async signTransaction(Y){let J=j$(Y);if(J.from){let X=await B8(J.from,this.provider);H(X!=null&&X.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",Y),J.from=X}else J.from=this.address;let Q=this.provider.getRpcTransaction(J);return await this.provider.send("eth_signTransaction",[Q])}async signMessage(Y){let J=typeof Y==="string"?uY(Y):Y;return await this.provider.send("personal_sign",[l(J),this.address.toLowerCase()])}async signTypedData(Y,J,Q){let X=j$(Q),q=await P8.resolveNames(Y,J,X,async(G)=>{let $=await B8(G);return H($!=null,"TypedData does not support null address","value",G),$});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(P8.getPayload(q.domain,J,q.value))])}async unlock(Y){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),Y,null])}async _legacySignMessage(Y){let J=typeof Y==="string"?uY(Y):Y;return await this.provider.send("eth_sign",[this.address.toLowerCase(),l(J)])}}class DE extends KE{#Y;#J;#Q;#q;#X;#$;#G;#W(){if(this.#q)return;let Y=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");this.#q=setTimeout(()=>{this.#q=null;let J=this.#Q;this.#Q=[];while(J.length){let Q=[J.shift()];while(J.length){if(Q.length===this.#Y.batchMaxCount)break;if(Q.push(J.shift()),JSON.stringify(Q.map((X)=>X.payload)).length>this.#Y.batchMaxSize){J.unshift(Q.pop());break}}(async()=>{let X=Q.length===1?Q[0].payload:Q.map((q)=>q.payload);this.emit("debug",{action:"sendRpcPayload",payload:X});try{let q=await this._send(X);this.emit("debug",{action:"receiveRpcResult",result:q});for(let{resolve:G,reject:$,payload:W}of Q){if(this.destroyed){$(P0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:W.method}));continue}let j=q.filter((K)=>K.id===W.id)[0];if(j==null){let K=P0("missing response for request","BAD_DATA",{value:q,info:{payload:W}});this.emit("error",K),$(K);continue}if("error"in j){$(this.getRpcError(W,j));continue}G(j.result)}}catch(q){this.emit("debug",{action:"receiveRpcError",error:q});for(let{reject:G}of Q)G(q)}})()}},Y)}constructor(Y,J){super(Y,J);this.#J=1,this.#Y=Object.assign({},OE,J||{}),this.#Q=[],this.#q=null,this.#$=null,this.#G=null;{let X=null,q=new Promise((G)=>{X=G});this.#X={promise:q,resolve:X}}let Q=this._getOption("staticNetwork");if(typeof Q==="boolean"){if(H(!Q||Y!=="any","staticNetwork cannot be used on special network 'any'","options",J),Q&&Y!=null)this.#$=x8.from(Y)}else if(Q)H(Y==null||Q.matches(Y),"staticNetwork MUST match network object","options",J),this.#$=Q}_getOption(Y){return this.#Y[Y]}get _network(){return _(this.#$,"network is not available yet","NETWORK_ERROR"),this.#$}async _perform(Y){if(Y.method==="call"||Y.method==="estimateGas"){let Q=Y.transaction;if(Q&&Q.type!=null&&d(Q.type)){if(Q.maxFeePerGas==null&&Q.maxPriorityFeePerGas==null){let X=await this.getFeeData();if(X.maxFeePerGas==null&&X.maxPriorityFeePerGas==null)Y=Object.assign({},Y,{transaction:Object.assign({},Q,{type:void 0})})}}}let J=this.getRpcRequest(Y);if(J!=null)return await this.send(J.method,J.args);return super._perform(Y)}async _detectNetwork(){let Y=this._getOption("staticNetwork");if(Y)if(Y===!0){if(this.#$)return this.#$}else return Y;if(this.#G)return await this.#G;if(this.ready)return this.#G=(async()=>{try{let J=x8.from(d(await this.send("eth_chainId",[])));return this.#G=null,J}catch(J){throw this.#G=null,J}})(),await this.#G;return this.#G=(async()=>{let J={id:this.#J++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:J});let Q;try{Q=(await this._send(J))[0],this.#G=null}catch(X){throw this.#G=null,this.emit("debug",{action:"receiveRpcError",error:X}),X}if(this.emit("debug",{action:"receiveRpcResult",result:Q}),"result"in Q)return x8.from(d(Q.result));throw this.getRpcError(J,Q)})(),await this.#G}_start(){if(this.#X==null||this.#X.resolve==null)return;this.#X.resolve(),this.#X=null,(async()=>{while(this.#$==null&&!this.destroyed)try{this.#$=await this._detectNetwork()}catch(Y){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",P0("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:Y}})),await iZ(1000)}this.#W()})()}async _waitUntilReady(){if(this.#X==null)return;return await this.#X.promise}_getSubscriber(Y){if(Y.type==="pending")return new NE(this);if(Y.type==="event"){if(this._getOption("polling"))return new JW(this,Y.filter);return new ME(this,Y.filter)}if(Y.type==="orphan"&&Y.filter.orphan==="drop-log")return new pz("orphan");return super._getSubscriber(Y)}get ready(){return this.#X==null}getRpcTransaction(Y){let J={};if(["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((Q)=>{if(Y[Q]==null)return;let X=Q;if(Q==="gasLimit")X="gas";J[X]=YY(d(Y[Q],`tx.${Q}`))}),["from","to","data"].forEach((Q)=>{if(Y[Q]==null)return;J[Q]=l(Y[Q])}),Y.accessList)J.accessList=UQ(Y.accessList);if(Y.blobVersionedHashes)J.blobVersionedHashes=Y.blobVersionedHashes.map((Q)=>Q.toLowerCase());if(Y.authorizationList)J.authorizationList=Y.authorizationList.map((Q)=>{let X=XL(Q);return{address:X.address,nonce:YY(X.nonce),chainId:YY(X.chainId),yParity:YY(X.signature.yParity),r:YY(X.signature.r),s:YY(X.signature.s)}});return J}getRpcRequest(Y){switch(Y.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[ZQ(Y.address),Y.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[ZQ(Y.address),Y.blockTag]};case"getCode":return{method:"eth_getCode",args:[ZQ(Y.address),Y.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[ZQ(Y.address),"0x"+Y.position.toString(16),Y.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[Y.signedTransaction]};case"getBlock":if("blockTag"in Y)return{method:"eth_getBlockByNumber",args:[Y.blockTag,!!Y.includeTransactions]};else if("blockHash"in Y)return{method:"eth_getBlockByHash",args:[Y.blockHash,!!Y.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[Y.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[Y.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(Y.transaction),Y.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(Y.transaction)]};case"getLogs":if(Y.filter&&Y.filter.address!=null)if(Array.isArray(Y.filter.address))Y.filter.address=Y.filter.address.map(ZQ);else Y.filter.address=ZQ(Y.filter.address);return{method:"eth_getLogs",args:[Y.filter]}}return null}getRpcError(Y,J){let{method:Q}=Y,{error:X}=J;if(Q==="eth_estimateGas"&&X.message){let $=X.message;if(!$.match(/revert/i)&&$.match(/insufficient funds/i))return P0("insufficient funds","INSUFFICIENT_FUNDS",{transaction:Y.params[0],info:{payload:Y,error:X}});else if($.match(/nonce/i)&&$.match(/too low/i))return P0("nonce has already been used","NONCE_EXPIRED",{transaction:Y.params[0],info:{payload:Y,error:X}})}if(Q==="eth_call"||Q==="eth_estimateGas"){let $=f5(X),W=Gq.getBuiltinCallException(Q==="eth_call"?"call":"estimateGas",Y.params[0],$?$.data:null);return W.info={error:X,payload:Y},W}let q=JSON.stringify(nZ(X));if(typeof X.message==="string"&&X.message.match(/user denied|ethers-user-denied/i))return P0("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[Q]||"unknown",reason:"rejected",info:{payload:Y,error:X}});if(Q==="eth_sendRawTransaction"||Q==="eth_sendTransaction"){let $=Y.params[0];if(q.match(/insufficient funds|base fee exceeds gas limit/i))return P0("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:$,info:{error:X}});if(q.match(/nonce/i)&&q.match(/too low/i))return P0("nonce has already been used","NONCE_EXPIRED",{transaction:$,info:{error:X}});if(q.match(/replacement transaction/i)&&q.match(/underpriced/i))return P0("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:$,info:{error:X}});if(q.match(/only replay-protected/i))return P0("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:Q,info:{transaction:$,info:{error:X}}})}let G=!!q.match(/the method .* does not exist/i);if(!G){if(X&&X.details&&X.details.startsWith("Unauthorized method:"))G=!0}if(G)return P0("unsupported operation","UNSUPPORTED_OPERATION",{operation:Y.method,info:{error:X,payload:Y}});return P0("could not coalesce error","UNKNOWN_ERROR",{error:X,payload:Y})}send(Y,J){if(this.destroyed)return Promise.reject(P0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:Y}));let Q=this.#J++,X=new Promise((q,G)=>{this.#Q.push({resolve:q,reject:G,payload:{method:Y,params:J,id:Q,jsonrpc:"2.0"}})});return this.#W(),X}async getSigner(Y){if(Y==null)Y=0;let J=this.send("eth_accounts",[]);if(typeof Y==="number"){let X=await J;if(Y>=X.length)throw Error("no such account");return new K$(this,X[Y])}let{accounts:Q}=await U8({network:this.getNetwork(),accounts:J});Y=L0(Y);for(let X of Q)if(L0(X)===Y)return new K$(this,Y);throw Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((Y)=>new K$(this,Y))}destroy(){if(this.#q)clearTimeout(this.#q),this.#q=null;for(let{payload:Y,reject:J}of this.#Q)J(P0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:Y.method}));this.#Q=[],super.destroy()}}class UE extends DE{#Y;constructor(Y,J){super(Y,J);let Q=this._getOption("pollingInterval");if(Q==null)Q=OE.pollingInterval;this.#Y=Q}_getSubscriber(Y){let J=super._getSubscriber(Y);if(U4(J))J.pollingInterval=this.#Y;return J}get pollingInterval(){return this.#Y}set pollingInterval(Y){if(!Number.isInteger(Y)||Y<0)throw Error("invalid interval");this.#Y=Y,this._forEachSubscriber((J)=>{if(U4(J))J.pollingInterval=this.#Y})}}class tZ extends UE{#Y;constructor(Y,J,Q){if(Y==null)Y="http://localhost:8545";super(J,Q);if(typeof Y==="string")this.#Y=new LY(Y);else this.#Y=Y.clone()}_getConnection(){return this.#Y.clone()}async send(Y,J){return await this._start(),await super.send(Y,J)}async _send(Y){let J=this._getConnection();J.body=JSON.stringify(Y),J.setHeader("content-type","application/json");let Q=await J.send();Q.assertOk();let X=Q.bodyJson;if(!Array.isArray(X))X=[X];return X}}function f5(Y){if(Y==null)return null;if(typeof Y.message==="string"&&Y.message.match(/revert/i)&&k0(Y.data))return{message:Y.message,data:Y.data};if(typeof Y==="object"){for(let J in Y){let Q=f5(Y[J]);if(Q)return Q}return null}if(typeof Y==="string")try{return f5(JSON.parse(Y))}catch(J){}return null}function h5(Y,J){if(Y==null)return;if(typeof Y.message==="string")J.push(Y.message);if(typeof Y==="object")for(let Q in Y)h5(Y[Q],J);if(typeof Y==="string")try{return h5(JSON.parse(Y),J)}catch(Q){}}function nZ(Y){let J=[];return h5(Y,J),J}var HE=async(Y,J,Q)=>{let X=J instanceof b0?J.toJSON():J,q=await Y.getChainId();if(X.chainId!=q)await Y.switchChain(X.chainId);return Y.writeContract({contractAbi:[X.functionAbi],contractAddress:X.contractAddress,args:X.args,functionName:X.functionName,gas:Q?.gas})};AE();IJ();var Xx=BigInt(0),jG=BigInt(1),Gx=BigInt(2),$x=BigInt(7),Wx=BigInt(256),jx=BigInt(113),FE=[],PE=[],TE=[];for(let Y=0,J=jG,Q=1,X=0;Y<24;Y++){[Q,X]=[X,(2*Q+3*X)%5],FE.push(2*(5*X+Q)),PE.push((Y+1)*(Y+2)/2%64);let q=Xx;for(let G=0;G<7;G++)if(J=(J<<jG^(J>>$x)*jx)%Wx,J&Gx)q^=jG<<(jG<<BigInt(G))-jG;TE.push(q)}var ZE=RE(TE,!0),Kx=ZE[0],zx=ZE[1],_E=(Y,J,Q)=>Q>32?EE(Y,J,Q):VE(Y,J,Q),kE=(Y,J,Q)=>Q>32?wE(Y,J,Q):LE(Y,J,Q);function Mx(Y,J=24){let Q=new Uint32Array(10);for(let X=24-J;X<24;X++){for(let $=0;$<10;$++)Q[$]=Y[$]^Y[$+10]^Y[$+20]^Y[$+30]^Y[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=Q[j],z=Q[j+1],M=_E(K,z,1)^Q[W],N=kE(K,z,1)^Q[W+1];for(let O=0;O<50;O+=10)Y[$+O]^=M,Y[$+O+1]^=N}let q=Y[2],G=Y[3];for(let $=0;$<24;$++){let W=PE[$],j=_E(q,G,W),K=kE(q,G,W),z=FE[$];q=Y[z],G=Y[z+1],Y[z]=j,Y[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)Q[W]=Y[$+W];for(let W=0;W<10;W++)Y[$+W]^=~Q[(W+2)%10]&Q[(W+4)%10]}Y[0]^=Kx[X],Y[1]^=zx[X]}CY(Q)}class sz extends LQ{constructor(Y,J,Q,X=!1,q=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=Y,this.suffix=J,this.outputLen=Q,this.enableXOF=X,this.rounds=q,RQ(Q),!(0<Y&&Y<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=SE(this.state)}clone(){return this._cloneInto()}keccak(){rz(this.state32),Mx(this.state32,this.rounds),rz(this.state32),this.posOut=0,this.pos=0}update(Y){eY(this),Y=VQ(Y),AY(Y);let{blockLen:J,state:Q}=this,X=Y.length;for(let q=0;q<X;){let G=Math.min(J-this.pos,X-q);for(let $=0;$<G;$++)Q[this.pos++]^=Y[q++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:Y,suffix:J,pos:Q,blockLen:X}=this;if(Y[Q]^=J,(J&128)!==0&&Q===X-1)this.keccak();Y[X-1]^=128,this.keccak()}writeInto(Y){eY(this,!1),AY(Y),this.finish();let J=this.state,{blockLen:Q}=this;for(let X=0,q=Y.length;X<q;){if(this.posOut>=Q)this.keccak();let G=Math.min(Q-this.posOut,q-X);Y.set(J.subarray(this.posOut,this.posOut+G),X),this.posOut+=G,X+=G}return Y}xofInto(Y){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(Y)}xof(Y){return RQ(Y),this.xofInto(new Uint8Array(Y))}digestInto(Y){if(qW(Y,this),this.finished)throw Error("digest() was already called");return this.writeInto(Y),this.destroy(),Y}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,CY(this.state)}_cloneInto(Y){let{blockLen:J,suffix:Q,outputLen:X,rounds:q,enableXOF:G}=this;return Y||(Y=new sz(J,Q,X,G,q)),Y.state32.set(this.state32),Y.pos=this.pos,Y.posOut=this.posOut,Y.finished=this.finished,Y.rounds=q,Y.suffix=Q,Y.outputLen=X,Y.enableXOF=G,Y.destroyed=this.destroyed,Y}}var Nx=(Y,J,Q)=>GW(()=>new sz(J,Y,Q));var xE=(()=>Nx(1,136,32))();function YJ(Y,{strict:J=!0}={}){if(!Y)return!1;if(typeof Y!=="string")return!1;return J?/^0x[0-9a-fA-F]*$/.test(Y):Y.startsWith("0x")}var iz="2.47.2";var tz={getDocsUrl:({docsBaseUrl:Y,docsPath:J="",docsSlug:Q})=>J?`${Y??"https://viem.sh"}${J}${Q?`#${Q}`:""}`:void 0,version:`viem@${iz}`};class IY extends Error{constructor(Y,J={}){let Q=(()=>{if(J.cause instanceof IY)return J.cause.details;if(J.cause?.message)return J.cause.message;return J.details})(),X=(()=>{if(J.cause instanceof IY)return J.cause.docsPath||J.docsPath;return J.docsPath})(),q=tz.getDocsUrl?.({...J,docsPath:X}),G=[Y||"An error occurred.","",...J.metaMessages?[...J.metaMessages,""]:[],...q?[`Docs: ${q}`]:[],...Q?[`Details: ${Q}`]:[],...tz.version?[`Version: ${tz.version}`]:[]].join(`
75
+ `);super(G,J.cause?{cause:J.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=Q,this.docsPath=X,this.metaMessages=J.metaMessages,this.name=J.name??this.name,this.shortMessage=Y,this.version=iz}walk(Y){return gE(this,Y)}}function gE(Y,J){if(J?.(Y))return Y;if(Y&&typeof Y==="object"&&"cause"in Y&&Y.cause!==void 0)return gE(Y.cause,J);return J?null:Y}class WW extends IY{constructor({size:Y,targetSize:J,type:Q}){super(`${Q.charAt(0).toUpperCase()}${Q.slice(1).toLowerCase()} size (${Y}) exceeds padding size (${J}).`,{name:"SizeExceedsPaddingSizeError"})}}function SJ(Y,{dir:J,size:Q=32}={}){if(typeof Y==="string")return Ox(Y,{dir:J,size:Q});return Dx(Y,{dir:J,size:Q})}function Ox(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;let X=Y.replace("0x","");if(X.length>Q*2)throw new WW({size:Math.ceil(X.length/2),targetSize:Q,type:"hex"});return`0x${X[J==="right"?"padEnd":"padStart"](Q*2,"0")}`}function Dx(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;if(Y.length>Q)throw new WW({size:Y.length,targetSize:Q,type:"bytes"});let X=new Uint8Array(Q);for(let q=0;q<Q;q++){let G=J==="right";X[G?q:Q-q-1]=Y[G?q:Y.length-q-1]}return X}class KG extends IY{constructor({max:Y,min:J,signed:Q,size:X,value:q}){super(`Number "${q}" is not in safe ${X?`${X*8}-bit ${Q?"signed":"unsigned"} `:""}integer range ${Y?`(${J} to ${Y})`:`(above ${J})`}`,{name:"IntegerOutOfRangeError"})}}class nz extends IY{constructor({givenSize:Y,maxSize:J}){super(`Size cannot exceed ${J} bytes. Given size: ${Y} bytes.`,{name:"SizeOverflowError"})}}function EQ(Y){if(YJ(Y,{strict:!1}))return Math.ceil((Y.length-2)/2);return Y.length}function vJ(Y,{size:J}){if(EQ(Y)>J)throw new nz({givenSize:EQ(Y),maxSize:J})}function jW(Y,J={}){let{signed:Q}=J;if(J.size)vJ(Y,{size:J.size});let X=BigInt(Y);if(!Q)return X;let q=(Y.length-2)/2,G=(1n<<BigInt(q)*8n-1n)-1n;if(X<=G)return X;return X-BigInt(`0x${"f".padStart(q*2,"f")}`)-1n}function fE(Y,J={}){let Q=jW(Y,J),X=Number(Q);if(!Number.isSafeInteger(X))throw new KG({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:J.signed,size:J.size,value:`${Q}n`});return X}var Ux=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0"));function zG(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return az(Y,J);if(typeof Y==="string")return zW(Y,J);if(typeof Y==="boolean")return Hx(Y,J);return KW(Y,J)}function Hx(Y,J={}){let Q=`0x${Number(Y)}`;if(typeof J.size==="number")return vJ(Q,{size:J.size}),SJ(Q,{size:J.size});return Q}function KW(Y,J={}){let Q="";for(let q=0;q<Y.length;q++)Q+=Ux[Y[q]];let X=`0x${Q}`;if(typeof J.size==="number")return vJ(X,{size:J.size}),SJ(X,{dir:"right",size:J.size});return X}function az(Y,J={}){let{signed:Q,size:X}=J,q=BigInt(Y),G;if(X)if(Q)G=(1n<<BigInt(X)*8n-1n)-1n;else G=2n**(BigInt(X)*8n)-1n;else if(typeof Y==="number")G=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof G==="bigint"&&Q?-G-1n:0;if(G&&q>G||q<$){let j=typeof Y==="bigint"?"n":"";throw new KG({max:G?`${G}${j}`:void 0,min:`${$}${j}`,signed:Q,size:X,value:`${Y}${j}`})}let W=`0x${(Q&&q<0?(1n<<BigInt(X*8))+BigInt(q):q).toString(16)}`;if(X)return SJ(W,{size:X});return W}var Bx=new TextEncoder;function zW(Y,J={}){let Q=Bx.encode(Y);return KW(Q,J)}var Rx=new TextEncoder;function mE(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return Lx(Y,J);if(typeof Y==="boolean")return Vx(Y,J);if(YJ(Y))return yE(Y,J);return ez(Y,J)}function Vx(Y,J={}){let Q=new Uint8Array(1);if(Q[0]=Number(Y),typeof J.size==="number")return vJ(Q,{size:J.size}),SJ(Q,{size:J.size});return Q}var JJ={zero:48,nine:57,A:65,F:70,a:97,f:102};function hE(Y){if(Y>=JJ.zero&&Y<=JJ.nine)return Y-JJ.zero;if(Y>=JJ.A&&Y<=JJ.F)return Y-(JJ.A-10);if(Y>=JJ.a&&Y<=JJ.f)return Y-(JJ.a-10);return}function yE(Y,J={}){let Q=Y;if(J.size)vJ(Q,{size:J.size}),Q=SJ(Q,{dir:"right",size:J.size});let X=Q.slice(2);if(X.length%2)X=`0${X}`;let q=X.length/2,G=new Uint8Array(q);for(let $=0,W=0;$<q;$++){let j=hE(X.charCodeAt(W++)),K=hE(X.charCodeAt(W++));if(j===void 0||K===void 0)throw new IY(`Invalid byte sequence ("${X[W-2]}${X[W-1]}" in "${X}").`);G[$]=j*16+K}return G}function Lx(Y,J){let Q=az(Y,J);return yE(Q)}function ez(Y,J={}){let Q=Rx.encode(Y);if(typeof J.size==="number")return vJ(Q,{size:J.size}),SJ(Q,{dir:"right",size:J.size});return Q}function Lq(Y,J){let Q=J||"hex",X=xE(YJ(Y,{strict:!1})?mE(Y):Y);if(Q==="bytes")return X;return zG(X)}var lE=`\x19Ethereum Signed Message:
76
+ `;function uE(Y){if(typeof Y[0]==="string")return wx(Y);return Ex(Y)}function Ex(Y){let J=0;for(let q of Y)J+=q.length;let Q=new Uint8Array(J),X=0;for(let q of Y)Q.set(q,X),X+=q.length;return Q}function wx(Y){return`0x${Y.reduce((J,Q)=>J+Q.replace("0x",""),"")}`}function cE(Y){let J=(()=>{if(typeof Y==="string")return zW(Y);if(typeof Y.raw==="string")return Y.raw;return KW(Y.raw)})(),Q=zW(`${lE}${EQ(J)}`);return uE([Q,J])}function bE(Y,J){return Lq(cE(Y),J)}class YM extends Map{constructor(Y){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=Y}get(Y){let J=super.get(Y);if(super.has(Y)&&J!==void 0)this.delete(Y),super.set(Y,J);return J}set(Y,J){if(super.set(Y,J),this.maxSize&&this.size>this.maxSize){let Q=this.keys().next().value;if(Q)this.delete(Q)}return this}}var JM=new YM(8192);function pE(Y,J){if(JM.has(`${Y}.${J}`))return JM.get(`${Y}.${J}`);let Q=J?`${J}${Y.toLowerCase()}`:Y.substring(2).toLowerCase(),X=Lq(ez(Q),"bytes"),q=(J?Q.substring(`${J}0x`.length):Q).split("");for(let $=0;$<40;$+=2){if(X[$>>1]>>4>=8&&q[$])q[$]=q[$].toUpperCase();if((X[$>>1]&15)>=8&&q[$+1])q[$+1]=q[$+1].toUpperCase()}let G=`0x${q.join("")}`;return JM.set(`${Y}.${J}`,G),G}function oE(Y){let J=Lq(`0x${Y.substring(4)}`).substring(26);return pE(`0x${J}`)}async function hw({hash:Y,signature:J}){let Q=YJ(Y)?Y:zG(Y),{secp256k1:X}=await Promise.resolve().then(() => (gw(),xw));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:K,s:z,v:M,yParity:N}=J,O=Number(N??M),D=fw(O);return new X.Signature(jW(K),jW(z)).addRecoveryBit(D)}let $=YJ(J)?J:zG(J);if(EQ($)!==65)throw Error("invalid signature length");let W=fE(`0x${$.slice(130)}`),j=fw(W);return X.Signature.fromCompact($.substring(2,130)).addRecoveryBit(j)})().recoverPublicKey(Q.substring(2)).toHex(!1)}`}function fw(Y){if(Y===0||Y===1)return Y;if(Y===27)return 0;if(Y===28)return 1;throw Error("Invalid yParityOrV value")}async function mw({hash:Y,signature:J}){return oE(await hw({hash:Y,signature:J}))}async function FM({message:Y,signature:J}){return mw({hash:bE(Y),signature:J})}class XA{signer;constructor(Y){this.signer=Y}async verifyPaySignature(Y){if(Y.functionName!=="pay")throw Error("verifyPaySignature can only verify core.pay signatures");let{success:J,error:Q}=Dq(Oq).safeParse(Y);if(!J)throw Error(`The provided signedAction is not valid: ${Q.message}`);let X=new DX({address:Y.contractAddress,signer:this.signer,chainId:Y.chainId}),q=await X.getEvvmID(),G=X.buildHashPayload(Y.functionName,{to_address:Y.data.to_address,to_identity:Y.data.to_identity,token:Y.data.token,amount:Y.data.amount,priorityFee:Y.data.priorityFee}),$=X.buildMessageToSign(q,Y.data.senderExecutor,G,Y.data.originExecutor,Y.data.nonce,Y.data.isAsyncExec);if(await FM({message:$,signature:Y.data.signature})!==Y.data.from)return console.error("Couldn't recover address from signature"),!1;if(Y.data.isAsyncExec){if(await X.getIfUsedAsyncNonce(Y.data.nonce))return console.error("Invalid async nonce"),!1}else if((await X.getNextCurrentSyncNonce()).toString()!=Y.data.nonce.toString())return console.error("Invalid sync nonce"),!1;if(await X.getBalance(Y.data.from,Y.data.token)<=Y.data.amount)return console.error("Insufficient balance"),!1;return!0}async settlePayment(Y){try{return await HE(this.signer,Y)}catch(J){return console.error("Failed to settle payment"),console.error(J),null}}}var B0={};IW(B0,{void:()=>kf,util:()=>D0,unknown:()=>vf,union:()=>Zf,undefined:()=>Cf,tuple:()=>ff,transformer:()=>df,symbol:()=>Af,string:()=>OA,strictObject:()=>Tf,setErrorMap:()=>s1,set:()=>yf,record:()=>hf,quotelessJson:()=>d1,promise:()=>of,preprocess:()=>tf,pipeline:()=>nf,ostring:()=>af,optional:()=>rf,onumber:()=>ef,oboolean:()=>Yh,objectUtil:()=>bM,object:()=>Pf,number:()=>DA,nullable:()=>sf,null:()=>If,never:()=>_f,nativeEnum:()=>pf,nan:()=>Lf,map:()=>mf,makeIssue:()=>FG,literal:()=>cf,lazy:()=>uf,late:()=>Rf,isValid:()=>ZJ,isDirty:()=>EW,isAsync:()=>kq,isAborted:()=>LW,intersection:()=>gf,instanceof:()=>Vf,getParsedType:()=>_Y,getErrorMap:()=>_q,function:()=>lf,enum:()=>bf,effect:()=>df,discriminatedUnion:()=>xf,defaultErrorMap:()=>jJ,datetimeRegex:()=>zA,date:()=>wf,custom:()=>NA,coerce:()=>Jh,boolean:()=>UA,bigint:()=>Ef,array:()=>Ff,any:()=>Sf,addIssueToContext:()=>m,ZodVoid:()=>TG,ZodUnknown:()=>xJ,ZodUnion:()=>gq,ZodUndefined:()=>Zq,ZodType:()=>N0,ZodTuple:()=>FY,ZodTransformer:()=>NY,ZodSymbol:()=>PG,ZodString:()=>jY,ZodSet:()=>_Q,ZodSchema:()=>N0,ZodRecord:()=>ZG,ZodReadonly:()=>cq,ZodPromise:()=>kQ,ZodPipeline:()=>fG,ZodParsedType:()=>g,ZodOptional:()=>zY,ZodObject:()=>m0,ZodNumber:()=>gJ,ZodNullable:()=>zJ,ZodNull:()=>xq,ZodNever:()=>kY,ZodNativeEnum:()=>yq,ZodNaN:()=>gG,ZodMap:()=>xG,ZodLiteral:()=>mq,ZodLazy:()=>hq,ZodIssueCode:()=>k,ZodIntersection:()=>fq,ZodFunction:()=>Pq,ZodFirstPartyTypeKind:()=>q0,ZodError:()=>_8,ZodEnum:()=>hJ,ZodEffects:()=>NY,ZodDiscriminatedUnion:()=>wW,ZodDefault:()=>lq,ZodDate:()=>SQ,ZodCatch:()=>uq,ZodBranded:()=>AW,ZodBoolean:()=>Tq,ZodBigInt:()=>fJ,ZodArray:()=>KY,ZodAny:()=>vQ,Schema:()=>N0,ParseStatus:()=>G8,OK:()=>N8,NEVER:()=>Qh,INVALID:()=>J0,EMPTY_PATH:()=>i1,DIRTY:()=>IQ,BRAND:()=>Bf});var D0;(function(Y){Y.assertEqual=(q)=>{};function J(q){}Y.assertIs=J;function Q(q){throw Error()}Y.assertNever=Q,Y.arrayToEnum=(q)=>{let G={};for(let $ of q)G[$]=$;return G},Y.getValidEnumValues=(q)=>{let G=Y.objectKeys(q).filter((W)=>typeof q[q[W]]!=="number"),$={};for(let W of G)$[W]=q[W];return Y.objectValues($)},Y.objectValues=(q)=>{return Y.objectKeys(q).map(function(G){return q[G]})},Y.objectKeys=typeof Object.keys==="function"?(q)=>Object.keys(q):(q)=>{let G=[];for(let $ in q)if(Object.prototype.hasOwnProperty.call(q,$))G.push($);return G},Y.find=(q,G)=>{for(let $ of q)if(G($))return $;return},Y.isInteger=typeof Number.isInteger==="function"?(q)=>Number.isInteger(q):(q)=>typeof q==="number"&&Number.isFinite(q)&&Math.floor(q)===q;function X(q,G=" | "){return q.map(($)=>typeof $==="string"?`'${$}'`:$).join(G)}Y.joinValues=X,Y.jsonStringifyReplacer=(q,G)=>{if(typeof G==="bigint")return G.toString();return G}})(D0||(D0={}));var bM;(function(Y){Y.mergeShapes=(J,Q)=>{return{...J,...Q}}})(bM||(bM={}));var g=D0.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_Y=(Y)=>{switch(typeof Y){case"undefined":return g.undefined;case"string":return g.string;case"number":return Number.isNaN(Y)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":if(Array.isArray(Y))return g.array;if(Y===null)return g.null;if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return g.promise;if(typeof Map<"u"&&Y instanceof Map)return g.map;if(typeof Set<"u"&&Y instanceof Set)return g.set;if(typeof Date<"u"&&Y instanceof Date)return g.date;return g.object;default:return g.unknown}};var k=D0.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),d1=(Y)=>{return JSON.stringify(Y,null,2).replace(/"([^"]+)":/g,"$1:")};class _8 extends Error{get errors(){return this.issues}constructor(Y){super();this.issues=[],this.addIssue=(Q)=>{this.issues=[...this.issues,Q]},this.addIssues=(Q=[])=>{this.issues=[...this.issues,...Q]};let J=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,J);else this.__proto__=J;this.name="ZodError",this.issues=Y}format(Y){let J=Y||function(q){return q.message},Q={_errors:[]},X=(q)=>{for(let G of q.issues)if(G.code==="invalid_union")G.unionErrors.map(X);else if(G.code==="invalid_return_type")X(G.returnTypeError);else if(G.code==="invalid_arguments")X(G.argumentsError);else if(G.path.length===0)Q._errors.push(J(G));else{let $=Q,W=0;while(W<G.path.length){let j=G.path[W];if(W!==G.path.length-1)$[j]=$[j]||{_errors:[]};else $[j]=$[j]||{_errors:[]},$[j]._errors.push(J(G));$=$[j],W++}}};return X(this),Q}static assert(Y){if(!(Y instanceof _8))throw Error(`Not a ZodError: ${Y}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,D0.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(Y=(J)=>J.message){let J={},Q=[];for(let X of this.issues)if(X.path.length>0){let q=X.path[0];J[q]=J[q]||[],J[q].push(Y(X))}else Q.push(Y(X));return{formErrors:Q,fieldErrors:J}}get formErrors(){return this.flatten()}}_8.create=(Y)=>{return new _8(Y)};var r1=(Y,J)=>{let Q;switch(Y.code){case k.invalid_type:if(Y.received===g.undefined)Q="Required";else Q=`Expected ${Y.expected}, received ${Y.received}`;break;case k.invalid_literal:Q=`Invalid literal value, expected ${JSON.stringify(Y.expected,D0.jsonStringifyReplacer)}`;break;case k.unrecognized_keys:Q=`Unrecognized key(s) in object: ${D0.joinValues(Y.keys,", ")}`;break;case k.invalid_union:Q="Invalid input";break;case k.invalid_union_discriminator:Q=`Invalid discriminator value. Expected ${D0.joinValues(Y.options)}`;break;case k.invalid_enum_value:Q=`Invalid enum value. Expected ${D0.joinValues(Y.options)}, received '${Y.received}'`;break;case k.invalid_arguments:Q="Invalid function arguments";break;case k.invalid_return_type:Q="Invalid function return type";break;case k.invalid_date:Q="Invalid date";break;case k.invalid_string:if(typeof Y.validation==="object")if("includes"in Y.validation){if(Q=`Invalid input: must include "${Y.validation.includes}"`,typeof Y.validation.position==="number")Q=`${Q} at one or more positions greater than or equal to ${Y.validation.position}`}else if("startsWith"in Y.validation)Q=`Invalid input: must start with "${Y.validation.startsWith}"`;else if("endsWith"in Y.validation)Q=`Invalid input: must end with "${Y.validation.endsWith}"`;else D0.assertNever(Y.validation);else if(Y.validation!=="regex")Q=`Invalid ${Y.validation}`;else Q="Invalid";break;case k.too_small:if(Y.type==="array")Q=`Array must contain ${Y.exact?"exactly":Y.inclusive?"at least":"more than"} ${Y.minimum} element(s)`;else if(Y.type==="string")Q=`String must contain ${Y.exact?"exactly":Y.inclusive?"at least":"over"} ${Y.minimum} character(s)`;else if(Y.type==="number")Q=`Number must be ${Y.exact?"exactly equal to ":Y.inclusive?"greater than or equal to ":"greater than "}${Y.minimum}`;else if(Y.type==="bigint")Q=`Number must be ${Y.exact?"exactly equal to ":Y.inclusive?"greater than or equal to ":"greater than "}${Y.minimum}`;else if(Y.type==="date")Q=`Date must be ${Y.exact?"exactly equal to ":Y.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(Y.minimum))}`;else Q="Invalid input";break;case k.too_big:if(Y.type==="array")Q=`Array must contain ${Y.exact?"exactly":Y.inclusive?"at most":"less than"} ${Y.maximum} element(s)`;else if(Y.type==="string")Q=`String must contain ${Y.exact?"exactly":Y.inclusive?"at most":"under"} ${Y.maximum} character(s)`;else if(Y.type==="number")Q=`Number must be ${Y.exact?"exactly":Y.inclusive?"less than or equal to":"less than"} ${Y.maximum}`;else if(Y.type==="bigint")Q=`BigInt must be ${Y.exact?"exactly":Y.inclusive?"less than or equal to":"less than"} ${Y.maximum}`;else if(Y.type==="date")Q=`Date must be ${Y.exact?"exactly":Y.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(Y.maximum))}`;else Q="Invalid input";break;case k.custom:Q="Invalid input";break;case k.invalid_intersection_types:Q="Intersection results could not be merged";break;case k.not_multiple_of:Q=`Number must be a multiple of ${Y.multipleOf}`;break;case k.not_finite:Q="Number must be finite";break;default:Q=J.defaultError,D0.assertNever(Y)}return{message:Q}},jJ=r1;var GA=jJ;function s1(Y){GA=Y}function _q(){return GA}var FG=(Y)=>{let{data:J,path:Q,errorMaps:X,issueData:q}=Y,G=[...Q,...q.path||[]],$={...q,path:G};if(q.message!==void 0)return{...q,path:G,message:q.message};let W="",j=X.filter((K)=>!!K).slice().reverse();for(let K of j)W=K($,{data:J,defaultError:W}).message;return{...q,path:G,message:W}},i1=[];function m(Y,J){let Q=_q(),X=FG({issueData:J,data:Y.data,path:Y.path,errorMaps:[Y.common.contextualErrorMap,Y.schemaErrorMap,Q,Q===jJ?void 0:jJ].filter((q)=>!!q)});Y.common.issues.push(X)}class G8{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(Y,J){let Q=[];for(let X of J){if(X.status==="aborted")return J0;if(X.status==="dirty")Y.dirty();Q.push(X.value)}return{status:Y.value,value:Q}}static async mergeObjectAsync(Y,J){let Q=[];for(let X of J){let q=await X.key,G=await X.value;Q.push({key:q,value:G})}return G8.mergeObjectSync(Y,Q)}static mergeObjectSync(Y,J){let Q={};for(let X of J){let{key:q,value:G}=X;if(q.status==="aborted")return J0;if(G.status==="aborted")return J0;if(q.status==="dirty")Y.dirty();if(G.status==="dirty")Y.dirty();if(q.value!=="__proto__"&&(typeof G.value<"u"||X.alwaysSet))Q[q.value]=G.value}return{status:Y.value,value:Q}}}var J0=Object.freeze({status:"aborted"}),IQ=(Y)=>({status:"dirty",value:Y}),N8=(Y)=>({status:"valid",value:Y}),LW=(Y)=>Y.status==="aborted",EW=(Y)=>Y.status==="dirty",ZJ=(Y)=>Y.status==="valid",kq=(Y)=>typeof Promise<"u"&&Y instanceof Promise;var i;(function(Y){Y.errToObj=(J)=>typeof J==="string"?{message:J}:J||{},Y.toString=(J)=>typeof J==="string"?J:J?.message})(i||(i={}));class MY{constructor(Y,J,Q,X){this._cachedPath=[],this.parent=Y,this.data=J,this._path=Q,this._key=X}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var $A=(Y,J)=>{if(ZJ(J))return{success:!0,data:J.value};else{if(!Y.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Q=new _8(Y.common.issues);return this._error=Q,this._error}}}};function W0(Y){if(!Y)return{};let{errorMap:J,invalid_type_error:Q,required_error:X,description:q}=Y;if(J&&(Q||X))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(J)return{errorMap:J,description:q};return{errorMap:($,W)=>{let{message:j}=Y;if($.code==="invalid_enum_value")return{message:j??W.defaultError};if(typeof W.data>"u")return{message:j??X??W.defaultError};if($.code!=="invalid_type")return{message:W.defaultError};return{message:j??Q??W.defaultError}},description:q}}class N0{get description(){return this._def.description}_getType(Y){return _Y(Y.data)}_getOrReturnCtx(Y,J){return J||{common:Y.parent.common,data:Y.data,parsedType:_Y(Y.data),schemaErrorMap:this._def.errorMap,path:Y.path,parent:Y.parent}}_processInputParams(Y){return{status:new G8,ctx:{common:Y.parent.common,data:Y.data,parsedType:_Y(Y.data),schemaErrorMap:this._def.errorMap,path:Y.path,parent:Y.parent}}}_parseSync(Y){let J=this._parse(Y);if(kq(J))throw Error("Synchronous parse encountered promise.");return J}_parseAsync(Y){let J=this._parse(Y);return Promise.resolve(J)}parse(Y,J){let Q=this.safeParse(Y,J);if(Q.success)return Q.data;throw Q.error}safeParse(Y,J){let Q={common:{issues:[],async:J?.async??!1,contextualErrorMap:J?.errorMap},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Y,parsedType:_Y(Y)},X=this._parseSync({data:Y,path:Q.path,parent:Q});return $A(Q,X)}"~validate"(Y){let J={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:Y,parsedType:_Y(Y)};if(!this["~standard"].async)try{let Q=this._parseSync({data:Y,path:[],parent:J});return ZJ(Q)?{value:Q.value}:{issues:J.common.issues}}catch(Q){if(Q?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;J.common={issues:[],async:!0}}return this._parseAsync({data:Y,path:[],parent:J}).then((Q)=>ZJ(Q)?{value:Q.value}:{issues:J.common.issues})}async parseAsync(Y,J){let Q=await this.safeParseAsync(Y,J);if(Q.success)return Q.data;throw Q.error}async safeParseAsync(Y,J){let Q={common:{issues:[],contextualErrorMap:J?.errorMap,async:!0},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Y,parsedType:_Y(Y)},X=this._parse({data:Y,path:Q.path,parent:Q}),q=await(kq(X)?X:Promise.resolve(X));return $A(Q,q)}refine(Y,J){let Q=(X)=>{if(typeof J==="string"||typeof J>"u")return{message:J};else if(typeof J==="function")return J(X);else return J};return this._refinement((X,q)=>{let G=Y(X),$=()=>q.addIssue({code:k.custom,...Q(X)});if(typeof Promise<"u"&&G instanceof Promise)return G.then((W)=>{if(!W)return $(),!1;else return!0});if(!G)return $(),!1;else return!0})}refinement(Y,J){return this._refinement((Q,X)=>{if(!Y(Q))return X.addIssue(typeof J==="function"?J(Q,X):J),!1;else return!0})}_refinement(Y){return new NY({schema:this,typeName:q0.ZodEffects,effect:{type:"refinement",refinement:Y}})}superRefine(Y){return this._refinement(Y)}constructor(Y){this.spa=this.safeParseAsync,this._def=Y,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(J)=>this["~validate"](J)}}optional(){return zY.create(this,this._def)}nullable(){return zJ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return KY.create(this)}promise(){return kQ.create(this,this._def)}or(Y){return gq.create([this,Y],this._def)}and(Y){return fq.create(this,Y,this._def)}transform(Y){return new NY({...W0(this._def),schema:this,typeName:q0.ZodEffects,effect:{type:"transform",transform:Y}})}default(Y){let J=typeof Y==="function"?Y:()=>Y;return new lq({...W0(this._def),innerType:this,defaultValue:J,typeName:q0.ZodDefault})}brand(){return new AW({typeName:q0.ZodBranded,type:this,...W0(this._def)})}catch(Y){let J=typeof Y==="function"?Y:()=>Y;return new uq({...W0(this._def),innerType:this,catchValue:J,typeName:q0.ZodCatch})}describe(Y){return new this.constructor({...this._def,description:Y})}pipe(Y){return fG.create(this,Y)}readonly(){return cq.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var t1=/^c[^\s-]{8,}$/i,n1=/^[0-9a-z]+$/,a1=/^[0-9A-HJKMNP-TV-Z]{26}$/i,e1=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Yf=/^[a-z0-9_-]{21}$/i,Jf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Qf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,qf=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Xf="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",pM,Gf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,$f=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Wf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,jf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Kf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,zf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,jA="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Mf=new RegExp(`^${jA}$`);function KA(Y){let J="[0-5]\\d";if(Y.precision)J=`${J}\\.\\d{${Y.precision}}`;else if(Y.precision==null)J=`${J}(\\.\\d+)?`;let Q=Y.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${J})${Q}`}function Nf(Y){return new RegExp(`^${KA(Y)}$`)}function zA(Y){let J=`${jA}T${KA(Y)}`,Q=[];if(Q.push(Y.local?"Z?":"Z"),Y.offset)Q.push("([+-]\\d{2}:?\\d{2})");return J=`${J}(${Q.join("|")})`,new RegExp(`^${J}$`)}function Of(Y,J){if((J==="v4"||!J)&&Gf.test(Y))return!0;if((J==="v6"||!J)&&Wf.test(Y))return!0;return!1}function Df(Y,J){if(!Jf.test(Y))return!1;try{let[Q]=Y.split(".");if(!Q)return!1;let X=Q.replace(/-/g,"+").replace(/_/g,"/").padEnd(Q.length+(4-Q.length%4)%4,"="),q=JSON.parse(atob(X));if(typeof q!=="object"||q===null)return!1;if("typ"in q&&q?.typ!=="JWT")return!1;if(!q.alg)return!1;if(J&&q.alg!==J)return!1;return!0}catch{return!1}}function Uf(Y,J){if((J==="v4"||!J)&&$f.test(Y))return!0;if((J==="v6"||!J)&&jf.test(Y))return!0;return!1}class jY extends N0{_parse(Y){if(this._def.coerce)Y.data=String(Y.data);if(this._getType(Y)!==g.string){let q=this._getOrReturnCtx(Y);return m(q,{code:k.invalid_type,expected:g.string,received:q.parsedType}),J0}let Q=new G8,X=void 0;for(let q of this._def.checks)if(q.kind==="min"){if(Y.data.length<q.value)X=this._getOrReturnCtx(Y,X),m(X,{code:k.too_small,minimum:q.value,type:"string",inclusive:!0,exact:!1,message:q.message}),Q.dirty()}else if(q.kind==="max"){if(Y.data.length>q.value)X=this._getOrReturnCtx(Y,X),m(X,{code:k.too_big,maximum:q.value,type:"string",inclusive:!0,exact:!1,message:q.message}),Q.dirty()}else if(q.kind==="length"){let G=Y.data.length>q.value,$=Y.data.length<q.value;if(G||$){if(X=this._getOrReturnCtx(Y,X),G)m(X,{code:k.too_big,maximum:q.value,type:"string",inclusive:!0,exact:!0,message:q.message});else if($)m(X,{code:k.too_small,minimum:q.value,type:"string",inclusive:!0,exact:!0,message:q.message});Q.dirty()}}else if(q.kind==="email"){if(!qf.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"email",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="emoji"){if(!pM)pM=new RegExp(Xf,"u");if(!pM.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"emoji",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="uuid"){if(!e1.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"uuid",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="nanoid"){if(!Yf.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"nanoid",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="cuid"){if(!t1.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"cuid",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="cuid2"){if(!n1.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"cuid2",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="ulid"){if(!a1.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"ulid",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="url")try{new URL(Y.data)}catch{X=this._getOrReturnCtx(Y,X),m(X,{validation:"url",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="regex"){if(q.regex.lastIndex=0,!q.regex.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"regex",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="trim")Y.data=Y.data.trim();else if(q.kind==="includes"){if(!Y.data.includes(q.value,q.position))X=this._getOrReturnCtx(Y,X),m(X,{code:k.invalid_string,validation:{includes:q.value,position:q.position},message:q.message}),Q.dirty()}else if(q.kind==="toLowerCase")Y.data=Y.data.toLowerCase();else if(q.kind==="toUpperCase")Y.data=Y.data.toUpperCase();else if(q.kind==="startsWith"){if(!Y.data.startsWith(q.value))X=this._getOrReturnCtx(Y,X),m(X,{code:k.invalid_string,validation:{startsWith:q.value},message:q.message}),Q.dirty()}else if(q.kind==="endsWith"){if(!Y.data.endsWith(q.value))X=this._getOrReturnCtx(Y,X),m(X,{code:k.invalid_string,validation:{endsWith:q.value},message:q.message}),Q.dirty()}else if(q.kind==="datetime"){if(!zA(q).test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{code:k.invalid_string,validation:"datetime",message:q.message}),Q.dirty()}else if(q.kind==="date"){if(!Mf.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{code:k.invalid_string,validation:"date",message:q.message}),Q.dirty()}else if(q.kind==="time"){if(!Nf(q).test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{code:k.invalid_string,validation:"time",message:q.message}),Q.dirty()}else if(q.kind==="duration"){if(!Qf.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"duration",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="ip"){if(!Of(Y.data,q.version))X=this._getOrReturnCtx(Y,X),m(X,{validation:"ip",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="jwt"){if(!Df(Y.data,q.alg))X=this._getOrReturnCtx(Y,X),m(X,{validation:"jwt",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="cidr"){if(!Uf(Y.data,q.version))X=this._getOrReturnCtx(Y,X),m(X,{validation:"cidr",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="base64"){if(!Kf.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"base64",code:k.invalid_string,message:q.message}),Q.dirty()}else if(q.kind==="base64url"){if(!zf.test(Y.data))X=this._getOrReturnCtx(Y,X),m(X,{validation:"base64url",code:k.invalid_string,message:q.message}),Q.dirty()}else D0.assertNever(q);return{status:Q.value,value:Y.data}}_regex(Y,J,Q){return this.refinement((X)=>Y.test(X),{validation:J,code:k.invalid_string,...i.errToObj(Q)})}_addCheck(Y){return new jY({...this._def,checks:[...this._def.checks,Y]})}email(Y){return this._addCheck({kind:"email",...i.errToObj(Y)})}url(Y){return this._addCheck({kind:"url",...i.errToObj(Y)})}emoji(Y){return this._addCheck({kind:"emoji",...i.errToObj(Y)})}uuid(Y){return this._addCheck({kind:"uuid",...i.errToObj(Y)})}nanoid(Y){return this._addCheck({kind:"nanoid",...i.errToObj(Y)})}cuid(Y){return this._addCheck({kind:"cuid",...i.errToObj(Y)})}cuid2(Y){return this._addCheck({kind:"cuid2",...i.errToObj(Y)})}ulid(Y){return this._addCheck({kind:"ulid",...i.errToObj(Y)})}base64(Y){return this._addCheck({kind:"base64",...i.errToObj(Y)})}base64url(Y){return this._addCheck({kind:"base64url",...i.errToObj(Y)})}jwt(Y){return this._addCheck({kind:"jwt",...i.errToObj(Y)})}ip(Y){return this._addCheck({kind:"ip",...i.errToObj(Y)})}cidr(Y){return this._addCheck({kind:"cidr",...i.errToObj(Y)})}datetime(Y){if(typeof Y==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:Y});return this._addCheck({kind:"datetime",precision:typeof Y?.precision>"u"?null:Y?.precision,offset:Y?.offset??!1,local:Y?.local??!1,...i.errToObj(Y?.message)})}date(Y){return this._addCheck({kind:"date",message:Y})}time(Y){if(typeof Y==="string")return this._addCheck({kind:"time",precision:null,message:Y});return this._addCheck({kind:"time",precision:typeof Y?.precision>"u"?null:Y?.precision,...i.errToObj(Y?.message)})}duration(Y){return this._addCheck({kind:"duration",...i.errToObj(Y)})}regex(Y,J){return this._addCheck({kind:"regex",regex:Y,...i.errToObj(J)})}includes(Y,J){return this._addCheck({kind:"includes",value:Y,position:J?.position,...i.errToObj(J?.message)})}startsWith(Y,J){return this._addCheck({kind:"startsWith",value:Y,...i.errToObj(J)})}endsWith(Y,J){return this._addCheck({kind:"endsWith",value:Y,...i.errToObj(J)})}min(Y,J){return this._addCheck({kind:"min",value:Y,...i.errToObj(J)})}max(Y,J){return this._addCheck({kind:"max",value:Y,...i.errToObj(J)})}length(Y,J){return this._addCheck({kind:"length",value:Y,...i.errToObj(J)})}nonempty(Y){return this.min(1,i.errToObj(Y))}trim(){return new jY({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new jY({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new jY({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((Y)=>Y.kind==="datetime")}get isDate(){return!!this._def.checks.find((Y)=>Y.kind==="date")}get isTime(){return!!this._def.checks.find((Y)=>Y.kind==="time")}get isDuration(){return!!this._def.checks.find((Y)=>Y.kind==="duration")}get isEmail(){return!!this._def.checks.find((Y)=>Y.kind==="email")}get isURL(){return!!this._def.checks.find((Y)=>Y.kind==="url")}get isEmoji(){return!!this._def.checks.find((Y)=>Y.kind==="emoji")}get isUUID(){return!!this._def.checks.find((Y)=>Y.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((Y)=>Y.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((Y)=>Y.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((Y)=>Y.kind==="cuid2")}get isULID(){return!!this._def.checks.find((Y)=>Y.kind==="ulid")}get isIP(){return!!this._def.checks.find((Y)=>Y.kind==="ip")}get isCIDR(){return!!this._def.checks.find((Y)=>Y.kind==="cidr")}get isBase64(){return!!this._def.checks.find((Y)=>Y.kind==="base64")}get isBase64url(){return!!this._def.checks.find((Y)=>Y.kind==="base64url")}get minLength(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y}get maxLength(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y}}jY.create=(Y)=>{return new jY({checks:[],typeName:q0.ZodString,coerce:Y?.coerce??!1,...W0(Y)})};function Hf(Y,J){let Q=(Y.toString().split(".")[1]||"").length,X=(J.toString().split(".")[1]||"").length,q=Q>X?Q:X,G=Number.parseInt(Y.toFixed(q).replace(".","")),$=Number.parseInt(J.toFixed(q).replace(".",""));return G%$/10**q}class gJ extends N0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(Y){if(this._def.coerce)Y.data=Number(Y.data);if(this._getType(Y)!==g.number){let q=this._getOrReturnCtx(Y);return m(q,{code:k.invalid_type,expected:g.number,received:q.parsedType}),J0}let Q=void 0,X=new G8;for(let q of this._def.checks)if(q.kind==="int"){if(!D0.isInteger(Y.data))Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.invalid_type,expected:"integer",received:"float",message:q.message}),X.dirty()}else if(q.kind==="min"){if(q.inclusive?Y.data<q.value:Y.data<=q.value)Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.too_small,minimum:q.value,type:"number",inclusive:q.inclusive,exact:!1,message:q.message}),X.dirty()}else if(q.kind==="max"){if(q.inclusive?Y.data>q.value:Y.data>=q.value)Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.too_big,maximum:q.value,type:"number",inclusive:q.inclusive,exact:!1,message:q.message}),X.dirty()}else if(q.kind==="multipleOf"){if(Hf(Y.data,q.value)!==0)Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.not_multiple_of,multipleOf:q.value,message:q.message}),X.dirty()}else if(q.kind==="finite"){if(!Number.isFinite(Y.data))Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.not_finite,message:q.message}),X.dirty()}else D0.assertNever(q);return{status:X.value,value:Y.data}}gte(Y,J){return this.setLimit("min",Y,!0,i.toString(J))}gt(Y,J){return this.setLimit("min",Y,!1,i.toString(J))}lte(Y,J){return this.setLimit("max",Y,!0,i.toString(J))}lt(Y,J){return this.setLimit("max",Y,!1,i.toString(J))}setLimit(Y,J,Q,X){return new gJ({...this._def,checks:[...this._def.checks,{kind:Y,value:J,inclusive:Q,message:i.toString(X)}]})}_addCheck(Y){return new gJ({...this._def,checks:[...this._def.checks,Y]})}int(Y){return this._addCheck({kind:"int",message:i.toString(Y)})}positive(Y){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(Y)})}negative(Y){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(Y)})}nonpositive(Y){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(Y)})}nonnegative(Y){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(Y)})}multipleOf(Y,J){return this._addCheck({kind:"multipleOf",value:Y,message:i.toString(J)})}finite(Y){return this._addCheck({kind:"finite",message:i.toString(Y)})}safe(Y){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(Y)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.toString(Y)})}get minValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y}get maxValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y}get isInt(){return!!this._def.checks.find((Y)=>Y.kind==="int"||Y.kind==="multipleOf"&&D0.isInteger(Y.value))}get isFinite(){let Y=null,J=null;for(let Q of this._def.checks)if(Q.kind==="finite"||Q.kind==="int"||Q.kind==="multipleOf")return!0;else if(Q.kind==="min"){if(J===null||Q.value>J)J=Q.value}else if(Q.kind==="max"){if(Y===null||Q.value<Y)Y=Q.value}return Number.isFinite(J)&&Number.isFinite(Y)}}gJ.create=(Y)=>{return new gJ({checks:[],typeName:q0.ZodNumber,coerce:Y?.coerce||!1,...W0(Y)})};class fJ extends N0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(Y){if(this._def.coerce)try{Y.data=BigInt(Y.data)}catch{return this._getInvalidInput(Y)}if(this._getType(Y)!==g.bigint)return this._getInvalidInput(Y);let Q=void 0,X=new G8;for(let q of this._def.checks)if(q.kind==="min"){if(q.inclusive?Y.data<q.value:Y.data<=q.value)Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.too_small,type:"bigint",minimum:q.value,inclusive:q.inclusive,message:q.message}),X.dirty()}else if(q.kind==="max"){if(q.inclusive?Y.data>q.value:Y.data>=q.value)Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.too_big,type:"bigint",maximum:q.value,inclusive:q.inclusive,message:q.message}),X.dirty()}else if(q.kind==="multipleOf"){if(Y.data%q.value!==BigInt(0))Q=this._getOrReturnCtx(Y,Q),m(Q,{code:k.not_multiple_of,multipleOf:q.value,message:q.message}),X.dirty()}else D0.assertNever(q);return{status:X.value,value:Y.data}}_getInvalidInput(Y){let J=this._getOrReturnCtx(Y);return m(J,{code:k.invalid_type,expected:g.bigint,received:J.parsedType}),J0}gte(Y,J){return this.setLimit("min",Y,!0,i.toString(J))}gt(Y,J){return this.setLimit("min",Y,!1,i.toString(J))}lte(Y,J){return this.setLimit("max",Y,!0,i.toString(J))}lt(Y,J){return this.setLimit("max",Y,!1,i.toString(J))}setLimit(Y,J,Q,X){return new fJ({...this._def,checks:[...this._def.checks,{kind:Y,value:J,inclusive:Q,message:i.toString(X)}]})}_addCheck(Y){return new fJ({...this._def,checks:[...this._def.checks,Y]})}positive(Y){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(Y)})}negative(Y){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(Y)})}nonpositive(Y){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(Y)})}nonnegative(Y){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(Y)})}multipleOf(Y,J){return this._addCheck({kind:"multipleOf",value:Y,message:i.toString(J)})}get minValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y}get maxValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y}}fJ.create=(Y)=>{return new fJ({checks:[],typeName:q0.ZodBigInt,coerce:Y?.coerce??!1,...W0(Y)})};class Tq extends N0{_parse(Y){if(this._def.coerce)Y.data=Boolean(Y.data);if(this._getType(Y)!==g.boolean){let Q=this._getOrReturnCtx(Y);return m(Q,{code:k.invalid_type,expected:g.boolean,received:Q.parsedType}),J0}return N8(Y.data)}}Tq.create=(Y)=>{return new Tq({typeName:q0.ZodBoolean,coerce:Y?.coerce||!1,...W0(Y)})};class SQ extends N0{_parse(Y){if(this._def.coerce)Y.data=new Date(Y.data);if(this._getType(Y)!==g.date){let q=this._getOrReturnCtx(Y);return m(q,{code:k.invalid_type,expected:g.date,received:q.parsedType}),J0}if(Number.isNaN(Y.data.getTime())){let q=this._getOrReturnCtx(Y);return m(q,{code:k.invalid_date}),J0}let Q=new G8,X=void 0;for(let q of this._def.checks)if(q.kind==="min"){if(Y.data.getTime()<q.value)X=this._getOrReturnCtx(Y,X),m(X,{code:k.too_small,message:q.message,inclusive:!0,exact:!1,minimum:q.value,type:"date"}),Q.dirty()}else if(q.kind==="max"){if(Y.data.getTime()>q.value)X=this._getOrReturnCtx(Y,X),m(X,{code:k.too_big,message:q.message,inclusive:!0,exact:!1,maximum:q.value,type:"date"}),Q.dirty()}else D0.assertNever(q);return{status:Q.value,value:new Date(Y.data.getTime())}}_addCheck(Y){return new SQ({...this._def,checks:[...this._def.checks,Y]})}min(Y,J){return this._addCheck({kind:"min",value:Y.getTime(),message:i.toString(J)})}max(Y,J){return this._addCheck({kind:"max",value:Y.getTime(),message:i.toString(J)})}get minDate(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y!=null?new Date(Y):null}get maxDate(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y!=null?new Date(Y):null}}SQ.create=(Y)=>{return new SQ({checks:[],coerce:Y?.coerce||!1,typeName:q0.ZodDate,...W0(Y)})};class PG extends N0{_parse(Y){if(this._getType(Y)!==g.symbol){let Q=this._getOrReturnCtx(Y);return m(Q,{code:k.invalid_type,expected:g.symbol,received:Q.parsedType}),J0}return N8(Y.data)}}PG.create=(Y)=>{return new PG({typeName:q0.ZodSymbol,...W0(Y)})};class Zq extends N0{_parse(Y){if(this._getType(Y)!==g.undefined){let Q=this._getOrReturnCtx(Y);return m(Q,{code:k.invalid_type,expected:g.undefined,received:Q.parsedType}),J0}return N8(Y.data)}}Zq.create=(Y)=>{return new Zq({typeName:q0.ZodUndefined,...W0(Y)})};class xq extends N0{_parse(Y){if(this._getType(Y)!==g.null){let Q=this._getOrReturnCtx(Y);return m(Q,{code:k.invalid_type,expected:g.null,received:Q.parsedType}),J0}return N8(Y.data)}}xq.create=(Y)=>{return new xq({typeName:q0.ZodNull,...W0(Y)})};class vQ extends N0{constructor(){super(...arguments);this._any=!0}_parse(Y){return N8(Y.data)}}vQ.create=(Y)=>{return new vQ({typeName:q0.ZodAny,...W0(Y)})};class xJ extends N0{constructor(){super(...arguments);this._unknown=!0}_parse(Y){return N8(Y.data)}}xJ.create=(Y)=>{return new xJ({typeName:q0.ZodUnknown,...W0(Y)})};class kY extends N0{_parse(Y){let J=this._getOrReturnCtx(Y);return m(J,{code:k.invalid_type,expected:g.never,received:J.parsedType}),J0}}kY.create=(Y)=>{return new kY({typeName:q0.ZodNever,...W0(Y)})};class TG extends N0{_parse(Y){if(this._getType(Y)!==g.undefined){let Q=this._getOrReturnCtx(Y);return m(Q,{code:k.invalid_type,expected:g.void,received:Q.parsedType}),J0}return N8(Y.data)}}TG.create=(Y)=>{return new TG({typeName:q0.ZodVoid,...W0(Y)})};class KY extends N0{_parse(Y){let{ctx:J,status:Q}=this._processInputParams(Y),X=this._def;if(J.parsedType!==g.array)return m(J,{code:k.invalid_type,expected:g.array,received:J.parsedType}),J0;if(X.exactLength!==null){let G=J.data.length>X.exactLength.value,$=J.data.length<X.exactLength.value;if(G||$)m(J,{code:G?k.too_big:k.too_small,minimum:$?X.exactLength.value:void 0,maximum:G?X.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:X.exactLength.message}),Q.dirty()}if(X.minLength!==null){if(J.data.length<X.minLength.value)m(J,{code:k.too_small,minimum:X.minLength.value,type:"array",inclusive:!0,exact:!1,message:X.minLength.message}),Q.dirty()}if(X.maxLength!==null){if(J.data.length>X.maxLength.value)m(J,{code:k.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),Q.dirty()}if(J.common.async)return Promise.all([...J.data].map((G,$)=>{return X.type._parseAsync(new MY(J,G,J.path,$))})).then((G)=>{return G8.mergeArray(Q,G)});let q=[...J.data].map((G,$)=>{return X.type._parseSync(new MY(J,G,J.path,$))});return G8.mergeArray(Q,q)}get element(){return this._def.type}min(Y,J){return new KY({...this._def,minLength:{value:Y,message:i.toString(J)}})}max(Y,J){return new KY({...this._def,maxLength:{value:Y,message:i.toString(J)}})}length(Y,J){return new KY({...this._def,exactLength:{value:Y,message:i.toString(J)}})}nonempty(Y){return this.min(1,Y)}}KY.create=(Y,J)=>{return new KY({type:Y,minLength:null,maxLength:null,exactLength:null,typeName:q0.ZodArray,...W0(J)})};function Fq(Y){if(Y instanceof m0){let J={};for(let Q in Y.shape){let X=Y.shape[Q];J[Q]=zY.create(Fq(X))}return new m0({...Y._def,shape:()=>J})}else if(Y instanceof KY)return new KY({...Y._def,type:Fq(Y.element)});else if(Y instanceof zY)return zY.create(Fq(Y.unwrap()));else if(Y instanceof zJ)return zJ.create(Fq(Y.unwrap()));else if(Y instanceof FY)return FY.create(Y.items.map((J)=>Fq(J)));else return Y}class m0 extends N0{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let Y=this._def.shape(),J=D0.objectKeys(Y);return this._cached={shape:Y,keys:J},this._cached}_parse(Y){if(this._getType(Y)!==g.object){let j=this._getOrReturnCtx(Y);return m(j,{code:k.invalid_type,expected:g.object,received:j.parsedType}),J0}let{status:Q,ctx:X}=this._processInputParams(Y),{shape:q,keys:G}=this._getCached(),$=[];if(!(this._def.catchall instanceof kY&&this._def.unknownKeys==="strip")){for(let j in X.data)if(!G.includes(j))$.push(j)}let W=[];for(let j of G){let K=q[j],z=X.data[j];W.push({key:{status:"valid",value:j},value:K._parse(new MY(X,z,X.path,j)),alwaysSet:j in X.data})}if(this._def.catchall instanceof kY){let j=this._def.unknownKeys;if(j==="passthrough")for(let K of $)W.push({key:{status:"valid",value:K},value:{status:"valid",value:X.data[K]}});else if(j==="strict"){if($.length>0)m(X,{code:k.unrecognized_keys,keys:$}),Q.dirty()}else if(j==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let j=this._def.catchall;for(let K of $){let z=X.data[K];W.push({key:{status:"valid",value:K},value:j._parse(new MY(X,z,X.path,K)),alwaysSet:K in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let j=[];for(let K of W){let z=await K.key,M=await K.value;j.push({key:z,value:M,alwaysSet:K.alwaysSet})}return j}).then((j)=>{return G8.mergeObjectSync(Q,j)});else return G8.mergeObjectSync(Q,W)}get shape(){return this._def.shape()}strict(Y){return i.errToObj,new m0({...this._def,unknownKeys:"strict",...Y!==void 0?{errorMap:(J,Q)=>{let X=this._def.errorMap?.(J,Q).message??Q.defaultError;if(J.code==="unrecognized_keys")return{message:i.errToObj(Y).message??X};return{message:X}}}:{}})}strip(){return new m0({...this._def,unknownKeys:"strip"})}passthrough(){return new m0({...this._def,unknownKeys:"passthrough"})}extend(Y){return new m0({...this._def,shape:()=>({...this._def.shape(),...Y})})}merge(Y){return new m0({unknownKeys:Y._def.unknownKeys,catchall:Y._def.catchall,shape:()=>({...this._def.shape(),...Y._def.shape()}),typeName:q0.ZodObject})}setKey(Y,J){return this.augment({[Y]:J})}catchall(Y){return new m0({...this._def,catchall:Y})}pick(Y){let J={};for(let Q of D0.objectKeys(Y))if(Y[Q]&&this.shape[Q])J[Q]=this.shape[Q];return new m0({...this._def,shape:()=>J})}omit(Y){let J={};for(let Q of D0.objectKeys(this.shape))if(!Y[Q])J[Q]=this.shape[Q];return new m0({...this._def,shape:()=>J})}deepPartial(){return Fq(this)}partial(Y){let J={};for(let Q of D0.objectKeys(this.shape)){let X=this.shape[Q];if(Y&&!Y[Q])J[Q]=X;else J[Q]=X.optional()}return new m0({...this._def,shape:()=>J})}required(Y){let J={};for(let Q of D0.objectKeys(this.shape))if(Y&&!Y[Q])J[Q]=this.shape[Q];else{let q=this.shape[Q];while(q instanceof zY)q=q._def.innerType;J[Q]=q}return new m0({...this._def,shape:()=>J})}keyof(){return MA(D0.objectKeys(this.shape))}}m0.create=(Y,J)=>{return new m0({shape:()=>Y,unknownKeys:"strip",catchall:kY.create(),typeName:q0.ZodObject,...W0(J)})};m0.strictCreate=(Y,J)=>{return new m0({shape:()=>Y,unknownKeys:"strict",catchall:kY.create(),typeName:q0.ZodObject,...W0(J)})};m0.lazycreate=(Y,J)=>{return new m0({shape:Y,unknownKeys:"strip",catchall:kY.create(),typeName:q0.ZodObject,...W0(J)})};class gq extends N0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q=this._def.options;function X(q){for(let $ of q)if($.result.status==="valid")return $.result;for(let $ of q)if($.result.status==="dirty")return J.common.issues.push(...$.ctx.common.issues),$.result;let G=q.map(($)=>new _8($.ctx.common.issues));return m(J,{code:k.invalid_union,unionErrors:G}),J0}if(J.common.async)return Promise.all(Q.map(async(q)=>{let G={...J,common:{...J.common,issues:[]},parent:null};return{result:await q._parseAsync({data:J.data,path:J.path,parent:G}),ctx:G}})).then(X);else{let q=void 0,G=[];for(let W of Q){let j={...J,common:{...J.common,issues:[]},parent:null},K=W._parseSync({data:J.data,path:J.path,parent:j});if(K.status==="valid")return K;else if(K.status==="dirty"&&!q)q={result:K,ctx:j};if(j.common.issues.length)G.push(j.common.issues)}if(q)return J.common.issues.push(...q.ctx.common.issues),q.result;let $=G.map((W)=>new _8(W));return m(J,{code:k.invalid_union,unionErrors:$}),J0}}get options(){return this._def.options}}gq.create=(Y,J)=>{return new gq({options:Y,typeName:q0.ZodUnion,...W0(J)})};var KJ=(Y)=>{if(Y instanceof hq)return KJ(Y.schema);else if(Y instanceof NY)return KJ(Y.innerType());else if(Y instanceof mq)return[Y.value];else if(Y instanceof hJ)return Y.options;else if(Y instanceof yq)return D0.objectValues(Y.enum);else if(Y instanceof lq)return KJ(Y._def.innerType);else if(Y instanceof Zq)return[void 0];else if(Y instanceof xq)return[null];else if(Y instanceof zY)return[void 0,...KJ(Y.unwrap())];else if(Y instanceof zJ)return[null,...KJ(Y.unwrap())];else if(Y instanceof AW)return KJ(Y.unwrap());else if(Y instanceof cq)return KJ(Y.unwrap());else if(Y instanceof uq)return KJ(Y._def.innerType);else return[]};class wW extends N0{_parse(Y){let{ctx:J}=this._processInputParams(Y);if(J.parsedType!==g.object)return m(J,{code:k.invalid_type,expected:g.object,received:J.parsedType}),J0;let Q=this.discriminator,X=J.data[Q],q=this.optionsMap.get(X);if(!q)return m(J,{code:k.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Q]}),J0;if(J.common.async)return q._parseAsync({data:J.data,path:J.path,parent:J});else return q._parseSync({data:J.data,path:J.path,parent:J})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(Y,J,Q){let X=new Map;for(let q of J){let G=KJ(q.shape[Y]);if(!G.length)throw Error(`A discriminator value for key \`${Y}\` could not be extracted from all schema options`);for(let $ of G){if(X.has($))throw Error(`Discriminator property ${String(Y)} has duplicate value ${String($)}`);X.set($,q)}}return new wW({typeName:q0.ZodDiscriminatedUnion,discriminator:Y,options:J,optionsMap:X,...W0(Q)})}}function oM(Y,J){let Q=_Y(Y),X=_Y(J);if(Y===J)return{valid:!0,data:Y};else if(Q===g.object&&X===g.object){let q=D0.objectKeys(J),G=D0.objectKeys(Y).filter((W)=>q.indexOf(W)!==-1),$={...Y,...J};for(let W of G){let j=oM(Y[W],J[W]);if(!j.valid)return{valid:!1};$[W]=j.data}return{valid:!0,data:$}}else if(Q===g.array&&X===g.array){if(Y.length!==J.length)return{valid:!1};let q=[];for(let G=0;G<Y.length;G++){let $=Y[G],W=J[G],j=oM($,W);if(!j.valid)return{valid:!1};q.push(j.data)}return{valid:!0,data:q}}else if(Q===g.date&&X===g.date&&+Y===+J)return{valid:!0,data:Y};else return{valid:!1}}class fq extends N0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y),X=(q,G)=>{if(LW(q)||LW(G))return J0;let $=oM(q.value,G.value);if(!$.valid)return m(Q,{code:k.invalid_intersection_types}),J0;if(EW(q)||EW(G))J.dirty();return{status:J.value,value:$.data}};if(Q.common.async)return Promise.all([this._def.left._parseAsync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseAsync({data:Q.data,path:Q.path,parent:Q})]).then(([q,G])=>X(q,G));else return X(this._def.left._parseSync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseSync({data:Q.data,path:Q.path,parent:Q}))}}fq.create=(Y,J,Q)=>{return new fq({left:Y,right:J,typeName:q0.ZodIntersection,...W0(Q)})};class FY extends N0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==g.array)return m(Q,{code:k.invalid_type,expected:g.array,received:Q.parsedType}),J0;if(Q.data.length<this._def.items.length)return m(Q,{code:k.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J0;if(!this._def.rest&&Q.data.length>this._def.items.length)m(Q,{code:k.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J.dirty();let q=[...Q.data].map((G,$)=>{let W=this._def.items[$]||this._def.rest;if(!W)return null;return W._parse(new MY(Q,G,Q.path,$))}).filter((G)=>!!G);if(Q.common.async)return Promise.all(q).then((G)=>{return G8.mergeArray(J,G)});else return G8.mergeArray(J,q)}get items(){return this._def.items}rest(Y){return new FY({...this._def,rest:Y})}}FY.create=(Y,J)=>{if(!Array.isArray(Y))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new FY({items:Y,typeName:q0.ZodTuple,rest:null,...W0(J)})};class ZG extends N0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==g.object)return m(Q,{code:k.invalid_type,expected:g.object,received:Q.parsedType}),J0;let X=[],q=this._def.keyType,G=this._def.valueType;for(let $ in Q.data)X.push({key:q._parse(new MY(Q,$,Q.path,$)),value:G._parse(new MY(Q,Q.data[$],Q.path,$)),alwaysSet:$ in Q.data});if(Q.common.async)return G8.mergeObjectAsync(J,X);else return G8.mergeObjectSync(J,X)}get element(){return this._def.valueType}static create(Y,J,Q){if(J instanceof N0)return new ZG({keyType:Y,valueType:J,typeName:q0.ZodRecord,...W0(Q)});return new ZG({keyType:jY.create(),valueType:Y,typeName:q0.ZodRecord,...W0(J)})}}class xG extends N0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==g.map)return m(Q,{code:k.invalid_type,expected:g.map,received:Q.parsedType}),J0;let X=this._def.keyType,q=this._def.valueType,G=[...Q.data.entries()].map(([$,W],j)=>{return{key:X._parse(new MY(Q,$,Q.path,[j,"key"])),value:q._parse(new MY(Q,W,Q.path,[j,"value"]))}});if(Q.common.async){let $=new Map;return Promise.resolve().then(async()=>{for(let W of G){let j=await W.key,K=await W.value;if(j.status==="aborted"||K.status==="aborted")return J0;if(j.status==="dirty"||K.status==="dirty")J.dirty();$.set(j.value,K.value)}return{status:J.value,value:$}})}else{let $=new Map;for(let W of G){let{key:j,value:K}=W;if(j.status==="aborted"||K.status==="aborted")return J0;if(j.status==="dirty"||K.status==="dirty")J.dirty();$.set(j.value,K.value)}return{status:J.value,value:$}}}}xG.create=(Y,J,Q)=>{return new xG({valueType:J,keyType:Y,typeName:q0.ZodMap,...W0(Q)})};class _Q extends N0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==g.set)return m(Q,{code:k.invalid_type,expected:g.set,received:Q.parsedType}),J0;let X=this._def;if(X.minSize!==null){if(Q.data.size<X.minSize.value)m(Q,{code:k.too_small,minimum:X.minSize.value,type:"set",inclusive:!0,exact:!1,message:X.minSize.message}),J.dirty()}if(X.maxSize!==null){if(Q.data.size>X.maxSize.value)m(Q,{code:k.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),J.dirty()}let q=this._def.valueType;function G(W){let j=new Set;for(let K of W){if(K.status==="aborted")return J0;if(K.status==="dirty")J.dirty();j.add(K.value)}return{status:J.value,value:j}}let $=[...Q.data.values()].map((W,j)=>q._parse(new MY(Q,W,Q.path,j)));if(Q.common.async)return Promise.all($).then((W)=>G(W));else return G($)}min(Y,J){return new _Q({...this._def,minSize:{value:Y,message:i.toString(J)}})}max(Y,J){return new _Q({...this._def,maxSize:{value:Y,message:i.toString(J)}})}size(Y,J){return this.min(Y,J).max(Y,J)}nonempty(Y){return this.min(1,Y)}}_Q.create=(Y,J)=>{return new _Q({valueType:Y,minSize:null,maxSize:null,typeName:q0.ZodSet,...W0(J)})};class Pq extends N0{constructor(){super(...arguments);this.validate=this.implement}_parse(Y){let{ctx:J}=this._processInputParams(Y);if(J.parsedType!==g.function)return m(J,{code:k.invalid_type,expected:g.function,received:J.parsedType}),J0;function Q($,W){return FG({data:$,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,_q(),jJ].filter((j)=>!!j),issueData:{code:k.invalid_arguments,argumentsError:W}})}function X($,W){return FG({data:$,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,_q(),jJ].filter((j)=>!!j),issueData:{code:k.invalid_return_type,returnTypeError:W}})}let q={errorMap:J.common.contextualErrorMap},G=J.data;if(this._def.returns instanceof kQ){let $=this;return N8(async function(...W){let j=new _8([]),K=await $._def.args.parseAsync(W,q).catch((N)=>{throw j.addIssue(Q(W,N)),j}),z=await Reflect.apply(G,this,K);return await $._def.returns._def.type.parseAsync(z,q).catch((N)=>{throw j.addIssue(X(z,N)),j})})}else{let $=this;return N8(function(...W){let j=$._def.args.safeParse(W,q);if(!j.success)throw new _8([Q(W,j.error)]);let K=Reflect.apply(G,this,j.data),z=$._def.returns.safeParse(K,q);if(!z.success)throw new _8([X(K,z.error)]);return z.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...Y){return new Pq({...this._def,args:FY.create(Y).rest(xJ.create())})}returns(Y){return new Pq({...this._def,returns:Y})}implement(Y){return this.parse(Y)}strictImplement(Y){return this.parse(Y)}static create(Y,J,Q){return new Pq({args:Y?Y:FY.create([]).rest(xJ.create()),returns:J||xJ.create(),typeName:q0.ZodFunction,...W0(Q)})}}class hq extends N0{get schema(){return this._def.getter()}_parse(Y){let{ctx:J}=this._processInputParams(Y);return this._def.getter()._parse({data:J.data,path:J.path,parent:J})}}hq.create=(Y,J)=>{return new hq({getter:Y,typeName:q0.ZodLazy,...W0(J)})};class mq extends N0{_parse(Y){if(Y.data!==this._def.value){let J=this._getOrReturnCtx(Y);return m(J,{received:J.data,code:k.invalid_literal,expected:this._def.value}),J0}return{status:"valid",value:Y.data}}get value(){return this._def.value}}mq.create=(Y,J)=>{return new mq({value:Y,typeName:q0.ZodLiteral,...W0(J)})};function MA(Y,J){return new hJ({values:Y,typeName:q0.ZodEnum,...W0(J)})}class hJ extends N0{_parse(Y){if(typeof Y.data!=="string"){let J=this._getOrReturnCtx(Y),Q=this._def.values;return m(J,{expected:D0.joinValues(Q),received:J.parsedType,code:k.invalid_type}),J0}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(Y.data)){let J=this._getOrReturnCtx(Y),Q=this._def.values;return m(J,{received:J.data,code:k.invalid_enum_value,options:Q}),J0}return N8(Y.data)}get options(){return this._def.values}get enum(){let Y={};for(let J of this._def.values)Y[J]=J;return Y}get Values(){let Y={};for(let J of this._def.values)Y[J]=J;return Y}get Enum(){let Y={};for(let J of this._def.values)Y[J]=J;return Y}extract(Y,J=this._def){return hJ.create(Y,{...this._def,...J})}exclude(Y,J=this._def){return hJ.create(this.options.filter((Q)=>!Y.includes(Q)),{...this._def,...J})}}hJ.create=MA;class yq extends N0{_parse(Y){let J=D0.getValidEnumValues(this._def.values),Q=this._getOrReturnCtx(Y);if(Q.parsedType!==g.string&&Q.parsedType!==g.number){let X=D0.objectValues(J);return m(Q,{expected:D0.joinValues(X),received:Q.parsedType,code:k.invalid_type}),J0}if(!this._cache)this._cache=new Set(D0.getValidEnumValues(this._def.values));if(!this._cache.has(Y.data)){let X=D0.objectValues(J);return m(Q,{received:Q.data,code:k.invalid_enum_value,options:X}),J0}return N8(Y.data)}get enum(){return this._def.values}}yq.create=(Y,J)=>{return new yq({values:Y,typeName:q0.ZodNativeEnum,...W0(J)})};class kQ extends N0{unwrap(){return this._def.type}_parse(Y){let{ctx:J}=this._processInputParams(Y);if(J.parsedType!==g.promise&&J.common.async===!1)return m(J,{code:k.invalid_type,expected:g.promise,received:J.parsedType}),J0;let Q=J.parsedType===g.promise?J.data:Promise.resolve(J.data);return N8(Q.then((X)=>{return this._def.type.parseAsync(X,{path:J.path,errorMap:J.common.contextualErrorMap})}))}}kQ.create=(Y,J)=>{return new kQ({type:Y,typeName:q0.ZodPromise,...W0(J)})};class NY extends N0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===q0.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y),X=this._def.effect||null,q={addIssue:(G)=>{if(m(Q,G),G.fatal)J.abort();else J.dirty()},get path(){return Q.path}};if(q.addIssue=q.addIssue.bind(q),X.type==="preprocess"){let G=X.transform(Q.data,q);if(Q.common.async)return Promise.resolve(G).then(async($)=>{if(J.value==="aborted")return J0;let W=await this._def.schema._parseAsync({data:$,path:Q.path,parent:Q});if(W.status==="aborted")return J0;if(W.status==="dirty")return IQ(W.value);if(J.value==="dirty")return IQ(W.value);return W});else{if(J.value==="aborted")return J0;let $=this._def.schema._parseSync({data:G,path:Q.path,parent:Q});if($.status==="aborted")return J0;if($.status==="dirty")return IQ($.value);if(J.value==="dirty")return IQ($.value);return $}}if(X.type==="refinement"){let G=($)=>{let W=X.refinement($,q);if(Q.common.async)return Promise.resolve(W);if(W instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return $};if(Q.common.async===!1){let $=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if($.status==="aborted")return J0;if($.status==="dirty")J.dirty();return G($.value),{status:J.value,value:$.value}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then(($)=>{if($.status==="aborted")return J0;if($.status==="dirty")J.dirty();return G($.value).then(()=>{return{status:J.value,value:$.value}})})}if(X.type==="transform")if(Q.common.async===!1){let G=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(!ZJ(G))return J0;let $=X.transform(G.value,q);if($ instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:J.value,value:$}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((G)=>{if(!ZJ(G))return J0;return Promise.resolve(X.transform(G.value,q)).then(($)=>({status:J.value,value:$}))});D0.assertNever(X)}}NY.create=(Y,J,Q)=>{return new NY({schema:Y,typeName:q0.ZodEffects,effect:J,...W0(Q)})};NY.createWithPreprocess=(Y,J,Q)=>{return new NY({schema:J,effect:{type:"preprocess",transform:Y},typeName:q0.ZodEffects,...W0(Q)})};class zY extends N0{_parse(Y){if(this._getType(Y)===g.undefined)return N8(void 0);return this._def.innerType._parse(Y)}unwrap(){return this._def.innerType}}zY.create=(Y,J)=>{return new zY({innerType:Y,typeName:q0.ZodOptional,...W0(J)})};class zJ extends N0{_parse(Y){if(this._getType(Y)===g.null)return N8(null);return this._def.innerType._parse(Y)}unwrap(){return this._def.innerType}}zJ.create=(Y,J)=>{return new zJ({innerType:Y,typeName:q0.ZodNullable,...W0(J)})};class lq extends N0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q=J.data;if(J.parsedType===g.undefined)Q=this._def.defaultValue();return this._def.innerType._parse({data:Q,path:J.path,parent:J})}removeDefault(){return this._def.innerType}}lq.create=(Y,J)=>{return new lq({innerType:Y,typeName:q0.ZodDefault,defaultValue:typeof J.default==="function"?J.default:()=>J.default,...W0(J)})};class uq extends N0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q={...J,common:{...J.common,issues:[]}},X=this._def.innerType._parse({data:Q.data,path:Q.path,parent:{...Q}});if(kq(X))return X.then((q)=>{return{status:"valid",value:q.status==="valid"?q.value:this._def.catchValue({get error(){return new _8(Q.common.issues)},input:Q.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new _8(Q.common.issues)},input:Q.data})}}removeCatch(){return this._def.innerType}}uq.create=(Y,J)=>{return new uq({innerType:Y,typeName:q0.ZodCatch,catchValue:typeof J.catch==="function"?J.catch:()=>J.catch,...W0(J)})};class gG extends N0{_parse(Y){if(this._getType(Y)!==g.nan){let Q=this._getOrReturnCtx(Y);return m(Q,{code:k.invalid_type,expected:g.nan,received:Q.parsedType}),J0}return{status:"valid",value:Y.data}}}gG.create=(Y)=>{return new gG({typeName:q0.ZodNaN,...W0(Y)})};var Bf=Symbol("zod_brand");class AW extends N0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q=J.data;return this._def.type._parse({data:Q,path:J.path,parent:J})}unwrap(){return this._def.type}}class fG extends N0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.common.async)return(async()=>{let q=await this._def.in._parseAsync({data:Q.data,path:Q.path,parent:Q});if(q.status==="aborted")return J0;if(q.status==="dirty")return J.dirty(),IQ(q.value);else return this._def.out._parseAsync({data:q.value,path:Q.path,parent:Q})})();else{let X=this._def.in._parseSync({data:Q.data,path:Q.path,parent:Q});if(X.status==="aborted")return J0;if(X.status==="dirty")return J.dirty(),{status:"dirty",value:X.value};else return this._def.out._parseSync({data:X.value,path:Q.path,parent:Q})}}static create(Y,J){return new fG({in:Y,out:J,typeName:q0.ZodPipeline})}}class cq extends N0{_parse(Y){let J=this._def.innerType._parse(Y),Q=(X)=>{if(ZJ(X))X.value=Object.freeze(X.value);return X};return kq(J)?J.then((X)=>Q(X)):Q(J)}unwrap(){return this._def.innerType}}cq.create=(Y,J)=>{return new cq({innerType:Y,typeName:q0.ZodReadonly,...W0(J)})};function WA(Y,J){let Q=typeof Y==="function"?Y(J):typeof Y==="string"?{message:Y}:Y;return typeof Q==="string"?{message:Q}:Q}function NA(Y,J={},Q){if(Y)return vQ.create().superRefine((X,q)=>{let G=Y(X);if(G instanceof Promise)return G.then(($)=>{if(!$){let W=WA(J,X),j=W.fatal??Q??!0;q.addIssue({code:"custom",...W,fatal:j})}});if(!G){let $=WA(J,X),W=$.fatal??Q??!0;q.addIssue({code:"custom",...$,fatal:W})}return});return vQ.create()}var Rf={object:m0.lazycreate},q0;(function(Y){Y.ZodString="ZodString",Y.ZodNumber="ZodNumber",Y.ZodNaN="ZodNaN",Y.ZodBigInt="ZodBigInt",Y.ZodBoolean="ZodBoolean",Y.ZodDate="ZodDate",Y.ZodSymbol="ZodSymbol",Y.ZodUndefined="ZodUndefined",Y.ZodNull="ZodNull",Y.ZodAny="ZodAny",Y.ZodUnknown="ZodUnknown",Y.ZodNever="ZodNever",Y.ZodVoid="ZodVoid",Y.ZodArray="ZodArray",Y.ZodObject="ZodObject",Y.ZodUnion="ZodUnion",Y.ZodDiscriminatedUnion="ZodDiscriminatedUnion",Y.ZodIntersection="ZodIntersection",Y.ZodTuple="ZodTuple",Y.ZodRecord="ZodRecord",Y.ZodMap="ZodMap",Y.ZodSet="ZodSet",Y.ZodFunction="ZodFunction",Y.ZodLazy="ZodLazy",Y.ZodLiteral="ZodLiteral",Y.ZodEnum="ZodEnum",Y.ZodEffects="ZodEffects",Y.ZodNativeEnum="ZodNativeEnum",Y.ZodOptional="ZodOptional",Y.ZodNullable="ZodNullable",Y.ZodDefault="ZodDefault",Y.ZodCatch="ZodCatch",Y.ZodPromise="ZodPromise",Y.ZodBranded="ZodBranded",Y.ZodPipeline="ZodPipeline",Y.ZodReadonly="ZodReadonly"})(q0||(q0={}));var Vf=(Y,J={message:`Input not instance of ${Y.name}`})=>NA((Q)=>Q instanceof Y,J),OA=jY.create,DA=gJ.create,Lf=gG.create,Ef=fJ.create,UA=Tq.create,wf=SQ.create,Af=PG.create,Cf=Zq.create,If=xq.create,Sf=vQ.create,vf=xJ.create,_f=kY.create,kf=TG.create,Ff=KY.create,Pf=m0.create,Tf=m0.strictCreate,Zf=gq.create,xf=wW.create,gf=fq.create,ff=FY.create,hf=ZG.create,mf=xG.create,yf=_Q.create,lf=Pq.create,uf=hq.create,cf=mq.create,bf=hJ.create,pf=yq.create,of=kQ.create,df=NY.create,rf=zY.create,sf=zJ.create,tf=NY.createWithPreprocess,nf=fG.create,af=()=>OA().optional(),ef=()=>DA().optional(),Yh=()=>UA().optional(),Jh={string:(Y)=>jY.create({...Y,coerce:!0}),number:(Y)=>gJ.create({...Y,coerce:!0}),boolean:(Y)=>Tq.create({...Y,coerce:!0}),bigint:(Y)=>fJ.create({...Y,coerce:!0}),date:(Y)=>SQ.create({...Y,coerce:!0})};var Qh=J0;var i8=B0.string().min(1),dM=B0.record(B0.unknown()),CW=B0.record(B0.unknown()).optional().nullable(),rM=i8,HA=B0.string().min(3).refine((Y)=>Y.includes(":"),{message:"Network must be in CAIP-2 format (e.g., 'eip155:84532')"}),Dl=B0.union([rM,HA]),BA=B0.object({url:i8,description:B0.string().optional(),mimeType:B0.string().optional()}),RA=B0.object({scheme:i8,network:rM,maxAmountRequired:i8,resource:i8,description:B0.string(),mimeType:B0.string().optional(),outputSchema:dM.optional().nullable(),payTo:i8,maxTimeoutSeconds:B0.number().positive(),asset:i8,extra:CW}),qh=B0.object({x402Version:B0.literal(1),error:B0.string().optional(),accepts:B0.array(RA).min(1)}),Xh=B0.object({x402Version:B0.literal(1),scheme:i8,network:rM,payload:dM}),sM=B0.object({scheme:i8,network:HA,amount:i8,asset:i8,payTo:i8,maxTimeoutSeconds:B0.number().positive(),extra:CW}),Gh=B0.object({x402Version:B0.literal(2),error:B0.string().optional(),resource:BA,accepts:B0.array(sM).min(1),extensions:CW}),hG=B0.object({x402Version:B0.literal(2),resource:BA.optional(),accepted:sM,payload:dM,extensions:CW}),Ul=B0.union([RA,sM]),Hl=B0.discriminatedUnion("x402Version",[qh,Gh]),Bl=B0.discriminatedUnion("x402Version",[Xh,hG]);var iM=(Y)=>{let J=Buffer.from(Y,"base64").toString("utf-8"),Q=null;try{Q=hG.parse(JSON.parse(J))}catch(X){return console.error("Failed to parse payment payload"),console.error(X),null}return Q};var mG=(Y)=>{let J=JSON.stringify({offers:Y}),Q=Buffer.from(J).toString("base64"),X=new Headers;return X.set("PAYMENT-REQUIRED",Q),X.set("Access-Control-Expose-Headers","PAYMENT-REQUIRED"),X.set("Content-Type","application/json"),console.log("Payment required"),new Response("Payment Required",{headers:X,status:402})},OY=(Y)=>{let Q=JSON.stringify({success:!1,errorMessage:"Invalid Payment",errorReason:Y,transaction:"",network:":"}),X=Buffer.from(Q).toString("base64"),q=new Headers;return q.set("PAYMENT-RESPONSE",X),console.log("Payment invalid"),new Response(`Payment Invalid: ${Y}`,{status:400,headers:q})};var yG=async(Y,J)=>{Y.status(J.status),J.headers.forEach((X,q)=>{Y.setHeader(q,X)});let Q=await J.text();Y.send(Q)},$h=(Y,J)=>async(Q,X,q)=>{let G=Q.header("PAYMENT-SIGNATURE");if(!G)return yG(X,mG(J));let $=iM(G);if(!$)return yG(X,OY("Invalid payment"));let{success:W,data:j}=Dq(Oq).safeParse($.payload);if(!W)return yG(X,OY("Not an evvm payment"));if(!await Y.verifyPaySignature(j))return yG(X,OY("Invalid signature"));let K=await Y.settlePayment(j);if(!K)return yG(X,OY("Settlement failed"));let z={success:!0,payer:j.data.from,transaction:K,network:$.accepted.network},M=JSON.stringify(z),N=Buffer.from(M).toString("base64");X.setHeader("PAYMENT-RESPONSE",N),q()};var Wh=(Y)=>{let J=atob(Y),Q=null;try{Q=hG.parse(JSON.parse(J))}catch(X){return console.error("Failed to parse payment payload"),console.error(X),null}return Q},jh=(Y,J)=>async(Q)=>{let X=Q.headers.get("PAYMENT-SIGNATURE");if(!X)return mG(J);let q=Wh(X);if(!q)return OY("Invalid payment");let{success:G,data:$}=Dq(Oq).safeParse(q.payload);if(!G)return OY("Not an evvm payment");if(!await Y.verifyPaySignature($))return OY("Invalid signature");let W=await Y.settlePayment($);if(!W)return OY("Settlement failed");let j={success:!0,payer:$.data.from,transaction:W,network:q.accepted.network},K=JSON.stringify(j),z=btoa(K);Q.headers.set("PAYMENT-RESPONSE",z)};