@cortex-js/compute-engine
Version:
Symbolic computing and numeric evaluations for JavaScript and Node.js
4 lines • 602 kB
JavaScript
/** Compute Engine 0.30.2 */
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ComputeEngine = {}));})(this, (function (exports) { 'use strict';
var ComputeEngine=(()=>{var Lo=Object.defineProperty;var kf=Object.getOwnPropertyDescriptor;var Cf=Object.getOwnPropertyNames;var Af=Object.prototype.hasOwnProperty;var Df=(n,e)=>{for(var t in e)Lo(n,t,{get:e[t],enumerable:!0})},Mf=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Cf(e))!Af.call(n,r)&&r!==t&&Lo(n,r,{get:()=>e[r],enumerable:!(i=kf(e,r))||i.enumerable});return n};var Rf=n=>Mf(Lo({},"__esModule",{value:!0}),n);var wg={};Df(wg,{BoxedType:()=>S,ComputeEngine:()=>Ii,NumericValue:()=>j,version:()=>Ig});var Me=Math.cosh||function(n){return Math.abs(n)<1e-9?1-n:(Math.exp(n)+Math.exp(-n))*.5},en=Math.sinh||function(n){return Math.abs(n)<1e-9?n:(Math.exp(n)-Math.exp(-n))*.5},Pf=function(n){var e=Math.PI/4;if(-e>n||n>e)return Math.cos(n)-1;var t=n*n;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},Lf=function(n,e){var t=Math.abs(n),i=Math.abs(e);return t<3e3&&i<3e3?Math.sqrt(t*t+i*i):(t<i?(t=i,i=n/e):i=e/n,t*Math.sqrt(1+i*i))},Ut=function(){throw SyntaxError("Invalid Param")};function Oo(n,e){var t=Math.abs(n),i=Math.abs(e);return n===0?Math.log(i):e===0?Math.log(t):t<3e3&&i<3e3?Math.log(n*n+e*e)*.5:(n=n/2,e=e/2,.5*Math.log(n*n+e*e)+Math.LN2)}var Of=function(n,e){var t={re:0,im:0};if(n==null)t.re=t.im=0;else if(e!==void 0)t.re=n,t.im=e;else switch(typeof n){case"object":if("im"in n&&"re"in n)t.re=n.re,t.im=n.im;else if("abs"in n&&"arg"in n){if(!Number.isFinite(n.abs)&&Number.isFinite(n.arg))return q.INFINITY;t.re=n.abs*Math.cos(n.arg),t.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 q.INFINITY;t.re=n.r*Math.cos(n.phi),t.im=n.r*Math.sin(n.phi)}else n.length===2?(t.re=n[0],t.im=n[1]):Ut();break;case"string":t.im=t.re=0;var i=n.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,o=0;i===null&&Ut();for(var s=0;s<i.length;s++){var a=i[s];a===" "||a===" "||a===`
`||(a==="+"?r++:a==="-"?o++:a==="i"||a==="I"?(r+o===0&&Ut(),i[s+1]!==" "&&!isNaN(Number(i[s+1]))?(t.im+=parseFloat((o%2?"-":"")+i[s+1]),s++):t.im+=parseFloat((o%2?"-":"")+"1"),r=o=0):((r+o===0||isNaN(Number(a)))&&Ut(),i[s+1]==="i"||i[s+1]==="I"?(t.im+=parseFloat((o%2?"-":"")+a),s++):t.re+=parseFloat((o%2?"-":"")+a),r=o=0))}r+o>0&&Ut();break;case"number":t.im=0,t.re=n;break;default:Ut()}return isNaN(t.re)||isNaN(t.im),t},q=class n{constructor(e,t){this.re=0,this.im=0;var i=Of(e,t);this.re=i.re,this.im=i.im}sign(){var e=this.abs();return new n(this.re/e,this.im/e)}add(e,t){var i=new n(e,t);return this.isInfinite()&&i.isInfinite()?n.NAN:this.isInfinite()||i.isInfinite()?n.INFINITY:new n(this.re+i.re,this.im+i.im)}sub(e,t){var i=new n(e,t);return this.isInfinite()&&i.isInfinite()?n.NAN:this.isInfinite()||i.isInfinite()?n.INFINITY:new n(this.re-i.re,this.im-i.im)}mul(e,t){var i=new n(e,t);return this.isInfinite()&&i.isZero()||this.isZero()&&i.isInfinite()?n.NAN:this.isInfinite()||i.isInfinite()?n.INFINITY:i.im===0&&this.im===0?new n(this.re*i.re,0):new n(this.re*i.re-this.im*i.im,this.re*i.im+this.im*i.re)}div(e,t){var i=new n(e,t);if(this.isZero()&&i.isZero()||this.isInfinite()&&i.isInfinite())return n.NAN;if(this.isInfinite()||i.isZero())return n.INFINITY;if(this.isZero()||i.isInfinite())return n.ZERO;e=this.re,t=this.im;var r=i.re,o=i.im,s,a;return o===0?new n(e/r,t/r):Math.abs(r)<Math.abs(o)?(a=r/o,s=r*a+o,new n((e*a+t)/s,(t*a-e)/s)):(a=o/r,s=o*a+r,new n((e+t*a)/s,(t-e*a)/s))}pow(e,t){var i=new n(e,t);if(e=this.re,t=this.im,i.isZero())return n.ONE;if(i.im===0){if(t===0&&e>0)return new n(Math.pow(e,i.re),0);if(e===0)switch((i.re%4+4)%4){case 0:return new n(Math.pow(t,i.re),0);case 1:return new n(0,Math.pow(t,i.re));case 2:return new n(-Math.pow(t,i.re),0);case 3:return new n(0,-Math.pow(t,i.re))}}if(e===0&&t===0&&i.re>0&&i.im>=0)return n.ZERO;var r=Math.atan2(t,e),o=Oo(e,t);return e=Math.exp(i.re*o-i.im*r),t=i.im*o+i.re*r,new n(e*Math.cos(t),e*Math.sin(t))}sqrt(){var e=this.re,t=this.im,i=this.abs(),r,o;if(e>=0){if(t===0)return new n(Math.sqrt(e),0);r=.5*Math.sqrt(2*(i+e))}else r=Math.abs(t)/Math.sqrt(2*(i-e));return e<=0?o=.5*Math.sqrt(2*(i-e)):o=Math.abs(t)/Math.sqrt(2*(i+e)),new n(r,t<0?-o:o)}exp(){var e=Math.exp(this.re);return this.im,new n(e*Math.cos(this.im),e*Math.sin(this.im))}expm1(){var e=this.re,t=this.im;return new n(Math.expm1(e)*Math.cos(t)+Pf(t),Math.exp(e)*Math.sin(t))}log(){var e=this.re,t=this.im;return t===0&&e>0,new n(Oo(e,t),Math.atan2(t,e))}abs(){return Lf(this.re,this.im)}arg(){return Math.atan2(this.im,this.re)}sin(){var e=this.re,t=this.im;return new n(Math.sin(e)*Me(t),Math.cos(e)*en(t))}cos(){var e=this.re,t=this.im;return new n(Math.cos(e)*Me(t),-Math.sin(e)*en(t))}tan(){var e=2*this.re,t=2*this.im,i=Math.cos(e)+Me(t);return new n(Math.sin(e)/i,en(t)/i)}cot(){var e=2*this.re,t=2*this.im,i=Math.cos(e)-Me(t);return new n(-Math.sin(e)/i,en(t)/i)}sec(){var e=this.re,t=this.im,i=.5*Me(2*t)+.5*Math.cos(2*e);return new n(Math.cos(e)*Me(t)/i,Math.sin(e)*en(t)/i)}csc(){var e=this.re,t=this.im,i=.5*Me(2*t)-.5*Math.cos(2*e);return new n(Math.sin(e)*Me(t)/i,-Math.cos(e)*en(t)/i)}asin(){var e=this.re,t=this.im,i=new n(t*t-e*e+1,-2*e*t).sqrt(),r=new n(i.re-t,i.im+e).log();return new n(r.im,-r.re)}acos(){var e=this.re,t=this.im,i=new n(t*t-e*e+1,-2*e*t).sqrt(),r=new n(i.re-t,i.im+e).log();return new n(Math.PI/2-r.im,r.re)}atan(){var e=this.re,t=this.im;if(e===0){if(t===1)return new n(0,1/0);if(t===-1)return new n(0,-1/0)}var i=e*e+(1-t)*(1-t),r=new n((1-t*t-e*e)/i,-2*e/i).log();return new n(-.5*r.im,.5*r.re)}acot(){var e=this.re,t=this.im;if(t===0)return new n(Math.atan2(1,e),0);var i=e*e+t*t;return i!==0?new n(e/i,-t/i).atan():new n(e!==0?e/0:0,t!==0?-t/0:0).atan()}asec(){var e=this.re,t=this.im;if(e===0&&t===0)return new n(0,1/0);var i=e*e+t*t;return i!==0?new n(e/i,-t/i).acos():new n(e!==0?e/0:0,t!==0?-t/0:0).acos()}acsc(){var e=this.re,t=this.im;if(e===0&&t===0)return new n(Math.PI/2,1/0);var i=e*e+t*t;return i!==0?new n(e/i,-t/i).asin():new n(e!==0?e/0:0,t!==0?-t/0:0).asin()}sinh(){var e=this.re,t=this.im;return new n(en(e)*Math.cos(t),Me(e)*Math.sin(t))}cosh(){var e=this.re,t=this.im;return new n(Me(e)*Math.cos(t),en(e)*Math.sin(t))}tanh(){var e=2*this.re,t=2*this.im,i=Me(e)+Math.cos(t);return new n(en(e)/i,Math.sin(t)/i)}coth(){var e=2*this.re,t=2*this.im,i=Me(e)-Math.cos(t);return new n(en(e)/i,-Math.sin(t)/i)}csch(){var e=this.re,t=this.im,i=Math.cos(2*t)-Me(2*e);return new n(-2*en(e)*Math.cos(t)/i,2*Me(e)*Math.sin(t)/i)}sech(){var e=this.re,t=this.im,i=Math.cos(2*t)+Me(2*e);return new n(2*Me(e)*Math.cos(t)/i,-2*en(e)*Math.sin(t)/i)}asinh(){var e=this.im;this.im=-this.re,this.re=e;var t=this.asin();return this.re=-this.im,this.im=e,e=t.re,t.re=-t.im,t.im=e,t}acosh(){var e=this.acos();if(e.im<=0){var t=e.re;e.re=-e.im,e.im=t}else{var t=e.im;e.im=-e.re,e.re=t}return e}atanh(){var e=this.re,t=this.im,i=e>1&&t===0,r=1-e,o=1+e,s=r*r+t*t,a=s!==0?new n((o*r-t*t)/s,(t*r+o*t)/s):new n(e!==-1?e/0:0,t!==0?t/0:0),u=a.re;return a.re=Oo(a.re,a.im)/2,a.im=Math.atan2(a.im,u)/2,i&&(a.im=-a.im),a}acoth(){var e=this.re,t=this.im;if(e===0&&t===0)return new n(0,Math.PI/2);var i=e*e+t*t;return i!==0?new n(e/i,-t/i).atanh():new n(e!==0?e/0:0,t!==0?-t/0:0).atanh()}acsch(){var e=this.re,t=this.im;if(t===0)return new n(e!==0?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var i=e*e+t*t;return i!==0?new n(e/i,-t/i).asinh():new n(e!==0?e/0:0,t!==0?-t/0:0).asinh()}asech(){var e=this.re,t=this.im;if(this.isZero())return n.INFINITY;var i=e*e+t*t;return i!==0?new n(e/i,-t/i).acosh():new n(e!==0?e/0:0,t!==0?-t/0:0).acosh()}inverse(){if(this.isZero())return n.INFINITY;if(this.isInfinite())return n.ZERO;var e=this.re,t=this.im,i=e*e+t*t;return new n(e/i,-t/i)}conjugate(){return new n(this.re,-this.im)}neg(){return new n(-this.re,-this.im)}ceil(e){return e=Math.pow(10,e||0),new n(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)}floor(e){return e=Math.pow(10,e||0),new n(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)}round(e){return e=Math.pow(10,e||0),new n(Math.round(this.re*e)/e,Math.round(this.im*e)/e)}equals(e,t){var i=new n(e,t);return Math.abs(i.re-this.re)<=n.EPSILON&&Math.abs(i.im-this.im)<=n.EPSILON}clone(){return new n(this.re,this.im)}toString(){var e=this.re,t=this.im,i="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(e)<n.EPSILON&&(e=0),Math.abs(t)<n.EPSILON&&(t=0),t===0?i+e:(e!==0?(i+=e,i+=" ",t<0?(t=-t,i+="-"):i+="+",i+=" "):t<0&&(t=-t,i+="-"),t!==1&&(i+=t),i+"i"))}toVector(){return[this.re,this.im]}valueOf(){return this.im===0?this.re:null}isNaN(){return isNaN(this.re)||isNaN(this.im)}isZero(){return this.im===0&&this.re===0}isFinite(){return isFinite(this.re)&&isFinite(this.im)}isInfinite(){return!(this.isNaN()||this.isFinite())}};q.ZERO=new q(0,0);q.ONE=new q(1,0);q.I=new q(0,1);q.PI=new q(Math.PI,0);q.E=new q(Math.E,0);q.INFINITY=new q(1/0,1/0);q.NAN=new q(NaN,NaN);q.EPSILON=1e-15;var jt=9e15,ot=1e9,$o="0123456789abcdef",Ar="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Dr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Fo={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-jt,maxE:jt,crypto:!1},Oa,Vn,D=!0,Rr="[DecimalError] ",rt=Rr+"Invalid argument: ",$a=Rr+"Precision limit exceeded",Fa=Rr+"crypto unavailable",Va="[object Decimal]",Re=Math.floor,Se=Math.pow,$f=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Ff=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vf=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,qa=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,xn=1e7,C=7,qf=9007199254740991,zf=Ar.length-1,Vo=Dr.length-1,y={toStringTag:Va};y.absoluteValue=y.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),I(n)};y.ceil=function(){return I(new this.constructor(this),this.e+1,2)};y.clampedTo=y.clamp=function(n,e){var t,i=this,r=i.constructor;if(n=new r(n),e=new r(e),!n.s||!e.s)return new r(NaN);if(n.gt(e))throw Error(rt+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new r(i)};y.comparedTo=y.cmp=function(n){var e,t,i,r,o=this,s=o.d,a=(n=new o.constructor(n)).d,u=o.s,l=n.s;if(!s||!a)return!u||!l?NaN:u!==l?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-l:0;if(u!==l)return u;if(o.e!==n.e)return o.e>n.e^u<0?1:-1;for(i=s.length,r=a.length,e=0,t=i<r?i:r;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^u<0?1:-1;return i===r?0:i>r^u<0?1:-1};y.cosine=y.cos=function(){var n,e,t=this,i=t.constructor;return t.d?t.d[0]?(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+C,i.rounding=1,t=Gf(i,Za(i,t)),i.precision=n,i.rounding=e,I(Vn==2||Vn==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};y.cubeRoot=y.cbrt=function(){var n,e,t,i,r,o,s,a,u,l,c=this,f=c.constructor;if(!c.isFinite()||c.isZero())return new f(c);for(D=!1,o=c.s*Se(c.s*c,1/3),!o||Math.abs(o)==1/0?(t=Ce(c.d),n=c.e,(o=(n-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=Se(t,1/3),n=Re((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?t="5e"+n:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new f(t),i.s=c.s):i=new f(o.toString()),s=(n=f.precision)+3;;)if(a=i,u=a.times(a).times(a),l=u.plus(c),i=X(l.plus(c).times(a),l.plus(u),s+2,1),Ce(a.d).slice(0,s)===(t=Ce(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!r&&t=="4999"){if(!r&&(I(a,n+1,0),a.times(a).times(a).eq(c))){i=a;break}s+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(I(i,n+1,1),e=!i.times(i).times(i).eq(c));break}return D=!0,I(i,n,f.rounding,e)};y.decimalPlaces=y.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-Re(this.e/C))*C,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};y.dividedBy=y.div=function(n){return X(this,new this.constructor(n))};y.dividedToIntegerBy=y.divToInt=function(n){var e=this,t=e.constructor;return I(X(e,new t(n),0,1,1),t.precision,t.rounding)};y.equals=y.eq=function(n){return this.cmp(n)===0};y.floor=function(){return I(new this.constructor(this),this.e+1,3)};y.greaterThan=y.gt=function(n){return this.cmp(n)>0};y.greaterThanOrEqualTo=y.gte=function(n){var e=this.cmp(n);return e==1||e===0};y.hyperbolicCosine=y.cosh=function(){var n,e,t,i,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(n=Math.ceil(r/3),e=(1/Lr(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),o=Zt(s,1,o.times(e),new s(1),!0);for(var u,l=n,c=new s(8);l--;)u=o.times(o),o=a.minus(u.times(c.minus(u.times(c))));return I(o,s.precision=t,s.rounding=i,!0)};y.hyperbolicSine=y.sinh=function(){var n,e,t,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=Zt(o,2,r,r,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,r=r.times(1/Lr(5,n)),r=Zt(o,2,r,r,!0);for(var s,a=new o(5),u=new o(16),l=new o(20);n--;)s=r.times(r),r=r.times(a.plus(s.times(u.times(s).plus(l))))}return o.precision=e,o.rounding=t,I(r,e,t,!0)};y.hyperbolicTangent=y.tanh=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+7,i.rounding=1,X(t.sinh(),t.cosh(),i.precision=n,i.rounding=e)):new i(t.s)};y.inverseCosine=y.acos=function(){var n=this,e=n.constructor,t=n.abs().cmp(1),i=e.precision,r=e.rounding;return t!==-1?t===0?n.isNeg()?In(e,i,r):new e(0):new e(NaN):n.isZero()?In(e,i+4,r).times(.5):(e.precision=i+6,e.rounding=1,n=new e(1).minus(n).div(n.plus(1)).sqrt().atan(),e.precision=i,e.rounding=r,n.times(2))};y.inverseHyperbolicCosine=y.acosh=function(){var n,e,t=this,i=t.constructor;return t.lte(1)?new i(t.eq(1)?0:NaN):t.isFinite()?(n=i.precision,e=i.rounding,i.precision=n+Math.max(Math.abs(t.e),t.sd())+4,i.rounding=1,D=!1,t=t.times(t).minus(1).sqrt().plus(t),D=!0,i.precision=n,i.rounding=e,t.ln()):new i(t)};y.inverseHyperbolicSine=y.asinh=function(){var n,e,t=this,i=t.constructor;return!t.isFinite()||t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,i.rounding=1,D=!1,t=t.times(t).plus(1).sqrt().plus(t),D=!0,i.precision=n,i.rounding=e,t.ln())};y.inverseHyperbolicTangent=y.atanh=function(){var n,e,t,i,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,i=r.sd(),Math.max(i,n)<2*-r.e-1?I(new o(r),n,e,!0):(o.precision=t=i-r.e,r=X(r.plus(1),new o(1).minus(r),t+n,1),o.precision=n+4,o.rounding=1,r=r.ln(),o.precision=n,o.rounding=e,r.times(.5))):new o(NaN)};y.inverseSine=y.asin=function(){var n,e,t,i,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),t=o.precision,i=o.rounding,e!==-1?e===0?(n=In(o,t+4,i).times(.5),n.s=r.s,n):new o(NaN):(o.precision=t+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=i,r.times(2)))};y.inverseTangent=y.atan=function(){var n,e,t,i,r,o,s,a,u,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<=Vo)return s=In(c,f+4,d).times(.25),s.s=l.s,s}else{if(!l.s)return new c(NaN);if(f+4<=Vo)return s=In(c,f+4,d).times(.5),s.s=l.s,s}for(c.precision=a=f+10,c.rounding=1,t=Math.min(28,a/C+2|0),n=t;n;--n)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(D=!1,e=Math.ceil(a/C),i=1,u=l.times(l),s=new c(l),r=l;n!==-1;)if(r=r.times(u),o=s.minus(r.div(i+=2)),r=r.times(u),s=o.plus(r.div(i+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===o.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),D=!0,I(s,c.precision=f,c.rounding=d,!0)};y.isFinite=function(){return!!this.d};y.isInteger=y.isInt=function(){return!!this.d&&Re(this.e/C)>this.d.length-2};y.isNaN=function(){return!this.s};y.isNegative=y.isNeg=function(){return this.s<0};y.isPositive=y.isPos=function(){return this.s>0};y.isZero=function(){return!!this.d&&this.d[0]===0};y.lessThan=y.lt=function(n){return this.cmp(n)<0};y.lessThanOrEqualTo=y.lte=function(n){return this.cmp(n)<1};y.logarithm=y.log=function(n){var e,t,i,r,o,s,a,u,l=this,c=l.constructor,f=c.precision,d=c.rounding,p=5;if(n==null)n=new c(10),e=!0;else{if(n=new c(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new c(NaN);e=n.eq(10)}if(t=l.d,l.s<0||!t||!t[0]||l.eq(1))return new c(t&&!t[0]?-1/0:l.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(r=t[0];r%10===0;)r/=10;o=r!==1}if(D=!1,a=f+p,s=it(l,a),i=e?Mr(c,a+10):it(n,a),u=X(s,i,a,1),ki(u.d,r=f,d))do if(a+=10,s=it(l,a),i=e?Mr(c,a+10):it(n,a),u=X(s,i,a,1),!o){+Ce(u.d).slice(r+1,r+15)+1==1e14&&(u=I(u,f+1,0));break}while(ki(u.d,r+=10,d));return D=!0,I(u,f,d)};y.minus=y.sub=function(n){var e,t,i,r,o,s,a,u,l,c,f,d,p=this,x=p.constructor;if(n=new x(n),!p.d||!n.d)return!p.s||!n.s?n=new x(NaN):p.d?n.s=-n.s:n=new x(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(l=p.d,d=n.d,a=x.precision,u=x.rounding,!l[0]||!d[0]){if(d[0])n.s=-n.s;else if(l[0])n=new x(p);else return new x(u===3?-0:0);return D?I(n,a,u):n}if(t=Re(n.e/C),c=Re(p.e/C),l=l.slice(),o=c-t,o){for(f=o<0,f?(e=l,o=-o,s=d.length):(e=d,t=c,s=l.length),i=Math.max(Math.ceil(a/C),s)+2,o>i&&(o=i,e.length=1),e.reverse(),i=o;i--;)e.push(0);e.reverse()}else{for(i=l.length,s=d.length,f=i<s,f&&(s=i),i=0;i<s;i++)if(l[i]!=d[i]){f=l[i]<d[i];break}o=0}for(f&&(e=l,l=d,d=e,n.s=-n.s),s=l.length,i=d.length-s;i>0;--i)l[s++]=0;for(i=d.length;i>o;){if(l[--i]<d[i]){for(r=i;r&&l[--r]===0;)l[r]=xn-1;--l[r],l[i]+=xn}l[i]-=d[i]}for(;l[--s]===0;)l.pop();for(;l[0]===0;l.shift())--t;return l[0]?(n.d=l,n.e=Pr(l,t),D?I(n,a,u):n):new x(u===3?-0:0)};y.modulo=y.mod=function(n){var e,t=this,i=t.constructor;return n=new i(n),!t.d||!n.s||n.d&&!n.d[0]?new i(NaN):!n.d||t.d&&!t.d[0]?I(new i(t),i.precision,i.rounding):(D=!1,i.modulo==9?(e=X(t,n.abs(),0,3,1),e.s*=n.s):e=X(t,n,0,i.modulo,1),e=e.times(n),D=!0,t.minus(e))};y.naturalExponential=y.exp=function(){return qo(this)};y.naturalLogarithm=y.ln=function(){return it(this)};y.negated=y.neg=function(){var n=new this.constructor(this);return n.s=-n.s,I(n)};y.plus=y.add=function(n){var e,t,i,r,o,s,a,u,l,c,f=this,d=f.constructor;if(n=new d(n),!f.d||!n.d)return!f.s||!n.s?n=new d(NaN):f.d||(n=new d(n.d||f.s===n.s?f: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,u=d.rounding,!l[0]||!c[0])return c[0]||(n=new d(f)),D?I(n,a,u):n;if(o=Re(f.e/C),i=Re(n.e/C),l=l.slice(),r=o-i,r){for(r<0?(t=l,r=-r,s=c.length):(t=c,i=o,s=l.length),o=Math.ceil(a/C),s=o>s?o+1:s+1,r>s&&(r=s,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for(s=l.length,r=c.length,s-r<0&&(r=s,t=c,c=l,l=t),e=0;r;)e=(l[--r]=l[r]+c[r]+e)/xn|0,l[r]%=xn;for(e&&(l.unshift(e),++i),s=l.length;l[--s]==0;)l.pop();return n.d=l,n.e=Pr(l,i),D?I(n,a,u):n};y.precision=y.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(rt+n);return t.d?(e=za(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};y.round=function(){var n=this,e=n.constructor;return I(new e(n),n.e+1,e.rounding)};y.sine=y.sin=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+C,i.rounding=1,t=jf(i,Za(i,t)),i.precision=n,i.rounding=e,I(Vn>2?t.neg():t,n,e,!0)):new i(NaN)};y.squareRoot=y.sqrt=function(){var n,e,t,i,r,o,s=this,a=s.d,u=s.e,l=s.s,c=s.constructor;if(l!==1||!a||!a[0])return new c(!l||l<0&&(!a||a[0])?NaN:a?s:1/0);for(D=!1,l=Math.sqrt(+s),l==0||l==1/0?(e=Ce(a),(e.length+u)%2==0&&(e+="0"),l=Math.sqrt(e),u=Re((u+1)/2)-(u<0||u%2),l==1/0?e="5e"+u:(e=l.toExponential(),e=e.slice(0,e.indexOf("e")+1)+u),i=new c(e)):i=new c(l.toString()),t=(u=c.precision)+3;;)if(o=i,i=o.plus(X(s,o,t+2,1)).times(.5),Ce(o.d).slice(0,t)===(e=Ce(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!r&&e=="4999"){if(!r&&(I(o,u+1,0),o.times(o).eq(s))){i=o;break}t+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(I(i,u+1,1),n=!i.times(i).eq(s));break}return D=!0,I(i,u,c.rounding,n)};y.tangent=y.tan=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+10,i.rounding=1,t=t.sin(),t.s=1,t=X(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,I(Vn==2||Vn==4?t.neg():t,n,e,!0)):new i(NaN)};y.times=y.mul=function(n){var e,t,i,r,o,s,a,u,l,c=this,f=c.constructor,d=c.d,p=(n=new f(n)).d;if(n.s*=c.s,!d||!d[0]||!p||!p[0])return new f(!n.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?n.s/0:n.s*0);for(t=Re(c.e/C)+Re(n.e/C),u=d.length,l=p.length,u<l&&(o=d,d=p,p=o,s=u,u=l,l=s),o=[],s=u+l,i=s;i--;)o.push(0);for(i=l;--i>=0;){for(e=0,r=u+i;r>i;)a=o[r]+p[i]*d[r-i-1]+e,o[r--]=a%xn|0,e=a/xn|0;o[r]=(o[r]+e)%xn|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),n.d=o,n.e=Pr(o,t),D?I(n,f.precision,f.rounding):n};y.toBinary=function(n,e){return zo(this,2,n,e)};y.toDecimalPlaces=y.toDP=function(n,e){var t=this,i=t.constructor;return t=new i(t),n===void 0?t:(ze(n,0,ot),e===void 0?e=i.rounding:ze(e,0,8),I(t,n+t.e+1,e))};y.toExponential=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=wn(i,!0):(ze(n,0,ot),e===void 0?e=r.rounding:ze(e,0,8),i=I(new r(i),n+1,e),t=wn(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};y.toFixed=function(n,e){var t,i,r=this,o=r.constructor;return n===void 0?t=wn(r):(ze(n,0,ot),e===void 0?e=o.rounding:ze(e,0,8),i=I(new o(r),n+r.e+1,e),t=wn(i,!1,n+i.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};y.toFraction=function(n){var e,t,i,r,o,s,a,u,l,c,f,d,p=this,x=p.d,g=p.constructor;if(!x)return new g(p);if(l=t=new g(1),i=u=new g(0),e=new g(i),o=e.e=za(x)-p.e-1,s=o%C,e.d[0]=Se(10,s<0?C+s:s),n==null)n=o>0?e:l;else{if(a=new g(n),!a.isInt()||a.lt(l))throw Error(rt+a);n=a.gt(e)?o>0?e:l:a}for(D=!1,a=new g(Ce(x)),c=g.precision,g.precision=o=x.length*C*2;f=X(a,e,0,1,1),r=t.plus(f.times(i)),r.cmp(n)!=1;)t=i,i=r,r=l,l=u.plus(f.times(r)),u=r,r=e,e=a.minus(f.times(r)),a=r;return r=X(n.minus(t),i,0,1,1),u=u.plus(r.times(l)),t=t.plus(r.times(i)),u.s=l.s=p.s,d=X(l,i,o,1).minus(p).abs().cmp(X(u,t,o,1).minus(p).abs())<1?[l,i]:[u,t],g.precision=c,D=!0,d};y.toHexadecimal=y.toHex=function(n,e){return zo(this,16,n,e)};y.toNearest=function(n,e){var t=this,i=t.constructor;if(t=new i(t),n==null){if(!t.d)return t;n=new i(1),e=i.rounding}else{if(n=new i(n),e===void 0?e=i.rounding:ze(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(D=!1,t=X(t,n,0,e,1).times(n),D=!0,I(t)):(n.s=t.s,t=n),t};y.toNumber=function(){return+this};y.toOctal=function(n,e){return zo(this,8,n,e)};y.toPower=y.pow=function(n){var e,t,i,r,o,s,a=this,u=a.constructor,l=+(n=new u(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new u(Se(+a,l));if(a=new u(a),a.eq(1))return a;if(i=u.precision,o=u.rounding,n.eq(1))return I(a,i,o);if(e=Re(n.e/C),e>=n.d.length-1&&(t=l<0?-l:l)<=qf)return r=Ga(u,a,t,i),n.s<0?new u(1).div(r):I(r,i,o);if(s=a.s,s<0){if(e<n.d.length-1)return new u(NaN);if((n.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=Se(+a,l),e=t==0||!isFinite(t)?Re(l*(Math.log("0."+Ce(a.d))/Math.LN10+a.e+1)):new u(t+"").e,e>u.maxE+1||e<u.minE-1?new u(e>0?s/0:0):(D=!1,u.rounding=a.s=1,t=Math.min(12,(e+"").length),r=qo(n.times(it(a,i+t)),i),r.d&&(r=I(r,i+5,1),ki(r.d,i,o)&&(e=i+10,r=I(qo(n.times(it(a,e+t)),e),e+5,1),+Ce(r.d).slice(i+1,i+15)+1==1e14&&(r=I(r,i+1,0)))),r.s=s,D=!0,u.rounding=o,I(r,i,o))};y.toPrecision=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=wn(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(ze(n,1,ot),e===void 0?e=r.rounding:ze(e,0,8),i=I(new r(i),n,e),t=wn(i,n<=i.e||i.e<=r.toExpNeg,n)),i.isNeg()&&!i.isZero()?"-"+t:t};y.toSignificantDigits=y.toSD=function(n,e){var t=this,i=t.constructor;return n===void 0?(n=i.precision,e=i.rounding):(ze(n,1,ot),e===void 0?e=i.rounding:ze(e,0,8)),I(new i(t),n,e)};y.toString=function(){var n=this,e=n.constructor,t=wn(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};y.truncated=y.trunc=function(){return I(new this.constructor(this),this.e+1,1)};y.valueOf=y.toJSON=function(){var n=this,e=n.constructor,t=wn(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function Ce(n){var e,t,i,r=n.length-1,o="",s=n[0];if(r>0){for(o+=s,e=1;e<r;e++)i=n[e]+"",t=C-i.length,t&&(o+=tt(t)),o+=i;s=n[e],i=s+"",t=C-i.length,t&&(o+=tt(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function ze(n,e,t){if(n!==~~n||n<e||n>t)throw Error(rt+n)}function ki(n,e,t,i){var r,o,s,a;for(o=n[0];o>=10;o/=10)--e;return--e<0?(e+=C,r=0):(r=Math.ceil((e+1)/C),e%=C),o=Se(10,C-e),a=n[r]%o|0,i==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(n[r+1]/o/100|0)==Se(10,e-2)-1||(a==o/2||a==0)&&(n[r+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=(i||t<4)&&a==9999||!i&&t>3&&a==4999):s=((i||t<4)&&a+1==o||!i&&t>3&&a+1==o/2)&&(n[r+1]/o/1e3|0)==Se(10,e-3)-1,s}function kr(n,e,t){for(var i,r=[0],o,s=0,a=n.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=$o.indexOf(n.charAt(s++)),i=0;i<r.length;i++)r[i]>t-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/t|0,r[i]%=t)}return r.reverse()}function Gf(n,e){var t,i,r;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),r=(1/Lr(4,t)).toString()):(t=16,r="2.3283064365386962890625e-10"),n.precision+=t,e=Zt(n,1,e.times(r),new n(1));for(var o=t;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var X=function(){function n(i,r,o){var s,a=0,u=i.length;for(i=i.slice();u--;)s=i[u]*r+a,i[u]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function e(i,r,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(i[a]!=r[a]){u=i[a]>r[a]?1:-1;break}return u}function t(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,u){var l,c,f,d,p,x,g,b,_,k,w,z,be,ke,hn,Br,wi,Ro,yn,Ir,wr=i.constructor,Po=i.s==r.s?1:-1,De=i.d,te=r.d;if(!De||!De[0]||!te||!te[0])return new wr(!i.s||!r.s||(De?te&&De[0]==te[0]:!te)?NaN:De&&De[0]==0||!te?Po*0:Po/0);for(u?(p=1,c=i.e-r.e):(u=xn,p=C,c=Re(i.e/p)-Re(r.e/p)),yn=te.length,wi=De.length,_=new wr(Po),k=_.d=[],f=0;te[f]==(De[f]||0);f++);if(te[f]>(De[f]||0)&&c--,o==null?(ke=o=wr.precision,s=wr.rounding):a?ke=o+(i.e-r.e)+1:ke=o,ke<0)k.push(1),x=!0;else{if(ke=ke/p+2|0,f=0,yn==1){for(d=0,te=te[0],ke++;(f<wi||d)&&ke--;f++)hn=d*u+(De[f]||0),k[f]=hn/te|0,d=hn%te|0;x=d||f<wi}else{for(d=u/(te[0]+1)|0,d>1&&(te=n(te,d,u),De=n(De,d,u),yn=te.length,wi=De.length),Br=yn,w=De.slice(0,yn),z=w.length;z<yn;)w[z++]=0;Ir=te.slice(),Ir.unshift(0),Ro=te[0],te[1]>=u/2&&++Ro;do d=0,l=e(te,w,yn,z),l<0?(be=w[0],yn!=z&&(be=be*u+(w[1]||0)),d=be/Ro|0,d>1?(d>=u&&(d=u-1),g=n(te,d,u),b=g.length,z=w.length,l=e(g,w,b,z),l==1&&(d--,t(g,yn<b?Ir:te,b,u))):(d==0&&(l=d=1),g=te.slice()),b=g.length,b<z&&g.unshift(0),t(w,g,z,u),l==-1&&(z=w.length,l=e(te,w,yn,z),l<1&&(d++,t(w,yn<z?Ir:te,z,u))),z=w.length):l===0&&(d++,w=[0]),k[f++]=d,l&&w[0]?w[z++]=De[Br]||0:(w=[De[Br]],z=1);while((Br++<wi||w[0]!==void 0)&&ke--);x=w[0]!==void 0}k[0]||k.shift()}if(p==1)_.e=c,Oa=x;else{for(f=1,d=k[0];d>=10;d/=10)f++;_.e=f+c*p-1,I(_,a?o+_.e+1:o,s,x)}return _}}();function I(n,e,t,i){var r,o,s,a,u,l,c,f,d,p=n.constructor;e:if(e!=null){if(f=n.d,!f)return n;for(r=1,a=f[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=C,s=e,c=f[d=0],u=c/Se(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/C),a=f.length,d>=a)if(i){for(;a++<=d;)f.push(0);c=u=0,r=1,o%=C,s=o-C+1}else break e;else{for(c=a=f[d],r=1;a>=10;a/=10)r++;o%=C,s=o-C+r,u=s<0?0:c/Se(10,r-s-1)%10|0}if(i=i||e<0||f[d+1]!==void 0||(s<0?c:c%Se(10,r-s-1)),l=t<4?(u||i)&&(t==0||t==(n.s<0?3:2)):u>5||u==5&&(t==4||i||t==6&&(o>0?s>0?c/Se(10,r-s):0:f[d-1])%10&1||t==(n.s<0?8:7)),e<1||!f[0])return f.length=0,l?(e-=n.e+1,f[0]=Se(10,(C-e%C)%C),n.e=-e||0):f[0]=n.e=0,n;if(o==0?(f.length=d,a=1,d--):(f.length=d+1,a=Se(10,C-o),f[d]=s>0?(c/Se(10,r-s)%Se(10,s)|0)*a:0),l)for(;;)if(d==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,f[0]==xn&&(f[0]=1));break}else{if(f[d]+=a,f[d]!=xn)break;f[d--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return D&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function wn(n,e,t){if(!n.isFinite())return ja(n);var i,r=n.e,o=Ce(n.d),s=o.length;return e?(t&&(i=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+tt(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):r<0?(o="0."+tt(-r-1)+o,t&&(i=t-s)>0&&(o+=tt(i))):r>=s?(o+=tt(r+1-s),t&&(i=t-r-1)>0&&(o=o+"."+tt(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),t&&(i=t-s)>0&&(r+1===s&&(o+="."),o+=tt(i))),o}function Pr(n,e){var t=n[0];for(e*=C;t>=10;t/=10)e++;return e}function Mr(n,e,t){if(e>zf)throw D=!0,t&&(n.precision=t),Error($a);return I(new n(Ar),e,1,!0)}function In(n,e,t){if(e>Vo)throw Error($a);return I(new n(Dr),e,t,!0)}function za(n){var e=n.length-1,t=e*C+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function tt(n){for(var e="";n--;)e+="0";return e}function Ga(n,e,t,i){var r,o=new n(1),s=Math.ceil(i/C+4);for(D=!1;;){if(t%2&&(o=o.times(e),Pa(o.d,s)&&(r=!0)),t=Re(t/2),t===0){t=o.d.length-1,r&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Pa(e.d,s)}return D=!0,o}function Ra(n){return n.d[n.d.length-1]&1}function Ua(n,e,t){for(var i,r,o=new n(e[0]),s=0;++s<e.length;){if(r=new n(e[s]),!r.s){o=r;break}i=o.cmp(r),(i===t||i===0&&o.s===t)&&(o=r)}return o}function qo(n,e){var t,i,r,o,s,a,u,l=0,c=0,f=0,d=n.constructor,p=d.rounding,x=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(e==null?(D=!1,u=x):u=e,a=new d(.03125);n.e>-2;)n=n.times(a),f+=5;for(i=Math.log(Se(2,f))/Math.LN10*2+5|0,u+=i,t=o=s=new d(1),d.precision=u;;){if(o=I(o.times(n),u,1),t=t.times(++c),a=s.plus(X(o,t,u,1)),Ce(a.d).slice(0,u)===Ce(s.d).slice(0,u)){for(r=f;r--;)s=I(s.times(s),u,1);if(e==null)if(l<3&&ki(s.d,u-i,p,l))d.precision=u+=10,t=o=a=new d(1),c=0,l++;else return I(s,d.precision=x,p,D=!0);else return d.precision=x,s}s=a}}function it(n,e){var t,i,r,o,s,a,u,l,c,f,d,p=1,x=10,g=n,b=g.d,_=g.constructor,k=_.rounding,w=_.precision;if(g.s<0||!b||!b[0]||!g.e&&b[0]==1&&b.length==1)return new _(b&&!b[0]?-1/0:g.s!=1?NaN:b?0:g);if(e==null?(D=!1,c=w):c=e,_.precision=c+=x,t=Ce(b),i=t.charAt(0),Math.abs(o=g.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)g=g.times(n),t=Ce(g.d),i=t.charAt(0),p++;o=g.e,i>1?(g=new _("0."+t),o++):g=new _(i+"."+t.slice(1))}else return l=Mr(_,c+2,w).times(o+""),g=it(new _(i+"."+t.slice(1)),c-x).plus(l),_.precision=w,e==null?I(g,w,k,D=!0):g;for(f=g,u=s=g=X(g.minus(1),g.plus(1),c,1),d=I(g.times(g),c,1),r=3;;){if(s=I(s.times(d),c,1),l=u.plus(X(s,new _(r),c,1)),Ce(l.d).slice(0,c)===Ce(u.d).slice(0,c))if(u=u.times(2),o!==0&&(u=u.plus(Mr(_,c+2,w).times(o+""))),u=X(u,new _(p),c,1),e==null)if(ki(u.d,c-x,k,a))_.precision=c+=x,l=s=g=X(f.minus(1),f.plus(1),c,1),d=I(g.times(g),c,1),r=a=1;else return I(u,_.precision=w,k,D=!0);else return _.precision=w,u;u=l,r+=2}}function ja(n){return String(n.s*n.s/0)}function Cr(n,e){var t,i,r;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(t<0&&(t=i),t+=+e.slice(i+1),e=e.substring(0,i)):t<0&&(t=e.length),i=0;e.charCodeAt(i)===48;i++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%C,t<0&&(i+=C),i<r){for(i&&n.d.push(+e.slice(0,i)),r-=C;i<r;)n.d.push(+e.slice(i,i+=C));e=e.slice(i),i=C-e.length}else i-=r;for(;i--;)e+="0";n.d.push(+e),D&&(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 Uf(n,e){var t,i,r,o,s,a,u,l,c;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),qa.test(e))return Cr(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(Ff.test(e))t=16,e=e.toLowerCase();else if($f.test(e))t=2;else if(Vf.test(e))t=8;else throw Error(rt+e);for(o=e.search(/p/i),o>0?(u=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,i=n.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=Ga(i,new i(t),o,o*2)),l=kr(e,t,xn),c=l.length-1,o=c;l[o]===0;--o)l.pop();return o<0?new i(n.s*0):(n.e=Pr(l,c),n.d=l,D=!1,s&&(n=X(n,r,a*4)),u&&(n=n.times(Math.abs(u)<54?Se(2,u):M.pow(2,u))),D=!0,n)}function jf(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:Zt(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Lr(5,t)),e=Zt(n,2,e,e);for(var r,o=new n(5),s=new n(16),a=new n(20);t--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function Zt(n,e,t,i,r){var o,s,a,u,l=1,c=n.precision,f=Math.ceil(c/C);for(D=!1,u=t.times(t),a=new n(i);;){if(s=X(a.times(u),new n(e++*e++),c,1),a=r?i.plus(s):i.minus(s),i=X(s.times(u),new n(e++*e++),c,1),s=a.plus(i),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,l++}return D=!0,s.d.length=f+1,s}function Lr(n,e){for(var t=n;--e;)t*=n;return t}function Za(n,e){var t,i=e.s<0,r=In(n,n.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return Vn=i?4:1,e;if(t=e.divToInt(r),t.isZero())Vn=i?3:2;else{if(e=e.minus(t.times(r)),e.lte(o))return Vn=Ra(t)?i?2:3:i?4:1,e;Vn=Ra(t)?i?1:4:i?3:2}return e.minus(r).abs()}function zo(n,e,t,i){var r,o,s,a,u,l,c,f,d,p=n.constructor,x=t!==void 0;if(x?(ze(t,1,ot),i===void 0?i=p.rounding:ze(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())c=ja(n);else{for(c=wn(n),s=c.indexOf("."),x?(r=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):r=e,s>=0&&(c=c.replace(".",""),d=new p(1),d.e=c.length-s,d.d=kr(wn(d),10,r),d.e=d.d.length),f=kr(c,10,r),o=u=f.length;f[--u]==0;)f.pop();if(!f[0])c=x?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=f,n.e=o,n=X(n,d,t,i,0,r),f=n.d,o=n.e,l=Oa),s=f[t],a=r/2,l=l||f[t+1]!==void 0,l=i<4?(s!==void 0||l)&&(i===0||i===(n.s<0?3:2)):s>a||s===a&&(i===4||l||i===6&&f[t-1]&1||i===(n.s<0?8:7)),f.length=t,l)for(;++f[--t]>r-1;)f[t]=0,t||(++o,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,c="";s<u;s++)c+=$o.charAt(f[s]);if(x){if(u>1)if(e==16||e==8){for(s=e==16?4:3,--u;u%s;u++)c+="0";for(f=kr(c,r,e),u=f.length;!f[u-1];--u);for(s=1,c="1.";s<u;s++)c+=$o.charAt(f[s])}else c=c.charAt(0)+"."+c.slice(1);c=c+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)c="0"+c;c="0."+c}else if(++o>u)for(o-=u;o--;)c+="0";else o<u&&(c=c.slice(0,o)+"."+c.slice(o))}c=(e==16?"0x":e==2?"0b":e==8?"0o":"")+c}return n.s<0?"-"+c:c}function Pa(n,e){if(n.length>e)return n.length=e,!0}function Zf(n){return new this(n).abs()}function Hf(n){return new this(n).acos()}function Wf(n){return new this(n).acosh()}function Jf(n,e){return new this(n).plus(e)}function Yf(n){return new this(n).asin()}function Qf(n){return new this(n).asinh()}function Xf(n){return new this(n).atan()}function Kf(n){return new this(n).atanh()}function ed(n,e){n=new this(n),e=new this(e);var t,i=this.precision,r=this.rounding,o=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=In(this,o,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?In(this,i,r):new this(0),t.s=n.s):!n.d||e.isZero()?(t=In(this,o,1).times(.5),t.s=n.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(X(n,e,o,1)),e=In(this,o,1),this.precision=i,this.rounding=r,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(X(n,e,o,1)),t}function nd(n){return new this(n).cbrt()}function td(n){return I(n=new this(n),n.e+1,2)}function id(n,e,t){return new this(n).clamp(e,t)}function rd(n){if(!n||typeof n!="object")throw Error(Rr+"Object expected");var e,t,i,r=n.defaults===!0,o=["precision",1,ot,"rounding",0,8,"toExpNeg",-jt,0,"toExpPos",0,jt,"maxE",0,jt,"minE",-jt,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],r&&(this[t]=Fo[t]),(i=n[t])!==void 0)if(Re(i)===i&&i>=o[e+1]&&i<=o[e+2])this[t]=i;else throw Error(rt+t+": "+i);if(t="crypto",r&&(this[t]=Fo[t]),(i=n[t])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Fa);else this[t]=!1;else throw Error(rt+t+": "+i);return this}function od(n){return new this(n).cos()}function sd(n){return new this(n).cosh()}function Ha(n){var e,t,i;function r(o){var s,a,u,l=this;if(!(l instanceof r))return new r(o);if(l.constructor=r,La(o)){l.s=o.s,D?!o.d||o.e>r.maxE?(l.e=NaN,l.d=null):o.e<r.minE?(l.e=0,l.d=[0]):(l.e=o.e,l.d=o.d.slice()):(l.e=o.e,l.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){l.s=1/o<0?-1:1,l.e=0,l.d=[0];return}if(o<0?(o=-o,l.s=-1):l.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;D?s>r.maxE?(l.e=NaN,l.d=null):s<r.minE?(l.e=0,l.d=[0]):(l.e=s,l.d=[o]):(l.e=s,l.d=[o]);return}if(o*0!==0){o||(l.s=NaN),l.e=NaN,l.d=null;return}return Cr(l,o.toString())}if(u==="string")return(a=o.charCodeAt(0))===45?(o=o.slice(1),l.s=-1):(a===43&&(o=o.slice(1)),l.s=1),qa.test(o)?Cr(l,o):Uf(l,o);if(u==="bigint")return o<0?(o=-o,l.s=-1):l.s=1,Cr(l,o.toString());throw Error(rt+o)}if(r.prototype=y,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=rd,r.clone=Ha,r.isDecimal=La,r.abs=Zf,r.acos=Hf,r.acosh=Wf,r.add=Jf,r.asin=Yf,r.asinh=Qf,r.atan=Xf,r.atanh=Kf,r.atan2=ed,r.cbrt=nd,r.ceil=td,r.clamp=id,r.cos=od,r.cosh=sd,r.div=ad,r.exp=ud,r.floor=ld,r.hypot=cd,r.ln=fd,r.log=dd,r.log10=md,r.log2=pd,r.max=gd,r.min=hd,r.mod=yd,r.mul=xd,r.pow=bd,r.random=Ed,r.round=vd,r.sign=Nd,r.sin=_d,r.sinh=Sd,r.sqrt=Td,r.sub=Bd,r.sum=Id,r.tan=wd,r.tanh=kd,r.trunc=Cd,n===void 0&&(n={}),n&&n.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)n.hasOwnProperty(t=i[e++])||(n[t]=this[t]);return r.config(n),r}function ad(n,e){return new this(n).div(e)}function ud(n){return new this(n).exp()}function ld(n){return I(n=new this(n),n.e+1,3)}function cd(){var n,e,t=new this(0);for(D=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return D=!0,new this(1/0);t=e}return D=!0,t.sqrt()}function La(n){return n instanceof M||n&&n.toStringTag===Va||!1}function fd(n){return new this(n).ln()}function dd(n,e){return new this(n).log(e)}function pd(n){return new this(n).log(2)}function md(n){return new this(n).log(10)}function gd(){return Ua(this,arguments,-1)}function hd(){return Ua(this,arguments,1)}function yd(n,e){return new this(n).mod(e)}function xd(n,e){return new this(n).mul(e)}function bd(n,e){return new this(n).pow(e)}function Ed(n){var e,t,i,r,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:ze(n,1,ot),i=Math.ceil(n/C),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));o<i;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);o<i;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(Fa);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],n%=C,i&&n&&(r=Se(10,C-n),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=C)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<C&&(t-=C-i)}return s.e=t,s.d=a,s}function vd(n){return I(n=new this(n),n.e+1,this.rounding)}function Nd(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function _d(n){return new this(n).sin()}function Sd(n){return new this(n).sinh()}function Td(n){return new this(n).sqrt()}function Bd(n,e){return new this(n).sub(e)}function Id(){var n=0,e=arguments,t=new this(e[n]);for(D=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return D=!0,I(t,this.precision,this.rounding)}function wd(n){return new this(n).tan()}function kd(n){return new this(n).tanh()}function Cd(n){return I(n=new this(n),n.e+1,1)}y[Symbol.for("nodejs.util.inspect.custom")]=y.toString;y[Symbol.toStringTag]="Decimal";var M=y.constructor=Ha(Fo);Ar=new M(Ar);Dr=new M(Dr);var Ci=M;var $e="\x1B[0m";var Ht="\x1B[30;1m";var Wa="\x1B[33m",Go="\x1B[34;1m";var Ai="\x1B[36;1m",Ja="\x1B[101;97m";var Or="\x1B[1m";var Uo;function Xa(n){if(!Uo){let t=`^[${["Zyyy","Zinh","Arab","Armn","Beng","Bopo","Cyrl","Deva","Ethi","Geor","Grek","Gujr","Guru","Hang","Hani","Hebr","Hira","Kana","Knda","Khmr","Laoo","Latn","Mlym","Mymr","Orya","Sinh","Taml","Telu","Thaa","Thai","Tibt"].map(i=>`\\p{Script=${i}}`).join("")}]*$`;Uo=new RegExp(t,"u")}return Uo.test(n)}function Te(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||Wt.test(n)?!0:Xa(n)?/^[\p{XIDS}_]\p{XIDC}*$/u.test(n):!1}var Ad="\\u{FE0F}",Dd="\\u{20E3}",Md="\\u{200D}",Rd="\\p{RI}\\p{RI}",Pd="(?:[\\u{E0020}-\\u{E007E}]+\\u{E007F})",Ya=`(?:\\p{EMod}|${Ad}${Dd}?|${Pd})`,Ld="(?:(?=\\P{XIDC})\\p{Emoji})",Qa=`(?:${Ld}${Ya}*|\\p{Emoji}${Ya}+|${Rd})`,Ka=`(?:${Qa})(${Md}${Qa})*`,Od=new RegExp(`(?:${Ka})+`,"u"),Wt=new RegExp(`^(?:${Ka})+$`,"u");function nn(n){return typeof n!="string"?"not-a-string":n===""?"empty-string":n.normalize()!==n?"expected-nfc":/[\u200E\u200F\u2066-\u2069\u202A-\u202E]/.test(n)?"unexpected-bidi-marker":Wt.test(n)?"valid":/\p{XIDC}/u.test(n)&&Od.test(n)?"unexpected-mixed-emoji":Xa(n)?Te(n)?"valid":Te(n[0])?"invalid-char":"invalid-first-char":"unexpected-script"}var $r=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],jo=["indexed_collection","list","tuple"],Fr=[...jo,"collection","set","record","dictionary"],Vr=["scalar",...$r,"boolean","string"],Zo=["value",...Fr,...Vr],Ho=["expression","symbol","function",...Zo],Et=["any","unknown","nothing","never","error",...Ho];var $d={number:$r,non_finite_number:[],finite_number:["finite_complex","finite_real","finite_integer","finite_rational"],complex:["finite_complex","imaginary","finite_real","finite_rational","finite_integer","non_finite_number"],finite_complex:["imaginary","finite_real","finite_rational","finite_integer"],imaginary:[],real:["rational","integer","finite_real","finite_rational","finite_integer","non_finite_number"],finite_real:["finite_rational","finite_integer"],rational:["finite_rational","finite_integer","integer","non_finite_number"],finite_rational:["finite_integer"],integer:["finite_integer","non_finite_number"],finite_integer:[],any:Et,unknown:[],nothing:[],never:[],error:[],value:Zo,scalar:Vr,collection:Fr,indexed_collection:jo,list:[],set:[],tuple:[],record:[],dictionary:[],function:[],symbol:[],boolean:[],string:[],expression:Ho};function Di(n,e){return e==="any"||n==="never"?!0:n==="unknown"||e==="unknown"?!1:n===e?!0:$d[e].includes(n)}function E(n,e){if(typeof n=="string"&&(n=A(n)),typeof e=="string"&&(e=A(e)),e==="any")return!0;if(e==="never")return!1;if(e==="error")return n==="error";if(e==="nothing")return n==="nothing";if(n==="nothing")return!1;if(e==="unknown")return!0;if(n==="unknown")return!1;if(typeof e=="string")return typeof n=="string"?Di(n,e):n.kind==="value"?typeof n.value=="boolean"?e==="boolean":typeof n.value=="number"?Number.isInteger(n.value)?Di("integer",e):Di("number",e):typeof n.value=="boolean"?Di("boolean",e):typeof n.value=="string"?Di("string",e):!1:n.kind==="union"?n.types.every(t=>E(t,e)):n.kind==="intersection"?n.types.some(t=>E(t,e)):n.kind==="negation"?!E(n.type,e):n.kind==="numeric"?!!E(n.type,e):e==="number"?eu(n):e==="symbol"?Wo(n):e==="expression"?Fd(n):e==="function"?ou(n):e==="scalar"?nu(n):e==="value"?ru(n):e==="indexed_collection"?iu(n):e==="collection"?tu(n):e==="tuple"?n.kind==="tuple":e==="list"?n.kind==="list":e==="set"?n.kind==="set":e==="record"?n.kind==="record":e==="dictionary"?n.kind==="dictionary":!1;if(e.kind==="union")return typeof n!="string"&&n.kind==="union"?n.types.every(t=>e.types.some(i=>E(t,i))):e.types.some(t=>E(n,t));if(e.kind==="expression"){if(n==="symbol")return!0;if(typeof n=="string")return!1;if(n.kind==="expression")return e.operator==="Symbol"?Wo(n):n.operator===e.operator;if(n.kind==="symbol")return!0}if(typeof n=="string")return!1;if(e.kind==="reference"){if(n.kind==="reference")return n.name===e.name;if(e.alias===!0&&e.def)return E(n,e.def)}if(n.kind==="union")return n.types.some(t=>E(t,e));if(n.kind==="intersection"&&e.kind==="intersection")return e.types.every(t=>n.types.some(i=>E(i,t)));if(n.kind==="intersection")return n.types.every(t=>E(t,e));if(e.kind==="intersection")return e.types.every(t=>E(n,t));if(n.kind==="signature"&&e.kind==="signature"){if(!E(n.result,e.result))return!1;if(n.optArgs||n.variadicArg){if(e.args){if(!n.args||n.args.length!==e.args.length)return!1;for(let t=0;t<e.args.length;t++)if(!E(e.args[t].type,n.args[t].type))return!1}else if(n.args)return!1;if(e.optArgs){if(!n.optArgs||n.optArgs.length!==e.optArgs.length)return!1;for(let t=0;t<n.optArgs.length;t++)if(!E(e.optArgs[t].type,n.optArgs[t].type))return!1}else if(n.optArgs)return!1;if(e.variadicArg){if(!n.variadicArg||n.variadicMin!=e.variadicMin||!E(e.variadicArg.type,n.variadicArg.type))return!1}else if(n.variadicArg)return!1}else{if(e.args&&!n.args)return!1;let t=0;if(e.args){if(n.args.length<e.args.length)return!1;for(;t<e.args.length;){if(!E(e.args[t].type,n.args[t].type))return!1;t+=1}}if(e.optArgs){if(t>=n.args.length)return!0;for(let i=0;i<e.optArgs.length;i++){if(!E(e.optArgs[i].type,n.args[t].type))return!1;if(t+=1,t>=n.args.length)return!0}}if(e.variadicArg){if(t>=n.args.length&&e.variadicMin===0)return!0;if(e.variadicMin>0&&t+e.variadicMin>n.args.length)return!1;for(;t<n.args.length;){if(!E(e.variadicArg.type,n.args[t].type))return!1;t+=1}}}return!0}if(n.kind==="record"&&e.kind==="record"){for(let t of Object.keys(e.elements))if(!(t in n.elements)||!E(n.elements[t],e.elements[t]))return!1;return!0}if(n.kind==="dictionary"&&e.kind==="dictionary")return E(n.values,e.values);if(e.kind==="indexed_collection")return n.kind==="indexed_collection"||n.kind==="list"?E(n.elements,e.elements):n.kind==="tuple"?n.elements.every(t=>E(t.type,e.elements)):!1;if(e.kind==="collection"){if(n.kind==="collection"||n.kind==="indexed_collection"||n.kind==="list")return E(n.elements,e.elements);if(n.kind==="tuple")return n.elements.every(t=>E(t.type,e.elements));if(n.kind==="set")return E(n.elements,e.elements);if(n.kind==="dictionary")return E(A(`tuple<string, ${U(n.values)}>`),e.elements);if(n.kind==="record")return E(A(`tuple<$string, ${U(oe(...Object.values(n.elements)))}>`),e.elements)}if(n.kind==="tuple"&&e.kind==="tuple"){if(n.elements.length!==e.elements.length)return!1;for(let t=0;t<n.elements.length;t++){let i=n.elements[t],r=e.elements[t];if(!E(i.type,r.type)||i.name!==r.name)return!1}return!0}if(e.kind==="list"&&n.kind==="list"){if(!E(n.elements,e.elements))return!1;if(e.dimensions){if(!n.dimensions||n.dimensions.length!==e.dimensions.length)return!1;for(let t=0;t<n.dimensions.length;t++)if(e.dimensions[t]!==-1&&n.dimensions[t]!==e.dimensions[t])return!1}return!0}if(n.kind==="symbol"&&e.kind==="symbol")return n.name===e.name;if(n.kind==="numeric"&&e.kind==="numeric")return!(!E(n.type,e.type)||(n.lower??-1/0)<(e.lower??-1/0)||(n.upper??1/0)>(e.upper??1/0));if(e.kind==="set"&&n.kind==="set")return!!E(n.elements,e.elements);if(n.kind==="negation"&&e.kind==="negation")return E(n.type,e.type);if(e.kind==="negation")return!E(n,e.type);if(e.kind==="value"&&n.kind==="value")return e.value===n.value;if(n.kind==="value"){if(typeof n.value=="boolean")return E("boolean",e);if(typeof n.value=="number")return Number.isInteger(n.value)?E("integer",e):E("real",e);if(typeof n.value=="string")return E("string",e)}return!1}function eu(n){return typeof n=="string"?$r.includes(n):n.kind==="value"?typeof n.value=="number":n.kind==="numeric"}function nu(n){return eu(n)?!0:typeof n=="string"?Vr.includes(n):n.kind==="value"?["string","boolean","number"].includes(typeof n.value):!1}function tu(n){return iu(n)?!0:typeof n=="string"?Fr.includes(n):["collection","set","record","dictionary"].includes(n.kind)}function iu(n){return typeof n=="string"?!1:["indexed_collection","list","tuple"].includes(n.kind)}function ru(n){return nu(n)||tu(n)}function ou(n){return n==="function"||typeof n!="string"&&n.kind==="signature"}function Fd(n){return typeof n=="string"&&["expression","symbol","function"].includes(n)||ru(n)||ou(n)||Wo(n)?!0:typeof n=="string"?!1:n.kind==="expression"}function Wo(n){return n==="symbol"?!0:typeof n=="string"?!1:n.kind==="symbol"?!0:n.kind==="expression"?n.operator==="Symbol":!1}var au=3,uu=1,lu=2,Vd=4,qd=5,zd=6,Gd=7,Ud=8,jd=9,Zd=10,Hd=11;fun