@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 64.6 kB
JavaScript
var In=Object.defineProperty,Nn=Object.defineProperties;var Sn=Object.getOwnPropertyDescriptors;var vt=Object.getOwnPropertySymbols;var Cn=Object.prototype.hasOwnProperty,Ln=Object.prototype.propertyIsEnumerable;var Dt=(n,e,t)=>e in n?In(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ee=(n,e)=>{for(var t in e||(e={}))Cn.call(e,t)&&Dt(n,t,e[t]);if(vt)for(var t of vt(e))Ln.call(e,t)&&Dt(n,t,e[t]);return n},ce=(n,e)=>Nn(n,Sn(e));import j from"bn.js";var ie=new j(0),Pe=new j(1),Ot=new j(-1),Ve=new j(1).shln(64),Ue=new j(1).shln(128),Rn=Ve.sub(Pe),ot=64,Kt=Ue.subn(1),te=-443636,oe=-te,st=new j("4295048016"),at=new j("79226673521066979257578248091"),wi=new j("4295048017"),Ti=new j("79226673521066979257578248090"),qt=16,Gt="59543866431248",Vt="184467440737095516",Ut="15793534762490258745",En=new j(10).pow(new j(6));var xi=new j("18446744073700000000");import hi from"bn.js";var ke=9e15,be=1e9,ut="0123456789abcdef",Xe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",He="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ct={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ke,maxE:ke,crypto:!1},zt,me,w=!0,Ze="[DecimalError] ",he=Ze+"Invalid argument: ",Zt=Ze+"Precision limit exceeded",Yt=Ze+"crypto unavailable",jt="[object Decimal]",W=Math.floor,D=Math.pow,_n=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Fn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Mn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Jt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,re=1e7,b=7,vn=9007199254740991,Dn=Xe.length-1,mt=He.length-1,f={toStringTag:jt};f.absoluteValue=f.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),g(n)};f.ceil=function(){return g(new this.constructor(this),this.e+1,2)};f.clampedTo=f.clamp=function(n,e){var t,r=this,i=r.constructor;if(n=new i(n),e=new i(e),!n.s||!e.s)return new i(NaN);if(n.gt(e))throw Error(he+e);return t=r.cmp(n),t<0?n:r.cmp(e)>0?e:new i(r)};f.comparedTo=f.cmp=function(n){var e,t,r,i,o=this,s=o.d,a=(n=new o.constructor(n)).d,c=o.s,u=n.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==n.e)return o.e>n.e^c<0?1:-1;for(r=s.length,i=a.length,e=0,t=r<i?r:i;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};f.cosine=f.cos=function(){var n,e,t=this,r=t.constructor;return t.d?t.d[0]?(n=r.precision,e=r.rounding,r.precision=n+Math.max(t.e,t.sd())+b,r.rounding=1,t=On(r,nn(r,t)),r.precision=n,r.rounding=e,g(me==2||me==3?t.neg():t,n,e,!0)):new r(1):new r(NaN)};f.cubeRoot=f.cbrt=function(){var n,e,t,r,i,o,s,a,c,u,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(w=!1,o=m.s*D(m.s*m,1/3),!o||Math.abs(o)==1/0?(t=G(m.d),n=m.e,(o=(n-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=D(t,1/3),n=W((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?t="5e"+n:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),r=new l(t),r.s=m.s):r=new l(o.toString()),s=(n=l.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(m),r=N(u.plus(m).times(a),u.plus(c),s+2,1),G(a.d).slice(0,s)===(t=G(r.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!i&&t=="4999"){if(!i&&(g(a,n+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(g(r,n+1,1),e=!r.times(r).times(r).eq(m));break}return w=!0,g(r,n,l.rounding,e)};f.decimalPlaces=f.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-W(this.e/b))*b,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};f.dividedBy=f.div=function(n){return N(this,new this.constructor(n))};f.dividedToIntegerBy=f.divToInt=function(n){var e=this,t=e.constructor;return g(N(e,new t(n),0,1,1),t.precision,t.rounding)};f.equals=f.eq=function(n){return this.cmp(n)===0};f.floor=function(){return g(new this.constructor(this),this.e+1,3)};f.greaterThan=f.gt=function(n){return this.cmp(n)>0};f.greaterThanOrEqualTo=f.gte=function(n){var e=this.cmp(n);return e==1||e===0};f.hyperbolicCosine=f.cosh=function(){var n,e,t,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,r=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(n=Math.ceil(i/3),e=(1/je(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),o=Be(s,1,o.times(e),new s(1),!0);for(var c,u=n,m=new s(8);u--;)c=o.times(o),o=a.minus(c.times(m.minus(c.times(m))));return g(o,s.precision=t,s.rounding=r,!0)};f.hyperbolicSine=f.sinh=function(){var n,e,t,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Be(o,2,i,i,!0);else{n=1.4*Math.sqrt(r),n=n>16?16:n|0,i=i.times(1/je(5,n)),i=Be(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);n--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=t,g(i,e,t,!0)};f.hyperbolicTangent=f.tanh=function(){var n,e,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+7,r.rounding=1,N(t.sinh(),t.cosh(),r.precision=n,r.rounding=e)):new r(t.s)};f.inverseCosine=f.acos=function(){var n,e=this,t=e.constructor,r=e.abs().cmp(1),i=t.precision,o=t.rounding;return r!==-1?r===0?e.isNeg()?ne(t,i,o):new t(0):new t(NaN):e.isZero()?ne(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,e=e.asin(),n=ne(t,i+4,o).times(.5),t.precision=i,t.rounding=o,n.minus(e))};f.inverseHyperbolicCosine=f.acosh=function(){var n,e,t=this,r=t.constructor;return t.lte(1)?new r(t.eq(1)?0:NaN):t.isFinite()?(n=r.precision,e=r.rounding,r.precision=n+Math.max(Math.abs(t.e),t.sd())+4,r.rounding=1,w=!1,t=t.times(t).minus(1).sqrt().plus(t),w=!0,r.precision=n,r.rounding=e,t.ln()):new r(t)};f.inverseHyperbolicSine=f.asinh=function(){var n,e,t=this,r=t.constructor;return!t.isFinite()||t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,r.rounding=1,w=!1,t=t.times(t).plus(1).sqrt().plus(t),w=!0,r.precision=n,r.rounding=e,t.ln())};f.inverseHyperbolicTangent=f.atanh=function(){var n,e,t,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(n=o.precision,e=o.rounding,r=i.sd(),Math.max(r,n)<2*-i.e-1?g(new o(i),n,e,!0):(o.precision=t=r-i.e,i=N(i.plus(1),new o(1).minus(i),t+n,1),o.precision=n+4,o.rounding=1,i=i.ln(),o.precision=n,o.rounding=e,i.times(.5))):new o(NaN)};f.inverseSine=f.asin=function(){var n,e,t,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),t=o.precision,r=o.rounding,e!==-1?e===0?(n=ne(o,t+4,r).times(.5),n.s=i.s,n):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=r,i.times(2)))};f.inverseTangent=f.atan=function(){var n,e,t,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding;if(u.isFinite()){if(u.isZero())return new m(u);if(u.abs().eq(1)&&l+4<=mt)return s=ne(m,l+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new m(NaN);if(l+4<=mt)return s=ne(m,l+4,d).times(.5),s.s=u.s,s}for(m.precision=a=l+10,m.rounding=1,t=Math.min(28,a/b+2|0),n=t;n;--n)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,e=Math.ceil(a/b),r=1,c=u.times(u),s=new m(u),i=u;n!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===o.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),w=!0,g(s,m.precision=l,m.rounding=d,!0)};f.isFinite=function(){return!!this.d};f.isInteger=f.isInt=function(){return!!this.d&&W(this.e/b)>this.d.length-2};f.isNaN=function(){return!this.s};f.isNegative=f.isNeg=function(){return this.s<0};f.isPositive=f.isPos=function(){return this.s>0};f.isZero=function(){return!!this.d&&this.d[0]===0};f.lessThan=f.lt=function(n){return this.cmp(n)<0};f.lessThanOrEqualTo=f.lte=function(n){return this.cmp(n)<1};f.logarithm=f.log=function(n){var e,t,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding,p=5;if(n==null)n=new m(10),e=!0;else{if(n=new m(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new m(NaN);e=n.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new m(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=l+p,s=ge(u,a),r=e?ze(m,a+10):ge(n,a),c=N(s,r,a,1),Le(c.d,i=l,d))do if(a+=10,s=ge(u,a),r=e?ze(m,a+10):ge(n,a),c=N(s,r,a,1),!o){+G(c.d).slice(i+1,i+15)+1==1e14&&(c=g(c,l+1,0));break}while(Le(c.d,i+=10,d));return w=!0,g(c,l,d)};f.minus=f.sub=function(n){var e,t,r,i,o,s,a,c,u,m,l,d,p=this,T=p.constructor;if(n=new T(n),!p.d||!n.d)return!p.s||!n.s?n=new T(NaN):p.d?n.s=-n.s:n=new T(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(u=p.d,d=n.d,a=T.precision,c=T.rounding,!u[0]||!d[0]){if(d[0])n.s=-n.s;else if(u[0])n=new T(p);else return new T(c===3?-0:0);return w?g(n,a,c):n}if(t=W(n.e/b),m=W(p.e/b),u=u.slice(),o=m-t,o){for(l=o<0,l?(e=u,o=-o,s=d.length):(e=d,t=m,s=u.length),r=Math.max(Math.ceil(a/b),s)+2,o>r&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for(r=u.length,s=d.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(u[r]!=d[r]){l=u[r]<d[r];break}o=0}for(l&&(e=u,u=d,d=e,n.s=-n.s),s=u.length,r=d.length-s;r>0;--r)u[s++]=0;for(r=d.length;r>o;){if(u[--r]<d[r]){for(i=r;i&&u[--i]===0;)u[i]=re-1;--u[i],u[r]+=re}u[r]-=d[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(n.d=u,n.e=Ye(u,t),w?g(n,a,c):n):new T(c===3?-0:0)};f.modulo=f.mod=function(n){var e,t=this,r=t.constructor;return n=new r(n),!t.d||!n.s||n.d&&!n.d[0]?new r(NaN):!n.d||t.d&&!t.d[0]?g(new r(t),r.precision,r.rounding):(w=!1,r.modulo==9?(e=N(t,n.abs(),0,3,1),e.s*=n.s):e=N(t,n,0,r.modulo,1),e=e.times(n),w=!0,t.minus(e))};f.naturalExponential=f.exp=function(){return lt(this)};f.naturalLogarithm=f.ln=function(){return ge(this)};f.negated=f.neg=function(){var n=new this.constructor(this);return n.s=-n.s,g(n)};f.plus=f.add=function(n){var e,t,r,i,o,s,a,c,u,m,l=this,d=l.constructor;if(n=new d(n),!l.d||!n.d)return!l.s||!n.s?n=new d(NaN):l.d||(n=new d(n.d||l.s===n.s?l:NaN)),n;if(l.s!=n.s)return n.s=-n.s,l.minus(n);if(u=l.d,m=n.d,a=d.precision,c=d.rounding,!u[0]||!m[0])return m[0]||(n=new d(l)),w?g(n,a,c):n;if(o=W(l.e/b),r=W(n.e/b),u=u.slice(),i=o-r,i){for(i<0?(t=u,i=-i,s=m.length):(t=m,r=o,s=u.length),o=Math.ceil(a/b),s=o>s?o+1:s+1,i>s&&(i=s,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(s=u.length,i=m.length,s-i<0&&(i=s,t=m,m=u,u=t),e=0;i;)e=(u[--i]=u[i]+m[i]+e)/re|0,u[i]%=re;for(e&&(u.unshift(e),++r),s=u.length;u[--s]==0;)u.pop();return n.d=u,n.e=Ye(u,r),w?g(n,a,c):n};f.precision=f.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(he+n);return t.d?(e=Qt(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};f.round=function(){var n=this,e=n.constructor;return g(new e(n),n.e+1,e.rounding)};f.sine=f.sin=function(){var n,e,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+Math.max(t.e,t.sd())+b,r.rounding=1,t=qn(r,nn(r,t)),r.precision=n,r.rounding=e,g(me>2?t.neg():t,n,e,!0)):new r(NaN)};f.squareRoot=f.sqrt=function(){var n,e,t,r,i,o,s=this,a=s.d,c=s.e,u=s.s,m=s.constructor;if(u!==1||!a||!a[0])return new m(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=G(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=W((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),r=new m(e)):r=new m(u.toString()),t=(c=m.precision)+3;;)if(o=r,r=o.plus(N(s,o,t+2,1)).times(.5),G(o.d).slice(0,t)===(e=G(r.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!i&&e=="4999"){if(!i&&(g(o,c+1,0),o.times(o).eq(s))){r=o;break}t+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(r,c+1,1),n=!r.times(r).eq(s));break}return w=!0,g(r,c,m.rounding,n)};f.tangent=f.tan=function(){var n,e,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(n=r.precision,e=r.rounding,r.precision=n+10,r.rounding=1,t=t.sin(),t.s=1,t=N(t,new r(1).minus(t.times(t)).sqrt(),n+10,0),r.precision=n,r.rounding=e,g(me==2||me==4?t.neg():t,n,e,!0)):new r(NaN)};f.times=f.mul=function(n){var e,t,r,i,o,s,a,c,u,m=this,l=m.constructor,d=m.d,p=(n=new l(n)).d;if(n.s*=m.s,!d||!d[0]||!p||!p[0])return new l(!n.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?n.s/0:n.s*0);for(t=W(m.e/b)+W(n.e/b),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(e=0,i=c+r;i>r;)a=o[i]+p[r]*d[i-r-1]+e,o[i--]=a%re|0,e=a/re|0;o[i]=(o[i]+e)%re|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),n.d=o,n.e=Ye(o,t),w?g(n,l.precision,l.rounding):n};f.toBinary=function(n,e){return ft(this,2,n,e)};f.toDecimalPlaces=f.toDP=function(n,e){var t=this,r=t.constructor;return t=new r(t),n===void 0?t:(z(n,0,be),e===void 0?e=r.rounding:z(e,0,8),g(t,n+t.e+1,e))};f.toExponential=function(n,e){var t,r=this,i=r.constructor;return n===void 0?t=se(r,!0):(z(n,0,be),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),n+1,e),t=se(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+t:t};f.toFixed=function(n,e){var t,r,i=this,o=i.constructor;return n===void 0?t=se(i):(z(n,0,be),e===void 0?e=o.rounding:z(e,0,8),r=g(new o(i),n+i.e+1,e),t=se(r,!1,n+r.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};f.toFraction=function(n){var e,t,r,i,o,s,a,c,u,m,l,d,p=this,T=p.d,y=p.constructor;if(!T)return new y(p);if(u=t=new y(1),r=c=new y(0),e=new y(r),o=e.e=Qt(T)-p.e-1,s=o%b,e.d[0]=D(10,s<0?b+s:s),n==null)n=o>0?e:u;else{if(a=new y(n),!a.isInt()||a.lt(u))throw Error(he+a);n=a.gt(e)?o>0?e:u:a}for(w=!1,a=new y(G(T)),m=y.precision,y.precision=o=T.length*b*2;l=N(a,e,0,1,1),i=t.plus(l.times(r)),i.cmp(n)!=1;)t=r,r=i,i=u,u=c.plus(l.times(i)),c=i,i=e,e=a.minus(l.times(i)),a=i;return i=N(n.minus(t),r,0,1,1),c=c.plus(i.times(u)),t=t.plus(i.times(r)),c.s=u.s=p.s,d=N(u,r,o,1).minus(p).abs().cmp(N(c,t,o,1).minus(p).abs())<1?[u,r]:[c,t],y.precision=m,w=!0,d};f.toHexadecimal=f.toHex=function(n,e){return ft(this,16,n,e)};f.toNearest=function(n,e){var t=this,r=t.constructor;if(t=new r(t),n==null){if(!t.d)return t;n=new r(1),e=r.rounding}else{if(n=new r(n),e===void 0?e=r.rounding:z(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(w=!1,t=N(t,n,0,e,1).times(n),w=!0,g(t)):(n.s=t.s,t=n),t};f.toNumber=function(){return+this};f.toOctal=function(n,e){return ft(this,8,n,e)};f.toPower=f.pow=function(n){var e,t,r,i,o,s,a=this,c=a.constructor,u=+(n=new c(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new c(D(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,n.eq(1))return g(a,r,o);if(e=W(n.e/b),e>=n.d.length-1&&(t=u<0?-u:u)<=vn)return i=$t(c,a,t,r),n.s<0?new c(1).div(i):g(i,r,o);if(s=a.s,s<0){if(e<n.d.length-1)return new c(NaN);if((n.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=D(+a,u),e=t==0||!isFinite(t)?W(u*(Math.log("0."+G(a.d))/Math.LN10+a.e+1)):new c(t+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(w=!1,c.rounding=a.s=1,t=Math.min(12,(e+"").length),i=lt(n.times(ge(a,r+t)),r),i.d&&(i=g(i,r+5,1),Le(i.d,r,o)&&(e=r+10,i=g(lt(n.times(ge(a,e+t)),e),e+5,1),+G(i.d).slice(r+1,r+15)+1==1e14&&(i=g(i,r+1,0)))),i.s=s,w=!0,c.rounding=o,g(i,r,o))};f.toPrecision=function(n,e){var t,r=this,i=r.constructor;return n===void 0?t=se(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(z(n,1,be),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),n,e),t=se(r,n<=r.e||r.e<=i.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+t:t};f.toSignificantDigits=f.toSD=function(n,e){var t=this,r=t.constructor;return n===void 0?(n=r.precision,e=r.rounding):(z(n,1,be),e===void 0?e=r.rounding:z(e,0,8)),g(new r(t),n,e)};f.toString=function(){var n=this,e=n.constructor,t=se(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};f.truncated=f.trunc=function(){return g(new this.constructor(this),this.e+1,1)};f.valueOf=f.toJSON=function(){var n=this,e=n.constructor,t=se(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function G(n){var e,t,r,i=n.length-1,o="",s=n[0];if(i>0){for(o+=s,e=1;e<i;e++)r=n[e]+"",t=b-r.length,t&&(o+=pe(t)),o+=r;s=n[e],r=s+"",t=b-r.length,t&&(o+=pe(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function z(n,e,t){if(n!==~~n||n<e||n>t)throw Error(he+n)}function Le(n,e,t,r){var i,o,s,a;for(o=n[0];o>=10;o/=10)--e;return--e<0?(e+=b,i=0):(i=Math.ceil((e+1)/b),e%=b),o=D(10,b-e),a=n[i]%o|0,r==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(n[i+1]/o/100|0)==D(10,e-2)-1||(a==o/2||a==0)&&(n[i+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(r||t<4)&&a==9999||!r&&t>3&&a==4999):s=((r||t<4)&&a+1==o||!r&&t>3&&a+1==o/2)&&(n[i+1]/o/1e3|0)==D(10,e-3)-1,s}function We(n,e,t){for(var r,i=[0],o,s=0,a=n.length;s<a;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=ut.indexOf(n.charAt(s++)),r=0;r<i.length;r++)i[r]>t-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/t|0,i[r]%=t)}return i.reverse()}function On(n,e){var t,r,i;if(e.isZero())return e;r=e.d.length,r<32?(t=Math.ceil(r/3),i=(1/je(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),n.precision+=t,e=Be(n,1,e.times(i),new n(1));for(var o=t;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var N=function(){function n(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function e(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function t(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,m,l,d,p,T,y,q,L,Q,I,V,Oe,ue,nt,Ke,Ce,rt,$,qe,Ge=r.constructor,it=r.s==i.s?1:-1,U=r.d,S=i.d;if(!U||!U[0]||!S||!S[0])return new Ge(!r.s||!i.s||(U?S&&U[0]==S[0]:!S)?NaN:U&&U[0]==0||!S?it*0:it/0);for(c?(p=1,m=r.e-i.e):(c=re,p=b,m=W(r.e/p)-W(i.e/p)),$=S.length,Ce=U.length,L=new Ge(it),Q=L.d=[],l=0;S[l]==(U[l]||0);l++);if(S[l]>(U[l]||0)&&m--,o==null?(ue=o=Ge.precision,s=Ge.rounding):a?ue=o+(r.e-i.e)+1:ue=o,ue<0)Q.push(1),T=!0;else{if(ue=ue/p+2|0,l=0,$==1){for(d=0,S=S[0],ue++;(l<Ce||d)&&ue--;l++)nt=d*c+(U[l]||0),Q[l]=nt/S|0,d=nt%S|0;T=d||l<Ce}else{for(d=c/(S[0]+1)|0,d>1&&(S=n(S,d,c),U=n(U,d,c),$=S.length,Ce=U.length),Ke=$,I=U.slice(0,$),V=I.length;V<$;)I[V++]=0;qe=S.slice(),qe.unshift(0),rt=S[0],S[1]>=c/2&&++rt;do d=0,u=e(S,I,$,V),u<0?(Oe=I[0],$!=V&&(Oe=Oe*c+(I[1]||0)),d=Oe/rt|0,d>1?(d>=c&&(d=c-1),y=n(S,d,c),q=y.length,V=I.length,u=e(y,I,q,V),u==1&&(d--,t(y,$<q?qe:S,q,c))):(d==0&&(u=d=1),y=S.slice()),q=y.length,q<V&&y.unshift(0),t(I,y,V,c),u==-1&&(V=I.length,u=e(S,I,$,V),u<1&&(d++,t(I,$<V?qe:S,V,c))),V=I.length):u===0&&(d++,I=[0]),Q[l++]=d,u&&I[0]?I[V++]=U[Ke]||0:(I=[U[Ke]],V=1);while((Ke++<Ce||I[0]!==void 0)&&ue--);T=I[0]!==void 0}Q[0]||Q.shift()}if(p==1)L.e=m,zt=T;else{for(l=1,d=Q[0];d>=10;d/=10)l++;L.e=l+m*p-1,g(L,a?o+L.e+1:o,s,T)}return L}}();function g(n,e,t,r){var i,o,s,a,c,u,m,l,d,p=n.constructor;e:if(e!=null){if(l=n.d,!l)return n;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=e-i,o<0)o+=b,s=e,m=l[d=0],c=m/D(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/b),a=l.length,d>=a)if(r){for(;a++<=d;)l.push(0);m=c=0,i=1,o%=b,s=o-b+1}else break e;else{for(m=a=l[d],i=1;a>=10;a/=10)i++;o%=b,s=o-b+i,c=s<0?0:m/D(10,i-s-1)%10|0}if(r=r||e<0||l[d+1]!==void 0||(s<0?m:m%D(10,i-s-1)),u=t<4?(c||r)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||r||t==6&&(o>0?s>0?m/D(10,i-s):0:l[d-1])%10&1||t==(n.s<0?8:7)),e<1||!l[0])return l.length=0,u?(e-=n.e+1,l[0]=D(10,(b-e%b)%b),n.e=-e||0):l[0]=n.e=0,n;if(o==0?(l.length=d,a=1,d--):(l.length=d+1,a=D(10,b-o),l[d]=s>0?(m/D(10,i-s)%D(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,l[0]==re&&(l[0]=1));break}else{if(l[d]+=a,l[d]!=re)break;l[d--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return w&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function se(n,e,t){if(!n.isFinite())return tn(n);var r,i=n.e,o=G(n.d),s=o.length;return e?(t&&(r=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+pe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):i<0?(o="0."+pe(-i-1)+o,t&&(r=t-s)>0&&(o+=pe(r))):i>=s?(o+=pe(i+1-s),t&&(r=t-i-1)>0&&(o=o+"."+pe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),t&&(r=t-s)>0&&(i+1===s&&(o+="."),o+=pe(r))),o}function Ye(n,e){var t=n[0];for(e*=b;t>=10;t/=10)e++;return e}function ze(n,e,t){if(e>Dn)throw w=!0,t&&(n.precision=t),Error(Zt);return g(new n(Xe),e,1,!0)}function ne(n,e,t){if(e>mt)throw Error(Zt);return g(new n(He),e,t,!0)}function Qt(n){var e=n.length-1,t=e*b+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function pe(n){for(var e="";n--;)e+="0";return e}function $t(n,e,t,r){var i,o=new n(1),s=Math.ceil(r/b+4);for(w=!1;;){if(t%2&&(o=o.times(e),Xt(o.d,s)&&(i=!0)),t=W(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Xt(e.d,s)}return w=!0,o}function Wt(n){return n.d[n.d.length-1]&1}function en(n,e,t){for(var r,i=new n(e[0]),o=0;++o<e.length;)if(r=new n(e[o]),r.s)i[t](r)&&(i=r);else{i=r;break}return i}function lt(n,e){var t,r,i,o,s,a,c,u=0,m=0,l=0,d=n.constructor,p=d.rounding,T=d.precision;if(!n.d||!n.d[0]||n.e>17)return new d(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(e==null?(w=!1,c=T):c=e,a=new d(.03125);n.e>-2;)n=n.times(a),l+=5;for(r=Math.log(D(2,l))/Math.LN10*2+5|0,c+=r,t=o=s=new d(1),d.precision=c;;){if(o=g(o.times(n),c,1),t=t.times(++m),a=s.plus(N(o,t,c,1)),G(a.d).slice(0,c)===G(s.d).slice(0,c)){for(i=l;i--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Le(s.d,c-r,p,u))d.precision=c+=10,t=o=a=new d(1),m=0,u++;else return g(s,d.precision=T,p,w=!0);else return d.precision=T,s}s=a}}function ge(n,e){var t,r,i,o,s,a,c,u,m,l,d,p=1,T=10,y=n,q=y.d,L=y.constructor,Q=L.rounding,I=L.precision;if(y.s<0||!q||!q[0]||!y.e&&q[0]==1&&q.length==1)return new L(q&&!q[0]?-1/0:y.s!=1?NaN:q?0:y);if(e==null?(w=!1,m=I):m=e,L.precision=m+=T,t=G(q),r=t.charAt(0),Math.abs(o=y.e)<15e14){for(;r<7&&r!=1||r==1&&t.charAt(1)>3;)y=y.times(n),t=G(y.d),r=t.charAt(0),p++;o=y.e,r>1?(y=new L("0."+t),o++):y=new L(r+"."+t.slice(1))}else return u=ze(L,m+2,I).times(o+""),y=ge(new L(r+"."+t.slice(1)),m-T).plus(u),L.precision=I,e==null?g(y,I,Q,w=!0):y;for(l=y,c=s=y=N(y.minus(1),y.plus(1),m,1),d=g(y.times(y),m,1),i=3;;){if(s=g(s.times(d),m,1),u=c.plus(N(s,new L(i),m,1)),G(u.d).slice(0,m)===G(c.d).slice(0,m))if(c=c.times(2),o!==0&&(c=c.plus(ze(L,m+2,I).times(o+""))),c=N(c,new L(p),m,1),e==null)if(Le(c.d,m-T,Q,a))L.precision=m+=T,u=s=y=N(l.minus(1),l.plus(1),m,1),d=g(y.times(y),m,1),i=a=1;else return g(c,L.precision=I,Q,w=!0);else return L.precision=I,c;c=u,i+=2}}function tn(n){return String(n.s*n.s/0)}function dt(n,e){var t,r,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(t<0&&(t=r),t+=+e.slice(r+1),e=e.substring(0,r)):t<0&&(t=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,n.e=t=t-r-1,n.d=[],r=(t+1)%b,t<0&&(r+=b),r<i){for(r&&n.d.push(+e.slice(0,r)),i-=b;r<i;)n.d.push(+e.slice(r,r+=b));e=e.slice(r),r=b-e.length}else r-=i;for(;r--;)e+="0";n.d.push(+e),w&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function Kn(n,e){var t,r,i,o,s,a,c,u,m;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Jt.test(e))return dt(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(Fn.test(e))t=16,e=e.toLowerCase();else if(_n.test(e))t=2;else if(Mn.test(e))t=8;else throw Error(he+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,r=n.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,i=$t(r,new r(t),o,o*2)),u=We(e,t,re),m=u.length-1,o=m;u[o]===0;--o)u.pop();return o<0?new r(n.s*0):(n.e=Ye(u,m),n.d=u,w=!1,s&&(n=N(n,i,a*4)),c&&(n=n.times(Math.abs(c)<54?D(2,c):Re.pow(2,c))),w=!0,n)}function qn(n,e){var t,r=e.d.length;if(r<3)return e.isZero()?e:Be(n,2,e,e);t=1.4*Math.sqrt(r),t=t>16?16:t|0,e=e.times(1/je(5,t)),e=Be(n,2,e,e);for(var i,o=new n(5),s=new n(16),a=new n(20);t--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}function Be(n,e,t,r,i){var o,s,a,c,u=1,m=n.precision,l=Math.ceil(m/b);for(w=!1,c=t.times(t),a=new n(r);;){if(s=N(a.times(c),new n(e++*e++),m,1),a=i?r.plus(s):r.minus(s),r=N(s.times(c),new n(e++*e++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return w=!0,s.d.length=l+1,s}function je(n,e){for(var t=n;--e;)t*=n;return t}function nn(n,e){var t,r=e.s<0,i=ne(n,n.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return me=r?4:1,e;if(t=e.divToInt(i),t.isZero())me=r?3:2;else{if(e=e.minus(t.times(i)),e.lte(o))return me=Wt(t)?r?2:3:r?4:1,e;me=Wt(t)?r?1:4:r?3:2}return e.minus(i).abs()}function ft(n,e,t,r){var i,o,s,a,c,u,m,l,d,p=n.constructor,T=t!==void 0;if(T?(z(t,1,be),r===void 0?r=p.rounding:z(r,0,8)):(t=p.precision,r=p.rounding),!n.isFinite())m=tn(n);else{for(m=se(n),s=m.indexOf("."),T?(i=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):i=e,s>=0&&(m=m.replace(".",""),d=new p(1),d.e=m.length-s,d.d=We(se(d),10,i),d.e=d.d.length),l=We(m,10,i),o=c=l.length;l[--c]==0;)l.pop();if(!l[0])m=T?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=l,n.e=o,n=N(n,d,t,r,0,i),l=n.d,o=n.e,u=zt),s=l[t],a=i/2,u=u||l[t+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(n.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[t-1]&1||r===(n.s<0?8:7)),l.length=t,u)for(;++l[--t]>i-1;)l[t]=0,t||(++o,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,m="";s<c;s++)m+=ut.charAt(l[s]);if(T){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)m+="0";for(l=We(m,i,e),c=l.length;!l[c-1];--c);for(s=1,m="1.";s<c;s++)m+=ut.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>c)for(o-=c;o--;)m+="0";else o<c&&(m=m.slice(0,o)+"."+m.slice(o))}m=(e==16?"0x":e==2?"0b":e==8?"0o":"")+m}return n.s<0?"-"+m:m}function Xt(n,e){if(n.length>e)return n.length=e,!0}function Gn(n){return new this(n).abs()}function Vn(n){return new this(n).acos()}function Un(n){return new this(n).acosh()}function Wn(n,e){return new this(n).plus(e)}function Xn(n){return new this(n).asin()}function Hn(n){return new this(n).asinh()}function zn(n){return new this(n).atan()}function Zn(n){return new this(n).atanh()}function Yn(n,e){n=new this(n),e=new this(e);var t,r=this.precision,i=this.rounding,o=r+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=ne(this,o,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?ne(this,r,i):new this(0),t.s=n.s):!n.d||e.isZero()?(t=ne(this,o,1).times(.5),t.s=n.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(N(n,e,o,1)),e=ne(this,o,1),this.precision=r,this.rounding=i,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(N(n,e,o,1)),t}function jn(n){return new this(n).cbrt()}function Jn(n){return g(n=new this(n),n.e+1,2)}function Qn(n,e,t){return new this(n).clamp(e,t)}function $n(n){if(!n||typeof n!="object")throw Error(Ze+"Object expected");var e,t,r,i=n.defaults===!0,o=["precision",1,be,"rounding",0,8,"toExpNeg",-ke,0,"toExpPos",0,ke,"maxE",0,ke,"minE",-ke,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],i&&(this[t]=ct[t]),(r=n[t])!==void 0)if(W(r)===r&&r>=o[e+1]&&r<=o[e+2])this[t]=r;else throw Error(he+t+": "+r);if(t="crypto",i&&(this[t]=ct[t]),(r=n[t])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Yt);else this[t]=!1;else throw Error(he+t+": "+r);return this}function er(n){return new this(n).cos()}function tr(n){return new this(n).cosh()}function rn(n){var e,t,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Ht(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;w?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return dt(u,o.toString())}else if(c!=="string")throw Error(he+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Jt.test(o)?dt(u,o):Kn(u,o)}if(i.prototype=f,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=$n,i.clone=rn,i.isDecimal=Ht,i.abs=Gn,i.acos=Vn,i.acosh=Un,i.add=Wn,i.asin=Xn,i.asinh=Hn,i.atan=zn,i.atanh=Zn,i.atan2=Yn,i.cbrt=jn,i.ceil=Jn,i.clamp=Qn,i.cos=er,i.cosh=tr,i.div=nr,i.exp=rr,i.floor=ir,i.hypot=or,i.ln=sr,i.log=ar,i.log10=cr,i.log2=ur,i.max=mr,i.min=lr,i.mod=dr,i.mul=fr,i.pow=pr,i.random=gr,i.round=hr,i.sign=br,i.sin=yr,i.sinh=wr,i.sqrt=Tr,i.sub=xr,i.sum=Ar,i.tan=Pr,i.tanh=kr,i.trunc=Br,n===void 0&&(n={}),n&&n.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)n.hasOwnProperty(t=r[e++])||(n[t]=this[t]);return i.config(n),i}function nr(n,e){return new this(n).div(e)}function rr(n){return new this(n).exp()}function ir(n){return g(n=new this(n),n.e+1,3)}function or(){var n,e,t=new this(0);for(w=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return w=!0,new this(1/0);t=e}return w=!0,t.sqrt()}function Ht(n){return n instanceof Re||n&&n.toStringTag===jt||!1}function sr(n){return new this(n).ln()}function ar(n,e){return new this(n).log(e)}function ur(n){return new this(n).log(2)}function cr(n){return new this(n).log(10)}function mr(){return en(this,arguments,"lt")}function lr(){return en(this,arguments,"gt")}function dr(n,e){return new this(n).mod(e)}function fr(n,e){return new this(n).mul(e)}function pr(n,e){return new this(n).pow(e)}function gr(n){var e,t,r,i,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:z(n,1,be),r=Math.ceil(n/b),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);o<r;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Yt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],n%=b,r&&n&&(i=D(10,b-n),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=b)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<b&&(t-=b-r)}return s.e=t,s.d=a,s}function hr(n){return g(n=new this(n),n.e+1,this.rounding)}function br(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function yr(n){return new this(n).sin()}function wr(n){return new this(n).sinh()}function Tr(n){return new this(n).sqrt()}function xr(n,e){return new this(n).sub(e)}function Ar(){var n=0,e=arguments,t=new this(e[n]);for(w=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return w=!0,g(t,this.precision,this.rounding)}function Pr(n){return new this(n).tan()}function kr(n){return new this(n).tanh()}function Br(n){return g(n=new this(n),n.e+1,1)}f[Symbol.for("nodejs.util.inspect.custom")]=f.toString;f[Symbol.toStringTag]="Decimal";var Re=f.constructor=rn(ct);Xe=new Re(Xe);He=new Re(He);var X=Re;import B from"bn.js";import Bi from"bn.js";import{PublicKey as Sr}from"@solana/web3.js";import{get as on,set as Ir}from"lodash";var pt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},sn={},Nr={};function J(n){let e=on(sn,n);if(!e){let t=on(Nr,n);e=new pt({name:n,logLevel:t}),Ir(sn,n,e)}return e}import{MINT_SIZE as vi,TOKEN_PROGRAM_ID as Di,getTransferFeeConfig as Oi,unpackMint as Ki}from"@solana/spl-token";var gt=J("Raydium_accountInfo_util");async function Je(n,e,t){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=ee({batchRequest:!1},t),s=ht(e,o),a=new Array(s.length).fill([]);if(r){let c=s.map(l=>{let d=n._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=ht(c,10);a=(await(await Promise.all(u.map(async l=>await n._rpcBatchRequest(l)))).flat()).map(l=>(l.error&>.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(d=>{if(d){let{data:p,executable:T,lamports:y,owner:q,rentEpoch:L}=d;return p.length!==2&&p[1]!=="base64"&>.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:T,lamports:y,owner:new Sr(q),rentEpoch:L}}return null})))}else try{a=await Promise.all(s.map(c=>n.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&>.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import de from"bn.js";import Dr from"big.js";import no from"bn.js";import Lr from"toformat";var Rr=Lr,Ee=Rr;import $e from"big.js";import _r from"bn.js";import Fr from"decimal.js-light";import _e from"bn.js";var an=9007199254740991;function le(n){let e=J("Raydium_parseBigNumberish");if(n instanceof _e)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new _e(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=an||n<=-an)&&e.logWithError(`BigNumberish number overflow: ${n}`),new _e(String(n))):typeof n=="bigint"?new _e(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new _e(0))}var Qe=J("module/fraction"),yt=Ee($e),Fe=Ee(Fr),Mr={[0]:Fe.ROUND_DOWN,[1]:Fe.ROUND_HALF_UP,[2]:Fe.ROUND_UP},vr={[0]:$e.roundDown,[1]:$e.roundHalfUp,[2]:$e.roundUp},R=class{constructor(e,t=new _r(1)){this.numerator=le(e),this.denominator=le(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new R(this.denominator,this.numerator)}add(e){let t=e instanceof R?e:new R(le(e));return this.denominator.eq(t.denominator)?new R(this.numerator.add(t.numerator),this.denominator):new R(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof R?e:new R(le(e));return this.denominator.eq(t.denominator)?new R(this.numerator.sub(t.numerator),this.denominator):new R(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof R?e:new R(le(e));return new R(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof R?e:new R(le(e));return new R(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},r=1){Number.isInteger(e)||Qe.logWithError(`${e} is not an integer.`),e<=0&&Qe.logWithError(`${e} is not positive.`),Fe.set({precision:e+1,rounding:Mr[r]});let i=new Fe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},r=1){return Number.isInteger(e)||Qe.logWithError(`${e} is not an integer.`),e<0&&Qe.logWithError(`${e} is negative.`),yt.DP=e,yt.RM=vr[r]||1,new yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var lo=J("Raydium_amount"),fo=Ee(Dr);import{PublicKey as Kr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as un}from"@solana/spl-token";var cn={chainId:101,address:Kr.default.toBase58(),programId:un.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},we={chainId:101,address:"So11111111111111111111111111111111111111112",programId:un.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Tt}from"@solana/web3.js";import{PublicKey as E,SystemProgram as mn,SYSVAR_RENT_PUBKEY as qr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Gr}from"@solana/spl-token";function wt({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var xo=[wt({pubkey:Gr,isWritable:!1}),wt({pubkey:mn.programId,isWritable:!1}),wt({pubkey:qr,isWritable:!1})];function ln({publicKey:n,transformSol:e}){let t=dn(n.toString());if(t instanceof E)return e&&t.equals(Me)?bt:t;if(e&&t.toString()===Me.toBase58())return bt;if(typeof t=="string"){if(t===E.default.toBase58())return E.default;try{return new E(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function dn(n){try{return new E(n)}catch{return n}}var Ao=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Po=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ko=new E("SysvarRent111111111111111111111111111111111"),Bo=new E("SysvarC1ock11111111111111111111111111111111"),Vr=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Io=new E("Sysvar1nstructions1111111111111111111111111"),No=mn.programId,So=new E("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Co=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Lo=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ro=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Eo=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),_o=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Fo=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Mo=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),vo=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Do=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Oo=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),bt=new E("So11111111111111111111111111111111111111112"),Me=E.default;var xt=class{constructor({mint:e,decimals:t,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===Me.toBase58()||e instanceof Tt&&Me.equals(e)){this.decimals=we.decimals,this.symbol=we.symbol,this.name=we.name,this.mint=new Tt(we.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?Tt.default:ln({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},Te=xt;Te.WSOL=new xt(ce(ee({},we),{mint:we.address}));var At=class{constructor({decimals:e,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=r}equals(e){return this===e}},et=At;et.SOL=new At(cn);import Ur from"bn.js";var jo=new R(new Ur(100));var ns=J("Raydium_price");var Wr=new de(0),Ls=new de(1),Rs=new de(2),Es=new de(3),_s=new de(5),Or=new de(10),Fs=new de(100),Ms=new de(1e3),vs=new de(1e4);function ht(n,e=1,t=[]){let r=[...n];if(e<=0)return t;for(;r.length;)t.push(r.splice(0,e));return t}import{PublicKey as sa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ua}from"@solana/spl-token";import{ComputeBudgetProgram as Ws,Keypair as zs,PublicKey as Hr,Transaction as Ys,TransactionMessage as Js,VersionedTransaction as Qs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as na}from"@solana/spl-token";var ra=J("Raydium_txUtil");function It(n,e){let[t,r]=Hr.findProgramAddressSync(n,e);return{publicKey:t,nonce:r}}import{PublicKey as h}from"@solana/web3.js";var da=new h("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),fa=new h("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),pa=new h("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ga=new h("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ha=new h("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ba=new h("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ya=new h("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),wa=new h("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ta=new h("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),xa=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Aa=new h("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Pa=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ka=new h("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ba=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ia=new h("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Na=new h("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Sa=new h("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ca=new h("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),La=new h("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ra=new h("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ea=new h("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),_a=new h("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Fa=new h("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ma=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),va=new h("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Da=new h("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Oa=new h("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ka=new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),qa=new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ga=new h("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Va=new h("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ua={OPEN_BOOK_PROGRAM:new h("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new h("Ray1111111111111111111111111111111111111111"),AMM_V4:new h("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new h("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new h("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new h("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new h("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new h("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new h("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new h("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:h.default,Router:new h("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new h("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new h("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new h("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new h("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new h("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new h("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new h("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new h("Ray1111111111111111111111111111111111111111")};import{PublicKey as za,AddressLookupTableAccount as Za}from"@solana/web3.js";import{PublicKey as lu,sendAndConfirmTransaction as du,SystemProgram as gu,Transaction as hu,TransactionMessage as yu,VersionedTransaction as wu}from"@solana/web3.js";import xu from"axios";import{PublicKey as Su}from"@solana/web3.js";import Lu from"bn.js";import zr from"bn.js";var Mu=new zr(1e6);function fn(n){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,n,!1),new Uint8Array(e)}function Nt(n,e){let t=0;for(let r=n-1;r>=0&&!e.testn(r);r--)t++;return t}function St(n,e){let t=0;for(let r=0;r<n&&!e.testn(r);r++)t++;return t}function ve(n,e){for(let t=0;t<n;t++)if(e.testn(t))return!1;return!0}function pn(n,e){return ve(n,e)?null:Nt(n,e)}function gn(n,e){return ve(n,e)?null:St(n,e)}var sc=Buffer.from("amm_config","utf8"),ac=Buffer.from("pool","utf8"),uc=Buffer.from("pool_vault","utf8"),cc=Buffer.from("pool_reward_vault","utf8"),mc=Buffer.from("position","utf8"),Zr=Buffer.from("tick_array","utf8"),lc=Buffer.from("operation","utf8"),dc=Buffer.from("pool_tick_array_bitmap_extension","utf8"),fc=Buffer.from("observation","utf8");function fe(n,e,t){return It([Zr,e.toBuffer(),fn(t)],n)}var pc=Buffer.from("locked_position","utf8");var gc=Buffer.from("support_mint","utf8");import{PublicKey as Hm}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as Zm}from"@solana/spl-token";import jm from"bn.js";import{PublicKey as ri}from"@solana/web3.js";import wn,{isBN as Tn}from"bn.js";import{bits as yc,BitStructure as wc,blob as Yr,Blob as Tc,cstr as xc,f32 as Ac,f32be as Pc,f64 as kc,f64be as Bc,greedy as Ic,Layout as jr,ns64 as Nc,ns64be as Sc,nu64 as Cc,nu64be as Lc,offset as Rc,s16 as Ec,s16be as _c,s24 as Fc,s24be as Mc,s32 as Jr,s32be as vc,s40 as Dc,s40be as Oc,s48 as Kc,s48be as qc,s8 as Gc,seq as Qr,struct as Vc,Structure as $r,u16 as ei,u16be as Uc,u24 as Wc,u24be as Xc,u32 as Hc,u32be as zc,u40 as Zc,u40be as Yc,u48 as jc,u48be as Jc,u8 as ti,UInt as ni,union as Qc,Union as $c,unionLayoutDiscriminator as em,utf8 as tm}from"@solana/buffer-layout";var Ct=jr,hn=$r;var Lt=ni;var bn=ti,De=ei;var ye=Jr;var yn=Qr;var Y=Yr;var Ie=class extends Ct{constructor(t,r,i){super(t,i);this.blob=Y(t),this.signed=r}decode(t,r=0){let i=new wn(this.blob.decode(t,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,r,i=0){return typeof t=="number"&&(t=new wn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),r,i)}};function Z(n){return new Lt(1,n)}function Ne(n){return new Lt(4,n)}function P(n){return new Ie(8,!1,n)}function F(n){return new Ie(16,!1,n)}function xn(n){return new Ie(8,!0,n)}function An(n){return new Ie(16,!0,n)}var tt=class extends Ct{constructor(t,r,i,o){super(t.span,o);this.layout=t,this.decoder=r,this.encoder=i}decode(t,r){return this.decoder(this.layout.decode(t,r))}encode(t,r,i){return this.layout.encode(this.encoder(t),r,i)}getSpan(t,r){return this.layout.getSpan(t,r)}};function k(n){return new tt(Y(32),e=>new ri(e),e=>e.toBuffer(),n)}function Pn(n){return new tt(bn(),ii,oi,n)}function ii(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function oi(n){return n?1:0}var Rt=class extends hn{decode(e,t){return super.decode(e,t)}};function H(n,e,t){return new Rt(n,e,t)}function _(n,e,t){let r,i=typeof e=="number"?e:Tn(e)?e.toNumber():new Proxy(e,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=Tn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return yn(n,i,t)}var bm=H([Y(8),Z("bump"),De("index"),k(""),Ne("protocolFeeRate"),Ne("tradeFeeRate"),De("tickSpacing"),_(P(),8,"")]),si=H([Ne("blockTimestamp"),xn("tickCumulative"),_(P(),4)]),ym=H([Y(8),Pn("initialized"),P("recentEpoch"),De("observationIndex"),k("poolId"),_(si,100,"observations"),_(P(),4)]),ai=H([Z("rewardState"),P("openTime"),P("endTime"),P("lastUpdateTime"),F("emissionsPerSecondX64"),P("rewardTotalEmissioned"),P("rewardClaimed"),k("tokenMint"),k("tokenVault"),k("creator"),F("rewardGrowthGlobalX64")]),ui=H([Y(8),Z("bump"),k("ammConfig"),k("creator"),k("mintA"),k("mintB"),k("vaultA"),k("vaultB"),k("observationId"),Z("mintDecimalsA"),Z("mintDecimalsB"),De("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ye("tickCurrent"),Ne(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),P("protocolFeesTokenA"),P("protocolFeesTokenB"),F("swapInAmountTokenA"),F("swapOutAmountTokenB"),F("swapInAmountTokenB"),F("swapOutAmountTokenA"),Z("status"),_(Z(),7,""),_(ai,3,"rewardInfos"),_(P(),16,"tickArrayBitmap"),P("totalFeesTokenA"),P("totalFeesClaimedTokenA"),P("totalFeesTokenB"),P("totalFeesClaimedTokenB"),P("fundFeesTokenA"),P("fundFeesTokenB"),P("startTime"),_(P(),15*4-3,"padding")]),ci=H([F("growthInsideLastX64"),P("rewardAmountOwed")]),mi=H([Y(8),Z("bump"),k("nftMint"),k("poolId"),ye("tickLower"),ye("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),P("tokenFeesOwedA"),P("tokenFeesOwedB"),_(ci,3,"rewardInfos"),_(P(),8,"")]),wm=H([Y(8),Z("bump"),k("poolId"),ye("tickLowerIndex"),ye("tickUpperIndex"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),P("tokenFeesOwedA"),P("tokenFeesOwedB"),_(F(),3,"rewardGrowthInside"),_(P(),8,"")]),li=H([ye("tick"),An("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),_(F(),3,"rewardGrowthsOutsideX64"),_(Ne(),13,"")]),_t=H([Y(8),k("poolId"),ye("startTickIndex"),_(li,O,"ticks"),Z("initializedTickCount"),_(Z(),115,"")]),Tm=H([Y(329),_(k(),100,"whitelistMints")]),di=H([Y(8),k("poolId"),_(_(P(),8),Et,"positiveTickArrayBitmap"),_(_(P(),8),Et,"negativeTickArrayBitmap")]),xm=H([P(),Z("bump"),k("owner"),k("poolId"),k("positionId"),k("nftAccount"),_(P(),8)]),Am=H([Y(8),Z("bump"),k("lockOwner"),k("poolId"),k("positionId"),k("nftAccount"),k("lockNftMint"),P("recentEpoch"),_(P(),8)]);import Bm from"bn.js";var pi=15,M=class{static async getTickArrays(e,t,r,i,o,s,a){let c=[],u=C.getTickArrayStartIndexByTick(i,o),m=C.getInitializedTickArrayInRange(s,a,o,u,Math.floor(pi/2));for(let p=0;p<m.length;p++){let{publicKey:T}=fe(t,r,m[p]);c.push(T)}let l=(await Je(e,c)).map(p=>p!==null?_t.decode(p.data):null),d={};for(let p=0;p<c.length;p++){let T=l[p];T!==null&&(d[T.startTickIndex]=ce(ee({},T),{address:c[p]}))}return d}static nextInitializedTick(e,t,r,i,o,s){let{initializedTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}=this.nextInitializedTickInOneArray(e,t,r,i,o,s);for(;a==null||a.liquidityGross.lten(0);){if(u=C.getNextTickArrayStartIndex(u,o,s),this.checkIsValidStartIndex(u,o))throw new Error("No enough initialized tickArray");let m=r[u];if(m===void 0)continue;let{nextTick:l,tickArrayAddress:d,tickArrayStartTickIndex:p}=this.firstInitializedTickInOneArray(e,t,m,s);[a,c,u]=[l,d,p]}if(a==null)throw new Error("No invaild tickArray cache");return{nextTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}}static nextInitializedTickArray(e,t,r,i,o){let s=Math.floor(e/M.tickCount(t)),a=r?C.searchLowBitFromStart(i,o,s-1,1,t):C.searchHightBitFromStart(i,o,s+1,1,t);return a.length>0?{isExist:!0,nextStartIndex:a[0]}:{isExist:!1,nextStartIndex:0}}static firstInitializedTickInOneArray(e,t,r,i){let o;if(i){let a=O-1;for(;a>=0;){let c=r.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a-1}}else{let a=0;for(;a<O;){let c=r.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a+1}}let{publicKey:s}=fe(e,t,r.startTickIndex);return{nextTick:o,tickArrayAddress:s,tickArrayStartTickIndex:r.startTickIndex}}static nextInitializedTickInOneArray(e,t,r,i,o,s){let a=C.getTickArrayStartIndexByTick(i,o),c=Math.floor((i-a)/o),u=r[a];if(u==null)return{initializedTick:void 0,tickArrayAddress:void 0,tickArrayStartTickIndex:a};let m;if(s)for(;c>=0;){let d=u.ticks[c];if(d.liquidityGross.gtn(0)){m=d;break}c=c-1}else for(c=c+1;c<O;){let d=u.ticks[c];if(d.liquidityGross.gtn(0)){m=d;break}c=c+1}let{publicKey:l}=fe(e,t,a);return{initializedTick:m,tickArrayAddress:l,tickArrayStartTickIndex:u.startTickIndex}}static getArrayStartIndex(e,t){let r=this.tickCount(t);return Math.floor(e/r)*r}static checkIsValidStartIndex(e,t){if(C.checkIsOutOfBoundary(e)){if(e>oe)return!1;let r=C.getTickArrayStartIndexByTick(te,t);return e==r}return e%this.tickCount(t)==0}static tickCount(e){return O*e}};var ae=class{static mulDivRoundingUp(e,t,r){let i=e.mul(t),o=i.div(r);return i.mod(r).eq(ie)||(o=o.add(Pe)),o}static mulDivFloor(e,t,r){if(r.eq(ie))throw new Error("division by 0");return e.mul(t).div(r)}static mulDivCeil(e,t,r){if(r.eq(ie))throw new Error("division by 0");return e.mul(t).add(r.sub(Pe)).div(r)}static x64ToDecimal(e,t){return new X(e.toString()).div(X.pow(2,64)).toDecimalPlaces(t)}static decimalToX64(e){return new B(e.mul(X.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,t){return e.add(Ue).sub(t).mod(Ue)}};function K(n,e){return Mt(n.mul(e),64,256)}function gi(n,e,t){let r=n.toTwos(t).shln(e);return r.imaskn(t+1),r.fromTwos(t)}function Mt(n,e,t){let r=n.toTwos(t).shrn(e);return r.imaskn(t-e+1),r.fromTwos(t-e)}var v=class{static sqrtPriceX64ToPrice(e,t,r){return ae.x64ToDecimal(e).pow(2).mul(X.pow(10,t-r))}static priceToSqrtPriceX64(e,t,r){return ae.decimalToX64(e.mul(X.pow(10,r-t)).sqrt())}static getNextSqrtPriceX64FromInput(e,t,r,i){if(!e.gt(ie))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(ie))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,r,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,r,!0)}static getNextSqrtPriceX64FromOutput(e,t,r,i){if(!e.gt(ie))throw new Error("sqrtPriceX64 must greater than 0");if(!t.gt(ie))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,r,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,t,r,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,t,r,i){if(r.eq(ie))return e;let o=t.shln(ot);if(i){let s=o,a=o.add(r.mul(e));return a.gte(s)?ae.mulDivCeil(s,e,a):ae.mulDivRoundingUp(s,Pe,s.div(e).add(r))}else{let s=r.mul(e);if(!o.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");let a=o.sub(s);return ae.mulDivCeil(o,e,a)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,t,r,i){let o=r.shln(ot);if(i)return e.add(o.div(t));{let s=ae.mulDivRoundingUp(o,Pe,t);if(!e.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountBRoundingDown sqrtPriceX64 must gt amountDivLiquidity");return e.sub(s)}}static getSqrtPriceX64FromTick(e){if(!Number.isInteger(e))throw new Error("tick must be integer");if(e<te||e>oe)throw new Error("tick must be in MIN_TICK and MAX_TICK");let t=e<0?e*-1:e,r=(t&1)!=0?new B("18445821805675395072"):new B("18446744073709551616");return(t&2)!=0&&(r=K(r,new B("18444899583751176192"))),(t&4)!=0&&(r=K(r,new B("18443055278223355904"))),(t&8)!=0&&(r=K(r,new B("18439367220385607680"))),(t&16)!=0&&(r=K(r,new B("18431993317065453568"))),(t&32)!=0&&(r=K(r,new B("18417254355718170624"))),(t&64)!=0&&(r=K(r,new B("18387811781193609216"))),(t&128)!=0&&(r=K(r,new B("18329067761203558400"))),(t&256)!=0&&(r=K(r,new B("18212142134806163456"))),(t&512)!=0&&(r=K(r,new B("17980523815641700352"))),(t&1024)!=0&&(r=K(r,new B("17526086738831433728"))),(t&2048)!=0&&(r=K(r,new B("16651378430235570176"))),(t&4096)!=0&&(r=K(r,new B("15030750278694412288"))),(t&8192)!=0&&(r=K(r,new B("12247334978884435968"))),(t&16384)!=0&&(r=K(r,new B("8131365268886854656"))),(t&32768)!=0&&(r=K(r,new B("3584323654725218816"))),(t&65536)!=0&&(r=K(r,new B("696457651848324352"))),(t&131072)!=0&&(r=K(r,new B("26294789957507116"))),(t&262144)!=0&&(r=K(r,new B("37481735321082"))),e>0&&(r=Kt.div(r)),r}static getTickFromPrice(e,t,r){return v.getTickFromSqrtPriceX64(v.priceToSqrtPriceX64(e,t,r))}static getTickFromSqrtPriceX64(e){if(e.gt(at)||e.lt(st))throw new Error("Provided sqrtPrice is not within the supported sqrtPrice range.");let t=e.bitLength()-1,r=new B(t-64),i=gi(r,32,128),o=new B("8000000000000000","hex"),s=0,a=new B(0),c=t>=64?e.shrn(t-63):e.shln(63-t);for(;o.gt(new B(0))&&s<qt;){c=c.mul(c);let T=c.shrn(127);c=c.shrn(63+T.toNumber()),a=a.add(o.mul(T)),o=o.shrn(1),s+=1}let u=a.shrn(32),l=i.add(u).mul(new B(Gt)),d=Mt(l.sub(new B(Vt)),64,128).toNumber(),p=Mt(l.add(new B(Ut)),64,128).toNumber();return d==p?d:v.getSqrtPriceX64FromTick(p).lte(e)?p:d}},Ae=class{static getTickWithPriceAndTickspacing(e,t,r,i){let s=v.getTickFromSqrtPriceX64(v.priceToSqrtPriceX64(e,r,i))/t;return s<0?s=Math.floor(s):s=Math.ceil(s),s*t}static roundPriceWithTickspacing(e,t,r,i){let o=Ae.getTickWithPriceAndTickspacing(e,t,r,i),s=v.getSqrtPriceX64FromTick(o);return v.sqrtPriceX64ToPrice(s,r,i)}};var O=60,Se=512,C=class{static getTickArrayAddressByTick(e,t,r,i){let o=C.getTickArrayStartIndexByTick(r,i),{publicKey:s}=fe(e,t,o);return s}static getTickOffsetInArray(e,t){if(e%t!=0)throw new Error("tickIndex % tickSpacing not equal 0");let r=C.getTickArrayStartIndexByTick(e,t),i=Math.floor((e-r)/t);if(i<0||i>=O)throw new Error("tick offset in array overflow");return i}static getTickArrayBitIndex(e,t){let r=M.tickCount(t),i=e/r;return e<0&&e%r!=0?i=Math.ceil(i)-1:i=Math.floor(i),i}static getTickArrayStartIndexByTick(e,t){return this.getTickArrayBitIndex(e,t)*M.tickCount(t)}static getTickArrayOffsetInBitmapByTick(e,t){let r=t*O,i=Math.floor(e/r)+512;return Math.abs(i)}static checkTickArrayIsInitialized(e,t,r){let i=r*O,o=Math.floor(t/i)+512,s=Math.abs(o);return{isInitialized:e.testn(s),startIndex:(s-512)*i}}static getNextTickArrayStartIndex(e,t,r){return r?e-t*O:e+t*O}static mergeTickArrayBitmap(e){let t=new hi(0);for(let r=0;r<e.length;r++)t=t.add(e[r].shln(64*r));return t}static getInitializedTickArrayInRange(e,t,r,i,o){let s=Math.floor(i/(r*O));return[...C.searchLowBitFromStart(e,t,s-1,o,r),...C.searchHightBitFromStart(e,t,s,o,r)]}static getAllInitializedTickArrayStartIndex(e,t,r){return C.searchHightBitFromStart(e,t,-7680,Se,r)}static getAllInitializedTickArrayInfo(e,t,r,i,o){let s=[],a=C.getAllInitializedTickArrayStartIndex(r,i,o);for(let c of a){let{publicKey:u}=fe(e,t,c);s.push({tickArrayStartIndex:c,tickArrayAddress:u})}return s}static getAllInitializedTickInTickArray(e){return e.ticks.filter(t=>t.liquidityGross.gtn(0))}static searchLowBitFromStart(e,t,r,i,o){let s=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map(u=>C.mergeTickArrayBitmap(u)),a=[];for(;r>=-7680;){let u=Math.floor((r+7680)/512),m=(r+7680)%512;if(s[u].testn(m)&&a.push(r),r--,a.length===i)break}let c=M.tickCount(o);return a.map(u=>u*c)}static searchHightBitFromStart(e,t,r,i,o){let s=[...[...t.negativeTickArrayBitmap].reverse(),e.slice(0,8),e.slice(8,16),...t.positiveTickArrayBitmap].map(u=>C.mergeTickArrayBitmap(u)),a=[];for(;r<7680;){let u=Math.floor((r+7680)/512),m=(r+7680)%512;if(s[u].testn(m)&&a.push(r),r++,a.length===i)break}let c=M.tickCount(o);return a.map(u=>u*c)}static checkIsOutOfBoundary(e){return e<te||e>oe}static nextInitTick(e,t,r,i,o){if(M.getArrayStartIndex(t,r)!=e.startTickIndex)return null;let a=Math.floor((t-e.startTickIndex)/r);if(i)for(;a>=0;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a-1}else for(o||(a=a+1);a<O;){if(e.ticks[a].liquidityGross.gtn(0))return e.ticks[a];a=a+1}return null}static firstInitializedTick(e,t){if(t){let r=O-1;for(;r>=0;){if(e.ticks[r].liquidityGross.gtn(0))return e.ticks[r];r=r-1}}else{let r=0;for(;r<O;){if(e.ticks[r].liquidityGross.gtn(0))return e.ticks[r];r=r+1}}throw Error(`firstInitializedTick check error: ${e} - ${t}`)}static _getTickPriceLegacy({poolInfo:e,tick:t,baseIn:r}){let i=v.getSqrtPriceX64FromTick(t),o=v.sqrtPriceX64ToPrice(i,e.mintA.decimals,e.mintB.decimals);return r?{tick:t,price:o,tickSqrtPriceX64:i}:{tick:t,price:new X(1).div(o),tickSqrtPriceX64:i}}static _getPriceAndTickLegacy({poolInfo:e,price:t,baseIn:r}){let i=r?t:new X(1).div(t),o=Ae.getTickWithPriceAndTickspacing(i,e.ammConfig.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=v.getSqrtPriceX64FromTick(o),a=v.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return r?{tick:o,price:a}:{tick:o,price:new X(1).div(a)}}static getTickPrice({poolInfo:e,tick:t,baseIn:r}){let i=v.getSqrtPriceX64FromTick(t),o=v.sqrtPriceX64ToPrice(i,e.mintA.decimals,e.mintB.decimals);return r?{tick:t,price:o,tickSqrtPriceX64:i}:{tick:t,price:new X(1).div(o),tickSqrtPriceX64:i}}static getPriceAndTick({poolInfo:e,price:t,baseIn:r}){let i=r?t:new X(1).div(t),o=Ae.getTickWithPriceAndTickspacing(i,e.config.tickSpacing,e.mintA.decimals,e.mintB.decimals),s=v.getSqrtPriceX64FromTick(o),a=v.sqrtPriceX64ToPrice(s,e.mintA.decimals,e.mintB.decimals);return r?{tick:o,price:a}:{tick:o,price:new X(1).div(a)}}};var Et=14,xe=class{static maxTickInTickarrayBitmap(e){return e*O*Se}static getBitmapTickBoundary(e,t){let r=this.maxTickInTickarrayBitmap(t),i=Math.floor(Math.abs(e)/r);e<0&&Math.abs(e)%r!=0&&(i+=1);let o=r*i;return e<0?{minValue:-o,maxValue:-o+r}:{minValue:o,maxValue:o+r}}static nextInitializedTickArrayStartIndex(e,t,r,i){if(!M.checkIsValidStartIndex(t,r))throw Error("nextInitializedTickArrayStartIndex check error");let o=this.maxTickInTickarrayBitmap(r),s=i?t-M.tickCount(r):t+M.tickCount(r);if(s<-o||s>=o)return{isInit:!1,tickIndex:t};let a=r*O,c=s/a+512;s<0&&s%a!=0&&c--;let u=Math.abs(c);if(i){let m=e.shln(1024-u-1),l=pn(1024,m);if(l!==null){let d=(u-l-512)*a;return{isInit:!0,tickIndex:d}}else return{isInit:!1,tickIndex:-o}}else{let m=e.shrn(u),l=gn(1024,m);if(l!==null){let d=(u+l-512)*a;return{isInit:!0,tickIndex:d}}else return{isInit:!1,tickIndex:o-M.tickCount(r)}}}},Ft=class{static getBitmapOffset(e,t){if(!M.checkIsValidStartIndex(e,t))throw new Error("No enough initialized tickArray");this.checkExtensionBoundary(e,t);let r=xe.maxTickInTickarrayBitmap(t),i=Math.floor(Math.abs(e)/r)-1;return e<0&&Math.abs(e)%r===0&&i--,i}static getBitmap(e,t,r){let i=this.getBitmapOffset(e,t);return e<0?{offset:i,tickarrayBitmap:r.negativeTickArrayBitmap[i]}:{offset:i,tickarrayBitmap:r.positiveTickArrayBitmap[i]}}static checkExtensionBoundary(e,t){let{positiveTickBoundary:r,negativeTickBoundary:i}=this.extensionTickBoundary(t);if(e>=i&&e<r)throw Error("checkExtensionBoundary -> InvalidTickArrayBoundary")}static extensionTickBoundary(e){let t=xe.maxTickInTickarrayBitmap(e),r=-t;if(oe<=t)throw Error(`extensionTickBoundary check error: ${oe}, ${t}`);if(r<=te)throw Error(`extensionTickBoundary check error: ${r}, ${te}`);return{positiveTickBoundary:t,negativeTickBoundary:r}}static checkTickArrayIsInit(e,t,r){let{tickarrayBitmap:i}=this.getBitmap(e,t,r),o=this.tickArrayOffsetInBitmap(e,t);return{isInitialized:C.mergeTickArrayBitmap(i).testn(o),startIndex:e}}static nextInitializedTickArrayFromOneBitmap(e,t,r,i){let o=M.tickCount(t),s=r?e-o:e+o,{tickarrayBitmap:a}=this.getBitmap(s,t,i);return this.nextInitializedTickArrayInBitmap(a,s,t,r)}static nextInitializedTickArrayInBitmap(e,t,r,i){let{minValue:o,maxValue:s}=xe.getBitmapTickBoundary(t,r),a=this.tickArrayOffsetInBitmap(t,r);if(i){let c=C.mergeTickArrayBitmap(e).shln(Se-1-a),u=ve(512,c)?null:Nt(512,c);if(u!==null){let m=t-u*M.tickCount(r);return{isInit:!0,tickIndex:m}}else return{isInit:!1,tickIndex:o}}else{let c=C.mergeTickArrayBitmap(e).shrn(a),u=ve(512,c)?null:St(512,c);if(u!==null){let m=t+u*M.tickCount(r);return{isInit:!0,tickIndex:m}}else return{isInit:!1,tickIndex:s-M.tickCount(r)}}}static tickArrayOffsetInBitmap(e,t){let r=Math.abs(e)%xe.maxTickInTickarrayBitmap(t),i=Math.floor(r/M.tickCount(t));return e<0&&r!=0&&(i=Se-i),i}};export{Et as EXTENSION_TICKARRAY_BITMAP_SIZE,xe as TickArrayBitmap,Ft as TickArrayBitmapExtensionUtils};
//# sourceMappingURL=tickarrayBitmap.mjs.map