UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines • 70.5 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1878],{55537:(t,s,i)=>{function e(t,s){try{if(!t)throw new Error(s)}catch(t){throw t}}i.d(s,{A:()=>y,B:()=>k,C:()=>F,D:()=>z,G:()=>l,a:()=>T,b:()=>P,c:()=>A,d:()=>Z,e:()=>x,f:()=>b,g:()=>e,h:()=>_,i:()=>v,j:()=>p,k:()=>g,l:()=>S,m:()=>E,n:()=>D,o:()=>w,p:()=>d,q:()=>f,r:()=>M,s:()=>q,t:()=>C,u:()=>I,v:()=>N,w:()=>L,x:()=>R,y:()=>B,z:()=>G});class n extends Error{constructor(t,s){super(s),this.m_AdditionalMessage=s,this.m_ErrorType=t,this.name="GeometryError"}what(){return function(t){switch(t){case 1:return"Unknown error";case 2:return"Corrupted geometry";case 3:return"Empty geometry";case 4:return"Math singularity";case 5:return"Buffer is too small";case 6:return"Invalid shape type";case 7:return"Projection out of supported range";case 8:return"Non simple geometry";case 9:return"Cannot calculate geodesic";case 10:return"Notation conversion";case 11:return"Missing grid file";case 12:return"Invalid call";case 13:return"Internal error";case 14:return"Not implemented";case 15:return"IO error";case 16:return"Invalid 3D";case 17:return"An ambiguous geography edge with antipodal points";case 18:return"Geocentric coordinates require ellipsoidal height";case 19:return"Geography cannot be projected into a gnomonic plane or a result of an operation cannot fit into a gnomonic plane";case 20:return"Geometry is too large to be exported in to a given format";case 22:return"Operation is canceled by the user";case 21:return"The operation, such as projection or geodetic computation, cannot be performed without pe-wasm loaded";default:return"unknown error"}}(this.m_ErrorType)}additionalMessage(){return this.m_AdditionalMessage?this.m_AdditionalMessage:""}code(){return this.m_ErrorType}}class r extends n{constructor(t){super(2,t),this.name="CorruptedGeometryError"}}class o extends n{constructor(t){super(3,t),this.name="EmptyGeometryError"}}class h extends n{constructor(t){super(4,t),this.name="MathSingularityError"}}class u extends n{constructor(t){super(21,t),this.name="ProjectionEngineNotLoadedError"}}class a extends n{constructor(t){super(8,t),this.name="NonSimpleGeometryError"}}var l,c;(c=l||(l={}))[c.enumUnknown=0]="enumUnknown",c[c.enumPoint=513]="enumPoint",c[c.enumLine=5122]="enumLine",c[c.enumBezier=5123]="enumBezier",c[c.enumEllipticArc=5124]="enumEllipticArc",c[c.enumEnvelope=3077]="enumEnvelope",c[c.enumMultiPoint=8710]="enumMultiPoint",c[c.enumPolyline=25607]="enumPolyline",c[c.enumPolygon=27656]="enumPolygon",c[c.enumMultipatch=40969]="enumMultipatch",c[c.enumGeometryCollection=3594]="enumGeometryCollection",c[c.enumRationalBezier2=5134]="enumRationalBezier2",c[c.enumBezier2=5135]="enumBezier2",c[c.enumRationalBezier23d=5392]="enumRationalBezier23d",c[c.enumGreatArc3d=5393]="enumGreatArc3d";const m=[0,0,1,1,1,2,0,1,2,3,-1,-1,-1,-1,1,1];function y(t){return m[15&t]}function x(t){return!!(512&t)}function f(t){return!!(1024&t)}function d(t){return!!(2048&t)}function b(t){return!!(4096&t)}function v(t){return!!(8192&t)}function _(t){return!!(16384&t)}function w(t){return!!(32768&t)}function N(t){const s=t.getGeometryType();return v(s)?t.getPointCount():t.isEmpty()?0:s===l.enumEnvelope?4:s===l.enumPoint?1:b(s)?2:void A("missing type")}function p(t){const s=t.getGeometryType();if(_(s))return t.hasNonLinearSegments();if(s===l.enumGeometryCollection){const s=t;for(let t=0,i=s.getGeometryCount();t<i;t++)if(p(s.getGeometry(t)))return!0;return!1}return!!b(s)&&s!==l.enumLine}function M(t){throw new u(t)}function g(t){throw new r(t)}function C(t){throw new Error(t)}function T(t){throw new h(t)}function R(){C("Geometry type is not supported for 3D operations.")}function E(t){throw new n(12,t)}function I(t){throw new o(t)}function P(t){throw new n(14,t)}function D(t){throw new Error(t)}function A(t){throw new n(13,t)}function q(t){throw new Error(t)}function z(t){throw new a(t)}function S(t){t&&p(t)&&P("Operation does not support curves.")}function Z(t){t&&w(t.getGeometryType())&&P("Unsupported geometry type.")}function F(t){t===l.enumGeometryCollection&&C("Geometry_collection instances are not supported in this operation")}function k(t){F(t.getGeometryType())}function B(t){C(`bad wkid: ${t}`)}function G(t){let s="bad wkt: ";s+=t,s+="...",C(s)}function L(t,s){t||C(s)}},83661:(t,s,i)=>{i.d(s,{$:()=>N,A:()=>ys,B:()=>at,C:()=>ft,D:()=>vs,E:()=>a,F:()=>c,G:()=>v,H:()=>b,I:()=>jt,J:()=>ws,K:()=>n,L:()=>Ct,M:()=>Ds,N:()=>_s,O:()=>It,P:()=>ks,Q:()=>z,R:()=>S,S:()=>Pt,T:()=>ut,U:()=>xt,V:()=>E,W:()=>I,X:()=>dt,Y:()=>Wt,Z:()=>Z,_:()=>w,a:()=>lt,a0:()=>P,a1:()=>D,a2:()=>A,a3:()=>Vt,a4:()=>At,a5:()=>gs,a6:()=>Es,a7:()=>Ts,a8:()=>Cs,a9:()=>et,aA:()=>_t,aB:()=>Fs,aC:()=>C,aD:()=>hs,aE:()=>$t,aF:()=>Gt,aG:()=>as,aH:()=>us,aa:()=>nt,ab:()=>pt,ac:()=>_,ad:()=>qs,ae:()=>As,af:()=>B,ag:()=>Ms,ah:()=>it,ai:()=>St,aj:()=>V,ak:()=>G,al:()=>Is,am:()=>bt,an:()=>bs,ao:()=>Jt,ap:()=>ct,aq:()=>os,ar:()=>ls,as:()=>Tt,at:()=>ms,au:()=>gt,av:()=>R,aw:()=>rs,ax:()=>ps,ay:()=>Zs,az:()=>Ss,b:()=>mt,c:()=>Ns,d:()=>Et,e:()=>L,f:()=>T,g:()=>ds,h:()=>wt,i:()=>Ht,j:()=>Xt,k:()=>qt,l:()=>zt,m:()=>Mt,n:()=>Dt,o:()=>st,p:()=>Rt,q:()=>q,r:()=>Yt,s:()=>k,t:()=>O,u:()=>vt,v:()=>yt,w:()=>Nt,x:()=>F,y:()=>p,z:()=>g});var e=i(55537);class n{constructor(t){this.sum=t,this.compensation=0}assign(t){return this.compensation=t.compensation,this.sum=t.sum,this}reset(){this.sum=this.compensation=0}resetToStart(t){this.sum=t,this.compensation=0}normalize(){const t=[Number.NaN];this.sum=tt(this.sum,this.compensation,t),this.compensation=t[0]}add(t){const s=this.sum+t;let i;if(Math.abs(this.sum)>=Math.abs(t)){const e=this.sum-s+t;i=this.compensation+e}else{const e=t-s+this.sum;i=this.compensation+e}this.sum=s,this.compensation=i}sub(t){this.add(-t)}addProduct(t,s){const i=[0],e=$(t,s,i);this.add(e),this.add(i[0])}mul(t){const s=new n(0);s.addProduct(this.sum,t),s.addProduct(this.compensation,t),this.assign(s)}getResult(){return this.sum+this.compensation}pe(t){return this.add(t),this}me(t){return this.add(-t),this}}const r=[5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1],o=[-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3];function h(t){let s=0;return 65535n&t||(s+=16,t>>=16n),255n&t||(s+=8,t>>=8n),15n&t||(s+=4,t>>=4n),s+r[Number(BigInt.asUintN(4,t))]}function u(t){let s=0;return 4294967295n&t||(s=32,t>>=32n),s+h(BigInt.asUintN(32,t))}class a{constructor(t,s){if(this.m_EnvelopeType=1,void 0!==t){if(t instanceof a)return this.vmin=t.vmin,void(this.vmax=t.vmax);this.vmin=t,this.vmax=s,this.normalize()}else this.setEmpty()}static construct(t,s){return new a(t,s)}static constructEmpty(){return new a}setCoords(t,s){this.vmin=t,this.vmax=s,this.normalize()}setCoordsFromEnvelope(t){this.vmin=t.vmin,this.vmax=t.vmax}setEmpty(){this.vmin=Number.NaN,this.vmax=Number.NaN}getCenter(){return.5*(this.vmin+this.vmax)}equalsRange(t,s){return Vt(this.vmin,t)&&Vt(this.vmax,s)}equals(t,s){return!(!this.isEmpty()||!t.isEmpty())||(void 0!==s?Math.abs(this.vmin-t.vmin)<=s&&Math.abs(this.vmax-t.vmax)<=s:this.vmin===t.vmin&&this.vmax===t.vmax)}width(){return this.vmax-this.vmin}isEmpty(){return Number.isNaN(this.vmin)||Number.isNaN(this.vmax)}isZero(){return this.vmin===this.vmax}setInfinite(){this.vmin=Number.NEGATIVE_INFINITY,this.vmax=Number.POSITIVE_INFINITY}move(t){this.isEmpty()||(this.vmin+=t,this.vmax+=t)}contains(t){return t.vmin>=this.vmin&&t.vmax<=this.vmax}containsCoordinate(t){return t>=this.vmin&&t<=this.vmax}containsRightExclusive(t){return t>=this.vmin&&t<this.vmax}containsExclusiveCoordinate(t){return t>this.vmin&&t<this.vmax}containsExclusive(t){return t.vmin>this.vmin&&t.vmax<this.vmax}isIntersecting(t){return this.vmin<=t.vmin?this.vmax>=t.vmin:t.vmax>=this.vmin}mergeCoordinate(t){if(this.isEmpty())return this.vmin=t,void(this.vmax=t);this.mergeNeCoordinate(t)}merge(t){if(t.isEmpty())return;const s=t.vmin,i=t.vmax;this.mergeCoordinate(s),this.mergeCoordinate(i)}mergeNe(t){const s=t.vmin,i=t.vmax;this.mergeNeCoordinate(s),this.mergeNeCoordinate(i)}mergeNeCoordinate(t){t<this.vmin?this.vmin=t:t>this.vmax&&(this.vmax=t)}intersect(t){this.isEmpty()||t.isEmpty()?this.setEmpty():(this.vmin<t.vmin&&(this.vmin=t.vmin),this.vmax>t.vmax&&(this.vmax=t.vmax),this.vmin>this.vmax&&this.setEmpty())}inflate(t){this.isEmpty()||(this.vmin-=t,this.vmax+=t,this.vmax<this.vmin&&this.setEmpty())}normalize(){this.vmin<=this.vmax||(this.vmin>this.vmax?this.vmax=mt(this.vmin,this.vmin=this.vmax):this.setEmpty())}isValid(){return this.isEmpty()||this.vmin<=this.vmax}snapClip(t){return Ns(t,this.vmin,this.vmax)}calculateToleranceFromEnvelope(){return this.isEmpty()?ds():(Math.abs(this.vmin)+Math.abs(this.vmax)+1)*ds()}static unit(){return l}normalizeNoNAN(){this.vmin>this.vmax&&(this.vmax=mt(this.vmin,this.vmin=this.vmax))}setCoordsNoNAN(t,s){this.vmin=t,this.vmax=s,this.normalizeNoNAN()}clone(){return new a(this.vmin,this.vmax)}}const l=new a(0,1);class c{static getNAN(){return new c(Number.NaN)}constructor(t,s){this.m_value=t??0,this.m_eps=s??0}[Symbol.toPrimitive](t){return this}clone(){return new c(this.m_value,this.m_eps)}assign(t){return this.m_value=t.m_value,this.m_eps=t.m_eps,this}scaleError(t){this.m_eps*=t}setError(t){this.m_eps=t}set(t,s){return this.m_value=t,this.m_eps=s??0,this}setWithEps(t,s){return void 0===s&&(s=1),this.m_value=t,this.m_eps=c.ulp(t)*s,this}setE(t){return this.m_value=t.m_value,this.m_eps=t.m_eps,this}precise(){return new c(this.m_value)}value(){return this.m_value}toDouble(){return this.m_value}eps(){return this.m_eps}resetError(){return this.m_eps=0,this}absThis(){return this.m_value=Math.abs(this.m_value),this}add(t){return this.clone().addThis(t)}addE(t){return this.clone().addThisE(t)}addThisE(t){const s=this.m_value+t.m_value,i=this.m_eps+t.m_eps+c.ulp(s);return this.m_value=s,this.m_eps=i,this}addThis(t){const s=this.m_value+t,i=this.m_eps+c.ulp(s);return this.m_value=s,this.m_eps=i,this}subE(t){return this.clone().subThisE(t)}sub(t){return this.clone().subThis(t)}subThisE(t){const s=this.m_value-t.m_value,i=this.m_eps+t.m_eps+c.ulp(s);return this.m_value=s,this.m_eps=i,this}subThis(t){const s=this.m_value-t,i=this.m_eps+c.ulp(s);return this.m_value=s,this.m_eps=i,this}setAddE(t,s){return this.m_value=t.m_value+s.m_value,this.m_eps=t.m_eps+s.m_eps+c.ulp(this.m_value),this}setAdd(t,s){return this.m_value=t+s,this.m_eps=c.ulp(this.m_value),this}setAddEN(t,s){return this.m_value=t.m_value+s,this.m_eps=t.m_eps+c.ulp(this.m_value),this}setAddNE(t,s){return this.m_value=t+s.m_value,this.m_eps=s.m_eps+c.ulp(this.m_value),this}setSubE(t,s){return this.m_value=t.m_value-s.m_value,this.m_eps=t.m_eps+s.m_eps+c.ulp(this.m_value),this}setSub(t,s){return this.m_value=t-s,this.m_eps=c.ulp(this.m_value),this}setSubEN(t,s){return this.m_value=t.m_value-s,this.m_eps=t.m_eps+c.ulp(this.m_value),this}setSubNE(t,s){return this.m_value=t-s.m_value,this.m_eps=s.m_eps+c.ulp(this.m_value),this}mulThisE(t){const s=this.m_value*t.m_value;return this.m_eps=this.m_eps*Math.abs(t.m_value)+t.m_eps*Math.abs(this.m_value)+this.m_eps*t.m_eps+c.ulp(s),this.m_value=s,this}mulThis(t){const s=this.m_value*t;return this.m_eps=this.m_eps*Math.abs(t)+c.ulp(s),this.m_value=s,this}mul(t){return this.clone().mulThis(t)}mulE(t){return this.clone().mulThisE(t)}setMulE(t,s){const i=t.m_value*s.m_value;return this.m_eps=t.m_eps*Math.abs(s.m_value)+s.m_eps*Math.abs(t.m_value)+t.m_eps*s.m_eps+c.ulp(i),this.m_value=i,this}setMul(t,s){return this.m_value=t*s,this.m_eps=c.ulp(this.m_value),this}setMulEN(t,s){return this.setE(t),this.mulThis(s)}setMulNE(t,s){return this.setE(s),this.mulThis(t)}mulThisByPower2(t){return this.m_value*=t,this.m_eps*=Math.abs(t),this}static st_mulByPower2(t,s){return new c(t.m_value,t.m_eps).mulThisByPower2(s)}divE(t){return this.clone().divThisE(t)}divThisE(t){const s=Math.abs(t.m_value),i=this.m_value/t.m_value;let e=(this.m_eps+Math.abs(i)*t.m_eps)/s;if(t.m_eps>.01*s){const i=t.m_eps/s;e*=1+(1+i)*i}return this.m_value=i,this.m_eps=e+c.ulp(i),this}divThis(t){const s=Math.abs(t);return this.m_value/=t,this.m_eps=this.m_eps/s+c.ulp(this.m_value),this}setDivE(t,s){return this.setE(t),this.divThisE(s)}setDiv(t,s){return this.m_value=t/s,this.m_eps=c.ulp(this.m_value),this}setDivEN(t,s){return this.setE(t),this.divThis(s)}setDivNE(t,s){return this.set(t),this.divThisE(s)}divThisByPower2(t){return this.m_value/=t,this.m_eps/=Math.abs(t),this}invThis(){return this.setE(v.clone().divThisE(this)),this}sqrt(){return this.clone().sqrtThis()}sqrtThis(){let t,s;return this.m_value>=0?(t=Math.sqrt(this.m_value),s=this.m_value>10*this.m_eps?.5*this.m_eps/t:this.m_value>this.m_eps?t-Math.sqrt(this.m_value-this.m_eps):Math.max(t,Math.sqrt(this.m_value+this.m_eps)-t),s+=c.ulp(t)):this.m_value<-this.m_eps?(t=Number.NaN,s=Number.NaN):(t=0,s=Math.sqrt(this.m_eps)),this.m_value=t,this.m_eps=s,this}sqr(){return this.clone().sqrThis()}sqrThis(){const t=this.m_value*this.m_value;return this.m_eps=2*this.m_eps*Math.abs(this.m_value)+this.m_eps*this.m_eps+c.ulp(t),this.m_value=t,this}setSin(t){const s=Math.sin(t.m_value),i=Math.cos(t.m_value);this.m_value=s;const e=Math.abs(s),n=Math.abs(t.value());return this.m_eps=(Math.abs(i)+.5*e*t.m_eps)*t.m_eps+c.ulp(e+n),this}static ulp(t){let s=Lt(t);const i=((0x7ff0000000000000n&s)>>52n)-1075n;return i>-1023n?(s=i+0x3ffn<<52n,function(t){return kt[0]=t,Ft[0]}(s)):0===t?0:Number.MIN_VALUE}setCos(t){const s=Math.sin(t.m_value),i=Math.cos(t.m_value);this.m_value=i;const e=Math.abs(i),n=Math.abs(t.value());return this.m_eps=(Math.abs(s)+.5*e*t.m_eps)*t.m_eps+c.ulp(e+n),this}static st_cosAndSin(t,s,i){const e=Math.sin(t.m_value),n=Math.cos(t.m_value);i.m_value=e,s.m_value=n;const r=Math.abs(e),o=Math.abs(n),h=Math.abs(t.value());i.m_eps=(Math.abs(n)+.5*r*t.m_eps)*t.m_eps+c.ulp(r+h),s.m_eps=(Math.abs(e)+.5*o*t.m_eps)*t.m_eps+c.ulp(o+h)}negate(){return this.clone().negateThis()}negateThis(){return this.m_value=-this.m_value,this}setAbs(){return this.m_value=Math.abs(this.m_value),this}isInInterval(t){return a.construct(this.m_value-this.m_eps,this.m_value+this.m_eps).isIntersecting(t)}eq(t){return Math.abs(this.m_value-t.m_value)<=this.m_eps+t.m_eps}ne(t){return!this.eq(t)}gt(t){return this.m_value-t.m_value>this.m_eps+t.m_eps}lt(t){return t.m_value-this.m_value>this.m_eps+t.m_eps}ge(t){return!this.lt(t)}le(t){return!this.gt(t)}tolEQ(t,s){return Math.abs(this.m_value-t.m_value)<=s||this.eq(t)}tolNE(t,s){return!this.tolEQ(t,s)}tolGT(t,s){return this.m_value-t.m_value>s&&this.gt(t)}tolLT(t,s){return t.m_value-this.m_value>s&&this.lt(t)}tolGE(t,s){return!this.tolLT(t,s)}tolLE(t,s){return!this.tolGT(t,s)}isZero(){return Math.abs(this.m_value)<=this.m_eps}isFuzzyZero(){return this.isZero()&&0!==this.m_eps}tolIsZero(t){return Math.abs(this.m_value)<=Math.max(this.m_eps,t)}setPi(){this.setE(d)}setEuler(){this.set(2.718281828459045,f())}static size(){return 1}}function m(t,s){const i=Ot(t),e=Ot(s),n=53-u(i),r=53-u(e);return(n>=0?n:0)+(r>=0?r:0)<=52}function y(t,s){const i=t+s;return i-t===s&&i-s===t}function x(t,s){const i=t-s;return t-i===s&&s+i===t}function f(){return _s()}c.dimensions=1;const d=new c(Math.PI,.5*f()),b=new c(0,0),v=new c(1,0),_=new c(4,0);function w(t,s,i){return t.addE(s.subE(t).mulE(i))}function N(t,s,i){return s.subE(s.subE(t).mulE(v.subE(i)))}function p(t){let s;if(0===t)s=1;else if(Math.abs(t)>.01)s=function(t){return Math.atanh(t)}(t)/t;else{let i;const e=-36.841361487904734;s=0;const n=t*t;for(let t=2*Math.trunc(e/Math.log(n)+2.5)-1;t>1;t-=2)i=1/t,s=(s+i)*n;s+=1}return s}function M(t){const s=Math.PI*Math.PI/6;let i;if(1===t)i=s;else if(t>1)i=s;else if(0===t)i=t;else if(t<0){const s=1+(t=Math.abs(t)),e=Math.log(s);i=e*e/-2-M(t/s)}else if(t>.5){const e=1-t,n=Math.log(t)*Math.log(e);i=s-M(e)-n}else{i=0;const s=1+Math.trunc(-16*Math.log(10)/Math.log(t)+1.5);let e=s;for(let n=s;n>0;n--,e-=1)i*=t,i+=1/(e*e);i*=t}return i}function g(t,s){const i=s*t;if(Math.abs(s)<.1){let s=0;for(let t=60;t>=1;t--)s*=i,s+=1/t/t;return s*=t,s}return M(i)/s}function C(t,s){return t<s?Dt(t,s):Dt(s,t)}function T(t,s){const i=Math.abs(t);return s>=0?i:-i}function R(t){return Math.round(t)}function E(t,s,i,e,n){n[0]=s[0]+(i[0]-s[0])*e,n[1]=s[1]+(i[1]-s[1])*e,3===t&&(n[2]=s[2]+(i[2]-s[2])*e)}function I(t,s,i,e,n){n[0]=i[0]-(i[0]-s[0])*(1-e),n[1]=i[1]-(i[1]-s[1])*(1-e),3===t&&(n[2]=i[2]-(i[2]-s[2])*(1-e))}function P(t,s,i,e,n){e<=.5?E(t,s,i,e,n):I(t,s,i,e,n)}function D(t,s,i,e,n){n[0]=s[0].addE(i[0].subE(s[0]).mulE(e)),n[1]=s[1].addE(i[1].subE(s[1]).mulE(e))}function A(t,s,i,e,n){n[0]=i[0].subE(i[0].subE(s[0]).mulE(v.subE(e))),n[1]=i[1].subE(i[1].subE(s[1]).mulE(v.subE(e)))}function q(t,s,i){let e;return e=i<=.5?t+(s-t)*i:s-(s-t)*(1-i),e}function z(t,s,i){return t+(s-t)*i}function S(t,s,i){return s-(s-t)*(1-i)}function Z(t,s,i,e){i<=.5?(e.x=t.x+(s.x-t.x)*i,e.y=t.y+(s.y-t.y)*i):(e.x=s.x-(s.x-t.x)*(1-i),e.y=s.y-(s.y-t.y)*(1-i))}function F(t,s,i,e){i<=.5?(e.x=t.x+(s.x-t.x)*i,e.y=t.y+(s.y-t.y)*i,e.z=t.z+(s.z-t.z)*i):(e.x=s.x-(s.x-t.x)*(1-i),e.y=s.y-(s.y-t.y)*(1-i),e.z=s.z-(s.z-t.z)*(1-i))}function k(t){return t*t}function B(t){return t*t*t}function G(t){return 1/Math.sqrt(t)}function L(t){return t<0?-1:t>0?1:0}function O(t,s,i,e){const n=[0],r=[0],o=[0];return tt($(t,i,n),$(s,e,r),o)+(n[0]+r[0]+o[0])}const U=[0],Q=[0];function V(t,s,i){return function(t,s,i,e){const n=tt(t,s,J),r=tt(n,i,K);return tt(r,J[0]+K[0],e)}($(t,s,U),i,U[0],Q)}const j=[0],W=[0],Y=[0],X=[0];function $(t,s,i){const e=t*s;return H(t,j,W),H(s,Y,X),i[0]=W[0]*X[0]-(e-j[0]*Y[0]-W[0]*Y[0]-j[0]*X[0]),e}function H(t,s,i){const e=134217729*t;s[0]=e-(e-t),i[0]=t-s[0]}const J=[0],K=[0];function tt(t,s,i){const e=t+s;return Math.abs(t)>Math.abs(s)?i[0]=t-e+s:i[0]=s-e+t,e}function st(t,s){return t%s}function it(t){const s=1-t;if(0===s)return 1;let i;if(s<=.01){const t=s,e=Math.log(t);i=1+t*(.4431471805599453-.25*e+t*(.05680519270997949-.09375*e+t*(.02183137044373718-.05859375*e+t*(.011544521417308362-.042724609375*e+t*(.00714200031339596-.0336456298828125*e+t*(.004854743337164948-.027757644653320312*e+t*(.003514687963781376-.023627042770385742*e)))))))}else{if(t<.016){const s=t,i=.25,e=.046875,n=.01953125,r=.01068115234375,o=.0067291259765625,h=.004626274108886719,u=.0033752918243408203,a=.0025710230693221092;return Ts()*(1-s*(i+s*(e+s*(n+s*(r+s*(o+s*(h+s*(u+s*a))))))))}i=rt(0,s,1)-t*ot(0,s,1)/3}return Ns(i,1,Ts())}function et(t,s,i=Number.NaN){if((0,e.g)(s>=0&&s<=1),0===s)return t;let n=1,r=t;if(r<0&&(r=-r,n=-1),1===s){const t=Math.round(r/gs()),s=r-t*gs();return n*(2*t+Math.sin(s))}const o=Ts(),h=Math.floor(r/o);1&h?r=(h+1)*o-r:r-=h*o;const u=Math.sin(r),a=Number.isNaN(i)?it(s):i;let l;if(1===u)l=a+Math.sqrt(1-s)*(r-o);else{const t=r*r;if(.01424*Math.pow(t,4)<=2*_s())l=r*(1+t*s*(-1/6+t*((4-3*s)/120-(16+(45*s-60)*s)/5040*t)));else if(s<=.01){const t=Math.sin(2*r),i=Math.sin(4*r),e=Math.sin(6*r),n=Math.sin(8*r),o=Math.sin(10*r);l=r+s*((2*-r+t)/8+s*((-3*r+2*t-.25*i)/64+s*((-20*r+15*t-3*i+e/3)/1024+s*(5*(-140*r+112*t-28*i+16/3*e-.5*n)/65536+7*s*((-63*r+52.5*t-15*i+3.75*e-.625*n+.05*o)/65536+s*(-693*r+594*t-185.625*i+1.375*e-12.375*n+1.8*o-.125*Math.sin(12*r))/1048576)))))}else{const t=u*u,i=Math.cos(r),e=i*i,n=ht(u,i,s);l=u*(rt(e,n,1)-s*t*ot(e,n,1)/3)}}return 1&h?l=a*(h+1)-l:l+=a*h,n*l}function nt(t,s,i=Number.NaN){if(0===t)return 0;let e=1,n=t;t<0&&(n=-n,e=-1);const r=Number.isNaN(i)?it(s):i,o=Math.floor(n/r);1&o?n=(o+1)*r-n:n-=o*r;let h=n<=0?0:n>=r?Ts():function(t,s,i){if(0===s)return t;if(1===s)return Math.asin(t);let e=0,n=!0;if(t<.2){const i=t*t,r=t*(1+i*s*(1/6+i*((13*s-4)/120+(16-284*s+493*s*s)/5040*i))),o=Math.abs(s*(4944*s-64-31224*s*s+37369*s*s*s)/362880*Math.pow(t,9));if(o<Math.abs(r)*_s())return r;e=r,n=o>.1*r}if(n){const n=1-s,r=1-t/i,o=Math.sqrt(r*r+n*n),h=Math.atan2(n,t+_s());e=Ts()+Math.sqrt(o)*(h-Ts())}let r=0;for(let n=0;n<7;n++){r=et(e,s,i);const o=ht(Math.sin(e),Math.cos(e),s);if(e-=(r-t)/Math.sqrt(o),n>0&&Math.abs(r-t)<=4*_s()*t)break}return e}(n,s,r);return 1&o?h=Ts()*(o+1)-h:h+=Ts()*o,e*h}function rt(t,s,i){(0,e.g)((0!==t?1:0)+(0!==s?1:0)+1>1);let n=t,r=s,o=i;for(;;){const t=Math.sqrt(n*r)+Math.sqrt(r*o)+Math.sqrt(o*n);n=.25*(n+t),r=.25*(r+t),o=.25*(o+t);const s=(n+r+o)/3,i=(s-n)/s,e=(s-r)/s,h=(s-o)/s;if(Math.abs(i)<=.0024&&Math.abs(e)<=.0024&&Math.abs(h)<=.0024){const t=i*e-h*h,n=i*e*h;return(1+(1/24*t-.1-3/44*n-5*t*t/208+t*n/16)*t+(1/14+3*n/104)*n)/Math.sqrt(s)}}}function ot(t,s,i){(0,e.g)(0!==t||0!==s);let r=t,o=s,h=i;const u=new n(0);let a=1;for(;;){const t=.2*(r+o+3*h),s=(t-r)/t,i=(t-o)/t,e=(t-h)/t;if(Math.abs(s)<=.0015&&Math.abs(i)<=.0015&&Math.abs(e)<=.0015){const n=s*i,r=e*e,o=n-r,h=n-6*r,l=h+o+o,c=3/26,m=h*(9/22*.25*h-.21428571428571427-1.5*c*e*l),y=e*(1/6*l+e*(-.4090909090909091*o+e*c*n));return 3*u.getResult()+a*(1+m+y)/(t*Math.sqrt(t))}const n=Math.sqrt(r),l=Math.sqrt(o),c=Math.sqrt(h),m=n*(l+c)+l*c;u.add(a/(c*(h+m))),a*=.25,r=.25*(r+m),o=.25*(o+m),h=.25*(h+m)}}function ht(t,s,i){return t<.999?1-i*k(t):1-i+i*k(s)}function ut(t,s,i,n,r){return 0===t?0===n?s:1===n?i:r:1===t?0===n?s:1===n?i:q(s,i,n):(2===t&&(0,e.b)("angular interpolation"),void(0,e.b)(""))}function at(t,s,i,n,r,o,h,u){if(0===t)for(let t=0;t<o;++t)n[t+r]=0===h?s[t]:1===h?i[t]:u;else if(1===t)if(0===h)lt(n,s,r,0,o);else if(1===h)lt(n,i,r,0,o);else for(let t=0;t<o;++t)n[t+r]=q(s[t],i[t],h);else if(2===t)if(0===h)lt(n,s,r,0,o);else if(1===h)lt(n,i,r,0,o);else{let t=0;for(let e=0,u=r;e<o;++e,++u)n[u]=q(s[e],i[e],h),t+=n[u]*n[u];if(t>0){t=Math.sqrt(t);for(let s=r;s<r+o;++s)n[s]/=t}else{for(let t=r;t<r+o;++t)n[t]=0;n[r]=1}}else(0,e.b)("")}function lt(t,s,i,e,n){if(0===n)return;let r=0,o=i,h=e;for(;r++<n;)t[o++]=s[h++]}function ct(t,s,i){let e=0;for(let n=0;!e&&n<i;++n)e=t[n]-s[n];return e}function mt(t,s){return t}function yt(t){t.sort(((t,s)=>t<s?-1:t>s?1:0))}function xt(t,s){const i=t.slice(0,s);yt(i),lt(t,i,0,0,s)}function ft(t,s,i,e){const n=t.slice(s,s+i);n.sort(e),lt(t,n,s,0,i)}function dt(t,s){return t<s?-1:t>s?1:0}function bt(t,s,i,e){return t<i?-1:t>i?1:s<e?-1:s>e?1:0}function vt(t,s){if(t.length<2)return t.length;let i=0;for(let e=1;e<t.length;++e)s(t[e],t[i])||(i++,t[e]=mt(t[i],t[i]=t[e]));return 1+i}function _t(t,s){t[s]=t.at(-1),t.pop()}function wt(t,s=!1){return{[Symbol.dispose](){this.bForget||t()},bForget:s}}function Nt(t,s,i){t.length=s,t.fill(i)}function pt(t,s,i){t.length=i;for(let e=0;e<i;++e)t[e]=new s}function Mt(t,s){const i=new Array(s);for(let e=0;e<s;++e)i[e]=new t;return i}function gt(t,s,i){for(let e=0;e<i;++e)t[e].assign(s[e]);return i}function Ct(t,s){const i=t.slice(0,s);for(let t=0;t<s;++t)i[t]=i[t].clone();return i}function Tt(t){return Array.from({length:t},(()=>null))}function Rt(t,s){return Array.from({length:s},(()=>t()))}function Et(t,s){const i=new Array(t);return i.fill(s),i}function It(t,s){return s in t&&1===Object.getOwnPropertyNames(t).length}class Pt{constructor(...t){this.m_elts=t}get length(){return this.m_elts.length}at(t){return this.m_elts[t]}[Symbol.dispose](){for(const t of this.m_elts)t[Symbol.dispose]()}}function Dt(t,s){return{first:t,second:s}}const At=Math.PI,qt=2*Math.PI,zt=.5*Math.PI;class St{constructor(t,s){this.m_cr=t,this.m_cc=s,this.m_v=Et(t*s,0)}get(t,s){return this.m_v[t*this.m_cc+s]}set(t,s,i){this.m_v[t*this.m_cc+s]=i}inc(t,s){return++this.m_v[t*this.m_cc+s]}}const Zt=new ArrayBuffer(8),Ft=new Float64Array(Zt),kt=new BigUint64Array(Zt),Bt=0x0fffffffffffffn;function Gt(){return Number.EPSILON*fs}function Lt(t){return Ft[0]=t,kt[0]}function Ot(t){return Lt(t)&Bt}function Ut(t){return Number((9218868437227405312n&Lt(t))>>52n)}function Qt(t){if(0n===t)return-1n;if(1n===t||-1n===t)return 0n;t<0n&&(t=-t);let s=0n,i=512n,e=1n<<s+i;for(;t>=e;)s+=i,i<<=1n,e<<=i;let n=s;i>>=1n;let r=n+i;for(;i>0n;)t<1n<<r||(n=r),i>>=1n,r=n+i;return n}function Vt(t,s){return t===s||Number.isNaN(t)&&Number.isNaN(s)}function jt(t,s,i){return t===s||Math.abs(t-s)<=i||Number.isNaN(t)&&Number.isNaN(s)}function Wt(t,s){return t<s?-1:t>s?1:0}function Yt(t,s){if(t<s)return-1;if(t>s)return 1;if(t===s)return 0;{const i=Number.isNaN(t),e=Number.isNaN(s);return i<e?-1:i>e?1:0}}function Xt(){return 2147483647}function $t(){return 32767}function Ht(){return 2147483647}function Jt(){return-2147483648}const Kt=2147483647,ts=BigInt(Kt),ss=2166136261,is=16777619,es=14695981039346656037n,ns=1099511628211n;function rs(t){let s=ss;for(let i=0,e=t.length;i<e;++i)s=(s^t.charCodeAt(i))*is;return s&Kt}function os(t,s){return s+2654435769+(t<<6)+(t>>2)&Kt}function hs(t,s){return os(t,cs(s))}function us(t){return os(3735928559,t)}function as(t,s){return os(t,us(s))}function ls(t){return function(t){let s=ss,i=t;return s=(s^255&i)*is,i>>=8,s=(s^255&i)*is,i>>=8,s=(s^255&i)*is,i>>=8,s=(s^255&i)*is,s&Kt}(t)}function cs(t){return Number(function(t){let s=es,i=t;return s=(s^0xffn&i)*ns,i>>=8n,s=(s^0xffn&i)*ns,i>>=8n,s=(s^0xffn&i)*ns,i>>=8n,s=(s^0xffn&i)*ns,i>>=8n,s=(s^0xffn&i)*ns,i>>=8n,s=(s^0xffn&i)*ns,i>>=8n,s=(s^0xffn&i)*ns,s&ts}(t))}function ms(t){return cs(Lt(function(t){return Is(t)}(t)))}function ys(t){return function(t){return 1103515245*t+12345&2147483647}(t)}const xs=100,fs=100;function ds(){return Number.EPSILON*xs}function bs(){return.38196601125010515}function vs(){return 1.4142135623730951}function _s(){return Number.EPSILON}function ws(t,s,i){return t===s||t===i}function Ns(t,s,i){return t>=s?t<=i?t:i:s}function ps(t,s,i){const e=t[0];if(e>=s){if(e<=i)return!1;t[0]=i}else t[0]=s;return!0}function Ms(t,s){return t>=s?s:t<-s?-s:t}function gs(){return At}function Cs(){return qt}function Ts(){return zt}const Rs=3*Ts();function Es(){return Rs}function Is(t){return t+0}function Ps(t){return{v:t}}class Ds{constructor(){this.m_rn=Ps(0n),this.m_rd=Ps(1n),this.m_bNaN=!1,this.m_bNormalized=!1,this.m_power=0,this.m_sign=0}static constructAssign(t,s){const i=t.clone();return void 0!==s&&i.limitPrecisionThis(s),i}static constructDouble(t){return(new Ds).setDouble(t)}static constructInt64(t){return(new Ds).setInt64(t)}static constructRational(t,s){return(new Ds).setRational(t,s)}static constructInt32(t){return this.constructInt64(BigInt(Math.trunc(t)))}[Symbol.toPrimitive](t){return this}compare(t){return this.lt(t)?-1:this.gt(t)?1:0}assignCopy(t){return this.setThis(t)}abs(){return this.clone().absThis()}absThis(){return this.isNAN()||(this.m_sign*=this.m_sign),this}clone(){return(new Ds).setThis(this)}setThis(t){return this.m_bNaN=t.m_bNaN,this.m_bNormalized=t.m_bNormalized,this.m_rn.v=t.m_rn.v,this.m_rd.v=t.m_rd.v,this.m_power=t.m_power,this.m_sign=t.m_sign,this}setZero(){return this.m_rn.v=0n,this.m_rd.v=1n,this.m_bNaN=!1,this.m_power=0,this.m_bNormalized=!0,this.m_sign=0,this}setDouble(t){if(this.setZero(),0===t)return this;if(Number.isInteger(t)&&Math.abs(t)<2147483647)return this.setInt32(t);const s=Lt(t),i=(s&Ds.s_em)>>52n,n=!!(s&Ds.s_sm),r=s&Ds.s_fm;if(i===Ds.s_emax)return r?(this.m_rn.v=this.m_rd.v=0n,this.m_bNaN=!0,this):(this.m_rn.v=n?-1n:1n,this.m_rd.v=0n,this);0n===i&&(0,e.b)("denormalized numbers not yet implemented");const o=i-1023n,h=o>=0n?o:0n,u=o<0n?-o:0n;return this.m_rn.v=(1n<<52n|r)<<h,this.m_rd.v=1n<<52n+u,this.m_sign=n?-1:1,this.m_bNormalized=!1,this.normalizeThis()}setInt64(t){return 0n===t?this.setZero():(this.m_bNaN=!1,this.m_sign=t>0n?1:-1,this.m_rn.v=t>0n?t:-t,this.m_rd.v=1n,this.m_power=0,this.m_bNormalized=!1,this.normalizeThis())}setRational(t,s){return 0n===t?0n===s?this.setNAN():this.setZero():0n===s?t>0n?this.setPositiveInf():this.setNegativeInf():(this.m_sign=(t>0n?1:-1)*(s>0n?1:-1),this.m_rn.v=t>0n?t:-t,this.m_rd.v=s>0n?s:-s,this.m_power=0,this.m_bNormalized=!1,this.normalizeThis())}setInt32(t){return this.setInt64(BigInt(Math.trunc(t)))}getDouble(){return this.convertToDouble()}toDouble(){return this.convertToDouble()}value(){return this.convertToDouble()}isNAN(){return this.m_bNaN}isPositiveInf(){return!this.isNAN()&&0n===this.m_rd.v&&1===this.m_sign}isNegativeInf(){return!this.isNAN()&&0n===this.m_rd.v&&-1===this.m_sign}isFinite(){return!this.isNAN()&&0n!==this.m_rd.v}setNAN(){return this.m_bNaN=!0,this.m_rn.v=0n,this.m_rd.v=0n,this.m_power=0,this.m_bNormalized=!0,this}setPositiveInf(){return this.m_rn.v=1n,this.m_rd.v=0n,this.m_bNaN=!1,this.m_bNormalized=!0,this.m_sign=1,this.m_power=0,this}setNegativeInf(){return this.m_rn.v=1n,this.m_rd.v=0n,this.m_bNaN=!1,this.m_bNormalized=!0,this.m_sign=-1,this.m_power=0,this}subThis(t){if(t.isNAN()&&this.setNAN(),this.isPositiveInf()&&t.isPositiveInf())this.setNAN();else{if(this.isPositiveInf()&&t.isNegativeInf())return this.setPositiveInf(),this;if(this.isNegativeInf()&&t.isNegativeInf())this.setNAN();else if(this.isNegativeInf()&&t.isPositiveInf())return this.setNegativeInf(),this}return this.isNAN()?this:this.opPlusMinus(t,!1)}thisSubAbs(t){return(0,e.g)(0),this}mulThis(t){return t.isNAN()&&this.setNAN(),this.isNAN()?this:(this.m_sign*=t.m_sign,0===this.m_sign?this.setZero():(this.m_rn.v*=t.m_rn.v,this.m_rd.v*=t.m_rd.v,this.m_power+=t.m_power,this.m_bNormalized=!1,this.normalizeThis(),this))}mulDoubleThis(t){return this.mulThis(Ds.constructDouble(t))}thisMulInt64(t){return(0,e.g)(0),this}thisMulInt32(t){return(0,e.g)(0),this}divThis(t){return this.mulThis(t.clone().invertThis())}divDoubleThis(t){return this.divThis(Ds.constructDouble(t))}addDoubleThis(t){return this.addThis(Ds.constructDouble(t))}subDoubleThis(t){return this.subThis(Ds.constructDouble(t))}mul(t){return this.clone().mulThis(t)}mulBigIntThis(t){return this.mulThis(Ds.constructInt64(t))}mulDouble(t){return this.clone().mulThis(Ds.constructDouble(t))}div(t){return this.clone().divThis(t)}divDouble(t){return this.clone().divDoubleThis(t)}add(t){return this.clone().addThis(t)}fmSubThis(t,s){return this.subThis(t.clone().mulThis(s))}fmAddThis(t,s){return this.addThis(t.clone().mulThis(s))}addThis(t){if(t.isNAN()&&this.setNAN(),this.isPositiveInf()&&t.isPositiveInf())return this.setPositiveInf(),this;if(this.isPositiveInf()&&t.isNegativeInf())this.setNAN();else{if(this.isNegativeInf()&&t.isNegativeInf())return this.setNegativeInf(),this;this.isNegativeInf()&&t.isPositiveInf()&&this.setNAN()}return this.isNAN()?this:this.opPlusMinus(t,!0)}addDouble(t){return this.clone().addThis(Ds.constructDouble(t))}sub(t){return this.clone().subThis(t)}subDouble(t){return this.clone().subThis(Ds.constructDouble(t))}isZero(){return 0===this.m_sign}equals(t){return this.clone().subThis(t).isZero()}lt(t){return!this.isNAN()&&!t.isNAN()&&!(this.isPositiveInf()&&t.isPositiveInf()||this.isNegativeInf()&&t.isNegativeInf())&&!this.isPositiveInf()&&(!!t.isPositiveInf()||this.clone().sub(t).LZ())}absLessAbs(t){return this.abs().lt(t.abs())}gt(t){return this.clone().sub(t).GZ()}lte(t){return this.sub(t).LEZ()}gte(t){return this.sub(t).GEZ()}normalizeThis(){if(this.m_bNormalized)return this;if(0n===this.m_rn.v)return this.setZero();let t=0,s=0xffffffffn;for(;0n===(this.m_rn.v&s)&&s<=this.m_rn.v;)s<<=32n,t+=32;s&=this.m_rn.v,s>>=BigInt(t),t+=h(BigInt.asUintN(32,s))-1;let i=0;for(s=0xffffffffn;0n===(this.m_rd.v&s)&&s<=this.m_rd.v;)s<<=32n,i+=32;return s&=this.m_rd.v,s>>=BigInt(i),i+=h(BigInt.asUintN(32,s))-1,this.m_rn.v>>=BigInt(t),this.m_rd.v>>=BigInt(i),this.m_power+=t-i,this.m_rn.v>1n&&this.m_rd.v>1n&&(this.m_rn.v%this.m_rd.v===0n?(this.m_rn.v/=this.m_rd.v,this.m_rd.v=1n):this.m_rd.v%this.m_rn.v===0n&&(this.m_rd.v/=this.m_rn.v,this.m_rn.v=1n)),this.m_bNormalized=!0,this}negateThis(){return this.isNAN()||(this.m_sign*=-1),this}negate(){return this.clone().negateThis()}invertThis(){return this.isNAN()?this:this.isPositiveInf()||this.isNegativeInf()?(this.setZero(),this):0n===this.m_rn.v?(this.setPositiveInf(),this):(this.m_rd=mt(this.m_rn,this.m_rn=this.m_rd),this.m_power=-this.m_power,this)}limitPrecisionThis(t){if(0===t)return this;if(this.isZero())return this.setZero();if(!this.isFinite())return this;this.normalizeThis();let s=Number(Qt(this.m_rn.v));if(s>t){const i=s-t;this.m_rn.v>>=BigInt(s-t),this.m_power+=i}if(s=Number(Qt(this.m_rd.v)),s>t){const i=s-t;this.m_rd.v>>=BigInt(s-t),this.m_power-=i}return this}hiBitIndex(){return Math.max(Number(Qt(this.m_rn.v)),Number(Qt(this.m_rd.v)))}ldexp(t){return this.clone().ldexpThis(t)}ldexpThis(t){return t&&(this.m_bNormalized=!1,this.m_power+=t,this.normalizeThis()),this}LZ(){return!this.isNAN()&&-1===this.m_sign}GZ(){return!this.isNAN()&&1===this.m_sign}LEZ(){return!this.isNAN()&&this.m_sign<=0}GEZ(){return!this.isNAN()&&this.m_sign>=0}toString(){return this.toDouble().toString()}sqr(){return this.clone().sqrThis()}sqrThis(){return this.mulThis(this.clone())}static sqrt(t,s){if(t.m_sign<0n&&(0,e.n)("MP_value: sqrt(-1)"),t.isZero())return t.clone();let i=52,n=2220446049250313e-31;for(;i<s;)2*i<=s?(n*=n,i*=2):(n*=2220446049250313e-31,i+=52);i+=52;const r=Qt(t.m_rn.v),o=Qt(t.m_rd.v);let h,u=t.m_power+Number(r-o);const a=new Ds;Math.abs(u)>200?(1&Math.abs(u)&&(u+=1),h=Ds.constructAssign(t,53).ldexpThis(-u).value(),a.setThis(t).ldexpThis(-u),(0,e.g)(Number.isFinite(h))):(a.setThis(t),h=a.value(),(0,e.g)(Number.isFinite(h)),u=0),h=Math.sqrt(h);const l=Ds.constructDouble(h),c=Ds.constructDouble(n);c.mulThis(l).ldexpThis(1);const m=n*h*2,y=l.clone(),x=new Ds;let f;for(let t=0;t<10;++t){y.mulThis(l),x.setThis(a).subThis(y).absThis();let t=x.value();if(f=1,t<.9)for(;t>m;)t*=t,++f;else f=4;if(x.lte(c))break;for(let t=0;t<f;t++)y.setThis(l).divThis(a).invertThis().addThis(l).ldexpThis(-1).limitPrecisionThis(i),l.setThis(y)}return l.ldexpThis(u/2)}static cubicRoot(t,s){if(t.isZero())return t.clone();let i=52,e=2220446049250313e-31;for(;i<s;)2*i<=s?(e*=e,i*=2):(e*=2220446049250313e-31,i+=52);i+=52;const n=Math.pow(Math.abs(t.value()),1/3),r=Ds.constructDouble(n),o=r.clone();o.sqrThis().mulDoubleThis(3).mulDoubleThis(e),o.limitPrecisionThis(32),t.LZ()&&r.negateThis();for(let s=0;s<10;++s){const s=r.clone();s.sqrThis().mulThis(r);const e=s.clone();if(e.subThis(t),e.absThis().limitPrecisionThis(32),e.lte(o))break;e.setThis(t),e.ldexpThis(1),e.addThis(s);const n=s.clone();n.ldexpThis(1),n.addThis(t),e.divThis(n),r.mulThis(e),r.limitPrecisionThis(i)}return r}isInTheRangeOfDouble(){return(0,e.g)(0),!1}sign(){return this.m_sign}cosAndSin(t,s){(0,e.g)(0)}static nan(){return(0,e.g)(0),new Ds}convertToDouble(){if(this.m_bNaN)return Number.NaN;if(this.isZero())return 0;if(0n===this.m_rd.v)return 1===this.m_sign?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;const t=-1===this.m_sign,s=this.m_rn.v<<(this.m_power>=0?BigInt(this.m_power):0n);let i=this.m_rd.v<<(this.m_power<0?BigInt(-this.m_power):0n);const e=s/i;let n=Number(e);if(BigInt(n)!==e)return t?-n:n;let r=s-e*i;if(r){let t=Qt(i)-1023n;t>0n&&(i>>=t,r<<=52n,r>>=t);let s=Number(r);Number.isFinite(s)||(r>>=52n,s=Number(r),t=0n),t>0n&&(s/=Math.pow(2,52)),n+=s/Number(i)}return t?-n:n}signVal(){return 1===this.m_sign?1n:-1===this.m_sign?-1n:0n}opPlusMinus(t,s){const i=Math.min(this.m_power,t.m_power);let e,n;this.m_power>i?(e=BigInt(this.m_power-i),n=0n):(e=0n,n=BigInt(t.m_power-i));const r=this.signVal()*this.m_rn.v*t.m_rd.v<<e,o=t.signVal()*t.m_rn.v*this.m_rd.v<<n;return this.m_rn.v=s?r+o:r-o,this.m_rd.v*=t.m_rd.v,this.m_power=i,this.m_sign=1,this.m_rn.v<0n&&(this.m_sign=-1,this.m_rn.v=-this.m_rn.v),this.m_bNormalized=!1,this.normalizeThis(),this}}Ds.s_sm=0x8000000000000000n,Ds.s_em=0x7ff0000000000000n,Ds.s_fm=0x000fffffffffffffn,Ds.s_emax=0x7ffn;const As=Ds.constructInt32(1),qs=Ds.constructInt32(0);function zs(t,s){let i=Ut(t);const e=Ut(s);return i===e?(i-=53-function(t,s){return function(t){let s=0;return 0xffffffff00000000n&t&&(s=32,t>>=32n),s+function(t){let s=0;return 4294901760n&t&&(s+=16,t>>=16n),65280n&t&&(s+=8,t>>=8n),240n&t&&(s+=4,t>>=4n),s+o[Number(BigInt.asUintN(4,t))]+1}(t)}(t^s)}(Ot(t),Ot(s)),i):i>e?i:e}function Ss(t,s){for(let i=0,e=0,n=t.length;i<n;i+=2,e++)s[e].x=t[i],s[e].y=t[i+1]}function Zs(t){const s=new Float64Array(2*t.length);for(let i=0,e=t.length;i<e;++i){const e=i<<1;s[e]=t[i].x,s[e+1]=t[i].y}return s}function Fs(t){const s=Mt(ks,t.length);for(let i=0,e=t.length;i<e;++i)s[i].setCoords(t[i][0],t[i][1]);return s}class ks{static construct(t,s){return new ks(t,s)}constructor(t,s){void 0!==t?(this.x=t,this.y=s):this.x=this.y=Number.NaN}clone(){return new ks(this.x,this.y)}assign(t){this.setCoordsPoint2D(t)}setCoords(t,s){return this.x=t,this.y=s,this}setCoordsPoint2D(t){this.x=t.x,this.y=t.y}isEqualPoint2D(t,s){return void 0!==s?Math.abs(this.x-t.x)<=s&&Math.abs(this.y-t.y)<=s:this.x===t.x&&this.y===t.y}isEqual(t,s,i){return void 0!==i?Math.abs(this.x-t)<=i&&Math.abs(this.y-s)<=i:this.x===t&&this.y===s}equalsPoint2D(t,s){return this.isEqualPoint2D(t,s)}setSub(t,s){this.x=t.x-s.x,this.y=t.y-s.y}addThis(t){return this.x+=t.x,this.y+=t.y,this}setAdd(t,s){return this.x=t.x+s.x,this.y=t.y+s.y,this}absoluteOther(t){}absolute(){return(0,e.g)(0),this}setNegate(){this.x=-this.x,this.y=-this.y}setNegateOther(t){this.x=-t.x,this.y=-t.y}interpolateThis(t,s){}interpolate(t,s,i){(0,e.g)(0)}scaleAddThis(t,s){this.x=this.x*t+s.x,this.y=this.y*t+s.y}setScaleAdd(t,s,i){this.x=s.x*t+i.x,this.y=s.y*t+i.y}scaleOther(t,s){(0,e.g)(0)}scale(t){this.x*=t,this.y*=t}compare(t){return this.y<t.y?-1:this.y>t.y?1:this.x<t.x?-1:this.x>t.x?1:0}compareX(t){return this.x<t.x?-1:this.x>t.x?1:this.y<t.y?-1:this.y>t.y?1:0}normalizeOther(t){(0,e.g)(0)}normalize(){const t=this.length();return t?(this.x/=t,this.y/=t):(this.x=1,this.y=0),this}getUnitVector(){return this.clone().normalize()}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}sqrLength(){return this.x*this.x+this.y*this.y}static averageFast(t,s){return(0,e.g)(0),{}}static average(t,s){const i=new ks;if(0===s)return i.setNAN(),i;if(1===s)return i.assign(t[0]),i;const e=new n(t[0].x),r=new n(t[0].y);for(let i=1;i<s;i++)e.add(t[i].x),r.add(t[i].y),255&i||(e.normalize(),r.normalize());return i.x=e.getResult()/s,i.y=r.getResult()/s,i}offset(t,s){const i=ks.distance(t,s),e=ks.construct(this.x,this.y);if(0===i)return ks.distance(e,t);const n=s.clone();return n.subThis(t),e.subThis(t),e.crossProduct(n)/i}side(t,s){return t.equals(s)?this.equals(t)?0:1:ks.orientationRobust(s,t,this)}static sqrDistance(t,s){const i=t.x-s.x,e=t.y-s.y;return i*i+e*e}static sqrDistanceCoords(t,s,i,e){const n=i-t,r=e-s;return n*n+r*r}static distance(t,s){return Math.sqrt(ks.sqrDistance(t,s))}dotProduct(t){return this.x*t.x+this.y*t.y}dotProductAbs(t){return Math.abs(this.x*t.x)+Math.abs(this.y*t.y)}crossProduct(t){return this.x*t.y-this.y*t.x}crossProductAbs(t){return(0,e.g)(0),0}rotateDirect(t,s){const i=this.x*t-this.y*s,e=this.x*s+this.y*t;this.x=i,this.y=e}rotateReverse(t,s){const i=this.x*t+this.y*s,e=-this.x*s+this.y*t;this.x=i,this.y=e}leftPerpendicularThis(){const t=this.x;this.x=-this.y,this.y=t}leftPerpendicularOther(t){const s=t.x;this.x=-t.y,this.y=s}rightPerpendicularThis(){const t=this.x;this.x=this.y,this.y=-t}rightPerpendicularOther(t){const s=t.x;this.x=t.y,this.y=-s}equals(t){return this.x===t.x&&this.y===t.y}notequals(t){return this.x!==t.x||this.y!==t.y}not(){return!this.x&&!this.y}gt(t){return this.y>t.y||this.y===t.y&&this.x>t.x}gte(t){return!this.lt(t)}lt(t){return this.y<t.y||this.y===t.y&&this.x<t.x}lte(t){return!this.gt(t)}subThis(t){return this.x-=t.x,this.y-=t.y,this}divThis(t){return this.x/=t,this.y/=t,this}add(t){return new ks(this.x+t.x,this.y+t.y)}sub(t){return new ks(this.x-t.x,this.y-t.y)}negateThis(){return this.x=-this.x,this.y=-this.y,this}negate(){return new ks(-this.x,-this.y)}mul(t){return new ks(this.x*t,this.y*t)}mulThis(t){return this.x*=t,this.y*=t,this}divide(t){return new ks(this.x/t,this.y/t)}setNAN(){this.x=this.y=Number.NaN}isNAN(){return Number.isNaN(this.x)||Number.isNaN(this.y)}static getNAN(){return new ks(Number.NaN,Number.NaN)}isFinite(){return Number.isFinite(this.x)&&Number.isFinite(this.y)}isZero(){return 0===this.x&&0===this.y}norm(t){switch(t){case 0:{const t=Math.abs(this.x),s=Math.abs(this.y),i=t-s;return i>=0?t:i<=0?s:Number.NaN}case 1:return Math.abs(this.x)+Math.abs(this.y);case 2:return Math.sqrt(this.x*this.x+this.y*this.y);default:(0,e.t)("norm")}}getQuarter(){return ks.getQuarterCoords(this.x,this.y)}static getQuarterCoords(t,s){return t>0?s>=0?1:4:s>0?2:0===t?4:3}static compareVectors(t,s){const i=t.getQuarter(),e=s.getQuarter();return e===i?ks.orientationRobustImpl(ks.construct(0,0),s,t,!0):i<e?-1:1}static compareVectorsOrigin(t,s,i){const e=s.sub(t),n=i.sub(t),r=e.getQuarter(),o=n.getQuarter();return o===r?ks.orientationRobustImpl(t,i,s,!0):r<o?-1:1}static orientationRobust(t,s,i){return ks.orientationRobustImpl(t,s,i,!1)}static orientationRobustEx(t,s,i,e){if(t.equals(s)||i.equals(e))return 0;const n=s.x-t.x,r=s.y-t.y,o=e.x-i.x,h=e.y-i.y;{const t=ks.getQuarterCoords(n,r)-1,s=ks.getQuarterCoords(o,h)-1,i=ks.d[t][s];if(0!==i)return i}const u=n*h,a=r*o,l=4*_s()*(Math.abs(u)+Math.abs(a)),c=u-a;return Math.abs(c)>=l?c<0?-1:c>0?1:0:ks.orientationRobustExMp(t,s,i,e)}static orientationRobustExMp(t,s,i,e){const n=Ds.constructDouble(s.x),r=Ds.constructDouble(e.x);n.subThis(Ds.constructDouble(t.x)),r.subThis(Ds.constructDouble(i.x));const o=Ds.constructDouble(s.y),h=Ds.constructDouble(e.y);return o.subThis(Ds.constructDouble(t.y)),h.subThis(Ds.constructDouble(i.y)),n.mulThis(h),o.mulThis(r),n.subThis(o),n.LZ()?-1:n.GZ()?1:0}static orientationNonRobust(t,s,i){const e=s.sub(t).crossProduct(i.sub(t));return e<0?-1:e>0?1:0}static orientationRobustImpl(t,s,i,e){if(s.isEqualPoint2D(t)||i.isEqualPoint2D(t)||s.isEqualPoint2D(i))return 0;const n=s.x-t.x,r=s.y-t.y,o=i.x-t.x,h=i.y-t.y;if(!e){const t=ks.getQuarterCoords(n,r)-1,s=ks.getQuarterCoords(o,h)-1,i=ks.d[t][s];if(0!==i)return i}const u=(Math.abs(n)+Math.abs(r)+Math.abs(o)+Math.abs(h))*(Math.abs(s.x)+Math.abs(s.y)+Math.abs(i.x)+Math.abs(i.y))*8*f(),a=n*h-r*o;if(Math.abs(a)>u)return a<0?-1:1;if(x(s.x,t.x)&&x(i.y,t.y)&&x(s.y,t.y)&&x(i.x,t.x)&&m(n,h)&&m(r,o)){const t=n*h,s=r*o;if(x(t,s)){const i=t-s;return i<0?-1:i>0?1:0}}return ks.orientationRobustMp(t,s,i)}static orientationRobustMp(t,s,i){const e=Ds.constructDouble(s.x),n=Ds.constructDouble(i.x);{const s=Ds.constructDouble(t.x);e.subThis(s),n.subThis(s)}const r=Ds.constructDouble(i.y),o=Ds.constructDouble(s.y);{const s=Ds.constructDouble(t.y);r.subThis(s),o.subThis(s)}return e.mulThis(r),o.mulThis(n),e.subThis(o),e.LZ()?-1:e.GZ()?1:0}static inCircleRobust(t,s,i,e){const n=new c,r=new c;n.set(t.x),n.subThis(e.x),r.set(t.y),r.subThis(e.y);const o=new c,h=new c;o.set(s.x),o.subThis(e.x),h.set(s.y),h.subThis(e.y);const u=new c,a=new c;u.set(i.x),u.subThis(e.x),a.set(i.y),a.subThis(e.y);const l=n.mulE(h).subE(r.mulE(o)),m=o.mulE(a).subE(h.mulE(u)),y=n.mulE(a).subE(r.mulE(u)),x=n.mulE(n).addE(r.mulE(r)),f=o.mulE(o).addE(h.mulE(h)),d=u.mulE(u).addE(a.mulE(a)),b=x.mulE(m).subE(f.mulE(y)).addE(d.mulE(l));if(!b.isFuzzyZero()){const t=b.value();return t<0?-1:t>0?1:0}return ks.inCircleRobustMp(t,s,i,e)}static inCircleRobustMp(t,s,i,e){do{if(!x(t.x,e.x)||!x(t.y,e.y))break;if(!x(s.x,e.x)||!x(s.y,e.y))break;if(!x(i.x,e.x)||!x(i.y,e.y))break;const n=t.x-e.x,r=t.y-e.y,o=s.x-e.x,h=s.y-e.y,u=i.x-e.x,a=i.y-e.y;if(!m(n,h)||!m(r,o))break;if(!m(o,a)||!m(h,u))break;if(!m(n,a)||!m(r,u))break;if(!m(n,n)||!m(r,r))break;if(!m(o,o)||!m(h,h))break;if(!m(u,u)||!m(a,a))break;const l=n*h,c=r*o,f=o*a,d=h*u,b=n*a,v=r*u,_=n*n,w=r*r,N=o*o,p=h*h,M=u*u,g=a*a;if(!x(l,c))break;if(!x(f,d))break;if(!x(b,v))break;if(!y(_,w))break;if(!y(N,p))break;if(!y(M,g))break;const C=l-c,T=f-d,R=b-v,E=_+w,I=N+p,P=M+g;if(!m(E,T))break;if(!m(I,R))break;if(!m(P,C))break;const D=E*T,A=I*R,q=P*C;if(!x(D,A))break;const z=D-A;if(!y(z,q))break;const S=z+q;return S<0?-1:S>0?1:0}while(0);const n=Ds.constructDouble(e.x),r=Ds.constructDouble(e.y),o=Ds.constructDouble(t.x),h=Ds.constructDouble(t.y);o.subThis(n),h.subThis(r);const u=Ds.constructDouble(s.x),a=Ds.constructDouble(s.y);u.subThis(n),a.subThis(r);const l=Ds.constructDouble(i.x),c=Ds.constructDouble(i.y);l.subThis(n),c.subThis(r);const f=o.mul(a).sub(h.mul(u)),d=u.mul(c).sub(a.mul(l)),b=o.mul(c).sub(h.mul(l)),v=o.mul(o).add(h.mul(h)),_=u.mul(u).add(a.mul(a)),w=l.mul(l).add(c.mul(c)),N=v.mul(d).sub(_.mul(b)).add(w.mul(f));return N.LZ()?-1:N.GZ()?1:0}static inCircleRobustMp3Point(t,s,i){const e=Ds.constructDouble(t.x),n=Ds.constructDouble(t.y),r=Ds.constructDouble(s.x),o=Ds.constructDouble(s.y),h=Ds.constructDouble(i.x),u=Ds.constructDouble(i.y),a=h.mul(h).add(u.mul(u)).sub(h.mul(e).add(u.mul(n)).add(h.mul(r)).add(u.mul(o))).add(e.mul(r).add(n.mul(o)));return a.LZ()?-1:a.GZ()?1:0}static inCircleRobust3Point(t,s,i){const e=new c(t.x),n=new c(t.y),r=new c(s.x),o=new c(s.y),h=new c(i.x),u=new c(i.y),a=h.mulE(h).addE(u.mulE(u)).subE(h.mulE(e).addE(u.mulE(n)).addE(h.mulE(r)).addE(u.mulE(o))).addE(e.mulE(r).addE(n.mulE(o)));if(!a.isFuzzyZero()){const t=a.value();return t<0?-1:t>0?1:0}return ks.inCircleRobustMp3Point(t,s,i)}static calculateCircleCenterFromThreePoints(t,s,i){if(t.equals(i)||t.equals(s)||i.equals(s))return ks.getNAN();const e=function(t,s,i){const e=new c(s.x);e.subThis(t.x);const n=new c(s.y);n.subThis(t.y);const r=new c(i.x);r.subThis(t.x);const o=new c(i.y);o.subThis(t.y);const h=e.clone();h.mulThisE(o);let u=n.clone();if(u.mulThisE(r),h.subThisE(u),0===h.value())return ks.getNAN();h.mulThis(2);const a=e.clone();a.mulThisE(e);const l=n.clone();l.mulThisE(n);const m=a.clone();m.addThisE(l);const y=r.clone();y.mulThisE(r);const x=o.clone();x.mulThisE(o);const f=y.clone();f.addThisE(x);const d=n.clone();d.mulThisE(f),u=o.clone(),u.mulThisE(m),d.subThisE(u),d.divThisE(h);const b=e.clone();b.mulThisE(f),u=r.clone(),u.mulThisE(m),b.subThisE(u),b.divThisE(h);const v=ks.construct(t.x-d.value(),t.y+b.value()),_=t.sub(v).length(),w=s.sub(v).length(),N=i.sub(v).length(),p=1e-15*(_+Math.abs(t.x)+Math.abs(s.x)+Math.abs(i.x)+Math.abs(t.y)+Math.abs(s.y)+Math.abs(i.y));return Math.abs(_-w)<=p&&Math.abs(_-N)<=p&&d.eps()<p&&b.eps()<p?v:ks.getNAN()}(t,s,i);return e.isNAN()?function(t,s,i){const e=Ds.constructDouble(s.x);e.subDoubleThis(t.x);const n=Ds.constructDouble(s.y);n.subDoubleThis(t.y);const r=Ds.constructDouble(i.x);r.subDoubleThis(t.x);const o=Ds.constructDouble(i.y);o.subDoubleThis(t.y);const h=e.clone();h.mulThis(o);let u=n.clone();if(u.mulThis(r),h.subThis(u),h.isZero())return ks.getNAN();h.mulDoubleThis(2);const a=e.clone();a.mulThis(e);const l=n.clone();l.mulThis(n);const c=a.clone();c.addThis(l);const m=r.clone();m.mulThis(r);const y=o.clone();y.mulThis(o);const x=m.clone();x.addThis(y);const f=n.clone();f.mulThis(x),u=o.clone(),u.mulThis(c),f.subThis(u),f.divThis(h);const d=e.clone();return d.mulThis(x),u=r.clone(),u.mulThis(c),d.subThis(u),d.divThis(h),ks.construct(t.x-f.value(),t.y+d.value())}(t,s,i):e}static calculateAngle(t,s){return Math.atan2(t.crossProduct(s),t.dotProduct(s))}static isBisectorRobust(t,s,i){return(0,e.g)(0),!1}static size(){return 2}get 0(){return this.x}get 1(){return this.y}set 0(t){this.x=t}set 1(t){this.y=t}static compareZorder(t,s){const i=ks.c_compare_zorder_xx[t.x<0?1:0]|ks.c_compare_zorder_yy[t.y<0?1:0],e=ks.c_compare_zorder_xx[s.x<0?1:0]|ks.c_compare_zorder_yy[s.y<0?1:0];if(i===e){let i=0,e=0;for(let n=0;n<2;++n){const r=zs(t[n],s[n]);r>i&&(i=r,e=n)}return t[e]<s[e]}return i<e}static lerp(t,s,i){const e=new ks;return Z(t,s,i,e),e}static getClosestCoordinate(t,s,i,e=!1){const n=ks.getNAN();n.setSub(s,t);const r=n.sqrLength();if(0===r)return.5;if(s.isEqualPoint2D(i))return 1;const o=ks.getNAN();o.setSub(i,t);let h=o.dotProduct(n)/r;return e||(h<0?h=0:h>1&&(h=1)),h}static intersectLinesAtOnePoint(t,s,i,e){if(t.equals(s)||i.equals(e))return ks.getNAN();const n=s.x-t.x,r=i.x-e.x,o=s.y-t.y,h=i.y-e.y,u=n*h-r*o;if(!u)return ks.getNAN();const a=u;if(0===a)return ks.getNAN();let l=(i.x-t.x)*h-(i.y-t.y)*r;l/=a;const c=new ks;return Z(t,s,l,c),c.isFinite()?c:ks.getNAN()}toString(){return`[${this.x},${this.y}]`}}ks.dimensions=2,ks.d=[[0,1,0,-1],[-1,0,1,0],[0,-1,0,1],[1,0,-1,0]],ks.c_compare_zorder_xx=[2,0],ks.c_compare_zorder_yy=[1,0]},11878:(t,s,i)=>{i.d(s,{T:()=>h});var e=i(55537),n=i(83661);class r{constructor(t,s,i){if(t instanceof r)return this.data=t.data,this.N=t.N,this.M=t.M,t.data=null,t.N=0,void(t.M=0);this.data=t,this.N=s,this.M=i}assignCopy(t){return this===t||((0,e.g)(this.N*this.M==t.N*t.M),this.data.set(t.data),this.N=t.N,this.M=t.M),this}setZero(){return this.data?.fill(0),this}setIdentity(){for(let t=0;t<this.N;t++)for(let s=0;s<this.M;s++)this.setRowCol(t,s,t===s?1:0);return this}rows(){return this.N}cols(){return this.M}row(t){return(0,e.g)(0),{}}set(t,s){return this.data[t]=s,this}setRowCol(t,s,i){return this.data[t*this.M+s]=i,this}at(t){return this.data[t]}atRowCol(t,s){return this.data[t*this.M+s]}mulScalar(t,s){(0,e.g)(0)}mul(t,s){if((0,e.g)(this.M===t.rows()),(0,e.g)(this.N===s.rows()),(0,e.g)(t.cols()===s.cols()),s===this){const i=new Float64Array(this.N*this.M),e=new r(i,this.N,this.M);return this.mul(t,e),void s.assignCopy(e)}if(s===t){const i=new Float64Array(t.N*t.M),e=new r(i,t.N,t.M);return this.mul(t,e),void s.assignCopy(e)}const i=t.cols();for(let e=0;e<this.N;e++)for(let n=0;n<i;n++){let i=0;for(let s=0;s<this.M;s++)i+=this.atRowCol(e,s)*t.atRowCol(s,n);s.setRowCol(e,n,i)}}mulTranspose(t,s){if((0,e.g)(this.M===t.cols()),(0,e.g)(this.N===s.rows()),(0,e.g)(t.rows()===s.cols()),s===this){const i=new Float64Array(this.N*this.M),e=new r(i,this.N,this.M);return this.mulTranspose(t,e),void s.assignCopy(e)}if(s===t){const i=new Float64Array(t.N*t.M),e=new r(i,t.N,t.M);return this.mulTranspose(t,e),void s.assignCopy(e)}const i=t.rows();for(let e=0;e<this.N;e++)for(let n=0;n<i;n++){let i=0;for(let s=0;s<this.M;s++)i+=this.atRowCol(e,s)*t.atRowCol(n,s);s.setRowCol(e,n,i)}}mulLeft(t,s){(0,e.g)(0)}mulLeftTranspose(t,s){(0,e.g)(0)}mulDiag(t,s){if((0,e.g)(this.M===t.N*t.M),(0,e.g)(this.N===s.rows()),(0,e.g)(this.M===s.cols()),s===this){const i=new Float64Array(this.N*this.M),e=new r(i,this.N,this.M);return this.mulDiag(t,e),void s.assignCopy(e)}const i=this.M;for(let e=0;e<this.N;e++)for(let n=0;n<i;n++)s.setRowCol(e,n,this.atRowCol(e,n)*t.at(n))}transposeInPlace(){if(this.N===this.M){for(let t=0;t<this.N;t++)for(let s=t+1;s<this.M;s++){const i=this.atRowCol(t,s);this.setRowCol(t,s,this.atRowCol(s,t)),this.setRowCol(s,t,i)}return this}const t=new Float64Array(this.N*this.M),s=new r(t,this.N,this.M);return s.as