@cortex-js/math-json
Version:
A JSON schema to represent math formulas
7 lines • 101 kB
JavaScript
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).ComputeEngine={})}(this,(function(n){var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i={exports:{}};!function(n){!function(e){var i,t,r,o,u=9e15,a=1e9,s="0123456789abcdef",l="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",c="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",f={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-u,maxE:u,crypto:!1},m=!0,d="[DecimalError] ",h=d+"Invalid argument: ",p=d+"Precision limit exceeded",g=d+"crypto unavailable",v=Math.floor,N=Math.pow,b=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,w=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,y=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,x=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,M=1e7,F=l.length-1,S=c.length-1,I={name:"[object Decimal]"};function E(n){var e,i,t,r=n.length-1,o="",u=n[0];if(r>0){for(o+=u,e=1;e<r;e++)(i=7-(t=n[e]+"").length)&&(o+=R(i)),o+=t;(i=7-(t=(u=n[e])+"").length)&&(o+=R(i))}else if(0===u)return"0";for(;u%10==0;)u/=10;return o+u}function D(n,e,i){if(n!==~~n||n<e||n>i)throw Error(h+n)}function T(n,e,i,t){var r,o,u,a;for(o=n[0];o>=10;o/=10)--e;return--e<0?(e+=7,r=0):(r=Math.ceil((e+1)/7),e%=7),o=N(10,7-e),a=n[r]%o|0,null==t?e<3?(0==e?a=a/100|0:1==e&&(a=a/10|0),u=i<4&&99999==a||i>3&&49999==a||5e4==a||0==a):u=(i<4&&a+1==o||i>3&&a+1==o/2)&&(n[r+1]/o/100|0)==N(10,e-2)-1||(a==o/2||0==a)&&0==(n[r+1]/o/100|0):e<4?(0==e?a=a/1e3|0:1==e?a=a/100|0:2==e&&(a=a/10|0),u=(t||i<4)&&9999==a||!t&&i>3&&4999==a):u=((t||i<4)&&a+1==o||!t&&i>3&&a+1==o/2)&&(n[r+1]/o/1e3|0)==N(10,e-3)-1,u}function P(n,e,i){for(var t,r,o=[0],u=0,a=n.length;u<a;){for(r=o.length;r--;)o[r]*=e;for(o[0]+=s.indexOf(n.charAt(u++)),t=0;t<o.length;t++)o[t]>i-1&&(void 0===o[t+1]&&(o[t+1]=0),o[t+1]+=o[t]/i|0,o[t]%=i)}return o.reverse()}I.absoluteValue=I.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),A(n)},I.ceil=function(){return A(new this.constructor(this),this.e+1,2)},I.comparedTo=I.cmp=function(n){var e,i,t,r,o=this,u=o.d,a=(n=new o.constructor(n)).d,s=o.s,l=n.s;if(!u||!a)return s&&l?s!==l?s:u===a?0:!u^s<0?1:-1:NaN;if(!u[0]||!a[0])return u[0]?s:a[0]?-l:0;if(s!==l)return s;if(o.e!==n.e)return o.e>n.e^s<0?1:-1;for(e=0,i=(t=u.length)<(r=a.length)?t:r;e<i;++e)if(u[e]!==a[e])return u[e]>a[e]^s<0?1:-1;return t===r?0:t>r^s<0?1:-1},I.cosine=I.cos=function(){var n,e,i=this,t=i.constructor;return i.d?i.d[0]?(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+7,t.rounding=1,i=function(n,e){var i,t,r=e.d.length;r<32?t=(1/$(4,i=Math.ceil(r/3))).toString():(i=16,t="2.3283064365386962890625e-10"),n.precision+=i,e=W(n,1,e.times(t),new n(1));for(var o=i;o--;){var u=e.times(e);e=u.times(u).minus(u).times(8).plus(1)}return n.precision-=i,e}(t,Y(t,i)),t.precision=n,t.rounding=e,A(2==o||3==o?i.neg():i,n,e,!0)):new t(1):new t(NaN)},I.cubeRoot=I.cbrt=function(){var n,e,i,t,r,o,u,a,s,l,c=this,f=c.constructor;if(!c.isFinite()||c.isZero())return new f(c);for(m=!1,(o=c.s*N(c.s*c,1/3))&&Math.abs(o)!=1/0?t=new f(o.toString()):(i=E(c.d),(o=((n=c.e)-i.length+1)%3)&&(i+=1==o||-2==o?"0":"00"),o=N(i,1/3),n=v((n+1)/3)-(n%3==(n<0?-1:2)),(t=new f(i=o==1/0?"5e"+n:(i=o.toExponential()).slice(0,i.indexOf("e")+1)+n)).s=c.s),u=(n=f.precision)+3;;)if(l=(s=(a=t).times(a).times(a)).plus(c),t=C(l.plus(c).times(a),l.plus(s),u+2,1),E(a.d).slice(0,u)===(i=E(t.d)).slice(0,u)){if("9999"!=(i=i.slice(u-3,u+1))&&(r||"4999"!=i)){+i&&(+i.slice(1)||"5"!=i.charAt(0))||(A(t,n+1,1),e=!t.times(t).times(t).eq(c));break}if(!r&&(A(a,n+1,0),a.times(a).times(a).eq(c))){t=a;break}u+=4,r=1}return m=!0,A(t,n,f.rounding,e)},I.decimalPlaces=I.dp=function(){var n,e=this.d,i=NaN;if(e){if(i=7*((n=e.length-1)-v(this.e/7)),n=e[n])for(;n%10==0;n/=10)i--;i<0&&(i=0)}return i},I.dividedBy=I.div=function(n){return C(this,new this.constructor(n))},I.dividedToIntegerBy=I.divToInt=function(n){var e=this.constructor;return A(C(this,new e(n),0,1,1),e.precision,e.rounding)},I.equals=I.eq=function(n){return 0===this.cmp(n)},I.floor=function(){return A(new this.constructor(this),this.e+1,3)},I.greaterThan=I.gt=function(n){return this.cmp(n)>0},I.greaterThanOrEqualTo=I.gte=function(n){var e=this.cmp(n);return 1==e||0===e},I.hyperbolicCosine=I.cosh=function(){var n,e,i,t,r,o=this,u=o.constructor,a=new u(1);if(!o.isFinite())return new u(o.s?1/0:NaN);if(o.isZero())return a;i=u.precision,t=u.rounding,u.precision=i+Math.max(o.e,o.sd())+4,u.rounding=1,(r=o.d.length)<32?e=(1/$(4,n=Math.ceil(r/3))).toString():(n=16,e="2.3283064365386962890625e-10"),o=W(u,1,o.times(e),new u(1),!0);for(var s,l=n,c=new u(8);l--;)s=o.times(o),o=a.minus(s.times(c.minus(s.times(c))));return A(o,u.precision=i,u.rounding=t,!0)},I.hyperbolicSine=I.sinh=function(){var n,e,i,t,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,i=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,(t=r.d.length)<3)r=W(o,2,r,r,!0);else{n=(n=1.4*Math.sqrt(t))>16?16:0|n,r=W(o,2,r=r.times(1/$(5,n)),r,!0);for(var u,a=new o(5),s=new o(16),l=new o(20);n--;)u=r.times(r),r=r.times(a.plus(u.times(s.times(u).plus(l))))}return o.precision=e,o.rounding=i,A(r,e,i,!0)},I.hyperbolicTangent=I.tanh=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+7,t.rounding=1,C(i.sinh(),i.cosh(),t.precision=n,t.rounding=e)):new t(i.s)},I.inverseCosine=I.acos=function(){var n,e=this,i=e.constructor,t=e.abs().cmp(1),r=i.precision,o=i.rounding;return-1!==t?0===t?e.isNeg()?L(i,r,o):new i(0):new i(NaN):e.isZero()?L(i,r+4,o).times(.5):(i.precision=r+6,i.rounding=1,e=e.asin(),n=L(i,r+4,o).times(.5),i.precision=r,i.rounding=o,n.minus(e))},I.inverseHyperbolicCosine=I.acosh=function(){var n,e,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(n=t.precision,e=t.rounding,t.precision=n+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,m=!1,i=i.times(i).minus(1).sqrt().plus(i),m=!0,t.precision=n,t.rounding=e,i.ln()):new t(i)},I.inverseHyperbolicSine=I.asinh=function(){var n,e,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,m=!1,i=i.times(i).plus(1).sqrt().plus(i),m=!0,t.precision=n,t.rounding=e,i.ln())},I.inverseHyperbolicTangent=I.atanh=function(){var n,e,i,t,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=o.precision,e=o.rounding,t=r.sd(),Math.max(t,n)<2*-r.e-1?A(new o(r),n,e,!0):(o.precision=i=t-r.e,r=C(r.plus(1),new o(1).minus(r),i+n,1),o.precision=n+4,o.rounding=1,r=r.ln(),o.precision=n,o.rounding=e,r.times(.5))):new o(NaN)},I.inverseSine=I.asin=function(){var n,e,i,t,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),i=o.precision,t=o.rounding,-1!==e?0===e?((n=L(o,i+4,t).times(.5)).s=r.s,n):new o(NaN):(o.precision=i+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=i,o.rounding=t,r.times(2)))},I.inverseTangent=I.atan=function(){var n,e,i,t,r,o,u,a,s,l=this,c=l.constructor,f=c.precision,d=c.rounding;if(l.isFinite()){if(l.isZero())return new c(l);if(l.abs().eq(1)&&f+4<=S)return(u=L(c,f+4,d).times(.25)).s=l.s,u}else{if(!l.s)return new c(NaN);if(f+4<=S)return(u=L(c,f+4,d).times(.5)).s=l.s,u}for(c.precision=a=f+10,c.rounding=1,n=i=Math.min(28,a/7+2|0);n;--n)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(m=!1,e=Math.ceil(a/7),t=1,s=l.times(l),u=new c(l),r=l;-1!==n;)if(r=r.times(s),o=u.minus(r.div(t+=2)),r=r.times(s),void 0!==(u=o.plus(r.div(t+=2))).d[e])for(n=e;u.d[n]===o.d[n]&&n--;);return i&&(u=u.times(2<<i-1)),m=!0,A(u,c.precision=f,c.rounding=d,!0)},I.isFinite=function(){return!!this.d},I.isInteger=I.isInt=function(){return!!this.d&&v(this.e/7)>this.d.length-2},I.isNaN=function(){return!this.s},I.isNegative=I.isNeg=function(){return this.s<0},I.isPositive=I.isPos=function(){return this.s>0},I.isZero=function(){return!!this.d&&0===this.d[0]},I.lessThan=I.lt=function(n){return this.cmp(n)<0},I.lessThanOrEqualTo=I.lte=function(n){return this.cmp(n)<1},I.logarithm=I.log=function(n){var e,i,t,r,o,u,a,s,l=this,c=l.constructor,f=c.precision,d=c.rounding;if(null==n)n=new c(10),e=!0;else{if(i=(n=new c(n)).d,n.s<0||!i||!i[0]||n.eq(1))return new c(NaN);e=n.eq(10)}if(i=l.d,l.s<0||!i||!i[0]||l.eq(1))return new c(i&&!i[0]?-1/0:1!=l.s?NaN:i?0:1/0);if(e)if(i.length>1)o=!0;else{for(r=i[0];r%10==0;)r/=10;o=1!==r}if(m=!1,u=B(l,a=f+5),t=e?O(c,a+10):B(n,a),T((s=C(u,t,a,1)).d,r=f,d))do{if(u=B(l,a+=10),t=e?O(c,a+10):B(n,a),s=C(u,t,a,1),!o){+E(s.d).slice(r+1,r+15)+1==1e14&&(s=A(s,f+1,0));break}}while(T(s.d,r+=10,d));return m=!0,A(s,f,d)},I.minus=I.sub=function(n){var e,i,t,r,o,u,a,s,l,c,f,d,h=this,p=h.constructor;if(n=new p(n),!h.d||!n.d)return h.s&&n.s?h.d?n.s=-n.s:n=new p(n.d||h.s!==n.s?h:NaN):n=new p(NaN),n;if(h.s!=n.s)return n.s=-n.s,h.plus(n);if(l=h.d,d=n.d,a=p.precision,s=p.rounding,!l[0]||!d[0]){if(d[0])n.s=-n.s;else{if(!l[0])return new p(3===s?-0:0);n=new p(h)}return m?A(n,a,s):n}if(i=v(n.e/7),c=v(h.e/7),l=l.slice(),o=c-i){for((f=o<0)?(e=l,o=-o,u=d.length):(e=d,i=c,u=l.length),o>(t=Math.max(Math.ceil(a/7),u)+2)&&(o=t,e.length=1),e.reverse(),t=o;t--;)e.push(0);e.reverse()}else{for((f=(t=l.length)<(u=d.length))&&(u=t),t=0;t<u;t++)if(l[t]!=d[t]){f=l[t]<d[t];break}o=0}for(f&&(e=l,l=d,d=e,n.s=-n.s),u=l.length,t=d.length-u;t>0;--t)l[u++]=0;for(t=d.length;t>o;){if(l[--t]<d[t]){for(r=t;r&&0===l[--r];)l[r]=M-1;--l[r],l[t]+=M}l[t]-=d[t]}for(;0===l[--u];)l.pop();for(;0===l[0];l.shift())--i;return l[0]?(n.d=l,n.e=q(l,i),m?A(n,a,s):n):new p(3===s?-0:0)},I.modulo=I.mod=function(n){var e,i=this,t=i.constructor;return n=new t(n),!i.d||!n.s||n.d&&!n.d[0]?new t(NaN):!n.d||i.d&&!i.d[0]?A(new t(i),t.precision,t.rounding):(m=!1,9==t.modulo?(e=C(i,n.abs(),0,3,1)).s*=n.s:e=C(i,n,0,t.modulo,1),e=e.times(n),m=!0,i.minus(e))},I.naturalExponential=I.exp=function(){return j(this)},I.naturalLogarithm=I.ln=function(){return B(this)},I.negated=I.neg=function(){var n=new this.constructor(this);return n.s=-n.s,A(n)},I.plus=I.add=function(n){var e,i,t,r,o,u,a,s,l,c,f=this,d=f.constructor;if(n=new d(n),!f.d||!n.d)return f.s&&n.s?f.d||(n=new d(n.d||f.s===n.s?f:NaN)):n=new d(NaN),n;if(f.s!=n.s)return n.s=-n.s,f.minus(n);if(l=f.d,c=n.d,a=d.precision,s=d.rounding,!l[0]||!c[0])return c[0]||(n=new d(f)),m?A(n,a,s):n;if(o=v(f.e/7),t=v(n.e/7),l=l.slice(),r=o-t){for(r<0?(i=l,r=-r,u=c.length):(i=c,t=o,u=l.length),r>(u=(o=Math.ceil(a/7))>u?o+1:u+1)&&(r=u,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for((u=l.length)-(r=c.length)<0&&(r=u,i=c,c=l,l=i),e=0;r;)e=(l[--r]=l[r]+c[r]+e)/M|0,l[r]%=M;for(e&&(l.unshift(e),++t),u=l.length;0==l[--u];)l.pop();return n.d=l,n.e=q(l,t),m?A(n,a,s):n},I.precision=I.sd=function(n){var e,i=this;if(void 0!==n&&n!==!!n&&1!==n&&0!==n)throw Error(h+n);return i.d?(e=_(i.d),n&&i.e+1>e&&(e=i.e+1)):e=NaN,e},I.round=function(){var n=this,e=n.constructor;return A(new e(n),n.e+1,e.rounding)},I.sine=I.sin=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+7,t.rounding=1,i=function(n,e){var i,t=e.d.length;if(t<3)return W(n,2,e,e);i=(i=1.4*Math.sqrt(t))>16?16:0|i,e=W(n,2,e=e.times(1/$(5,i)),e);for(var r,o=new n(5),u=new n(16),a=new n(20);i--;)r=e.times(e),e=e.times(o.plus(r.times(u.times(r).minus(a))));return e}(t,Y(t,i)),t.precision=n,t.rounding=e,A(o>2?i.neg():i,n,e,!0)):new t(NaN)},I.squareRoot=I.sqrt=function(){var n,e,i,t,r,o,u=this,a=u.d,s=u.e,l=u.s,c=u.constructor;if(1!==l||!a||!a[0])return new c(!l||l<0&&(!a||a[0])?NaN:a?u:1/0);for(m=!1,0==(l=Math.sqrt(+u))||l==1/0?(((e=E(a)).length+s)%2==0&&(e+="0"),l=Math.sqrt(e),s=v((s+1)/2)-(s<0||s%2),t=new c(e=l==1/0?"5e"+s:(e=l.toExponential()).slice(0,e.indexOf("e")+1)+s)):t=new c(l.toString()),i=(s=c.precision)+3;;)if(t=(o=t).plus(C(u,o,i+2,1)).times(.5),E(o.d).slice(0,i)===(e=E(t.d)).slice(0,i)){if("9999"!=(e=e.slice(i-3,i+1))&&(r||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(A(t,s+1,1),n=!t.times(t).eq(u));break}if(!r&&(A(o,s+1,0),o.times(o).eq(u))){t=o;break}i+=4,r=1}return m=!0,A(t,s,c.rounding,n)},I.tangent=I.tan=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+10,t.rounding=1,(i=i.sin()).s=1,i=C(i,new t(1).minus(i.times(i)).sqrt(),n+10,0),t.precision=n,t.rounding=e,A(2==o||4==o?i.neg():i,n,e,!0)):new t(NaN)},I.times=I.mul=function(n){var e,i,t,r,o,u,a,s,l,c=this,f=c.constructor,d=c.d,h=(n=new f(n)).d;if(n.s*=c.s,!(d&&d[0]&&h&&h[0]))return new f(!n.s||d&&!d[0]&&!h||h&&!h[0]&&!d?NaN:d&&h?0*n.s:n.s/0);for(i=v(c.e/7)+v(n.e/7),(s=d.length)<(l=h.length)&&(o=d,d=h,h=o,u=s,s=l,l=u),o=[],t=u=s+l;t--;)o.push(0);for(t=l;--t>=0;){for(e=0,r=s+t;r>t;)a=o[r]+h[t]*d[r-t-1]+e,o[r--]=a%M|0,e=a/M|0;o[r]=(o[r]+e)%M|0}for(;!o[--u];)o.pop();return e?++i:o.shift(),n.d=o,n.e=q(o,i),m?A(n,f.precision,f.rounding):n},I.toBinary=function(n,e){return z(this,2,n,e)},I.toDecimalPlaces=I.toDP=function(n,e){var i=this,t=i.constructor;return i=new t(i),void 0===n?i:(D(n,0,a),void 0===e?e=t.rounding:D(e,0,8),A(i,n+i.e+1,e))},I.toExponential=function(n,e){var i,t=this,r=t.constructor;return void 0===n?i=k(t,!0):(D(n,0,a),void 0===e?e=r.rounding:D(e,0,8),i=k(t=A(new r(t),n+1,e),!0,n+1)),t.isNeg()&&!t.isZero()?"-"+i:i},I.toFixed=function(n,e){var i,t,r=this,o=r.constructor;return void 0===n?i=k(r):(D(n,0,a),void 0===e?e=o.rounding:D(e,0,8),i=k(t=A(new o(r),n+r.e+1,e),!1,n+t.e+1)),r.isNeg()&&!r.isZero()?"-"+i:i},I.toFraction=function(n){var e,i,t,r,o,u,a,s,l,c,f,d,p=this,g=p.d,v=p.constructor;if(!g)return new v(p);if(l=i=new v(1),t=s=new v(0),u=(o=(e=new v(t)).e=_(g)-p.e-1)%7,e.d[0]=N(10,u<0?7+u:u),null==n)n=o>0?e:l;else{if(!(a=new v(n)).isInt()||a.lt(l))throw Error(h+a);n=a.gt(e)?o>0?e:l:a}for(m=!1,a=new v(E(g)),c=v.precision,v.precision=o=7*g.length*2;f=C(a,e,0,1,1),1!=(r=i.plus(f.times(t))).cmp(n);)i=t,t=r,r=l,l=s.plus(f.times(r)),s=r,r=e,e=a.minus(f.times(r)),a=r;return r=C(n.minus(i),t,0,1,1),s=s.plus(r.times(l)),i=i.plus(r.times(t)),s.s=l.s=p.s,d=C(l,t,o,1).minus(p).abs().cmp(C(s,i,o,1).minus(p).abs())<1?[l,t]:[s,i],v.precision=c,m=!0,d},I.toHexadecimal=I.toHex=function(n,e){return z(this,16,n,e)},I.toNearest=function(n,e){var i=this,t=i.constructor;if(i=new t(i),null==n){if(!i.d)return i;n=new t(1),e=t.rounding}else{if(n=new t(n),void 0===e?e=t.rounding:D(e,0,8),!i.d)return n.s?i:n;if(!n.d)return n.s&&(n.s=i.s),n}return n.d[0]?(m=!1,i=C(i,n,0,e,1).times(n),m=!0,A(i)):(n.s=i.s,i=n),i},I.toNumber=function(){return+this},I.toOctal=function(n,e){return z(this,8,n,e)},I.toPower=I.pow=function(n){var e,i,t,r,o,u,a=this,s=a.constructor,l=+(n=new s(n));if(!(a.d&&n.d&&a.d[0]&&n.d[0]))return new s(N(+a,l));if((a=new s(a)).eq(1))return a;if(t=s.precision,o=s.rounding,n.eq(1))return A(a,t,o);if((e=v(n.e/7))>=n.d.length-1&&(i=l<0?-l:l)<=9007199254740991)return r=Q(s,a,i,t),n.s<0?new s(1).div(r):A(r,t,o);if((u=a.s)<0){if(e<n.d.length-1)return new s(NaN);if(0==(1&n.d[e])&&(u=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=u,a}return(e=0!=(i=N(+a,l))&&isFinite(i)?new s(i+"").e:v(l*(Math.log("0."+E(a.d))/Math.LN10+a.e+1)))>s.maxE+1||e<s.minE-1?new s(e>0?u/0:0):(m=!1,s.rounding=a.s=1,i=Math.min(12,(e+"").length),(r=j(n.times(B(a,t+i)),t)).d&&T((r=A(r,t+5,1)).d,t,o)&&(e=t+10,+E((r=A(j(n.times(B(a,e+i)),e),e+5,1)).d).slice(t+1,t+15)+1==1e14&&(r=A(r,t+1,0))),r.s=u,m=!0,s.rounding=o,A(r,t,o))},I.toPrecision=function(n,e){var i,t=this,r=t.constructor;return void 0===n?i=k(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(D(n,1,a),void 0===e?e=r.rounding:D(e,0,8),i=k(t=A(new r(t),n,e),n<=t.e||t.e<=r.toExpNeg,n)),t.isNeg()&&!t.isZero()?"-"+i:i},I.toSignificantDigits=I.toSD=function(n,e){var i=this.constructor;return void 0===n?(n=i.precision,e=i.rounding):(D(n,1,a),void 0===e?e=i.rounding:D(e,0,8)),A(new i(this),n,e)},I.toString=function(){var n=this,e=n.constructor,i=k(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+i:i},I.truncated=I.trunc=function(){return A(new this.constructor(this),this.e+1,1)},I.valueOf=I.toJSON=function(){var n=this,e=n.constructor,i=k(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+i:i};var C=function(){function n(n,e,i){var t,r=0,o=n.length;for(n=n.slice();o--;)t=n[o]*e+r,n[o]=t%i|0,r=t/i|0;return r&&n.unshift(r),n}function e(n,e,i,t){var r,o;if(i!=t)o=i>t?1:-1;else for(r=o=0;r<i;r++)if(n[r]!=e[r]){o=n[r]>e[r]?1:-1;break}return o}function i(n,e,i,t){for(var r=0;i--;)n[i]-=r,r=n[i]<e[i]?1:0,n[i]=r*t+n[i]-e[i];for(;!n[0]&&n.length>1;)n.shift()}return function(r,o,u,a,s,l){var c,f,m,d,h,p,g,N,b,w,y,x,F,S,I,E,D,T,P,C,k=r.constructor,q=r.s==o.s?1:-1,O=r.d,L=o.d;if(!(O&&O[0]&&L&&L[0]))return new k(r.s&&o.s&&(O?!L||O[0]!=L[0]:L)?O&&0==O[0]||!L?0*q:q/0:NaN);for(l?(h=1,f=r.e-o.e):(l=M,h=7,f=v(r.e/h)-v(o.e/h)),P=L.length,D=O.length,w=(b=new k(q)).d=[],m=0;L[m]==(O[m]||0);m++);if(L[m]>(O[m]||0)&&f--,null==u?(S=u=k.precision,a=k.rounding):S=s?u+(r.e-o.e)+1:u,S<0)w.push(1),p=!0;else{if(S=S/h+2|0,m=0,1==P){for(d=0,L=L[0],S++;(m<D||d)&&S--;m++)I=d*l+(O[m]||0),w[m]=I/L|0,d=I%L|0;p=d||m<D}else{for((d=l/(L[0]+1)|0)>1&&(L=n(L,d,l),O=n(O,d,l),P=L.length,D=O.length),E=P,x=(y=O.slice(0,P)).length;x<P;)y[x++]=0;(C=L.slice()).unshift(0),T=L[0],L[1]>=l/2&&++T;do{d=0,(c=e(L,y,P,x))<0?(F=y[0],P!=x&&(F=F*l+(y[1]||0)),(d=F/T|0)>1?(d>=l&&(d=l-1),1==(c=e(g=n(L,d,l),y,N=g.length,x=y.length))&&(d--,i(g,P<N?C:L,N,l))):(0==d&&(c=d=1),g=L.slice()),(N=g.length)<x&&g.unshift(0),i(y,g,x,l),-1==c&&(c=e(L,y,P,x=y.length))<1&&(d++,i(y,P<x?C:L,x,l)),x=y.length):0===c&&(d++,y=[0]),w[m++]=d,c&&y[0]?y[x++]=O[E]||0:(y=[O[E]],x=1)}while((E++<D||void 0!==y[0])&&S--);p=void 0!==y[0]}w[0]||w.shift()}if(1==h)b.e=f,t=p;else{for(m=1,d=w[0];d>=10;d/=10)m++;b.e=m+f*h-1,A(b,s?u+b.e+1:u,a,p)}return b}}();function A(n,e,i,t){var r,o,u,a,s,l,c,f,d,h=n.constructor;n:if(null!=e){if(!(f=n.d))return n;for(r=1,a=f[0];a>=10;a/=10)r++;if((o=e-r)<0)o+=7,u=e,s=(c=f[d=0])/N(10,r-u-1)%10|0;else if((d=Math.ceil((o+1)/7))>=(a=f.length)){if(!t)break n;for(;a++<=d;)f.push(0);c=s=0,r=1,u=(o%=7)-7+1}else{for(c=a=f[d],r=1;a>=10;a/=10)r++;s=(u=(o%=7)-7+r)<0?0:c/N(10,r-u-1)%10|0}if(t=t||e<0||void 0!==f[d+1]||(u<0?c:c%N(10,r-u-1)),l=i<4?(s||t)&&(0==i||i==(n.s<0?3:2)):s>5||5==s&&(4==i||t||6==i&&(o>0?u>0?c/N(10,r-u):0:f[d-1])%10&1||i==(n.s<0?8:7)),e<1||!f[0])return f.length=0,l?(e-=n.e+1,f[0]=N(10,(7-e%7)%7),n.e=-e||0):f[0]=n.e=0,n;if(0==o?(f.length=d,a=1,d--):(f.length=d+1,a=N(10,7-o),f[d]=u>0?(c/N(10,r-u)%N(10,u)|0)*a:0),l)for(;;){if(0==d){for(o=1,u=f[0];u>=10;u/=10)o++;for(u=f[0]+=a,a=1;u>=10;u/=10)a++;o!=a&&(n.e++,f[0]==M&&(f[0]=1));break}if(f[d]+=a,f[d]!=M)break;f[d--]=0,a=1}for(o=f.length;0===f[--o];)f.pop()}return m&&(n.e>h.maxE?(n.d=null,n.e=NaN):n.e<h.minE&&(n.e=0,n.d=[0])),n}function k(n,e,i){if(!n.isFinite())return U(n);var t,r=n.e,o=E(n.d),u=o.length;return e?(i&&(t=i-u)>0?o=o.charAt(0)+"."+o.slice(1)+R(t):u>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):r<0?(o="0."+R(-r-1)+o,i&&(t=i-u)>0&&(o+=R(t))):r>=u?(o+=R(r+1-u),i&&(t=i-r-1)>0&&(o=o+"."+R(t))):((t=r+1)<u&&(o=o.slice(0,t)+"."+o.slice(t)),i&&(t=i-u)>0&&(r+1===u&&(o+="."),o+=R(t))),o}function q(n,e){var i=n[0];for(e*=7;i>=10;i/=10)e++;return e}function O(n,e,i){if(e>F)throw m=!0,i&&(n.precision=i),Error(p);return A(new n(l),e,1,!0)}function L(n,e,i){if(e>S)throw Error(p);return A(new n(c),e,i,!0)}function _(n){var e=n.length-1,i=7*e+1;if(e=n[e]){for(;e%10==0;e/=10)i--;for(e=n[0];e>=10;e/=10)i++}return i}function R(n){for(var e="";n--;)e+="0";return e}function Q(n,e,i,t){var r,o=new n(1),u=Math.ceil(t/7+4);for(m=!1;;){if(i%2&&J((o=o.times(e)).d,u)&&(r=!0),0===(i=v(i/2))){i=o.d.length-1,r&&0===o.d[i]&&++o.d[i];break}J((e=e.times(e)).d,u)}return m=!0,o}function Z(n){return 1&n.d[n.d.length-1]}function H(n,e,i){for(var t,r=new n(e[0]),o=0;++o<e.length;){if(!(t=new n(e[o])).s){r=t;break}r[i](t)&&(r=t)}return r}function j(n,e){var i,t,r,o,u,a,s,l=0,c=0,f=0,d=n.constructor,h=d.rounding,p=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:NaN);for(null==e?(m=!1,s=p):s=e,a=new d(.03125);n.e>-2;)n=n.times(a),f+=5;for(s+=t=Math.log(N(2,f))/Math.LN10*2+5|0,i=o=u=new d(1),d.precision=s;;){if(o=A(o.times(n),s,1),i=i.times(++c),E((a=u.plus(C(o,i,s,1))).d).slice(0,s)===E(u.d).slice(0,s)){for(r=f;r--;)u=A(u.times(u),s,1);if(null!=e)return d.precision=p,u;if(!(l<3&&T(u.d,s-t,h,l)))return A(u,d.precision=p,h,m=!0);d.precision=s+=10,i=o=a=new d(1),c=0,l++}u=a}}function B(n,e){var i,t,r,o,u,a,s,l,c,f,d,h=1,p=n,g=p.d,v=p.constructor,N=v.rounding,b=v.precision;if(p.s<0||!g||!g[0]||!p.e&&1==g[0]&&1==g.length)return new v(g&&!g[0]?-1/0:1!=p.s?NaN:g?0:p);if(null==e?(m=!1,c=b):c=e,v.precision=c+=10,t=(i=E(g)).charAt(0),!(Math.abs(o=p.e)<15e14))return l=O(v,c+2,b).times(o+""),p=B(new v(t+"."+i.slice(1)),c-10).plus(l),v.precision=b,null==e?A(p,b,N,m=!0):p;for(;t<7&&1!=t||1==t&&i.charAt(1)>3;)t=(i=E((p=p.times(n)).d)).charAt(0),h++;for(o=p.e,t>1?(p=new v("0."+i),o++):p=new v(t+"."+i.slice(1)),f=p,s=u=p=C(p.minus(1),p.plus(1),c,1),d=A(p.times(p),c,1),r=3;;){if(u=A(u.times(d),c,1),E((l=s.plus(C(u,new v(r),c,1))).d).slice(0,c)===E(s.d).slice(0,c)){if(s=s.times(2),0!==o&&(s=s.plus(O(v,c+2,b).times(o+""))),s=C(s,new v(h),c,1),null!=e)return v.precision=b,s;if(!T(s.d,c-10,N,a))return A(s,v.precision=b,N,m=!0);v.precision=c+=10,l=u=p=C(f.minus(1),f.plus(1),c,1),d=A(p.times(p),c,1),r=a=1}s=l,r+=2}}function U(n){return String(n.s*n.s/0)}function G(n,e){var i,t,r;for((i=e.indexOf("."))>-1&&(e=e.replace(".","")),(t=e.search(/e/i))>0?(i<0&&(i=t),i+=+e.slice(t+1),e=e.substring(0,t)):i<0&&(i=e.length),t=0;48===e.charCodeAt(t);t++);for(r=e.length;48===e.charCodeAt(r-1);--r);if(e=e.slice(t,r)){if(r-=t,n.e=i=i-t-1,n.d=[],t=(i+1)%7,i<0&&(t+=7),t<r){for(t&&n.d.push(+e.slice(0,t)),r-=7;t<r;)n.d.push(+e.slice(t,t+=7));t=7-(e=e.slice(t)).length}else t-=r;for(;t--;)e+="0";n.d.push(+e),m&&(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 V(n,e){var t,r,o,u,a,s,l,c,f;if("Infinity"===e||"NaN"===e)return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(w.test(e))t=16,e=e.toLowerCase();else if(b.test(e))t=2;else{if(!y.test(e))throw Error(h+e);t=8}for((u=e.search(/p/i))>0?(l=+e.slice(u+1),e=e.substring(2,u)):e=e.slice(2),a=(u=e.indexOf("."))>=0,r=n.constructor,a&&(u=(s=(e=e.replace(".","")).length)-u,o=Q(r,new r(t),u,2*u)),u=f=(c=P(e,t,M)).length-1;0===c[u];--u)c.pop();return u<0?new r(0*n.s):(n.e=q(c,f),n.d=c,m=!1,a&&(n=C(n,o,4*s)),l&&(n=n.times(Math.abs(l)<54?N(2,l):i.pow(2,l))),m=!0,n)}function W(n,e,i,t,r){var o,u,a,s,l=n.precision,c=Math.ceil(l/7);for(m=!1,s=i.times(i),a=new n(t);;){if(u=C(a.times(s),new n(e++*e++),l,1),a=r?t.plus(u):t.minus(u),t=C(u.times(s),new n(e++*e++),l,1),void 0!==(u=a.plus(t)).d[c]){for(o=c;u.d[o]===a.d[o]&&o--;);if(-1==o)break}o=a,a=t,t=u,u=o}return m=!0,u.d.length=c+1,u}function $(n,e){for(var i=n;--e;)i*=n;return i}function Y(n,e){var i,t=e.s<0,r=L(n,n.precision,1),u=r.times(.5);if((e=e.abs()).lte(u))return o=t?4:1,e;if((i=e.divToInt(r)).isZero())o=t?3:2;else{if((e=e.minus(i.times(r))).lte(u))return o=Z(i)?t?2:3:t?4:1,e;o=Z(i)?t?1:4:t?3:2}return e.minus(r).abs()}function z(n,e,i,r){var o,u,l,c,f,m,d,h,p,g=n.constructor,v=void 0!==i;if(v?(D(i,1,a),void 0===r?r=g.rounding:D(r,0,8)):(i=g.precision,r=g.rounding),n.isFinite()){for(v?(o=2,16==e?i=4*i-3:8==e&&(i=3*i-2)):o=e,(l=(d=k(n)).indexOf("."))>=0&&(d=d.replace(".",""),(p=new g(1)).e=d.length-l,p.d=P(k(p),10,o),p.e=p.d.length),u=f=(h=P(d,10,o)).length;0==h[--f];)h.pop();if(h[0]){if(l<0?u--:((n=new g(n)).d=h,n.e=u,h=(n=C(n,p,i,r,0,o)).d,u=n.e,m=t),l=h[i],c=o/2,m=m||void 0!==h[i+1],m=r<4?(void 0!==l||m)&&(0===r||r===(n.s<0?3:2)):l>c||l===c&&(4===r||m||6===r&&1&h[i-1]||r===(n.s<0?8:7)),h.length=i,m)for(;++h[--i]>o-1;)h[i]=0,i||(++u,h.unshift(1));for(f=h.length;!h[f-1];--f);for(l=0,d="";l<f;l++)d+=s.charAt(h[l]);if(v){if(f>1)if(16==e||8==e){for(l=16==e?4:3,--f;f%l;f++)d+="0";for(f=(h=P(d,o,e)).length;!h[f-1];--f);for(l=1,d="1.";l<f;l++)d+=s.charAt(h[l])}else d=d.charAt(0)+"."+d.slice(1);d=d+(u<0?"p":"p+")+u}else if(u<0){for(;++u;)d="0"+d;d="0."+d}else if(++u>f)for(u-=f;u--;)d+="0";else u<f&&(d=d.slice(0,u)+"."+d.slice(u))}else d=v?"0p+0":"0";d=(16==e?"0x":2==e?"0b":8==e?"0o":"")+d}else d=U(n);return n.s<0?"-"+d:d}function J(n,e){if(n.length>e)return n.length=e,!0}function X(n){return new this(n).abs()}function K(n){return new this(n).acos()}function nn(n){return new this(n).acosh()}function en(n,e){return new this(n).plus(e)}function tn(n){return new this(n).asin()}function rn(n){return new this(n).asinh()}function on(n){return new this(n).atan()}function un(n){return new this(n).atanh()}function an(n,e){n=new this(n),e=new this(e);var i,t=this.precision,r=this.rounding,o=t+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(i=e.s<0?L(this,t,r):new this(0)).s=n.s:!n.d||e.isZero()?(i=L(this,o,1).times(.5)).s=n.s:e.s<0?(this.precision=o,this.rounding=1,i=this.atan(C(n,e,o,1)),e=L(this,o,1),this.precision=t,this.rounding=r,i=n.s<0?i.minus(e):i.plus(e)):i=this.atan(C(n,e,o,1)):(i=L(this,o,1).times(e.s>0?.25:.75)).s=n.s:i=new this(NaN),i}function sn(n){return new this(n).cbrt()}function ln(n){return A(n=new this(n),n.e+1,2)}function cn(n){if(!n||"object"!=typeof n)throw Error(d+"Object expected");var e,i,t,r=!0===n.defaults,o=["precision",1,a,"rounding",0,8,"toExpNeg",-u,0,"toExpPos",0,u,"maxE",0,u,"minE",-u,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(i=o[e],r&&(this[i]=f[i]),void 0!==(t=n[i])){if(!(v(t)===t&&t>=o[e+1]&&t<=o[e+2]))throw Error(h+i+": "+t);this[i]=t}if(i="crypto",r&&(this[i]=f[i]),void 0!==(t=n[i])){if(!0!==t&&!1!==t&&0!==t&&1!==t)throw Error(h+i+": "+t);if(t){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(g);this[i]=!0}else this[i]=!1}return this}function fn(n){return new this(n).cos()}function mn(n){return new this(n).cosh()}function dn(n,e){return new this(n).div(e)}function hn(n){return new this(n).exp()}function pn(n){return A(n=new this(n),n.e+1,3)}function gn(){var n,e,i=new this(0);for(m=!1,n=0;n<arguments.length;)if((e=new this(arguments[n++])).d)i.d&&(i=i.plus(e.times(e)));else{if(e.s)return m=!0,new this(1/0);i=e}return m=!0,i.sqrt()}function vn(n){return n instanceof i||n&&"[object Decimal]"===n.name||!1}function Nn(n){return new this(n).ln()}function bn(n,e){return new this(n).log(e)}function wn(n){return new this(n).log(2)}function yn(n){return new this(n).log(10)}function xn(){return H(this,arguments,"lt")}function Mn(){return H(this,arguments,"gt")}function Fn(n,e){return new this(n).mod(e)}function Sn(n,e){return new this(n).mul(e)}function In(n,e){return new this(n).pow(e)}function En(n){var e,i,t,r,o=0,u=new this(1),s=[];if(void 0===n?n=this.precision:D(n,1,a),t=Math.ceil(n/7),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(t));o<t;)(r=e[o])>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:s[o++]=r%1e7;else{if(!crypto.randomBytes)throw Error(g);for(e=crypto.randomBytes(t*=4);o<t;)(r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((127&e[o+3])<<24))>=214e7?crypto.randomBytes(4).copy(e,o):(s.push(r%1e7),o+=4);o=t/4}else for(;o<t;)s[o++]=1e7*Math.random()|0;for(n%=7,(t=s[--o])&&n&&(r=N(10,7-n),s[o]=(t/r|0)*r);0===s[o];o--)s.pop();if(o<0)i=0,s=[0];else{for(i=-1;0===s[0];i-=7)s.shift();for(t=1,r=s[0];r>=10;r/=10)t++;t<7&&(i-=7-t)}return u.e=i,u.d=s,u}function Dn(n){return A(n=new this(n),n.e+1,this.rounding)}function Tn(n){return(n=new this(n)).d?n.d[0]?n.s:0*n.s:n.s||NaN}function Pn(n){return new this(n).sin()}function Cn(n){return new this(n).sinh()}function An(n){return new this(n).sqrt()}function kn(n,e){return new this(n).sub(e)}function qn(n){return new this(n).tan()}function On(n){return new this(n).tanh()}function Ln(n){return A(n=new this(n),n.e+1,1)}(i=function n(e){var i,t,r;function o(n){var e,i,t,r=this;if(!(r instanceof o))return new o(n);if(r.constructor=o,n instanceof o)return r.s=n.s,void(m?!n.d||n.e>o.maxE?(r.e=NaN,r.d=null):n.e<o.minE?(r.e=0,r.d=[0]):(r.e=n.e,r.d=n.d.slice()):(r.e=n.e,r.d=n.d?n.d.slice():n.d));if("number"==(t=typeof n)){if(0===n)return r.s=1/n<0?-1:1,r.e=0,void(r.d=[0]);if(n<0?(n=-n,r.s=-1):r.s=1,n===~~n&&n<1e7){for(e=0,i=n;i>=10;i/=10)e++;return void(m?e>o.maxE?(r.e=NaN,r.d=null):e<o.minE?(r.e=0,r.d=[0]):(r.e=e,r.d=[n]):(r.e=e,r.d=[n]))}return 0*n!=0?(n||(r.s=NaN),r.e=NaN,void(r.d=null)):G(r,n.toString())}if("string"!==t)throw Error(h+n);return 45===(i=n.charCodeAt(0))?(n=n.slice(1),r.s=-1):(43===i&&(n=n.slice(1)),r.s=1),x.test(n)?G(r,n):V(r,n)}if(o.prototype=I,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=cn,o.clone=n,o.isDecimal=vn,o.abs=X,o.acos=K,o.acosh=nn,o.add=en,o.asin=tn,o.asinh=rn,o.atan=on,o.atanh=un,o.atan2=an,o.cbrt=sn,o.ceil=ln,o.cos=fn,o.cosh=mn,o.div=dn,o.exp=hn,o.floor=pn,o.hypot=gn,o.ln=Nn,o.log=bn,o.log10=yn,o.log2=wn,o.max=xn,o.min=Mn,o.mod=Fn,o.mul=Sn,o.pow=In,o.random=En,o.round=Dn,o.sign=Tn,o.sin=Pn,o.sinh=Cn,o.sqrt=An,o.sub=kn,o.tan=qn,o.tanh=On,o.trunc=Ln,void 0===e&&(e={}),e&&!0!==e.defaults)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i<r.length;)e.hasOwnProperty(t=r[i++])||(e[t]=this[t]);return o.config(e),o}(f)).default=i.Decimal=i,l=new i(l),c=new i(c),n.exports?("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator&&(I[Symbol.for("nodejs.util.inspect.custom")]=I.toString,I[Symbol.toStringTag]="Decimal"),n.exports=i):(e||(e="undefined"!=typeof self&&self&&self.self==self?self:window),r=e.Decimal,i.noConflict=function(){return e.Decimal=r,i},e.Decimal=i)}(e)}(i);var t={exports:{}};
/**
* @license Complex.js v2.0.13 12/05/2020
*
* Copyright (c) 2020, Robert Eisele (robert@xarg.org)
* Dual licensed under the MIT or GPL Version 2 licenses.
**/!function(n,e){!function(e){var i=function(n){return.5*(Math.exp(n)+Math.exp(-n))},t=function(n){return.5*(Math.exp(n)-Math.exp(-n))},r=function(){throw SyntaxError("Invalid Param")};function o(n,e){var i=Math.abs(n),t=Math.abs(e);return 0===n?Math.log(t):0===e?Math.log(i):i<3e3&&t<3e3?.5*Math.log(n*n+e*e):Math.log(n/Math.cos(Math.atan2(e,n)))}function u(n,e){if(!(this instanceof u))return new u(n,e);var i=function(n,e){var i={re:0,im:0};if(null==n)i.re=i.im=0;else if(void 0!==e)i.re=n,i.im=e;else switch(typeof n){case"object":if("im"in n&&"re"in n)i.re=n.re,i.im=n.im;else if("abs"in n&&"arg"in n){if(!Number.isFinite(n.abs)&&Number.isFinite(n.arg))return u.INFINITY;i.re=n.abs*Math.cos(n.arg),i.im=n.abs*Math.sin(n.arg)}else if("r"in n&&"phi"in n){if(!Number.isFinite(n.r)&&Number.isFinite(n.phi))return u.INFINITY;i.re=n.r*Math.cos(n.phi),i.im=n.r*Math.sin(n.phi)}else 2===n.length?(i.re=n[0],i.im=n[1]):r();break;case"string":i.im=i.re=0;var t=n.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),o=1,a=0;null===t&&r();for(var s=0;s<t.length;s++){var l=t[s];" "===l||"\t"===l||"\n"===l||("+"===l?o++:"-"===l?a++:"i"===l||"I"===l?(o+a===0&&r()," "===t[s+1]||isNaN(t[s+1])?i.im+=parseFloat((a%2?"-":"")+"1"):(i.im+=parseFloat((a%2?"-":"")+t[s+1]),s++),o=a=0):((o+a===0||isNaN(l))&&r(),"i"===t[s+1]||"I"===t[s+1]?(i.im+=parseFloat((a%2?"-":"")+l),s++):i.re+=parseFloat((a%2?"-":"")+l),o=a=0))}o+a>0&&r();break;case"number":i.im=0,i.re=n;break;default:r()}return isNaN(i.re)||isNaN(i.im),i}(n,e);this.re=i.re,this.im=i.im}u.prototype={re:0,im:0,sign:function(){var n=this.abs();return new u(this.re/n,this.im/n)},add:function(n,e){var i=new u(n,e);return this.isInfinite()&&i.isInfinite()?u.NAN:this.isInfinite()||i.isInfinite()?u.INFINITY:new u(this.re+i.re,this.im+i.im)},sub:function(n,e){var i=new u(n,e);return this.isInfinite()&&i.isInfinite()?u.NAN:this.isInfinite()||i.isInfinite()?u.INFINITY:new u(this.re-i.re,this.im-i.im)},mul:function(n,e){var i=new u(n,e);return this.isInfinite()&&i.isZero()||this.isZero()&&i.isInfinite()?u.NAN:this.isInfinite()||i.isInfinite()?u.INFINITY:0===i.im&&0===this.im?new u(this.re*i.re,0):new u(this.re*i.re-this.im*i.im,this.re*i.im+this.im*i.re)},div:function(n,e){var i=new u(n,e);if(this.isZero()&&i.isZero()||this.isInfinite()&&i.isInfinite())return u.NAN;if(this.isInfinite()||i.isZero())return u.INFINITY;if(this.isZero()||i.isInfinite())return u.ZERO;n=this.re,e=this.im;var t,r,o=i.re,a=i.im;return 0===a?new u(n/o,e/o):Math.abs(o)<Math.abs(a)?new u((n*(r=o/a)+e)/(t=o*r+a),(e*r-n)/t):new u((n+e*(r=a/o))/(t=a*r+o),(e-n*r)/t)},pow:function(n,e){var i=new u(n,e);if(n=this.re,e=this.im,i.isZero())return u.ONE;if(0===i.im){if(0===e&&n>0)return new u(Math.pow(n,i.re),0);if(0===n)switch((i.re%4+4)%4){case 0:return new u(Math.pow(e,i.re),0);case 1:return new u(0,Math.pow(e,i.re));case 2:return new u(-Math.pow(e,i.re),0);case 3:return new u(0,-Math.pow(e,i.re))}}if(0===n&&0===e&&i.re>0&&i.im>=0)return u.ZERO;var t=Math.atan2(e,n),r=o(n,e);return n=Math.exp(i.re*r-i.im*t),e=i.im*r+i.re*t,new u(n*Math.cos(e),n*Math.sin(e))},sqrt:function(){var n,e,i=this.re,t=this.im,r=this.abs();if(i>=0){if(0===t)return new u(Math.sqrt(i),0);n=.5*Math.sqrt(2*(r+i))}else n=Math.abs(t)/Math.sqrt(2*(r-i));return e=i<=0?.5*Math.sqrt(2*(r-i)):Math.abs(t)/Math.sqrt(2*(r+i)),new u(n,t<0?-e:e)},exp:function(){var n=Math.exp(this.re);return this.im,new u(n*Math.cos(this.im),n*Math.sin(this.im))},expm1:function(){var n=this.re,e=this.im;return new u(Math.expm1(n)*Math.cos(e)+function(n){var e=Math.PI/4;if(n<-e||n>e)return Math.cos(n)-1;var i=n*n;return i*(i*(1/24+i*(-1/720+i*(1/40320+i*(-1/3628800+i*(1/4790014600+i*(-1/87178291200+i*(1/20922789888e3)))))))-.5)}(e),Math.exp(n)*Math.sin(e))},log:function(){var n=this.re,e=this.im;return new u(o(n,e),Math.atan2(e,n))},abs:function(){return n=this.re,e=this.im,i=Math.abs(n),t=Math.abs(e),i<3e3&&t<3e3?Math.sqrt(i*i+t*t):(i<t?(i=t,t=n/e):t=e/n,i*Math.sqrt(1+t*t));var n,e,i,t},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var n=this.re,e=this.im;return new u(Math.sin(n)*i(e),Math.cos(n)*t(e))},cos:function(){var n=this.re,e=this.im;return new u(Math.cos(n)*i(e),-Math.sin(n)*t(e))},tan:function(){var n=2*this.re,e=2*this.im,r=Math.cos(n)+i(e);return new u(Math.sin(n)/r,t(e)/r)},cot:function(){var n=2*this.re,e=2*this.im,r=Math.cos(n)-i(e);return new u(-Math.sin(n)/r,t(e)/r)},sec:function(){var n=this.re,e=this.im,r=.5*i(2*e)+.5*Math.cos(2*n);return new u(Math.cos(n)*i(e)/r,Math.sin(n)*t(e)/r)},csc:function(){var n=this.re,e=this.im,r=.5*i(2*e)-.5*Math.cos(2*n);return new u(Math.sin(n)*i(e)/r,-Math.cos(n)*t(e)/r)},asin:function(){var n=this.re,e=this.im,i=new u(e*e-n*n+1,-2*n*e).sqrt(),t=new u(i.re-e,i.im+n).log();return new u(t.im,-t.re)},acos:function(){var n=this.re,e=this.im,i=new u(e*e-n*n+1,-2*n*e).sqrt(),t=new u(i.re-e,i.im+n).log();return new u(Math.PI/2-t.im,t.re)},atan:function(){var n=this.re,e=this.im;if(0===n){if(1===e)return new u(0,1/0);if(-1===e)return new u(0,-1/0)}var i=n*n+(1-e)*(1-e),t=new u((1-e*e-n*n)/i,-2*n/i).log();return new u(-.5*t.im,.5*t.re)},acot:function(){var n=this.re,e=this.im;if(0===e)return new u(Math.atan2(1,n),0);var i=n*n+e*e;return 0!==i?new u(n/i,-e/i).atan():new u(0!==n?n/0:0,0!==e?-e/0:0).atan()},asec:function(){var n=this.re,e=this.im;if(0===n&&0===e)return new u(0,1/0);var i=n*n+e*e;return 0!==i?new u(n/i,-e/i).acos():new u(0!==n?n/0:0,0!==e?-e/0:0).acos()},acsc:function(){var n=this.re,e=this.im;if(0===n&&0===e)return new u(Math.PI/2,1/0);var i=n*n+e*e;return 0!==i?new u(n/i,-e/i).asin():new u(0!==n?n/0:0,0!==e?-e/0:0).asin()},sinh:function(){var n=this.re,e=this.im;return new u(t(n)*Math.cos(e),i(n)*Math.sin(e))},cosh:function(){var n=this.re,e=this.im;return new u(i(n)*Math.cos(e),t(n)*Math.sin(e))},tanh:function(){var n=2*this.re,e=2*this.im,r=i(n)+Math.cos(e);return new u(t(n)/r,Math.sin(e)/r)},coth:function(){var n=2*this.re,e=2*this.im,r=i(n)-Math.cos(e);return new u(t(n)/r,-Math.sin(e)/r)},csch:function(){var n=this.re,e=this.im,r=Math.cos(2*e)-i(2*n);return new u(-2*t(n)*Math.cos(e)/r,2*i(n)*Math.sin(e)/r)},sech:function(){var n=this.re,e=this.im,r=Math.cos(2*e)+i(2*n);return new u(2*i(n)*Math.cos(e)/r,-2*t(n)*Math.sin(e)/r)},asinh:function(){var n=this.im;this.im=-this.re,this.re=n;var e=this.asin();return this.re=-this.im,this.im=n,n=e.re,e.re=-e.im,e.im=n,e},acosh:function(){var n=this.acos();if(n.im<=0){var e=n.re;n.re=-n.im,n.im=e}else e=n.im,n.im=-n.re,n.re=e;return n},atanh:function(){var n=this.re,e=this.im,i=n>1&&0===e,t=1-n,r=1+n,a=t*t+e*e,s=0!==a?new u((r*t-e*e)/a,(e*t+r*e)/a):new u(-1!==n?n/0:0,0!==e?e/0:0),l=s.re;return s.re=o(s.re,s.im)/2,s.im=Math.atan2(s.im,l)/2,i&&(s.im=-s.im),s},acoth:function(){var n=this.re,e=this.im;if(0===n&&0===e)return new u(0,Math.PI/2);var i=n*n+e*e;return 0!==i?new u(n/i,-e/i).atanh():new u(0!==n?n/0:0,0!==e?-e/0:0).atanh()},acsch:function(){var n=this.re,e=this.im;if(0===e)return new u(0!==n?Math.log(n+Math.sqrt(n*n+1)):1/0,0);var i=n*n+e*e;return 0!==i?new u(n/i,-e/i).asinh():new u(0!==n?n/0:0,0!==e?-e/0:0).asinh()},asech:function(){var n=this.re,e=this.im;if(this.isZero())return u.INFINITY;var i=n*n+e*e;return 0!==i?new u(n/i,-e/i).acosh():new u(0!==n?n/0:0,0!==e?-e/0:0).acosh()},inverse:function(){if(this.isZero())return u.INFINITY;if(this.isInfinite())return u.ZERO;var n=this.re,e=this.im,i=n*n+e*e;return new u(n/i,-e/i)},conjugate:function(){return new u(this.re,-this.im)},neg:function(){return new u(-this.re,-this.im)},ceil:function(n){return n=Math.pow(10,n||0),new u(Math.ceil(this.re*n)/n,Math.ceil(this.im*n)/n)},floor:function(n){return n=Math.pow(10,n||0),new u(Math.floor(this.re*n)/n,Math.floor(this.im*n)/n)},round:function(n){return n=Math.pow(10,n||0),new u(Math.round(this.re*n)/n,Math.round(this.im*n)/n)},equals:function(n,e){var i=new u(n,e);return Math.abs(i.re-this.re)<=u.EPSILON&&Math.abs(i.im-this.im)<=u.EPSILON},clone:function(){return new u(this.re,this.im)},toString:function(){var n=this.re,e=this.im,i="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(n)<u.EPSILON&&(n=0),Math.abs(e)<u.EPSILON&&(e=0),0===e?i+n:(0!==n?(i+=n,i+=" ",e<0?(e=-e,i+="-"):i+="+",i+=" "):e<0&&(e=-e,i+="-"),1!==e&&(i+=e),i+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return 0===this.im&&0===this.re},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},u.ZERO=new u(0,0),u.ONE=new u(1,0),u.I=new u(0,1),u.PI=new u(Math.PI,0),u.E=new u(Math.E,0),u.INFINITY=new u(1/0,1/0),u.NAN=new u(NaN,NaN),u.EPSILON=1e-15,Object.defineProperty(u,"__esModule",{value:!0}),u.default=u,u.Complex=u,n.exports=u}()}(t);const r=new i.exports.Decimal(0),o=new i.exports.Decimal(1),u=new i.exports.Decimal(-1),a=new i.exports.Decimal(NaN),s=new i.exports.Decimal(1/0),l=new i.exports.Decimal(-1/0),c=i.exports.Decimal.acos(-1),f=i.exports.Decimal.exp(1),m=Math.log10(Math.pow(2,53)),d=Math.pow(10,-10),h=new Set([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919]);function p(n,e){if(!Number.isInteger(n)||!Number.isInteger(e))return NaN;for(;0!==e;)[n,e]=[e,n%e];return n<0?-n:n}const g="Parentheses",v="Identity",N="List",b="Missing",w="Nothing",y="Add",x="Divide",M="Multiply",F="Negate",S="Power",I="Root",E="Sqrt",D="ComplexInfinity",T="ExponentialE",P="ImaginaryUnit";function C(n){return null!==n&&"object"==typeof n&&"num"in n}function A(n){return null!==n&&"object"==typeof n&&"sym"in n}function k(n){return null!==n&&"object"==typeof n&&"str"in n}function q(n){return null!==n&&"object"==typeof n&&"fn"in n}function O(n){return null!==n&&"object"==typeof n&&"dict"in n}function L(n){if("number"==typeof n)return n;if(null===n)return null;if(C(n))return n.num.endsWith("d")||n.num.endsWith("n")?null:parseFloat(n.num);const e=U(n);return null===e?null:"NaN"===e?NaN:"+Infinity"===e?1/0:"-Infinity"===e?-1/0:"Complex"===B(n)&&0===L(W(n,2))?L(W(n,1)):null}function _(n){return null===n?null:"object"==typeof n&&"str"in n?n.str:"string"!=typeof n||n.length<2||"'"!==n[0]||"'"!==n[n.length-1]?null:n.substring(1,n.length-1)}function R(n){var e,i,t,r,o,u;if("number"==typeof n&&Number.isInteger(n))return[n,1];if(C(n)){const e=L(n);if(null!==e&&Number.isInteger(e))return[e,1]}const a=U(n);if("ThreeQuarter"===a)return[3,4];if("TwoThird"===a)return[2,3];if("Half"===a)return[1,2];if("Third"===a)return[1,3];if("Quarter"===a)return[1,4];if(j(n))return[null,null];const s=B(n);if(!s)return[null,null];let l=null,c=null;if(s===S){const t=L(W(n,2));1===t?(l=null!==(e=L(W(n,1)))&&void 0!==e?e:null,c=1):-1===t&&(l=1,c=null!==(i=L(W(n,1)))&&void 0!==i?i:null)}return s===x&&(l=null!==(t=L(W(n,1)))&&void 0!==t?t:null,c=null!==(r=L(W(n,2)))&&void 0!==r?r:null),s===M&&B(W(n,2))===S&&-1===L(W(W(n,2),2))&&(l=null!==(o=L(W(n,1)))&&void 0!==o?o:null,c=null!==(u=L(W(W(n,2),1)))&&void 0!==u?u:null),null===l||null===c?[null,null]:Number.isInteger(l)&&Number.isInteger(c)?[l,c]:[null,null]}function Q(n,e){var i,t,r,o,u;if(U(n)===e)return[1,1];const a=B(n);if(a===M)return U(null!==(i=W(n,2))&&void 0!==i?i:b)!==e?[null,null]:R(null!==(t=W(n,1))&&void 0!==t?t:b);if(a===x){const i=L(null!==(r=W(n,2))&&void 0!==r?r:b);if(null===i||isNaN(i))return[null,null];const t=null!==(o=W(n,1))&&void 0!==o?o:b,u=U(t);if(u===e)return[1,i];let a=null;if("MinusDoublePi"===u)a=-2;else if("MinusPi"===u)a=-1;else if("DoublePi"===u)a=2;else{if(B(t)!==M)return[null,null];if(U(W(t,2))!==e)return[null,null];a=L(W(t,1))}return null===a?[null,null]:[a,i]}if(a===F){const[i,t]=Q(null!==(u=W(n,1))&&void 0!==u?u:b,e);return null===i||isNaN(i)?[null,null]:[-i,t]}return[null,null]}function Z(n){return Array.isArray(n)?n[0]:q(n)?n.fn[0]:"number"==typeof n||C(n)?"Number":"string"==typeof n?"String":A(n)?"Symbol":O(n)?"Dictionary":null}function H(n){return null===n?null:Array.isArray(n)?n[0]:q(n)?n.fn[0]:null}function j(n){return null===n||!Array.isArray(n)&&("object"!=typeof n||!("fn"in n||"dic"in n))}function B(n){if(null===n)return"";const e=H(n);return"string"==typeof e?e:""}function U(n){return null===n?null:"string"==typeof n?n.length>=2&&"'"===n[0]&&"'"===n[n.length-1]?null:n:A(n)?n.sym:null}function G(n){return Array.isArray(n)?n.slice(1):q(n)?n.fn.slice(1):[]}function V(n,e){const i=H(n);if(null!==i)return[e(i),...G(n).map((n=>e(n)))];const t=Y(n);if(null!==t){const n=Object.keys(t),i={};for(const r of n)i[r]=e(t[r]);return{dict:i}}return e(n)}function W(n,e){return null===n?null:Array.isArray(n)?n[e]:q(n)?n.fn[e]:null}function $(n){return Array.isArray(n)?Math.max(0,n.length-1):q(n)?Math.max(0,n.fn.length-1):0}function Y(n){return"object"==typeof n&&"dict"in n?n.dict:null}function z(n,e){if(typeof n!=typeof e)return!1;if(null===n)return null===e;if(void 0===n)return void 0===e;if("number"==typeof n)return n===e;if("string"==typeof n)return n===e;if(Array.isArray(n)&&Array.isArray(e)){if(!z(Z(n),Z(e)))return!1;const i=$(n);if($(e)!==i)return!1;for(let t=0;t<i;t++)if(!z(W(n,t),W(e,t)))return!1;return!0}if("object"==typeof n){if(C(n)&&C(e))return L(n)===L(e);if(A(n)&&A(e))return U(n)===U(e);if(q(n)&&q(e)){if(!z(Z(n),Z(e)))return!1;const i=$(n);if($(e)!==i)return!1;for(let t=0;t<i;t++)if(!z(W(n,t),W(