@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 1.18 MB
JavaScript
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2189],{95213:(t,e,s)=>{s.d(e,{$:()=>vt,A:()=>V,B:()=>R,C:()=>K,D:()=>G,E:()=>qt,F:()=>F,G:()=>It,H:()=>bt,I:()=>it,J:()=>nt,K:()=>D,L:()=>$,M:()=>dt,N:()=>at,O:()=>u,P:()=>At,Q:()=>Z,R:()=>yt,S:()=>k,T:()=>U,U:()=>Tt,V:()=>g,W:()=>ut,X:()=>I,Y:()=>wt,Z:()=>Et,_:()=>St,a:()=>ot,a0:()=>Ct,a1:()=>_t,a2:()=>O,a3:()=>ht,a4:()=>q,a5:()=>xt,a6:()=>z,b:()=>mt,c:()=>lt,d:()=>gt,e:()=>et,f:()=>pt,g:()=>st,h:()=>v,i:()=>Pt,j:()=>E,k:()=>Mt,l:()=>x,m:()=>P,n:()=>b,o:()=>c,p:()=>d,q:()=>S,r:()=>y,s:()=>ft,t:()=>T,u:()=>N,v:()=>tt,w:()=>C,x:()=>rt,y:()=>X,z:()=>A});var i=s(83661),n=s(79187),r=s(55537);const o=[0,0,Number.NaN,0,0,0,0,0,-1,-1,0,0,0,0],a=[2,1,1,1,3,1,2,3,2,4,1,1,2,1],h=[1,1,1,0,2,1,1,1,0,0,0,0,0,1],m=[1,1,1,2,0,0,0,0,2,2,4,2,2,1],l=[4,8,4,8,1],u=25;function c(){return(0,i.d)(u,Number.NaN)}let g=class t{getAttributeCount(){return this.m_attributeCount}getSemantics(t){return this.m_indexToSemantics[t]}getSemanticsBitArray(){return this.m_semanticsBitArray}getAttributeIndex(t){return this.m_semanticsToIndexMap[t]}static getInterpolation(t){return h[t]}static getPersistence(t){return m[t]}static getPersistenceSize(t){return l[t]}static getPersistenceSizeFromSemantics(e){return t.getPersistenceSize(t.getPersistence(e))*t.getComponentCount(e)}static getComponentCount(t){return a[t]}static maxComponentCount(){return 4}static isInteger(t){return 2===t||3===t||4===t}static isIntegerSemantics(e){return t.isInteger(t.getPersistence(e))}static isTexture(t){return 5===t||6===t||7===t}hasAttribute(t){return!!(this.m_semanticsBitArray&1<<t)}hasAttributesFrom(t){return(this.m_semanticsBitArray&t.m_semanticsBitArray)===t.m_semanticsBitArray}hasZ(){return this.hasAttribute(1)}hasM(){return this.hasAttribute(2)}hasID(){return this.hasAttribute(3)}getTotalComponentCount(){return this.m_totalComponentCount}static getDefaultValue(t){return o[t]}static isDefaultValue(t,e){return(0,i.a3)(o[t],e)}equals(t){return this===t}getDefaultPointAttributes(){return this.m_defaultPointAttributes}getPointAttributeOffset(t){return this.m_pointAttributeOffsets[t]}constructor(e){this.m_semanticsBitArray=e,this.m_attributeCount=0,this.m_totalComponentCount=0,this.m_semanticsToIndexMap=new Int32Array(14),this.m_indexToSemantics=new Int32Array(14),this.m_pointAttributeOffsets=new Int32Array(14),this.m_defaultPointAttributes=(0,i.d)(u,Number.NaN),this.m_semanticsToIndexMap.fill(-1),this.m_indexToSemantics.fill(-1);let s=0,n=1,r=14;for(;s<r;s++)e&n&&(this.m_semanticsToIndexMap[s]=this.m_attributeCount,this.m_indexToSemantics[this.m_attributeCount]=s,this.m_attributeCount++,this.m_totalComponentCount+=t.getComponentCount(s)),n<<=1;let o=0;for(s=0,r=this.getAttributeCount();s<r;s++){const e=this.getSemantics(s),i=t.getComponentCount(e),n=t.getDefaultValue(e);this.m_pointAttributeOffsets[s]=o;for(let t=0;t<i;t++)this.m_defaultPointAttributes[o]=n,o++}}};var _=g;function d(){return(0,i.d)(14,0)}class p{static getInstance(){return p.s_thisInstance}constructor(){this.m_map=new Map,this.m_vd2D=new _(1),this.m_map.set(1,this.m_vd2D),this.m_vd3D=new _(3),this.m_map.set(3,this.m_vd2D)}GetVD2D(){return this.m_vd2D}GetVD3D(){return this.m_vd3D}FindOrAdd(t){if(1===t)return this.GetVD2D();if(3===t)return this.GetVD3D();const e=this.m_map.get(t);if(e)return e;const s=new _(t);return this.m_map.set(t,s),s}}function f(t){return p.getInstance().FindOrAdd(t)}function x(t,e){if(!t||!e)return e||t;const s=t.getSemanticsBitArray()|e.getSemanticsBitArray();return(s&t.getSemanticsBitArray())===s?t:(s&e.getSemanticsBitArray())===s?e:f(s)}function P(t,e){const s=t.getSemanticsBitArray()|1<<e;return(s&t.getSemanticsBitArray())===s?t:f(s)}function y(t,e){const s=(t.getSemanticsBitArray()|1<<e)-(1<<e);return s===t.getSemanticsBitArray()?t:f(s)}function E(){return p.getInstance().GetVD2D()}function C(){return p.getInstance().GetVD3D()}function S(t,e,s){if(s.fill(-1),null!==t&&null!==e)for(let i=0,n=t.getAttributeCount();i<n;i++)s[i]=e.getAttributeIndex(t.getSemantics(i))}p.s_thisInstance=new p;class v{static construct(t,e,s){return new v(t,e,s)}constructor(t,e,s){void 0!==t?(this.x=t,this.y=e,this.z=s):this.x=this.y=this.z=Number.NaN}get 0(){return this.x}get 1(){return this.y}get 2(){return this.z}set 0(t){this.x=t}set 1(t){this.y=t}set 2(t){this.z=t}clone(){return new v(this.x,this.y,this.z)}assign(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}setCoords(t,e,s){return this.x=t,this.y=e,this.z=s,this}setCoordsPoint2DZ(t,e){return this.setCoords(t.x,t.y,e)}setCoordsPoint3D(t){this.x=t.x,this.y=t.y,this.z=t.z}setZero(){this.x=0,this.y=0,this.z=0}setNormalized(t){this.assign(t),this.normalizeThis()}normalizeThis(){const t=this.length();return t?(this.x/=t,this.y/=t,this.z/=t):(this.x=1,this.y=0,this.z=0),this}getUnitVector(){const t=new v;return t.setNormalized(this),t}sqrLength(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}lengthXY(){return(0,r.g)(0),0}static sqrDistance(t,e){return(0,i.s)(t.x-e.x)+(0,i.s)(t.y-e.y)+(0,i.s)(t.z-e.z)}static sqrDistanceCoords(t,e,s,n,r,o){return(0,i.s)(t-n)+(0,i.s)(e-r)+(0,i.s)(s-o)}static distance(t,e){return Math.sqrt(v.sqrDistance(t,e))}isEqual(t,e){return void 0===e&&(e=0),Math.abs(this.x-t.x)<=e&&Math.abs(this.y-t.y)<=e&&(0,i.I)(this.z,t.z,e)}static compareByLength(t,e,s,i){return(0,r.g)(0),0}isEqualCoords(t,e,s,i){return(0,r.g)(0),this.x===t&&this.y===e&&this.z===s}isEqualsTols(t,e,s){return(0,r.g)(0),!1}isEqualCoordsTols(t,e,s,i,n){return(0,r.g)(0),!1}static st_isEqual(t,e,s,i){return(0,r.g)(0),!1}equals(t,e){return this.isEqual(t,e)}equalsTols(t,e,s){return(0,r.g)(0),!1}divThis(t){return this.x/=t,this.y/=t,this.z/=t,this}subThis(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}setSub(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}sub(t){return v.construct(this.x-t.x,this.y-t.y,this.z-t.z)}addThis(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}add(t){return this.clone().addThis(t)}setAdd(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}mul(t){return v.construct(this.x*t,this.y*t,this.z*t)}dotProduct(t){return this.x*t.x+this.y*t.y+this.z*t.z}crossProductVector(t){const e=this.y*t.z-t.y*this.z,s=t.x*this.z-this.x*t.z,i=this.x*t.y-t.x*this.y;return new v(e,s,i)}setCrossProductVector(t,e){const s=t.y*e.z-e.y*t.z,i=e.x*t.z-t.x*e.z,n=t.x*e.y-e.x*t.y;return this.x=s,this.y=i,this.z=n,this}setScaled(t,e){return this.x=t*e.x,this.y=t*e.y,this.z=t*e.z,this}scaleThis(t){return this.x*=t,this.y*=t,this.z*=t,this}scaleZThis(t){return this.z*=t,this}setNAN(){return(0,r.g)(0),this}isNAN(){return Number.isNaN(this.x)||Number.isNaN(this.y)||Number.isNaN(this.z)}static getNAN(){return v.construct(Number.NaN,Number.NaN,Number.NaN)}isFinite(){return(0,r.g)(0),!1}isZero(){return 0===this.x&&0===this.y&&0===this.z}norm(t){return(0,r.g)(0),0}sqrDistanceFromCenterToSpheroidSurface(t,e){return(0,r.g)(0),0}distanceFromCenterToSpheroidSurface(t,e){return Math.sqrt(this.sqrDistanceFromCenterToSpheroidSurface(t,e))}static getClosestCoordinate(t,e,s,i=!1){return(0,r.g)(0),0}compare(t){return this.y<t.y?-1:this.y>t.y?1:this.x<t.x?-1:this.x>t.x?1:this.z<t.z?-1:this.z>t.z?1:0}compareXYZ(t){return(0,r.g)(0),0}negateThis(){this.x=-this.x,this.y=-this.y,this.z=-this.z}static averageFast(t,e){return(0,r.g)(0),{}}static average(t,e){return(0,r.g)(0),{}}static size(){return v.dimensions}static lerp(t,e,s){const n=new v;return(0,i.x)(t,e,s,n),n}static slerp(t,e,s){return(0,r.g)(0),{}}static compareVectors(t,e){return(0,r.g)(0),0}static selectRightHandedBasisFromNormal(t,e,s){const i=t.getUnitVector(),n=i.createAPerpendicular(),r=new v;r.setCrossProductVector(i,n),r.normalizeThis(),e.setCoordsPoint3D(n),s.setCoordsPoint3D(r)}createAPerpendicular(){const t=[this.crossProductVector(new v(0,0,1)),this.crossProductVector(new v(1,0,0)),this.crossProductVector(new v(0,1,0))],e=[t[0].sqrLength(),t[1].sqrLength(),t[2].sqrLength()],s=t[e.reduce(((t,s,i)=>e[t]>e[i]?t:i),0)];return s.normalizeThis(),s}calculateAngle(t){return(0,r.g)(0),0}static crossDotSign(t,e,s){return(0,r.g)(0),0}static isBisectorRobust(t,e,s){return(0,r.g)(0),0}static compareZOrder(t,e){return(0,r.g)(0),!1}}v.dimensions=3;class b{static constructEmpty(){return new b(Number.NaN,Number.NaN,Number.NaN,Number.NaN,Number.NaN,Number.NaN)}constructor(t,e,s,i,n,r){this.m_EnvelopeType=3,this.xmin=t,this.ymin=e,this.zmin=s,this.xmax=i,this.ymax=n,this.zmax=r,this.normalize()}inflate(t){this.inflateCoords(t,t,t)}inflateCoords(t,e,s){(0,r.g)(0)}getEnvelope2D(){return new n.J(this.xmin,this.ymin,this.xmax,this.ymax)}getEnvelopeZs(){return new i.E(this.zmin,this.zmax)}setEmptyZ(){this.zmin=Number.NaN,this.zmax=Number.NaN}normalize(){let t=!1;this.xmin<=this.xmax||(this.xmax=(0,i.b)(this.xmin,this.xmin=this.xmax),t=!0),this.ymin<=this.ymax||(this.ymax=(0,i.b)(this.ymin,this.ymin=this.ymax),t=!0),!t||this.xmin<=this.xmax&&this.ymin<=this.ymax?this.zmin<=this.zmax||(this.zmax=(0,i.b)(this.zmin,this.zmin=this.zmax),this.zmin<=this.zmax||this.setEmptyZ()):this.setEmpty()}isEmpty(){return Number.isNaN(this.xmin)||Number.isNaN(this.ymin)||Number.isNaN(this.xmax)||Number.isNaN(this.ymax)}isEmptyZ(){return Number.isNaN(this.zmin)||Number.isNaN(this.zmax)}setEmpty(){this.xmin=Number.NaN,this.ymin=Number.NaN,this.zmin=Number.NaN,this.xmax=Number.NaN,this.ymax=Number.NaN,this.zmax=Number.NaN}mergeEnv3D(t){t.isEmpty()||(this.mergeCoords(t.xmin,t.ymin,t.zmin),this.mergeCoords(t.xmax,t.ymax,t.zmax))}mergeNe(t){this.mergeNeCoords(t.x,t.y,t.z)}mergeNeCoords(t,e,s){this.xmin>t?this.xmin=t:this.xmax<t&&(this.xmax=t),this.ymin>e?this.ymin=e:this.ymax<e&&(this.ymax=e),this.zmin>s?this.zmin=s:this.zmax<s&&(this.zmax=s)}mergeCoords(t,e,s){this.isEmpty()?(this.xmin=t,this.xmax=t,this.ymin=e,this.ymax=e,this.zmin=s,this.zmax=s):(this.isEmptyZ()&&(this.zmin=s,this.zmax=s),this.mergeNeCoords(t,e,s))}setCoords(t,e,s,i,n,r){this.xmin=t,this.ymin=e,this.zmin=s,this.xmax=i,this.ymax=n,this.zmax=r,this.normalize()}sqrDistanceEnvelope3DAndPoints(t,e,s,i=1){return(0,r.g)(0),0}sqrMaxDistance(t,e=1){return(0,r.g)(0),0}}const I=-559038737;var w=g;function D(t,e,s){switch(t){case 0:return new Y(e,s);case 1:return new X(e,s);case 2:return new V(e,s);case 3:throw new Error("64 bit int attribute stream not implemented");case 4:return new q(e,s);default:(0,r.t)("")}}function T(t,e){const s=w.getComponentCount(t);return D(w.getPersistence(t),e*s,w.getDefaultValue(t))}function N(t,e){const s=w.getComponentCount(t);return D(w.getPersistence(t),e*s)}function A(t,e){return new V(t,e)}function G(t,e){return new q(t,e)}function F(t,e){return new X(t,e)}class M{size(){return this.m_size}checkResize(t,e){t>this.m_size&&this.resize(t,e)}resize(t,e){if((t=Math.trunc(t))===this.m_size)return;const s=!!e||Number.isNaN(e);if(t<this.m_a.length)this.m_a.length>M.s_resizeMin&&1.25*t<this.m_a.length&&(this.m_a=this.m_a.slice(0,t)),s&&t>this.m_size&&this.m_a.fill(e,this.m_size,t);else if(t>=this.m_a.length){const i=1.25*t,n=new this.m_a.constructor(i);n.set(this.m_a),this.m_a=n,s&&this.m_a.fill(e,this.m_size,t)}this.m_size=t}resizeRounded(t,e){return this.resize(t,e)}reserve(t){}read(t){return this.m_a[t]}readAsDbl(t){return this.read(t)}write(t,e){this.m_a[t]=e}writeAsDbl(t,e){this.write(t,e)}setRange(t,e,s){(e<0||s<0||s+e>this.size())&&(0,r.t)(),this.m_a.fill(t,e,e+s)}add(t){this.resize(this.m_size+1),this.m_a[this.m_size-1]=t}addArray(t,e){const s=this.m_size;void 0===e?(this.resize(this.m_size+t.length),this.m_a.set(t,s)):(this.resize(this.m_size+e),this.m_a.set(t.slice(0,e),s))}equals(t,e,s,n){return this.getPersistence()===t.getPersistence()&&function(t,e,s,n,r){if(t.getPersistence()!==e.getPersistence())return!1;const o=t.getPersistence()<=1,a=t.size(),h=e.size();if(n>a||n>h)return!1;if(r)if(o){for(let o=s;o<n;o++)if(!(0,i.I)(t.read(o),e.read(o),r))return!1}else for(let i=s;i<n;i++){let s=t.read(i)-e.read(i);if(s<0&&(s=-s),s>r)return!1}else for(let i=s;i<n;i++){const s=t.read(i),n=e.read(i);if(s!==n){if(o&&Number.isNaN(s)&&Number.isNaN(n))continue;return!1}}return!0}(this,t,e,s,n)}insertRange(t,e,s,i){const n=this.m_size;this.checkResize(Math.max(0,i)+s),this.m_a.copyWithin(t+s,t,i>=0?i:n),this.m_a.fill(e,t,t+s)}readRange(t,e){return this.m_a.slice(t,t+e)}insertRangeFromStream(t,e,s,i,n,o,a){(0,r.g)(this.getPersistence()===e.getPersistence());const h=e,m=this.m_size;i&&this.checkResize(Math.max(0,a)+i),this.m_a.copyWithin(t+i,t,a>=0?a:m),this.m_a.set(h.readRange(s,i),t),n||this.reverseRange(t,i,o)}writeRange(t,e,s,i,n,o){(0,r.g)(this.getPersistence()===s.getPersistence());const a=s;if((t<0||e<0||i<0)&&(0,r.t)(),a.size()<i+e&&(0,r.t)(),0===e)return;this.size()<e+t&&this.resize(e+t);const h=a.m_a.subarray(i,i+e);!function(t,e,s,i){if((e<0||s<0)&&(0,r.t)(),0===s)return;if(1===s)return void(t[e]=i[0]);let n=i;s<i.length&&(n=i.subarray(0,s)),t.set(n,e)}(this.m_a,t,e,h)}insertAttributes(t,e,s,i){const n=w.getComponentCount(s);this.m_a.copyWithin(t+n,t,i>=0?i:this.m_size);for(let i=0;i<n;i++)this.m_a[t+i]=e.getAttributeAsDbl(s,i)}insertAttributesFromPoints(t,e,s,n,o){(0,r.g)(w.getPersistence(n)===this.getPersistence());const a=w.getComponentCount(n),h=this.m_size;if(this.checkResize(Math.max(0,o)+a*s),this.m_a.copyWithin(t+a*s,t,o>=0?o:h),0===n){const n=new i.P;for(let i=t,r=0;r<s;r++,i+=2)e[r].queryXY(n),this.m_a[i]=n.x,this.m_a[i+1]=n.y}else if(1===a)for(let i=t,r=0;r<s;r++,i++)this.m_a[i]=e[r].getAttributeAsDbl(n,0);else for(let i=t,r=0;r<s;r++,i+=a)for(let t=0;t<a;t++)this.m_a[i+t]=e[r].getAttributeAsDbl(n,t)}eraseRange(t,e,s){this.m_size<t+e&&(0,r.t)(),this.m_a.copyWithin(t,t+e),this.m_size-=e}reverseRange(t,e,s){if((s<1||e%s!=0)&&(0,r.t)(),this.m_a.subarray(t,t+e).reverse(),s>1)for(let i=t,n=t+e;i<n;i+=s){let t=i,e=i+s-1;for(;t<e;){const s=this.m_a[t];this.m_a[t]=this.m_a[e],this.m_a[e]=s,t++,e--}}}rotate(t,e,s){(e<t||e>s||t>s)&&(0,r.n)("rotate"),e!==t&&e!==s&&(this.reverseRange(t,e-t,1),this.reverseRange(e,s-e,1),this.reverseRange(t,s-t,1))}sort(t,e,s){this.m_a.subarray(t,e).sort(s)}constructor(t){if(t.move)this.m_a=t.move.m_a,this.m_size=t.move.m_size,t.move.m_a=t.move.m_a.slice(0,0),t.move.m_size=0;else if(t.copy)this.m_size=t.copy.m_size,t.maxSize&&(this.m_size=Math.min(t.maxSize,this.m_size)),this.m_a=t.copy.m_a.slice(0,this.m_size);else{const e=Math.max(t.size,M.s_constructMin);this.m_a=new t.ctor(e),(t.defaultValue||Number.isNaN(t.defaultValue))&&this.m_a.fill(t.defaultValue),this.m_size=t.size}}}M.s_constructMin=2,M.s_resizeMin=30;class q extends M{setBits(t,e){this.m_a[t]|=e}clearBits(t,e){this.m_a[t]&=~e}getPersistence(){return 4}clone(){return new q({ctor:Int8Array,copy:this})}restrictedClone(t){return new q({ctor:Int8Array,copy:this,maxSize:t})}constructor(t,e){super("number"==typeof t?{ctor:Int8Array,size:t,defaultValue:e}:t)}}class V extends M{getPersistence(){return 2}clone(){return new V({ctor:Int32Array,copy:this})}restrictedClone(t){return new V({ctor:Int32Array,copy:this,maxSize:t})}write(t,e){(0,r.g)(e<=(0,i.i)()),super.write(t,e)}constructor(t,e){super("number"==typeof t?{ctor:Int32Array,size:t,defaultValue:e}:t)}}class Y extends M{getPersistence(){return 0}clone(){return new Y({ctor:Float32Array,copy:this})}restrictedClone(t){return new Y({ctor:Float32Array,copy:this,maxSize:t})}constructor(t,e){super("number"==typeof t?{ctor:Float32Array,size:t,defaultValue:e}:t)}}class X extends M{getPersistence(){return 1}getArray(){return this.m_a}applyTransformation(t,e,s){(1&e||e+2*s>this.size())&&(0,r.t)();const i=0===e?this.m_a:this.m_a.subarray(e);t.transformInterleavedPoints(i,s,i)}readPoint2D(t){const e=this.m_a[t],s=this.m_a[t+1];return new i.P(e,s)}queryPoint2D(t,e){return e.x=this.m_a[t],e.y=this.m_a[t+1],e}writePoint2D(t,e){this.write(t,e.x),this.write(t+1,e.y)}insert(t,e,s){this.checkResize(s+2),this.m_a.copyWithin(t+2,t,s),this.m_a[t]=e.x,this.m_a[t+1]=e.y}insertRangeFromPoints(t,e,s,i,n,r){const o=this.m_size;if(this.checkResize(Math.max(r,0)+2*i),this.m_a.copyWithin(t+2*i,t,r>=0?r:o),n)for(let n=s,r=t,o=0;o<i;++o,++n){const t=e[n];this.m_a[r++]=t.x,this.m_a[r++]=t.y}else for(let n=s+i-1,r=t,o=0;o<i;++o,--n){const t=e[n];this.m_a[r++]=t.x,this.m_a[r++]=t.y}}queryRange(t,e,s,i,n){if((t<0||e<0)&&(0,r.t)(),!i&&(n<=0||e%n!=0)&&(0,r.t)(),0===e)return;if(1===e)return void(s[0]=this.m_a[t]);const o=this.m_a.subarray(t,t+e);s.set(o)}writeRangeFromArray(t,e,s,i,n){if((t<0||e<0)&&(0,r.t)(),0===e)return;if(1===e)return void(this.m_a[t]=s[0]);let o=s;e<s.length&&(o=s.subarray(0,e)),this.m_a.set(o,t)}clone(){return new X({ctor:Float64Array,copy:this})}restrictedClone(t){return new X({ctor:Float64Array,copy:this,maxSize:t})}constructor(t,e){super("number"==typeof t?{ctor:Float64Array,size:t,defaultValue:e}:t)}}class R{constructor(){this.m_minValue=-1,this.m_maxValue=-1,this.m_dy=Number.NaN,this.m_buckets=new V(0),this.m_bucketedIndices=new V(0)}static sortEx(t,e,s,i,n=32){s-e<=n?i.userSort(e,s,t):(new R).sort(t,e,s,i,n)}sort(t,e,s,i,n=32){if(s-e<=n)return void i.userSort(e,s,t);let r=!0,o=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=e;n<s;n++){const e=i.getValue(t.read(n));e<o&&(o=e),e>a&&(a=e)}if(this.reset(s-e,o,a,s-e)){for(let n=e;n<s;n++){const s=t.read(n),r=i.getValue(s),o=this.getBucket(r);this.m_buckets.write(o,this.m_buckets.read(o)+1),this.m_bucketedIndices.write(n-e,s)}let n=this.m_buckets.read(0);this.m_buckets.write(0,0);for(let t=1,e=this.m_buckets.size();t<e;t++){const e=this.m_buckets.read(t);this.m_buckets.write(t,n),n+=e}for(let n=e;n<s;n++){const s=this.m_bucketedIndices.read(n-e),r=i.getValue(s),o=this.getBucket(r),a=this.m_buckets.read(o);t.write(a+e,s),this.m_buckets.write(o,a+1)}r=!1}if(r)return void i.userSort(e,s,t);let h=0;for(let s=0,n=this.m_buckets.size();s<n;s++){const n=h;h=this.m_buckets.read(s),h>n&&i.userSort(e+n,e+h,t)}this.m_buckets.size()>100&&(this.m_buckets.resize(0),this.m_bucketedIndices.resize(0))}reset(t,e,s,i){if(t<2||s===e)return!1;const n=Math.min(R.c_maxBuckets,t);return this.m_buckets.resize(n),this.m_buckets.setRange(0,0,this.m_buckets.size()),this.m_minValue=e,this.m_maxValue=s,this.m_bucketedIndices.resize(i),this.m_dy=(s-e)/(n-1),!0}getBucket(t){return Math.trunc((t-this.m_minValue)/this.m_dy)}getBucketCount(){return this.m_buckets.size()}}R.c_maxBuckets=65536;class k{constructor(t){this.m_buffer=null,this.m_firstFree=-1,this.m_last=0,this.m_size=0,this.m_capacity=0,this.m_bufferSize=0,this.m_stride=0,this.m_stride=t,this.m_realStride=t,this.m_blockSize=Math.trunc(k.st_realBlockSize/this.m_realStride)}dbgdelete_(t){return this.m_buffer[t>>k.st_blockPower][1+(t&k.st_blockMask)]=k.st_deadVertex,!0}deleteElement(t){(t>>k.st_blockPower)*this.m_blockSize*this.m_realStride+(t&k.st_blockMask)<this.m_last*this.m_realStride?(this.m_buffer[t>>k.st_blockPower][t&k.st_blockMask]=this.m_firstFree,this.m_firstFree=t):this.m_last--,this.m_size--}getField(t,e){return this.m_buffer[t>>k.st_blockPower][(t&k.st_blockMask)+e]}setField(t,e,s){this.m_buffer[t>>k.st_blockPower][(t&k.st_blockMask)+e]=s}getStride(){return this.m_stride}newElement(){let t=this.m_firstFree;if(-1===t){if(this.m_last===this.m_capacity){const t=0!==this.m_capacity?Math.trunc(2*(this.m_capacity+1)):1;this.grow(t)}t=(this.m_last/this.m_blockSize<<k.st_blockPower)+this.m_last%this.m_blockSize*this.m_realStride,this.m_last++}else this.m_firstFree=this.m_buffer[t>>k.st_blockPower][t&k.st_blockMask];this.m_size++;const e=this.m_buffer[t>>k.st_blockPower],s=t&k.st_blockMask;for(let t=0;t<this.m_stride;t++)e[s+t]=-1;return t}elementToIndex(t){return(t>>k.st_blockPower)*this.m_blockSize+(t&k.st_blockMask)/this.m_realStride}deleteAll(t){this.m_firstFree=-1,this.m_last=0,this.m_size=0,t&&(this.m_buffer=null,this.m_capacity=0)}size(){return this.m_size}setCapacity(t){t>this.m_capacity&&this.grow(t)}capacity(){return this.m_capacity}swap(t,e){const s=this.m_buffer[t>>k.st_blockPower],i=this.m_buffer[e>>k.st_blockPower],n=t&k.st_blockMask,r=e&k.st_blockMask;for(let t=0;t<this.m_stride;t++){const e=s[n+t];s[n+t]=i[r+t],i[r+t]=e}}swapField(t,e,s){const i=this.m_buffer[t>>k.st_blockPower],n=this.m_buffer[e>>k.st_blockPower],r=(t&k.st_blockMask)+s,o=(e&k.st_blockMask)+s,a=i[r];i[r]=n[o],n[o]=a}static impossibleIndex2(){return-2}static impossibleIndex3(){return-3}static isValidElement(t){return t>=0}ensureBufferBlocksCapacity(t){if(this.m_buffer.length<t){const e=new Array(t);for(let t=0;t<this.m_buffer.length;t++)e[t]=this.m_buffer[t];this.m_buffer=e}}grow(t){null===this.m_buffer&&(this.m_bufferSize=0,this.m_buffer=new Array(8));const e=Math.trunc((t+this.m_blockSize-1)/this.m_blockSize);if(this.ensureBufferBlocksCapacity(e),1===e){let e=0;const s=t*this.m_realStride;for(;s>k.st_sizes[e];)e++;const i=new Int32Array(k.st_sizes[e]);1===this.m_bufferSize?(i.set(this.m_buffer[0]),this.m_buffer[0]=i):(this.m_buffer[this.m_bufferSize]=i,this.m_bufferSize++),this.m_capacity=Math.trunc(i.length/this.m_realStride)}else{if(1===this.m_bufferSize&&this.m_buffer[0].length<k.st_realBlockSize){const t=new Int32Array(k.st_realBlockSize);t.set(this.m_buffer[0]),this.m_buffer[0]=t,this.m_capacity=this.m_blockSize}for(;this.m_bufferSize<e;)this.m_buffer[this.m_bufferSize++]=new Int32Array(k.st_realBlockSize),this.m_capacity+=this.m_blockSize}}}k.st_realBlockSize=16384,k.st_blockMask=16383,k.st_blockPower=14,k.st_sizes=[16,32,64,128,256,512,1024,2048,4096,8192,16384],k.st_deadVertex=-2125315821;class L{constructor(t,e,s){this.m_extent=new n.J,this.m_dataExtent=new n.J,this.m_childExtents=[new n.J,new n.J,new n.J,new n.J],this.m_elementNodes=new k(4),this.m_data=[],this.m_freeData=[],this.m_root=-1,this.m_height=8,void 0===s&&(s=!1),this.m_quadTreeNodes=new k(s?11:10),this.m_bStoreDuplicates=s,this.reset_(t,e)}reset(t,e){this.m_quadTreeNodes.deleteAll(!1),this.m_elementNodes.deleteAll(!1),this.m_data.length=0,this.m_freeData.length=0,this.reset_(t,e)}insert(t,e){if(-1===this.m_root&&this.createRoot_(),this.m_bStoreDuplicates){const s=this.insertDuplicates_(t,e,0,this.m_extent,this.m_root,!1,-1);return-1!==s&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:e}):this.m_dataExtent.mergeEnvelope2D(e)),s}const s=this.insert_(t,e,0,this.m_extent,this.m_root,!1,-1);return-1!==s&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:e}):this.m_dataExtent.mergeEnvelope2D(e)),s}insertEx(t,e,s){if(-1===this.m_root&&this.createRoot_(),this.m_bStoreDuplicates){const s=this.insertDuplicates_(t,e,0,this.m_extent,this.m_root,!1,-1);return-1!==s&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:e}):this.m_dataExtent.mergeEnvelope2D(e)),s}let i;i=-1===s?this.m_root:this.getQuad_(s);const n=this.getHeight(i),r=this.getExtent(i),o=this.insert_(t,e,n,r,i,!1,-1);return-1!==o&&(this.m_dataExtent.isEmpty()?this.m_dataExtent.setCoords({env2D:e}):this.m_dataExtent.mergeEnvelope2D(e)),o}removeElement(t){(0,r.g)(0)}getElement(t){return this.getElementValue_(this.getData_(t))}getElementAtIndex(t){return(0,r.g)(0),0}getElementExtent(t){const e=this.getData_(t);return this.getBoundingBoxValue_(e).clone()}getElementExtentAtIndex(t){return(0,r.g)(0),{}}getDataExtent(){return this.m_dataExtent.clone()}getQuadTreeExtent(){return(0,r.g)(0),{}}getHeight(t){return this.m_quadTreeNodes.getField(t,6)>>L.m_heightBitShift}getMaxHeight(){return this.m_height}getExtent(t){const e=new n.J;if(e.setCoords({env2D:this.m_extent}),t===this.m_root)return e;const s=[];let i=t;do{s.push(this.getQuadrant_(i)),i=this.getParent_(i)}while(i!==this.m_root);const r=s.length;for(let t=0;t<r;t++){const t=s.at(-1);s.pop(),0===t?(e.xmin=.5*(e.xmin+e.xmax),e.ymin=.5*(e.ymin+e.ymax)):1===t?(e.xmax=.5*(e.xmin+e.xmax),e.ymin=.5*(e.ymin+e.ymax)):2===t?(e.xmax=.5*(e.xmin+e.xmax),e.ymax=.5*(e.ymin+e.ymax)):(e.xmin=.5*(e.xmin+e.xmax),e.ymax=.5*(e.ymin+e.ymax))}return e}getQuad(t){return this.getQuad_(t)}getElementCount(){return-1===this.m_root?0:this.getSubTreeElementCount_(this.m_root)}getSubTreeElementCount(t){return this.getSubTreeElementCount_(t)}getContainedSubTreeElementCount(t){return this.m_bStoreDuplicates?this.getContainedSubTreeElementCount_(t):this.getSubTreeElementCount_(t)}getIntersectionCount(t,e,s){if(-1===this.m_root)return 0;const r=new n.J;r.setCoords({env2D:t}),r.inflateCoords(e,e);const o=[],a=[];o.push(this.m_root),a.push(this.m_extent.clone());const h=(0,i.m)(n.J,4);let m=0;for(;o.length>0;){let t=!1;const e=o.at(-1),i=a.at(-1);if(o.pop(),a.pop(),r.containsEnvelope(i)){if(m+=this.getSubTreeElementCount(e),s>0&&m>=s)return s}else if(r.isIntersecting(i)){for(let t=this.getFirstElement_(e);-1!==t;t=this.getNextElement_(t)){const e=this.getData_(t);if(this.getBoundingBoxValue_(e).isIntersecting(r)&&(m++,s>0&&m>=s))return s}t=this.getHeight(e)+1<=this.m_height}if(t){L.setChildExtents_(i,h);for(let t=0;t<4;t++){const s=this.getChild_(e,t);-1!==s&&this.getSubTreeElementCount_(s)>0&&r.isIntersecting(h[t])&&(o.push(s),a.push(h[t].clone()))}}}return m}hasData(t,e){return this.getIntersectionCount(t,e,1)>=1}getIterator(t,e){return new B(this,t,e)}getIteratorForQT(){return new B(this)}getSortedIterator(t,e){return new H(this.getIterator(t,e))}getSortedIteratorForQT(){return new H(this.getIteratorForQT())}visitLeavesNearest(t,e,s,i){(0,r.g)(0)}reset_(t,e){(e<0||e>127)&&(0,r.t)("invalid height"),this.m_height=e,this.m_extent.setCoords({env2D:t}),this.m_dataExtent.setEmpty(),this.m_root=-1}insert_(t,e,s,i,r,o,a){if(!i.containsEnvelope(e))return 0===s?-1:this.insert_(t,e,0,this.m_extent,this.m_root,o,a);if(!o)for(let t=r;-1!==t;t=this.getParent_(t))this.setSubTreeElementCount_(t,this.getSubTreeElementCount_(t)+1);const h=new n.J;h.setCoords({env2D:i});let m,l=r;for(m=s;m<this.m_height&&this.canPushDown_(l);m++){L.setChildExtents_(h,this.m_childExtents);let t=!1;for(let s=0;s<4;s++)if(this.m_childExtents[s].containsEnvelope(e)){t=!0;let e=this.getChild_(l,s);-1===e&&(e=this.createChild_(l,s)),this.setSubTreeElementCount_(e,this.getSubTreeElementCount_(e)+1),l=e,h.setCoords({env2D:this.m_childExtents[s]});break}if(!t)break}return this.insertAtQuad_(t,e,m,h,l,o,r,a,-1)}insertDuplicates_(t,e,s,r,o,a,h){if(!a){if(!r.containsEnvelope(e))return-1;this.setSubTreeElementCount_(o,this.getSubTreeElementCount_(o)+1),this.setContainedSubTreeElementCount_(o,this.getContainedSubTreeElementCount_(o)+1)}const m=Math.max(e.width(),e.height());let l=-1;const u=[],c=[],g=[];u.push(o),c.push(r.clone()),g.push(s);const _=(0,i.m)(n.J,4);for(;u.length>0;){let s=!1;const i=u.at(-1),n=c.at(-1),r=g.at(-1);if(u.pop(),c.pop(),g.pop(),r+1<this.m_height&&this.canPushDown_(i)&&m<=Math.max(n.width(),n.height())/2&&(s=!0),s){L.setChildExtents_(n,_);let t=!1;for(let s=0;s<4;s++)if(t=_[s].containsEnvelope(e),t){let t=this.getChild_(i,s);-1===t&&(t=this.createChild_(i,s)),u.push(t),c.push(_[s].clone()),g.push(r+1),this.setSubTreeElementCount_(t,this.getSubTreeElementCount_(t)+1),this.setContainedSubTreeElementCount_(t,this.getContainedSubTreeElementCount_(t)+1);break}if(!t)for(let t=0;t<4;t++)if(_[t].isIntersecting(e)){let e=this.getChild_(i,t);-1===e&&(e=this.createChild_(i,t)),u.push(e),c.push(_[t].clone()),g.push(r+1),this.setSubTreeElementCount_(e,this.getSubTreeElementCount_(e)+1)}}else l=this.insertAtQuad_(t,e,r,n,i,a,o,h,l),a=!1}return 0}insertAtQuad_(t,e,s,i,n,r,o,a,h){this.getFirstElement_(n);const m=this.getLastElement_(n);let l=-1;if(r){if(n===o)return a;this.disconnectElementHandle_(a),l=a}else-1===h?(l=this.createElement_(),this.setDataValues_(this.getData_(l),t,e)):l=this.createElementFromDuplicate_(h);return this.setQuad_(l,n),-1!==m?(this.setPrevElement_(l,m),this.setNextElement_(m,l)):this.setFirstElement_(n,l),this.setLastElement_(n,l),this.setLocalElementCount_(n,this.getLocalElementCount_(n)+1),this.canFlush_(n)&&this.flush_(s,i,n),l}static setChildExtents_(t,e){const s=.5*(t.xmin+t.xmax),i=.5*(t.ymin+t.ymax);e[0].setCoords({xmin:s,ymin:i,xmax:t.xmax,ymax:t.ymax}),e[1].setCoords({xmin:t.xmin,ymin:i,xmax:s,ymax:t.ymax}),e[2].setCoords({xmin:t.xmin,ymin:t.ymin,xmax:s,ymax:i}),e[3].setCoords({xmin:s,ymin:t.ymin,xmax:t.xmax,ymax:i})}disconnectElementHandle_(t){const e=this.getQuad_(t),s=this.getFirstElement_(e),i=this.getLastElement_(e),n=this.getPrevElement_(t),r=this.getNextElement_(t);s===t?(-1!==r?this.setPrevElement_(r,-1):this.setLastElement_(e,-1),this.setFirstElement_(e,r)):i===t?(this.setNextElement_(n,-1),this.setLastElement_(e,n)):(this.setPrevElement_(r,n),this.setNextElement_(n,r)),this.setPrevElement_(t,-1),this.setNextElement_(t,-1),this.setLocalElementCount_(e,this.getLocalElementCount_(e)-1)}canFlush_(t){return this.getLocalElementCount_(t)===L.m_flushingCount&&!this.hasChildren_(t)}flush_(t,e,s){let i;const r=new n.J;let o=this.getFirstElement_(s),a=-1,h=-1;do{h=this.getData_(o),i=this.getElementValue_(h),r.setCoords({env2D:this.getBoundingBoxValue_(h)}),a=this.getNextElement_(o),this.m_bStoreDuplicates?this.insertDuplicates_(i,r,t,e,s,!0,o):this.insert_(i,r,t,e,s,!0,o),o=a}while(-1!==o)}canPushDown_(t){return this.getLocalElementCount_(t)>=L.m_flushingCount||this.hasChildren_(t)}hasChildren_(t){return-1!==this.getChild_(t,0)||-1!==this.getChild_(t,1)||-1!==this.getChild_(t,2)||-1!==this.getChild_(t,3)}createChild_(t,e){const s=this.m_quadTreeNodes.newElement();return this.setChild_(t,e,s),this.setSubTreeElementCount_(s,0),this.setLocalElementCount_(s,0),this.setParent_(s,t),this.setHeightAndQuadrant_(s,this.getHeight_(t)+1,e),this.m_bStoreDuplicates&&this.setContainedSubTreeElementCount_(s,0),s}createRoot_(){this.m_root=this.m_quadTreeNodes.newElement(),this.setSubTreeElementCount_(this.m_root,0),this.setLocalElementCount_(this.m_root,0),this.setHeightAndQuadrant_(this.m_root,0,0),this.m_bStoreDuplicates&&this.setContainedSubTreeElementCount_(this.m_root,0)}createElement_(){const t=this.m_elementNodes.newElement();let e;return this.m_freeData.length>0?(e=this.m_freeData.at(-1),this.m_freeData.pop()):(e=this.m_data.length,this.m_data.length=e+1),this.setData_(t,e),t}createElementFromDuplicate_(t){const e=this.m_elementNodes.newElement(),s=this.getData_(t);return this.setData_(e,s),e}freeElementAndBoxNode_(t){(0,r.g)(0)}getChild_(t,e){return this.m_quadTreeNodes.getField(t,e)}setChild_(t,e,s){this.m_quadTreeNodes.setField(t,e,s)}getFirstElement_(t){return this.m_quadTreeNodes.getField(t,4)}setFirstElement_(t,e){this.m_quadTreeNodes.setField(t,4,e)}getLastElement_(t){return this.m_quadTreeNodes.getField(t,5)}setLastElement_(t,e){this.m_quadTreeNodes.setField(t,5,e)}getQuadrant_(t){return this.m_quadTreeNodes.getField(t,6)&L.m_quadrantMask}getHeight_(t){return this.m_quadTreeNodes.getField(t,6)>>L.m_heightBitShift}setHeightAndQuadrant_(t,e,s){const i=e<<L.m_heightBitShift|s;this.m_quadTreeNodes.setField(t,6,i)}getLocalElementCount_(t){return this.m_quadTreeNodes.getField(t,7)}setLocalElementCount_(t,e){this.m_quadTreeNodes.setField(t,7,e)}getSubTreeElementCount_(t){return this.m_quadTreeNodes.getField(t,8)}setSubTreeElementCount_(t,e){this.m_quadTreeNodes.setField(t,8,e)}getParent_(t){return this.m_quadTreeNodes.getField(t,9)}setParent_(t,e){this.m_quadTreeNodes.setField(t,9,e)}getContainedSubTreeElementCount_(t){return this.m_quadTreeNodes.getField(t,10)}setContainedSubTreeElementCount_(t,e){this.m_quadTreeNodes.setField(t,10,e)}getData_(t){return this.m_elementNodes.getField(t,0)}setData_(t,e){this.m_elementNodes.setField(t,0,e)}getPrevElement_(t){return this.m_elementNodes.getField(t,1)}getNextElement_(t){return this.m_elementNodes.getField(t,2)}setPrevElement_(t,e){this.m_elementNodes.setField(t,1,e)}setNextElement_(t,e){this.m_elementNodes.setField(t,2,e)}getQuad_(t){return this.m_elementNodes.getField(t,3)}setQuad_(t,e){this.m_elementNodes.setField(t,3,e)}getElementValue_(t){return this.m_data[t].element}getBoundingBoxValue_(t){return this.m_data[t].box}setDataValues_(t,e,s){this.m_data[t]=function(t,e){return{element:t,box:e.clone()}}(e,s)}}L.m_quadrantMask=3,L.m_heightBitShift=2,L.m_flushingCount=5;class B{constructor(t,e,s){this.m_bLinear=!1,this.m_queryStart=new i.P,this.m_queryEnd=new i.P,this.m_queryBox=new n.J,this.m_tolerance=0,this.m_currentElementHandle=-1,this.m_nextElementHandle=-1,this.m_quadsStack=[],this.m_extentsStack=[],this.m_childExtents=[new n.J,new n.J,new n.J,new n.J],this.m_quadTree=t,e&&this.resetIterator(e,s)}resetIterator(t,e){if(void 0===e&&(e=0),t instanceof n.J)return this.m_quadsStack.length=0,this.m_extentsStack.length=0,this.m_currentElementHandle=-1,this.m_queryBox.setCoords({env2D:t}),this.m_queryBox.inflateCoords(e,e),this.m_tolerance=Number.NaN,void(-1!==this.m_quadTree.m_root&&this.m_queryBox.isIntersecting(this.m_quadTree.m_extent)?(this.m_quadsStack.push(this.m_quadTree.m_root),this.m_extentsStack.push(this.m_quadTree.m_extent.clone()),this.m_nextElementHandle=this.m_quadTree.getFirstElement_(this.m_quadTree.m_root),this.m_bLinear=!1):this.m_nextElementHandle=-1);if(this.m_quadsStack.length=0,this.m_extentsStack.length=0,this.m_currentElementHandle=-1,t.queryLooseEnvelope(this.m_queryBox),this.m_queryBox.inflateCoords(e,e),-1!==this.m_quadTree.m_root&&this.m_queryBox.isIntersecting(this.m_quadTree.m_extent)){const s=t.getGeometryType();if(this.m_bLinear=s===r.G.enumLine,this.m_bLinear){const s=t;this.m_queryStart.assign(s.getStartXY()),this.m_queryEnd.assign(s.getEndXY()),this.m_tolerance=e}else this.m_tolerance=Number.NaN;this.m_quadsStack.push(this.m_quadTree.m_root),this.m_extentsStack.push(this.m_quadTree.m_extent.clone()),this.m_nextElementHandle=this.m_quadTree.getFirstElement_(this.m_quadTree.m_root)}else this.m_nextElementHandle=-1}next(){if(0===this.m_quadsStack.length)return-1;this.m_currentElementHandle=this.m_nextElementHandle;const t=new i.P,e=new i.P,s=new n.J;let r=!1;for(;!r;){for(;-1!==this.m_currentElementHandle;){const i=this.m_quadTree.getData_(this.m_currentElementHandle);if(s.setCoords({env2D:this.m_quadTree.getBoundingBoxValue_(i)}),s.isIntersecting(this.m_queryBox)){if(!this.m_bLinear){r=!0;break}if(t.setCoordsPoint2D(this.m_queryStart),e.setCoordsPoint2D(this.m_queryEnd),s.inflateCoords(this.m_tolerance,this.m_tolerance),s.clipLine(t,e)>0){r=!0;break}}this.m_currentElementHandle=this.m_quadTree.getNextElement_(this.m_currentElementHandle)}if(-1===this.m_currentElementHandle){const s=this.m_quadsStack.at(-1),i=this.m_extentsStack.at(-1);L.setChildExtents_(i,this.m_childExtents),this.m_quadsStack.pop(),this.m_extentsStack.pop();for(let i=0;i<4;i++){const r=this.m_quadTree.getChild_(s,i);if(-1!==r&&this.m_quadTree.getSubTreeElementCount(r)>0&&this.m_childExtents[i].isIntersecting(this.m_queryBox))if(this.m_bLinear){t.setCoordsPoint2D(this.m_queryStart),e.setCoordsPoint2D(this.m_queryEnd);const s=new n.J;s.setCoords({env2D:this.m_childExtents[i]}),s.inflateCoords(this.m_tolerance,this.m_tolerance),s.clipLine(t,e)>0&&(this.m_quadsStack.push(r),this.m_extentsStack.push(this.m_childExtents[i].clone()))}else this.m_quadsStack.push(r),this.m_extentsStack.push(this.m_childExtents[i].clone())}if(0===this.m_quadsStack.length)return-1;this.m_currentElementHandle=this.m_quadTree.getFirstElement_(this.m_quadsStack.at(-1))}}return this.m_nextElementHandle=this.m_quadTree.getNextElement_(this.m_currentElementHandle),this.m_currentElementHandle}clone(){return(0,r.g)(0),{}}}class H{constructor(t){this.m_bucketSort=new R,this.m_sortedHandles=new V(0),this.m_index=-1,this.m_quadTreeIteratorImpl=t}resetIterator(t,e){this.m_quadTreeIteratorImpl.resetIterator(t,e),this.m_sortedHandles.resize(0),this.m_index=-1}next(){if(-1===this.m_index){let t=-1;for(;-1!==(t=this.m_quadTreeIteratorImpl.next());)this.m_sortedHandles.add(t);const e=this,s={userSort(t,s,i){i.sort(t,s,((t,s)=>e.m_quadTreeIteratorImpl.m_quadTree.getElement(t)-e.m_quadTreeIteratorImpl.m_quadTree.getElement(s)))},getValue:t=>e.m_quadTreeIteratorImpl.m_quadTree.getElement(t)};this.m_bucketSort.sort(this.m_sortedHandles,0,this.m_sortedHandles.size(),s)}return this.m_index===this.m_sortedHandles.size()-1?-1:(this.m_index++,this.m_sortedHandles.read(this.m_index))}clone(){return(0,r.g)(0),{}}}class z{constructor(t=!1){this.m_bNotifyOnActions=t}onDelete(t){}onSet(t){}onEndSearch(t){}onAddUniqueElementFailed(t){}onDeleteImpl(t,e){this.m_bNotifyOnActions&&this.onDelete(t.getElement(e))}onSetImpl(t,e){this.m_bNotifyOnActions&&this.onSet(t.getElement(e))}onAddUniqueElementFailedImpl(t){this.m_bNotifyOnActions&&this.onAddUniqueElementFailed(t)}onEndSearchImpl(t){this.m_bNotifyOnActions&&this.onEndSearch(t)}}class U{static st_nullNode(){return-1}constructor(){this.m_defaultTreap=-1,this.m_random=124234251,this.m_comparator=null,this.m_treapData=new k(7),this.m_treapCount=0,this.m_maxDepthEver=0,this.m_bBalancing=!0}setComparator(t){this.m_comparator=t}getComparator(){return this.m_comparator}disableBalancing(){this.m_bBalancing=!1}enableBalancing(){this.m_bBalancing||((0,r.g)(this.m_treapCount<=1),this.rebalance(-1),this.m_bBalancing=!0)}isAutoBalancing(){return this.m_bBalancing}rebalance(t){if(this.m_bBalancing)return;if(-1===t&&(t=this.m_defaultTreap),0===this.size(t))return;const e=[];for(let s=this.getFirst(t);-1!==s;s=this.getNext(s))e.push(s),this.setParent_(s,-1),this.setRight_(s,-1),this.setLeft_(s,-1);this.setRoot_(-1,t),this.setFirst_(-1,t),this.setLast_(-1,t),this.setSize_(0,t),this.m_bBalancing=!0;for(const s of e)this.addBiggestElement_(s,t);this.m_bBalancing=!1}setCapacity(t){this.m_treapData.setCapacity(t)}createTreap(t){const e=this.m_treapData.newElement();return this.setSize_(0,e),this.setTreapData_(t,e),this.m_treapCount++,e}deleteTreap(t){this.m_treapData.deleteElement(t),this.m_treapCount--}addElement(t,e=-1){return-1===e&&(this.m_defaultTreap===U.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),e=this.m_defaultTreap),this.addElement_(t,0,e)}addUniqueElement(t,e=-1){return-1===e&&(this.m_defaultTreap===U.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),e=this.m_defaultTreap),this.addElement_(t,1,e)}addBiggestElement(t,e=-1){-1===e&&(this.m_defaultTreap===U.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),e=this.m_defaultTreap);const s=this.newNode_(t);return this.addBiggestElement_(s,e),s}addElementAtPosition(t,e,s,n,r,o=-1){if(-1===o&&(this.m_defaultTreap===U.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),o=this.m_defaultTreap),this.getRoot_(o)===U.st_nullNode()){const t=this.newNode_(s);return this.setRoot_(t,o),this.addToList_(-1,t,o),t}let a,h,m,l,u;if(r?(a=e!==U.st_nullNode()?this.m_comparator.compare(this,s,e):-1,h=t!==U.st_nullNode()?this.m_comparator.compare(this,s,t):1):(a=-1,h=1),n&&(0===a||0===h)){this.m_comparator.onAddUniqueElementFailedImpl(s);const i=0===a?e:t;return this.setDuplicateElement_(i,o),-1}u=e!==U.st_nullNode()&&t!==U.st_nullNode()?this.m_random>(0,i.A)(this.m_random)>>1:e!==U.st_nullNode(),u?(l=a,m=e):(l=h,m=t);let c=-1,g=-1,_=!0;for(;;){if(l<0){const t=this.getLeft(m);if(t===U.st_nullNode()){g=m,c=this.newNode_(s),this.setLeft_(m,c),this.setParent_(c,m);break}m=t}else{const t=this.getRight(m);if(t===U.st_nullNode()){g=this.getNext(m),c=this.newNode_(s),this.setRight_(m,c),this.setParent_(c,m);break}m=t}_&&(l*=-1,_=!1)}return this.bubbleUp_(c),this.getParent(c)===U.st_nullNode()&&this.setRoot_(c,o),this.addToList_(g,c,o),c}replaceElementAtPosition(t,e,s,i,n=-1){if(i){const i=this.getNext(t);let r=-1;i!==U.st_nullNode()&&(r=this.m_comparator.compare(this,e,i));const o=this.getPrev(t);let a=-1;if(o!==U.st_nullNode()&&(a=this.m_comparator.compare(this,e,o)),s&&(0===r||0===a)){this.m_comparator.onAddUniqueElementFailedImpl(e);const t=0===r?i:o;return n===U.st_nullNode()&&(this.m_defaultTreap===U.st_nullNode()&&(this.m_defaultTreap=this.createTreap(-1)),n=this.m_defaultTreap),this.setDuplicateElement_(t,n),-1}}return this.setElement_(t,e),t}getDuplicateElement(t=-1){return-1===t?this.getDuplicateElement_(this.m_defaultTreap):this.getDuplicateElement_(t)}deleteNode(t,e=-1){this.m_comparator&&this.m_comparator.onDeleteImpl(this,t),-1===e&&(e=this.m_defaultTreap),this.m_bBalancing?this.deleteNode_(t,e):this.unbalancedDelete_(t,e)}search(t,e=-1){let s=this.getRoot(e);for(;s!==U.st_nullNode();){const e=this.m_comparator.compare(this,t,s);if(!e)return s;s=e<0?this.getLeft(s):this.getRight(s)}return this.m_comparator.onEndSearchImpl(t),U.st_nullNode()}searchLowerBound(t,e=-1){let s=this.getRoot(e),i=-1;for(;s!==U.st_nullNode();){const e=t.compare(this,s);if(!e)return s;e<0?s=this.getLeft(s):(i=s,s=this.getRight(s))}return i}searchUpperBound(t,e=-1){let s=this.getRoot(e),i=-1;for(;s!==U.st_nullNode();){const e=t.compare(this,s);if(!e)return s;e<0?(i=s,s=this.getLeft(s)):s=this.getRight(s)}return i}getElement(t){return this.m_treapData.getField(t,3)}getLeft(t){return this.m_treapData.getField(t,0)}getRight(t){return this.m_treapData.getField(t,1)}getParent(t){return this.m_treapData.getField(t,2)}getNext(t){return this.m_treapData.getField(t,6)}getPrev(t){return this.m_treapData.getField(t,5)}getFirst(t=-1){return-1===t?this.getFirst_(this.m_defaultTreap):this.getFirst_(t)}getLast(t=-1){return-1===t?this.getLast_(this.m_defaultTreap):this.getLast_(t)}getTreapData(t=-1){return-1===t?this.getTreapData_(this.m_defaultTreap):this.getTreapData_(t)}setElement(t,e){null!==this.m_comparator&&this.m_comparator.onSetImpl(this,t),this.setElement_(t,e)}getRoot(t=-1){return-1===t?this.getRoot_(this.m_defaultTreap):this.getRoot_(t)}clear(){this.m_treapData.deleteAll(!1),this.m_defaultTreap=U.st_nullNode(),this.m_treapCount=0,this.m_maxDepthEver=0}addToList_(t,e,s){let i;-1!==t?(i=this.getPrev(t),this.setPrev_(t,e)):i=this.getLast_(s),this.setPrev_(e,i),-1!==i&&this.setNext_(i,e),this.setNext_(e,t),t===this.getFirst_(s)&&this.setFirst_(e,s),-1===t&&this.setLast_(e,s),this.setSize_(this.getSize_(s)+1,s)}size(t=-1){return-1===t?this.getSize_(this.m_defaultTreap):this.getSize_(t)}getMaxDepth(t=-1){return this.getMaxDepthHelper_(this.getRoot(t))}getMaxDepthEver(){return this.m_maxDepthEver}static st_isValidNode(t){return k.isValidElement(t)}dbgCheck_(t){}getPriority_(t){return this.m_treapData.getField(t,4)}bubbleDown_(t){let e=this.getLeft(t),s=this.getRight(t);const n=this.getPriority_(t);for(;e!==U.st_nullNode()||s!==U.st_nullNode();){const r=e!==U.st_nullNode()?this.getPriority_(e):(0,i.j)(),o=s!==U.st_nullNode()?this.getPriority_(s):(0,i.j)();if(n<=Math.min(r,o))return;r<=o?this.rotateRight_(e):this.rotateLeft_(t),e=this.getLeft(t),s=this.getRight(t)}}bubbleUp_(t){if(!this.m_bBalancing)return;const e=this.getPriority_(t);let s=this.getParent(t);for(;s!==U.st_nullNode()&&this.getPriority_(s)>e;)this.getLeft(s)===t?this.rotateRight_(t):this.rotateLeft_(s),s=this.getParent(t)}rotateLeft_(t){const e=t,s=this.getRight(t);let i;this.setParent_(s,this.getParent(e)),this.setParent_(e,s),i=this.getLeft(s),this.setRight_(e,i),i!==U.st_nullNode()&&this.setParent_(i,e),this.setLeft_(s,e),i=this.getParent(s),i!==U.st_nullNode()&&(this.getLeft(i)===e?this.setLeft_(i,s):this.setRight_(i,s))}rotateRight_(t){const e=this.getParent(t),s=t;let i;this.setParent_(s,this.getParent(e)),this.setParent_(e,s),i=this.getRight(s),this.setLeft_(e,i),i!==U.st_nullNode()&&this.setParent_(i,e),this.setRight_(s,e),i=this.getParent(s),i!==U.st_nullNode()&&(this.getLeft(i)===e?this.setLeft_(i,s):this.setRight_(i,s))}setParent_(t,e){this.m_treapData.setField(t,2,e)}setLeft_(t,e){this.m_treapData.setField(t,0,e)}setRight_(t,e){this.m_treapData.setField(t,1,e)}setPriority_(t,e){this.m_treapData.setField(t,4,e)}setPrev_(t,e){this.m_treapData.setField(t,5,e)}setNext_(t,e){this.m_treapData.setField(t,6,e)}setRoot_(t,e){this.m_treapData.setField(e,0,t)}setFirst_(t,e){this.m_treapData.setField(e,1,t)}setLast_(t,e){this.m_treapData.setField(e,2,t)}setDuplicateElement_(t,e){this.m_treapData.setField(e,3,t)}setSize_(t,e){this.m_treapData.setField(e,4,t)}setTreapData_(t,e){this.m_treapData.setField(e,5,t)}getRoot_(t){return-1===t?U.st_nullNode():this.m_treapData.getField(t,0)}getFirst_(t){return-1===t?U.st_nullNode():this.m_treapData.getField(t,1)}getLast_(t){return-1===t?U.st_nullNode():this.m_treapData.getField(t,2)}getDuplicateElement_(t){return-1===t?U.st_nullNode():this.m_treapData.getField(t,3)}getSize_(t){return-1===t?0:this.m_treapData.getField(t,4)}getTreapData_(t){return this.m_treapData.getField(t,5)}newNode_(t){const e=this.m_treapData.newElement();return this.setPriority_(e,this.generatePriority_()),this.setElement_(e,t),e}freeNode_(t,e){t!==U.st_nullNode()&&this.m_treapData.deleteElement(t)}generatePriority_(){return this.m_random=(0,i.A)(this.m_random),this.m_random&(0,i.j)()>>1}maxPriority(){return(0,r.g)(0),0}getMaxDepthHelper_(t){return t===U.st_nullNode()?0:1+Math.max(this.getMaxDepthHelper_(this.getLeft(t)),this.getMaxDepthHelper_(this.getRight(t)))}addElement_(t,e,s){if(this.getRoot(s)===U.st_nullNode()){const e=this.newNode_(t);return this.setRoot_(e,s),this.addToList_(-1,e,s),this.m_maxDepthEver=Math.max(this.m_maxDepthEver,1),e}let i=this.getRoot_(s),n=-1,r=-1,o=1;for(;;){const a=-1===e?1:this.m_comparator.compare(this,t,i);if(a<0){const e=this.getLeft(i);if(e===U.st_nullNode()){r=i,n=this.newNode_(t),this.setLeft_(i,n),this.setParent_(n,i);break}i=e}else{if(1===e&&0===a)return this.m_comparator.onAddUniqueElementFailedImpl(t),this.setDuplicateElement_(i,s),-1;const o=this.getRight(i);if(o===U.st_nullNode()){r=this.getNext(i),n=this.newNode_(t),this.setRight_(i,n),this.setParent_(n,i);break}i=o}o++}return this.bubbleUp_(n),this.getParent(n)===U.st_nullNode()&&this.setRoot_(n,s),this.addToList_(r,n,s),this.m_maxDepthEver=Math.max(o,this.m_maxDepthEver),n}removeFromList_(t,e){const s=this.getPrev(t),i=this.getNext(t);-1!==s?this.setNext_(s,i):this.setFirst_(i,e),-1!==i?this.setPrev_(i,s):this.setLast_(s,e),this.setSize_(this.getSize_(e)-1,e)}unbalancedDelete_(t,e){this.removeFromList_(t,e);let s=this.getLeft(t),n=this.getRight(t),r=this.getParent(t),o=t;if(-1!==s&&-1!==n){let a;this.m_random=(0,i.A)(this.m_random),a=this.m_random>(0,i.j)()>>1?this.getNext(t):this.getPrev(t);const h=this.getParent(a)===t;this.m_treapData.swapField(t,a,0),this.m_treapData.swapField(t,a,1),this.m_treapData.swapField(t,a,2),-1!==r?this.getLeft(r)===t?this.setLeft_(r,a):this.setRight_(r,a):this.setRoot_(a,e),h?(s===a?(this.setLeft_(a,t),this.setParent_(n,a)):n===a&&(this.setRight_(a,t),this.setParent_(s,a)),this.setParent_(t,a),r=a):(this.setParent_(s,a),this.setParent_(n,a),r=this.getParent(t),o=a),s=this.getLeft(t),n=this.getRight(t),-1!==s&&this.setParent_(s,t),-1!==n&&this.setParent_(n,t)}const a=-1!==s?s:n;-1===r?this.setRoot_(a,e):this.getLeft(r)===o?this.setLeft_(r,a):this.setRight_(r,a),-1!==a&&this.setParent_(a,r),this.freeNode_(t,e)}deleteNode_(t,e){this.setPriority_(t,(0,i.j)());let s=U.st_nullNode(),n=U.st_nullNode();const r=this.getRoot_(e),o=r===t;if(o&&(s=this.getLeft(r),n=this.getRight(r),s===U.st_nullNode()&&n===U.st_nullNode()))return this.removeFromList_(r,e),this.freeNode_(r,e),void this.setRoot_(U.st_nullNode(),e);this.bubbleDown_(t);const a=this.getParent(t);a!==U.st_nullNode()&&(this.getLeft(a)===t?this.setLeft_(a,U.st_nullNode()):this.setRight_(a,U.st_nullNode())),this.removeFromList_(t,e),this.freeNode_(t,e),o&&this.setRoot_(s===U.st_nullNode()||this.getParent(s)!==U.st_nullNode()?n:s,e)}setElement_(t,e){this.m_treapData.setField(t,3,e)}addBiggestElement_(t,e){if(this.getRoot_(e)===U.st_nullNode())return this.setRoot_(t,e),void this.addToList_(-1,t,e);const s=this.getLast_(e);this.setRight_(s,t),this.setParent_(t,s),this.bubbleUp_(t),this.getParent(t)===U.st_nullNode()&&this.setRoot_(t,e),this.addToList_(-1,t,e)}}class O{constructor(t){this.m_lists=new k(6),this.m_listOfLists=O.st_nullNode(),void 0===t?(this.m_listNodes=new k(3),this.m_bStoreListIndexWithNode=!1):(this.m_listNodes=new k(t?4:3),this.m_bStoreListIndexWithNode=t)}freeNode_(t){this.m_listNodes.deleteElement(t)}newNode_(){return this.m_listNodes.newElement()}freeList_(t){(0,r.g)(0)}newList_(){return this.m_lists.newElement()}setPrev_(t,e){this.m_listNodes.setField(t,1,e)}setNext_(t,e){this.m_listNodes.setField(t,2,e)}setData_(t,e){(0,r.g)(0)}setList_(t,e){return this.m_listNodes.setField(t,3,e)}setListSize_(t,e){this.m_lists.setField(t,4,e)}setNextList_(t,e){(0,r.g)(0)}setPrevList_(t,e){this.m_lists.setField(t,2,e)}createList(t){const e=this.newList_();return this.m_lists.setField(e,3,this.m_listOfLists),this.m_lists.setField(e,4,0),this.m_lists.setField(e,5,t),this.m_listOfLists!==O.st_nullNode()&&this.setPrevList_(this.m_listOfLists,e),this.m_listOfLists=e,e}deleteList(t){this.clear(t);const e=this.m_lists.getField(t,2),s=this.m_lists.getField(t,3);return e!==O.st_nullNode()?this.setNextList_(e,s):this.m_listOfLists=s,s!==O.st_nullNode()&&this.setPrevList_(s,e),this.freeList_(t),s}reserveLists(t){(0,r.g)(0)}getListData(t){return this.m_lists.getField(t,5)}getList(t){return(0,r.g)(0),0}setListData(t,e){this.m_lists.setField(t,5,e)}addElement(t,e){return this.insertElement(t,-1,e)}insertElement(t,e,s){const i=this.newNode_();let n=-1;if(e!==O.st_nullNode()&&(n=this.getPrev(e),this.setPrev_(e,i)),this.setNext_(i,e),n!==O.st_nullNode()&&this.setNext_(n,i),e===this.m_lists.getField(t,0)&&this.m_lists.setField(t,0,i),e===O.st_nullNode()){const e=this.m_lists.getField(t,1);this.setPrev_(i,e),-1!==e&&this.setNext_(e,i),this.m_lists.setField(t,1,i)}return this.setData(i,s),this.setListSize_(t,this.getListSize(t)+1),this.m_bStoreListIndexWithNode&&this.setList_(i,t),i}deleteElement(t,e){const s=this.getPrev(e),i=this.getNext(e);return s!==O.st_nullNode()?this.setNext_(s,i):this.m_lists.setField(t,0,i),i!==O.st_nullNode()?this.setPrev_(i,s):this.m_lists.setField(t,1,s),this.freeNode_(e),this.setListSize_(t,this.getListSize(t)-1),i}reserveNodes(t){this.m_listNodes.setCapacity(t)}getData(t){return this.m_listNodes.getField(t,0)}getElement(t){return this.getData(t)}setData(t,e){this.m_listNodes.setField(t,0,e)}getNext(t){return this.m_listNodes.getField(t,2)}getPrev(t){return this.m_listNodes.getField(t,1)}getFirst(t){return this.m_lists.getField(t,0)}getLast(t){return this.m_lists.getField(t,1)}static st_nullNode(){return-1}clear(t){if(void 0!==t){let e=this.getLast(t);f