UNPKG

snapper-sdk

Version:

An SDK for building applications on top of Snapper.

1 lines 61.4 kB
import si from"bn.js";var Te=9e15,pe=1e9,et="0123456789abcdef",ve="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ke="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",tt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Te,maxE:Te,crypto:!1},Rt,se,w=!0,Ge="[DecimalError] ",fe=Ge+"Invalid argument: ",_t=Ge+"Precision limit exceeded",Mt=Ge+"crypto unavailable",Ft="[object Decimal]",U=Math.floor,O=Math.pow,hn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,bn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,wn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ot=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,te=1e7,h=7,yn=9007199254740991,Tn=ve.length-1,nt=Ke.length-1,f={toStringTag:Ft};f.absoluteValue=f.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};f.ceil=function(){return g(new this.constructor(this),this.e+1,2)};f.clampedTo=f.clamp=function(t,e){var n,r=this,i=r.constructor;if(t=new i(t),e=new i(e),!t.s||!e.s)return new i(NaN);if(t.gt(e))throw Error(fe+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new i(r)};f.comparedTo=f.cmp=function(t){var e,n,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,c=o.s,u=t.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!==t.e)return o.e>t.e^c<0?1:-1;for(r=s.length,i=a.length,e=0,n=r<i?r:i;e<n;++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 t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=xn(r,Gt(r,n)),r.precision=t,r.rounding=e,g(se==2||se==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};f.cubeRoot=f.cbrt=function(){var t,e,n,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*O(m.s*m,1/3),!o||Math.abs(o)==1/0?(n=K(m.d),t=m.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=O(n,1/3),t=U((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),r=new l(n),r.s=m.s):r=new l(o.toString()),s=(t=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),K(a.d).slice(0,s)===(n=K(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(g(a,t+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(r,t+1,1),e=!r.times(r).times(r).eq(m));break}return w=!0,g(r,t,l.rounding,e)};f.decimalPlaces=f.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-U(this.e/h))*h,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};f.dividedBy=f.div=function(t){return N(this,new this.constructor(t))};f.dividedToIntegerBy=f.divToInt=function(t){var e=this,n=e.constructor;return g(N(e,new n(t),0,1,1),n.precision,n.rounding)};f.equals=f.eq=function(t){return this.cmp(t)===0};f.floor=function(){return g(new this.constructor(this),this.e+1,3)};f.greaterThan=f.gt=function(t){return this.cmp(t)>0};f.greaterThanOrEqualTo=f.gte=function(t){var e=this.cmp(t);return e==1||e===0};f.hyperbolicCosine=f.cosh=function(){var t,e,n,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;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(t=Math.ceil(i/3),e=(1/Ue(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=xe(s,1,o.times(e),new s(1),!0);for(var c,u=t,m=new s(8);u--;)c=o.times(o),o=a.minus(c.times(m.minus(c.times(m))));return g(o,s.precision=n,s.rounding=r,!0)};f.hyperbolicSine=f.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=xe(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/Ue(5,t)),i=xe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=n,g(i,e,n,!0)};f.hyperbolicTangent=f.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,N(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};f.inverseCosine=f.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?e.isNeg()?ee(n,i,o):new n(0):new n(NaN):e.isZero()?ee(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=ee(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))};f.inverseHyperbolicCosine=f.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,w=!1,n=n.times(n).minus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};f.inverseHyperbolicSine=f.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,w=!1,n=n.times(n).plus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln())};f.inverseHyperbolicTangent=f.atanh=function(){var t,e,n,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):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?g(new o(i),t,e,!0):(o.precision=n=r-i.e,i=N(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)};f.inverseSine=f.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,e!==-1?e===0?(t=ee(o,n+4,r).times(.5),t.s=i.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};f.inverseTangent=f.atan=function(){var t,e,n,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<=nt)return s=ee(m,l+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new m(NaN);if(l+4<=nt)return s=ee(m,l+4,d).times(.5),s.s=u.s,s}for(m.precision=a=l+10,m.rounding=1,n=Math.min(28,a/h+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,e=Math.ceil(a/h),r=1,c=u.times(u),s=new m(u),i=u;t!==-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(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-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&&U(this.e/h)>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(t){return this.cmp(t)<0};f.lessThanOrEqualTo=f.lte=function(t){return this.cmp(t)<1};f.logarithm=f.log=function(t){var e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding,p=5;if(t==null)t=new m(10),e=!0;else{if(t=new m(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new m(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new m(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=l+p,s=de(u,a),r=e?qe(m,a+10):de(t,a),c=N(s,r,a,1),Ie(c.d,i=l,d))do if(a+=10,s=de(u,a),r=e?qe(m,a+10):de(t,a),c=N(s,r,a,1),!o){+K(c.d).slice(i+1,i+15)+1==1e14&&(c=g(c,l+1,0));break}while(Ie(c.d,i+=10,d));return w=!0,g(c,l,d)};f.minus=f.sub=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.constructor;if(t=new y(t),!p.d||!t.d)return!p.s||!t.s?t=new y(NaN):p.d?t.s=-t.s:t=new y(t.d||p.s!==t.s?p:NaN),t;if(p.s!=t.s)return t.s=-t.s,p.plus(t);if(u=p.d,d=t.d,a=y.precision,c=y.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new y(p);else return new y(c===3?-0:0);return w?g(t,a,c):t}if(n=U(t.e/h),m=U(p.e/h),u=u.slice(),o=m-n,o){for(l=o<0,l?(e=u,o=-o,s=d.length):(e=d,n=m,s=u.length),r=Math.max(Math.ceil(a/h),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,t.s=-t.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]=te-1;--u[i],u[r]+=te}u[r]-=d[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=Ve(u,n),w?g(t,a,c):t):new y(c===3?-0:0)};f.modulo=f.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?g(new r(n),r.precision,r.rounding):(w=!1,r.modulo==9?(e=N(n,t.abs(),0,3,1),e.s*=t.s):e=N(n,t,0,r.modulo,1),e=e.times(t),w=!0,n.minus(e))};f.naturalExponential=f.exp=function(){return rt(this)};f.naturalLogarithm=f.ln=function(){return de(this)};f.negated=f.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};f.plus=f.add=function(t){var e,n,r,i,o,s,a,c,u,m,l=this,d=l.constructor;if(t=new d(t),!l.d||!t.d)return!l.s||!t.s?t=new d(NaN):l.d||(t=new d(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(u=l.d,m=t.d,a=d.precision,c=d.rounding,!u[0]||!m[0])return m[0]||(t=new d(l)),w?g(t,a,c):t;if(o=U(l.e/h),r=U(t.e/h),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=m.length):(n=m,r=o,s=u.length),o=Math.ceil(a/h),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=m.length,s-i<0&&(i=s,n=m,m=u,u=n),e=0;i;)e=(u[--i]=u[i]+m[i]+e)/te|0,u[i]%=te;for(e&&(u.unshift(e),++r),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=Ve(u,r),w?g(t,a,c):t};f.precision=f.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(fe+t);return n.d?(e=Dt(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};f.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};f.sine=f.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=Pn(r,Gt(r,n)),r.precision=t,r.rounding=e,g(se>2?n.neg():n,t,e,!0)):new r(NaN)};f.squareRoot=f.sqrt=function(){var t,e,n,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=K(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=U((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()),n=(c=m.precision)+3;;)if(o=r,r=o.plus(N(s,o,n+2,1)).times(.5),K(o.d).slice(0,n)===(e=K(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!i&&e=="4999"){if(!i&&(g(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(r,c+1,1),t=!r.times(r).eq(s));break}return w=!0,g(r,c,m.rounding,t)};f.tangent=f.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=N(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,g(se==2||se==4?n.neg():n,t,e,!0)):new r(NaN)};f.times=f.mul=function(t){var e,n,r,i,o,s,a,c,u,m=this,l=m.constructor,d=m.d,p=(t=new l(t)).d;if(t.s*=m.s,!d||!d[0]||!p||!p[0])return new l(!t.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?t.s/0:t.s*0);for(n=U(m.e/h)+U(t.e/h),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%te|0,e=a/te|0;o[i]=(o[i]+e)%te|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=Ve(o,n),w?g(t,l.precision,l.rounding):t};f.toBinary=function(t,e){return ot(this,2,t,e)};f.toDecimalPlaces=f.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(z(t,0,pe),e===void 0?e=r.rounding:z(e,0,8),g(n,t+n.e+1,e))};f.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ne(r,!0):(z(t,0,pe),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),t+1,e),n=ne(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return t===void 0?n=ne(i):(z(t,0,pe),e===void 0?e=o.rounding:z(e,0,8),r=g(new o(i),t+i.e+1,e),n=ne(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};f.toFraction=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.d,b=p.constructor;if(!y)return new b(p);if(u=n=new b(1),r=c=new b(0),e=new b(r),o=e.e=Dt(y)-p.e-1,s=o%h,e.d[0]=O(10,s<0?h+s:s),t==null)t=o>0?e:u;else{if(a=new b(t),!a.isInt()||a.lt(u))throw Error(fe+a);t=a.gt(e)?o>0?e:u:a}for(w=!1,a=new b(K(y)),m=b.precision,b.precision=o=y.length*h*2;l=N(a,e,0,1,1),i=n.plus(l.times(r)),i.cmp(t)!=1;)n=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(t.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=p.s,d=N(u,r,o,1).minus(p).abs().cmp(N(c,n,o,1).minus(p).abs())<1?[u,r]:[c,n],b.precision=m,w=!0,d};f.toHexadecimal=f.toHex=function(t,e){return ot(this,16,t,e)};f.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:z(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(w=!1,n=N(n,t,0,e,1).times(t),w=!0,g(n)):(t.s=n.s,n=t),n};f.toNumber=function(){return+this};f.toOctal=function(t,e){return ot(this,8,t,e)};f.toPower=f.pow=function(t){var e,n,r,i,o,s,a=this,c=a.constructor,u=+(t=new c(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new c(O(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,t.eq(1))return g(a,r,o);if(e=U(t.e/h),e>=t.d.length-1&&(n=u<0?-u:u)<=yn)return i=vt(c,a,n,r),t.s<0?new c(1).div(i):g(i,r,o);if(s=a.s,s<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=O(+a,u),e=n==0||!isFinite(n)?U(u*(Math.log("0."+K(a.d))/Math.LN10+a.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(w=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),i=rt(t.times(de(a,r+n)),r),i.d&&(i=g(i,r+5,1),Ie(i.d,r,o)&&(e=r+10,i=g(rt(t.times(de(a,e+n)),e),e+5,1),+K(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(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ne(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(z(t,1,pe),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),t,e),n=ne(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toSignificantDigits=f.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(z(t,1,pe),e===void 0?e=r.rounding:z(e,0,8)),g(new r(n),t,e)};f.toString=function(){var t=this,e=t.constructor,n=ne(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};f.truncated=f.trunc=function(){return g(new this.constructor(this),this.e+1,1)};f.valueOf=f.toJSON=function(){var t=this,e=t.constructor,n=ne(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function K(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)r=t[e]+"",n=h-r.length,n&&(o+=le(n)),o+=r;s=t[e],r=s+"",n=h-r.length,n&&(o+=le(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function z(t,e,n){if(t!==~~t||t<e||t>n)throw Error(fe+t)}function Ie(t,e,n,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=h,i=0):(i=Math.ceil((e+1)/h),e%=h),o=O(10,h-e),a=t[i]%o|0,r==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(t[i+1]/o/100|0)==O(10,e-2)-1||(a==o/2||a==0)&&(t[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||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==O(10,e-3)-1,s}function De(t,e,n){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=et.indexOf(t.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function xn(t,e){var n,r,i;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),i=(1/Ue(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),t.precision+=n,e=xe(t,1,e.times(i),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var N=function(){function t(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 n(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,y,b,v,S,J,I,G,_e,oe,Qe,Me,Be,Je,$,Fe,Oe=r.constructor,$e=r.s==i.s?1:-1,V=r.d,C=i.d;if(!V||!V[0]||!C||!C[0])return new Oe(!r.s||!i.s||(V?C&&V[0]==C[0]:!C)?NaN:V&&V[0]==0||!C?$e*0:$e/0);for(c?(p=1,m=r.e-i.e):(c=te,p=h,m=U(r.e/p)-U(i.e/p)),$=C.length,Be=V.length,S=new Oe($e),J=S.d=[],l=0;C[l]==(V[l]||0);l++);if(C[l]>(V[l]||0)&&m--,o==null?(oe=o=Oe.precision,s=Oe.rounding):a?oe=o+(r.e-i.e)+1:oe=o,oe<0)J.push(1),y=!0;else{if(oe=oe/p+2|0,l=0,$==1){for(d=0,C=C[0],oe++;(l<Be||d)&&oe--;l++)Qe=d*c+(V[l]||0),J[l]=Qe/C|0,d=Qe%C|0;y=d||l<Be}else{for(d=c/(C[0]+1)|0,d>1&&(C=t(C,d,c),V=t(V,d,c),$=C.length,Be=V.length),Me=$,I=V.slice(0,$),G=I.length;G<$;)I[G++]=0;Fe=C.slice(),Fe.unshift(0),Je=C[0],C[1]>=c/2&&++Je;do d=0,u=e(C,I,$,G),u<0?(_e=I[0],$!=G&&(_e=_e*c+(I[1]||0)),d=_e/Je|0,d>1?(d>=c&&(d=c-1),b=t(C,d,c),v=b.length,G=I.length,u=e(b,I,v,G),u==1&&(d--,n(b,$<v?Fe:C,v,c))):(d==0&&(u=d=1),b=C.slice()),v=b.length,v<G&&b.unshift(0),n(I,b,G,c),u==-1&&(G=I.length,u=e(C,I,$,G),u<1&&(d++,n(I,$<G?Fe:C,G,c))),G=I.length):u===0&&(d++,I=[0]),J[l++]=d,u&&I[0]?I[G++]=V[Me]||0:(I=[V[Me]],G=1);while((Me++<Be||I[0]!==void 0)&&oe--);y=I[0]!==void 0}J[0]||J.shift()}if(p==1)S.e=m,Rt=y;else{for(l=1,d=J[0];d>=10;d/=10)l++;S.e=l+m*p-1,g(S,a?o+S.e+1:o,s,y)}return S}}();function g(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor;e:if(e!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=e-i,o<0)o+=h,s=e,m=l[d=0],c=m/O(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/h),a=l.length,d>=a)if(r){for(;a++<=d;)l.push(0);m=c=0,i=1,o%=h,s=o-h+1}else break e;else{for(m=a=l[d],i=1;a>=10;a/=10)i++;o%=h,s=o-h+i,c=s<0?0:m/O(10,i-s-1)%10|0}if(r=r||e<0||l[d+1]!==void 0||(s<0?m:m%O(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?m/O(10,i-s):0:l[d-1])%10&1||n==(t.s<0?8:7)),e<1||!l[0])return l.length=0,u?(e-=t.e+1,l[0]=O(10,(h-e%h)%h),t.e=-e||0):l[0]=t.e=0,t;if(o==0?(l.length=d,a=1,d--):(l.length=d+1,a=O(10,h-o),l[d]=s>0?(m/O(10,i-s)%O(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&&(t.e++,l[0]==te&&(l[0]=1));break}else{if(l[d]+=a,l[d]!=te)break;l[d--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return w&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function ne(t,e,n){if(!t.isFinite())return qt(t);var r,i=t.e,o=K(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+le(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+le(-i-1)+o,n&&(r=n-s)>0&&(o+=le(r))):i>=s?(o+=le(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+le(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=le(r))),o}function Ve(t,e){var n=t[0];for(e*=h;n>=10;n/=10)e++;return e}function qe(t,e,n){if(e>Tn)throw w=!0,n&&(t.precision=n),Error(_t);return g(new t(ve),e,1,!0)}function ee(t,e,n){if(e>nt)throw Error(_t);return g(new t(Ke),e,n,!0)}function Dt(t){var e=t.length-1,n=e*h+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function le(t){for(var e="";t--;)e+="0";return e}function vt(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/h+4);for(w=!1;;){if(n%2&&(o=o.times(e),Lt(o.d,s)&&(i=!0)),n=U(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Lt(e.d,s)}return w=!0,o}function St(t){return t.d[t.d.length-1]&1}function Kt(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;)if(r=new t(e[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function rt(t,e){var n,r,i,o,s,a,c,u=0,m=0,l=0,d=t.constructor,p=d.rounding,y=d.precision;if(!t.d||!t.d[0]||t.e>17)return new d(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(w=!1,c=y):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(O(2,l))/Math.LN10*2+5|0,c+=r,n=o=s=new d(1),d.precision=c;;){if(o=g(o.times(t),c,1),n=n.times(++m),a=s.plus(N(o,n,c,1)),K(a.d).slice(0,c)===K(s.d).slice(0,c)){for(i=l;i--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Ie(s.d,c-r,p,u))d.precision=c+=10,n=o=a=new d(1),m=0,u++;else return g(s,d.precision=y,p,w=!0);else return d.precision=y,s}s=a}}function de(t,e){var n,r,i,o,s,a,c,u,m,l,d,p=1,y=10,b=t,v=b.d,S=b.constructor,J=S.rounding,I=S.precision;if(b.s<0||!v||!v[0]||!b.e&&v[0]==1&&v.length==1)return new S(v&&!v[0]?-1/0:b.s!=1?NaN:v?0:b);if(e==null?(w=!1,m=I):m=e,S.precision=m+=y,n=K(v),r=n.charAt(0),Math.abs(o=b.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)b=b.times(t),n=K(b.d),r=n.charAt(0),p++;o=b.e,r>1?(b=new S("0."+n),o++):b=new S(r+"."+n.slice(1))}else return u=qe(S,m+2,I).times(o+""),b=de(new S(r+"."+n.slice(1)),m-y).plus(u),S.precision=I,e==null?g(b,I,J,w=!0):b;for(l=b,c=s=b=N(b.minus(1),b.plus(1),m,1),d=g(b.times(b),m,1),i=3;;){if(s=g(s.times(d),m,1),u=c.plus(N(s,new S(i),m,1)),K(u.d).slice(0,m)===K(c.d).slice(0,m))if(c=c.times(2),o!==0&&(c=c.plus(qe(S,m+2,I).times(o+""))),c=N(c,new S(p),m,1),e==null)if(Ie(c.d,m-y,J,a))S.precision=m+=y,u=s=b=N(l.minus(1),l.plus(1),m,1),d=g(b.times(b),m,1),i=a=1;else return g(c,S.precision=I,J,w=!0);else return S.precision=I,c;c=u,i+=2}}function qt(t){return String(t.s*t.s/0)}function it(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=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,t.e=n=n-r-1,t.d=[],r=(n+1)%h,n<0&&(r+=h),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=h;r<i;)t.d.push(+e.slice(r,r+=h));e=e.slice(r),r=h-e.length}else r-=i;for(;r--;)e+="0";t.d.push(+e),w&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function An(t,e){var n,r,i,o,s,a,c,u,m;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Ot.test(e))return it(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(bn.test(e))n=16,e=e.toLowerCase();else if(hn.test(e))n=2;else if(wn.test(e))n=8;else throw Error(fe+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=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,i=vt(r,new r(n),o,o*2)),u=De(e,n,te),m=u.length-1,o=m;u[o]===0;--o)u.pop();return o<0?new r(t.s*0):(t.e=Ve(u,m),t.d=u,w=!1,s&&(t=N(t,i,a*4)),c&&(t=t.times(Math.abs(c)<54?O(2,c):Ne.pow(2,c))),w=!0,t)}function Pn(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:xe(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/Ue(5,n)),e=xe(t,2,e,e);for(var i,o=new t(5),s=new t(16),a=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}function xe(t,e,n,r,i){var o,s,a,c,u=1,m=t.precision,l=Math.ceil(m/h);for(w=!1,c=n.times(n),a=new t(r);;){if(s=N(a.times(c),new t(e++*e++),m,1),a=i?r.plus(s):r.minus(s),r=N(s.times(c),new t(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 Ue(t,e){for(var n=t;--e;)n*=t;return n}function Gt(t,e){var n,r=e.s<0,i=ee(t,t.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return se=r?4:1,e;if(n=e.divToInt(i),n.isZero())se=r?3:2;else{if(e=e.minus(n.times(i)),e.lte(o))return se=St(n)?r?2:3:r?4:1,e;se=St(n)?r?1:4:r?3:2}return e.minus(i).abs()}function ot(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor,y=n!==void 0;if(y?(z(n,1,pe),r===void 0?r=p.rounding:z(r,0,8)):(n=p.precision,r=p.rounding),!t.isFinite())m=qt(t);else{for(m=ne(t),s=m.indexOf("."),y?(i=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):i=e,s>=0&&(m=m.replace(".",""),d=new p(1),d.e=m.length-s,d.d=De(ne(d),10,i),d.e=d.d.length),l=De(m,10,i),o=c=l.length;l[--c]==0;)l.pop();if(!l[0])m=y?"0p+0":"0";else{if(s<0?o--:(t=new p(t),t.d=l,t.e=o,t=N(t,d,n,r,0,i),l=t.d,o=t.e,u=Rt),s=l[n],a=i/2,u=u||l[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[n-1]&1||r===(t.s<0?8:7)),l.length=n,u)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,m="";s<c;s++)m+=et.charAt(l[s]);if(y){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)m+="0";for(l=De(m,i,e),c=l.length;!l[c-1];--c);for(s=1,m="1.";s<c;s++)m+=et.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 t.s<0?"-"+m:m}function Lt(t,e){if(t.length>e)return t.length=e,!0}function kn(t){return new this(t).abs()}function Bn(t){return new this(t).acos()}function In(t){return new this(t).acosh()}function Nn(t,e){return new this(t).plus(e)}function Cn(t){return new this(t).asin()}function Sn(t){return new this(t).asinh()}function Ln(t){return new this(t).atan()}function En(t){return new this(t).atanh()}function Rn(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=ee(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?ee(this,r,i):new this(0),n.s=t.s):!t.d||e.isZero()?(n=ee(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(N(t,e,o,1)),e=ee(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(N(t,e,o,1)),n}function _n(t){return new this(t).cbrt()}function Mn(t){return g(t=new this(t),t.e+1,2)}function Fn(t,e,n){return new this(t).clamp(e,n)}function On(t){if(!t||typeof t!="object")throw Error(Ge+"Object expected");var e,n,r,i=t.defaults===!0,o=["precision",1,pe,"rounding",0,8,"toExpNeg",-Te,0,"toExpPos",0,Te,"maxE",0,Te,"minE",-Te,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=tt[n]),(r=t[n])!==void 0)if(U(r)===r&&r>=o[e+1]&&r<=o[e+2])this[n]=r;else throw Error(fe+n+": "+r);if(n="crypto",i&&(this[n]=tt[n]),(r=t[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(Mt);else this[n]=!1;else throw Error(fe+n+": "+r);return this}function Dn(t){return new this(t).cos()}function vn(t){return new this(t).cosh()}function Vt(t){var e,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Et(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 it(u,o.toString())}else if(c!=="string")throw Error(fe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Ot.test(o)?it(u,o):An(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=On,i.clone=Vt,i.isDecimal=Et,i.abs=kn,i.acos=Bn,i.acosh=In,i.add=Nn,i.asin=Cn,i.asinh=Sn,i.atan=Ln,i.atanh=En,i.atan2=Rn,i.cbrt=_n,i.ceil=Mn,i.clamp=Fn,i.cos=Dn,i.cosh=vn,i.div=Kn,i.exp=qn,i.floor=Gn,i.hypot=Vn,i.ln=Un,i.log=Wn,i.log10=zn,i.log2=Xn,i.max=Hn,i.min=jn,i.mod=Yn,i.mul=Zn,i.pow=Qn,i.random=Jn,i.round=$n,i.sign=er,i.sin=tr,i.sinh=nr,i.sqrt=rr,i.sub=ir,i.sum=or,i.tan=sr,i.tanh=ar,i.trunc=ur,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return i.config(t),i}function Kn(t,e){return new this(t).div(e)}function qn(t){return new this(t).exp()}function Gn(t){return g(t=new this(t),t.e+1,3)}function Vn(){var t,e,n=new this(0);for(w=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return w=!0,new this(1/0);n=e}return w=!0,n.sqrt()}function Et(t){return t instanceof Ne||t&&t.toStringTag===Ft||!1}function Un(t){return new this(t).ln()}function Wn(t,e){return new this(t).log(e)}function Xn(t){return new this(t).log(2)}function zn(t){return new this(t).log(10)}function Hn(){return Kt(this,arguments,"lt")}function jn(){return Kt(this,arguments,"gt")}function Yn(t,e){return new this(t).mod(e)}function Zn(t,e){return new this(t).mul(e)}function Qn(t,e){return new this(t).pow(e)}function Jn(t){var e,n,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:z(t,1,pe),r=Math.ceil(t/h),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(Mt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=h,r&&t&&(i=O(10,h-t),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=h)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<h&&(n-=h-r)}return s.e=n,s.d=a,s}function $n(t){return g(t=new this(t),t.e+1,this.rounding)}function er(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function tr(t){return new this(t).sin()}function nr(t){return new this(t).sinh()}function rr(t){return new this(t).sqrt()}function ir(t,e){return new this(t).sub(e)}function or(){var t=0,e=arguments,n=new this(e[t]);for(w=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return w=!0,g(n,this.precision,this.rounding)}function sr(t){return new this(t).tan()}function ar(t){return new this(t).tanh()}function ur(t){return g(t=new this(t),t.e+1,1)}f[Symbol.for("nodejs.util.inspect.custom")]=f.toString;f[Symbol.toStringTag]="Decimal";var Ne=f.constructor=Vt(tt);ve=new Ne(ve);Ke=new Ne(Ke);var W=Ne;import Z from"bn.js";var re=new Z(0),Ae=new Z(1),Ut=new Z(-1),We=new Z(1).shln(64),Xe=new Z(1).shln(128),cr=We.sub(Ae),st=64,Wt=Xe.subn(1),ae=-443636,ge=-ae,at=new Z("4295048016"),ut=new Z("79226673521066979257578248091"),ci=new Z("4295048017"),mi=new Z("79226673521066979257578248090"),Xt=16,zt="59543866431248",Ht="184467440737095516",jt="15793534762490258745",mr=new Z(10).pow(new Z(6));var li=new Z("18446744073700000000");import B from"bn.js";import pi from"bn.js";import{PublicKey as fr}from"@solana/web3.js";import{get as Yt,set as lr}from"lodash";var ct=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 n=e.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}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}},Zt={},dr={};function Q(t){let e=Yt(Zt,t);if(!e){let n=Yt(dr,t);e=new ct({name:t,logLevel:n}),lr(Zt,t,e)}return e}import{MINT_SIZE as Bi,TOKEN_PROGRAM_ID as Ii,getTransferFeeConfig as Ni,unpackMint as Ci}from"@solana/spl-token";var mt=Q("Raydium_accountInfo_util");async function ze(t,e,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}={batchRequest:!1,...n},s=lt(e,o),a=new Array(s.length).fill([]);if(r){let c=s.map(l=>{let d=t._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=lt(c,10);a=(await(await Promise.all(u.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(d=>{if(d){let{data:p,executable:y,lamports:b,owner:v,rentEpoch:S}=d;return p.length!==2&&p[1]!=="base64"&&mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:y,lamports:b,owner:new fr(v),rentEpoch:S}}return null})))}else try{a=await Promise.all(s.map(c=>t.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import ce from"bn.js";import Ar from"big.js";import Xi from"bn.js";import gr from"toformat";var hr=gr,Ce=hr;import je from"big.js";import wr from"bn.js";import yr from"decimal.js-light";import Se from"bn.js";var Qt=9007199254740991;function ue(t){let e=Q("Raydium_parseBigNumberish");if(t instanceof Se)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Se(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=Qt||t<=-Qt)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Se(String(t))):typeof t=="bigint"?new Se(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Se(0))}var He=Q("module/fraction"),ft=Ce(je),Le=Ce(yr),Tr={[0]:Le.ROUND_DOWN,[1]:Le.ROUND_HALF_UP,[2]:Le.ROUND_UP},xr={[0]:je.roundDown,[1]:je.roundHalfUp,[2]:je.roundUp},L=class{constructor(e,n=new wr(1)){this.numerator=ue(e),this.denominator=ue(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new L(this.denominator,this.numerator)}add(e){let n=e instanceof L?e:new L(ue(e));return this.denominator.eq(n.denominator)?new L(this.numerator.add(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof L?e:new L(ue(e));return this.denominator.eq(n.denominator)?new L(this.numerator.sub(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof L?e:new L(ue(e));return new L(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof L?e:new L(ue(e));return new L(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},r=1){Number.isInteger(e)||He.logWithError(`${e} is not an integer.`),e<=0&&He.logWithError(`${e} is not positive.`),Le.set({precision:e+1,rounding:Tr[r]});let i=new Le(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},r=1){return Number.isInteger(e)||He.logWithError(`${e} is not an integer.`),e<0&&He.logWithError(`${e} is negative.`),ft.DP=e,ft.RM=xr[r]||1,new ft(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var eo=Q("Raydium_amount"),to=Ce(Ar);import{PublicKey as kr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jt}from"@solana/spl-token";var $t={chainId:101,address:kr.default.toBase58(),programId:Jt.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},be={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Jt.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as gt}from"@solana/web3.js";import{PublicKey as E,SystemProgram as en,SYSVAR_RENT_PUBKEY as Br}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ir}from"@solana/spl-token";function pt({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var co=[pt({pubkey:Ir,isWritable:!1}),pt({pubkey:en.programId,isWritable:!1}),pt({pubkey:Br,isWritable:!1})];function tn({publicKey:t,transformSol:e}){let n=nn(t.toString());if(n instanceof E)return e&&n.equals(Ee)?dt:n;if(e&&n.toString()===Ee.toBase58())return dt;if(typeof n=="string"){if(n===E.default.toBase58())return E.default;try{return new E(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function nn(t){try{return new E(t)}catch{return t}}var mo=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),lo=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),fo=new E("SysvarRent111111111111111111111111111111111"),po=new E("SysvarC1ock11111111111111111111111111111111"),Nr=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),go=new E("Sysvar1nstructions1111111111111111111111111"),ho=en.programId,bo=new E("2cpMA1jNS4obgRz8XNg38QuSP83L1AXpUgfxPNcvnAGj"),wo=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),yo=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),To=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),xo=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ao=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Po=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ko=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Bo=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Io=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),No=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),dt=new E("So11111111111111111111111111111111111111112"),Ee=E.default;var ht=class{constructor({mint:e,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===Ee.toBase58()||e instanceof gt&&Ee.equals(e)){this.decimals=be.decimals,this.symbol=be.symbol,this.name=be.name,this.mint=new gt(be.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?gt.default:tn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},we=ht;we.WSOL=new ht({...be,mint:be.address});var bt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=r}equals(e){return this===e}},Ye=bt;Ye.SOL=new bt($t);import Cr from"bn.js";var Ko=new L(new Cr(100));var Xo=Q("Raydium_price");import{PublicKey as us}from"@solana/web3.js";import ms from"bn.js";var Sr=new ce(0),Cs=new ce(1),Ss=new ce(2),Ls=new ce(3),Es=new ce(5),Pr=new ce(10),Rs=new ce(100),_s=new ce(1e3),Ms=new ce(1e4);function lt(t,e=1,n=[]){let r=[...t];if(e<=0)return n;for(;r.length;)n.push(r.splice(0,e));return n}import{PublicKey as oa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as aa}from"@solana/spl-token";import{ComputeBudgetProgram as Us,Keypair as zs,PublicKey as Lr,Transaction as js,TransactionMessage as Zs,VersionedTransaction as Qs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ta}from"@solana/spl-token";var na=Q("Raydium_txUtil");function xt(t,e){let[n,r]=Lr.findProgramAddressSync(t,e);return{publicKey:n,nonce:r}}import{PublicKey as T}from"@solana/web3.js";var la=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),da=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),fa=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),pa=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ga=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ha=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ba=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),wa=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ya=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ta=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xa=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Aa=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Pa=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ka=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ba=new T("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ia=new T("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Na=new T("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ca=new T("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Sa=new T("SNaPnpKUY656VPwbKmKT8FG4T85g4VWhRH1B4TQUfKs"),La=new T("9pR79Lqe6wDNjag3v8MeVYUostoXjY2ognTydor6AtEZ"),Ea=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Er=new T("4AscABy58S62owbByjUUkQfZsP7fxYH1rDYb69V58HPM"),Rr=new T("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),_r=new T("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Ra=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mr=new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),_a=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Fr=new T("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Ma={SERUM_MARKET:T.default,OPENBOOK_MARKET:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:T.default,FarmV3:new T("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new T("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new T("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new T("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new T("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new T("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new T("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new T("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Er,CREATE_CPMM_POOL_AUTH:Rr,CREATE_CPMM_POOL_FEE_ACC:_r,FEE_DESTINATION_ID:new T("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Mr,LCOK_CPMM_AUTH:Fr};import{PublicKey as Or,AddressLookupTableAccount as rn}from"@solana/web3.js";var Dr={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new rn({key:new Or("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:rn.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};import{PublicKey as Qa,sendAndConfirmTransaction as Ja,Transaction as eu,TransactionMessage as nu,VersionedTransaction as ru}from"@solana/web3.js";import ou from"axios";function on(t){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,t,!1),new Uint8Array(e)}var _u=Buffer.from("amm_config","utf8"),Mu=Buffer.from("pool","utf8"),Fu=Buffer.from("pool_vault","utf8"),Ou=Buffer.from("pool_reward_vault","utf8"),Du=Buffer.from("position","utf8"),vr=Buffer.from("tick_array","utf8"),vu=Buffer.from("operation","utf8"),Ku=Buffer.from("pool_tick_array_bitmap_extension","utf8"),qu=Buffer.from("observation","utf8");function me(t,e,n){return xt([vr,e.toBuffer(),on(n)],t)}var Gu=Buffer.from("locked_position","utf8");import{PublicKey as Lm}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as Rm}from"@solana/spl-token";import Mm from"bn.js";import{PublicKey as Hr}from"@solana/web3.js";import cn,{isBN as mn}from"bn.js";import{bits as Wu,BitStructure as Xu,blob as Kr,Blob as zu,cstr as Hu,f32 as ju,f32be as Yu,f64 as Zu,f64be as Qu,greedy as Ju,Layout as qr,ns64 as $u,ns64be as ec,nu64 as tc,nu64be as nc,offset as rc,s16 as ic,s16be as oc,s24 as sc,s24be as ac,s32 as Gr,s32be as uc,s40 as cc,s40be as mc,s48 as lc,s48be as dc,s8 as fc,seq as Vr,struct as pc,Structure as Ur,u16 as Wr,u16be as gc,u24 as hc,u24be as bc,u32 as wc,u32be as yc,u40 as Tc,u40be as xc,u48 as Ac,u48be as Pc,u8 as Xr,UInt as zr,union as kc,Union as Bc,unionLayoutDiscriminator as Ic,utf8 as Nc}from"@solana/buffer-layout";var At=qr,sn=Ur;var Pt=zr;var an=Xr,Re=Wr;var he=Gr;var un=Vr;var j=Kr;var Pe=class extends At{constructor(n,r,i){super(n,i);this.blob=j(n),this.signed=r}decode(n,r=0){let i=new cn(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function H(t){return new Pt(1,t)}function ke(t){return new Pt(4,t)}function P(t){return new Pe(8,!1,t)}function _(t){return new Pe(16,!1,t)}function ln(t){return new Pe(8,!0,t)}function dn(t){return new Pe(16,!0,t)}var Ze=class extends At{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function k(t){return new Ze(j(32),e=>new Hr(e),e=>e.toBuffer(),t)}function fn(t){return new Ze(an(),jr,Yr,t)}function jr(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function Yr(t){return t?1:0}var kt=class extends sn{decode(e,n){return super.decode(e,n)}};function X(t,e,n){return new kt(t,e,n)}function R(t,e,n){let r,i=typeof e=="number"?e:mn(e)?e.toNumber():new Proxy(e,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=mn(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 un(t,i,n)}var Zr=15,Y=class{static async getTickArrays(e,n,r,i,o,s,a){let c=[],u=M.getTickArrayStartIndexByTick(i,o),m=M.getInitializedTickArrayInRange(s,a,o,u,Math.floor(Zr/2));for(let p=0;p<m.length;p++){let{publicKey:y}=me(n,r,m[p]);c.push(y)}let l=(await ze(e,c)).map(p=>p!==null?Bt.decode(p.data):null),d={};for(let p=0;p<c.length;p++){let y=l[p];y!==null&&(d[y.startTickIndex]={...y,address:c[p]})}return d}static nextInitializedTick(e,n,r,i,o,s){let{initializedTick:a,tickArrayAddress:c,tickArrayStartTickIndex:u}=this.nextInitializedTickInOneArray(e,n,r,i,o,s);for(;a==null||a.liquidityGross.lten(0);){if(u=M.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,n,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,n,r,i,o){let s=Math.floor(e/Y.tickCount(n)),a=r?M.searchLowBitFromStart(i,o,s-1,1,n):M.searchHightBitFromStart(i,o,s+1,1,n);return a.length>0?{isExist:!0,nextStartIndex:a[0]}:{isExist:!1,nextStartIndex:0}}static firstInitializedTickInOneArray(e,n,r,i){let o;if(i){let a=q-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<q;){let c=r.ticks[a];if(c.liquidityGross.gtn(0)){o=c;break}a=a+1}}let{publicKey:s}=me(e,n,r.startTickIndex);return{nextTick:o,tickArrayAddress:s,tickArrayStartTickIndex:r.startTickIndex}}static nextInitializedTickInOneArray(e,n,r,i,o,s){let a=M.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<q;){let d=u.ticks[c];if(d.liquidityGross.gtn(0)){m=d;break}c=c+1}let{publicKey:l}=me(e,n,a);return{initiali