@deck.gl/geo-layers 9.3.0-beta.1 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +1202 -233
- package/dist.min.js +18 -18
- package/package.json +6 -6
package/dist.min.js
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var B1=Object.create;var An=Object.defineProperty;var I1=Object.getOwnPropertyDescriptor;var R1=Object.getOwnPropertyNames;var v1=Object.getPrototypeOf,w1=Object.prototype.hasOwnProperty;var L1=(t,e,r)=>e in t?An(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Bf=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var We=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ye=(t,e)=>{for(var r in e)An(t,r,{get:e[r],enumerable:!0})},Uo=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of R1(e))!w1.call(t,o)&&o!==r&&An(t,o,{get:()=>e[o],enumerable:!(n=I1(e,o))||n.enumerable});return t},St=(t,e,r)=>(Uo(t,e,"default"),r&&Uo(r,e,"default")),U=(t,e,r)=>(r=t!=null?B1(v1(t)):{},Uo(e||!t||!t.__esModule?An(r,"default",{value:t,enumerable:!0}):r,t)),F1=t=>Uo(An({},"__esModule",{value:!0}),t);var Jt=(t,e,r)=>(L1(t,typeof e!="symbol"?e+"":e,r),r);var Xe=We((pv,If)=>{If.exports=globalThis.deck});var Ke=We((mv,vf)=>{vf.exports=globalThis.deck});var rs=We((Nv,Ku)=>{Ku.exports=globalThis.h3||{}});var er=We((xL,Kh)=>{Kh.exports=globalThis.loaders});var Cc=We((Qp,Qn)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Bf=="function"&&typeof Qn=="object"&&Qn&&Qn.exports?Qn.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(Qp,function(){"use strict";function t(y,g,B){this.low=y|0,this.high=g|0,this.unsigned=!!B}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(y){return(y&&y.__isLong__)===!0}t.isLong=e;var r={},n={};function o(y,g){var B,L,F;return g?(y>>>=0,(F=0<=y&&y<256)&&(L=n[y],L)?L:(B=i(y,(y|0)<0?-1:0,!0),F&&(n[y]=B),B)):(y|=0,(F=-128<=y&&y<128)&&(L=r[y],L)?L:(B=i(y,y<0?-1:0,!1),F&&(r[y]=B),B))}t.fromInt=o;function s(y,g){if(isNaN(y)||!isFinite(y))return g?x:m;if(g){if(y<0)return x;if(y>=p)return C}else{if(y<=-d)return v;if(y+1>=d)return _}return y<0?s(-y,g).neg():i(y%h|0,y/h|0,g)}t.fromNumber=s;function i(y,g,B){return new t(y,g,B)}t.fromBits=i;var a=Math.pow;function c(y,g,B){if(y.length===0)throw Error("empty string");if(y==="NaN"||y==="Infinity"||y==="+Infinity"||y==="-Infinity")return m;if(typeof g=="number"?(B=g,g=!1):g=!!g,B=B||10,B<2||36<B)throw RangeError("radix");var L;if((L=y.indexOf("-"))>0)throw Error("interior hyphen");if(L===0)return c(y.substring(1),g,B).neg();for(var F=s(a(B,8)),w=m,D=0;D<y.length;D+=8){var W=Math.min(8,y.length-D),z=parseInt(y.substring(D,D+W),B);if(W<8){var re=s(a(B,W));w=w.mul(re).add(s(z))}else w=w.mul(F),w=w.add(s(z))}return w.unsigned=g,w}t.fromString=c;function l(y){return y instanceof t?y:typeof y=="number"?s(y):typeof y=="string"?c(y):i(y.low,y.high,y.unsigned)}t.fromValue=l;var f=1<<16,u=1<<24,h=f*f,p=h*h,d=p/2,A=o(u),m=o(0);t.ZERO=m;var x=o(0,!0);t.UZERO=x;var T=o(1);t.ONE=T;var M=o(1,!0);t.UONE=M;var E=o(-1);t.NEG_ONE=E;var _=i(-1,2147483647,!1);t.MAX_VALUE=_;var C=i(-1,-1,!0);t.MAX_UNSIGNED_VALUE=C;var v=i(0,-2147483648,!1);t.MIN_VALUE=v;var S=t.prototype;return S.toInt=function(){return this.unsigned?this.low>>>0:this.low},S.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},S.toString=function(g){if(g=g||10,g<2||36<g)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(v)){var B=s(g),L=this.div(B),F=L.mul(B).sub(this);return L.toString(g)+F.toInt().toString(g)}else return"-"+this.neg().toString(g);for(var w=s(a(g,6),this.unsigned),D=this,W="";;){var z=D.div(w),re=D.sub(z.mul(w)).toInt()>>>0,Y=re.toString(g);if(D=z,D.isZero())return Y+W;for(;Y.length<6;)Y="0"+Y;W=""+Y+W}},S.getHighBits=function(){return this.high},S.getHighBitsUnsigned=function(){return this.high>>>0},S.getLowBits=function(){return this.low},S.getLowBitsUnsigned=function(){return this.low>>>0},S.getNumBitsAbs=function(){if(this.isNegative())return this.eq(v)?64:this.neg().getNumBitsAbs();for(var g=this.high!=0?this.high:this.low,B=31;B>0&&!(g&1<<B);B--);return this.high!=0?B+33:B+1},S.isZero=function(){return this.high===0&&this.low===0},S.isNegative=function(){return!this.unsigned&&this.high<0},S.isPositive=function(){return this.unsigned||this.high>=0},S.isOdd=function(){return(this.low&1)===1},S.isEven=function(){return(this.low&1)===0},S.equals=function(g){return e(g)||(g=l(g)),this.unsigned!==g.unsigned&&this.high>>>31===1&&g.high>>>31===1?!1:this.high===g.high&&this.low===g.low},S.eq=S.equals,S.notEquals=function(g){return!this.eq(g)},S.neq=S.notEquals,S.lessThan=function(g){return this.comp(g)<0},S.lt=S.lessThan,S.lessThanOrEqual=function(g){return this.comp(g)<=0},S.lte=S.lessThanOrEqual,S.greaterThan=function(g){return this.comp(g)>0},S.gt=S.greaterThan,S.greaterThanOrEqual=function(g){return this.comp(g)>=0},S.gte=S.greaterThanOrEqual,S.compare=function(g){if(e(g)||(g=l(g)),this.eq(g))return 0;var B=this.isNegative(),L=g.isNegative();return B&&!L?-1:!B&&L?1:this.unsigned?g.high>>>0>this.high>>>0||g.high===this.high&&g.low>>>0>this.low>>>0?-1:1:this.sub(g).isNegative()?-1:1},S.comp=S.compare,S.negate=function(){return!this.unsigned&&this.eq(v)?v:this.not().add(T)},S.neg=S.negate,S.add=function(g){e(g)||(g=l(g));var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,D=g.high>>>16,W=g.high&65535,z=g.low>>>16,re=g.low&65535,Y=0,K=0,ee=0,Ie=0;return Ie+=w+re,ee+=Ie>>>16,Ie&=65535,ee+=F+z,K+=ee>>>16,ee&=65535,K+=L+W,Y+=K>>>16,K&=65535,Y+=B+D,Y&=65535,i(ee<<16|Ie,Y<<16|K,this.unsigned)},S.subtract=function(g){return e(g)||(g=l(g)),this.add(g.neg())},S.sub=S.subtract,S.multiply=function(g){if(this.isZero()||(e(g)||(g=l(g)),g.isZero()))return m;if(this.eq(v))return g.isOdd()?v:m;if(g.eq(v))return this.isOdd()?v:m;if(this.isNegative())return g.isNegative()?this.neg().mul(g.neg()):this.neg().mul(g).neg();if(g.isNegative())return this.mul(g.neg()).neg();if(this.lt(A)&&g.lt(A))return s(this.toNumber()*g.toNumber(),this.unsigned);var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,D=g.high>>>16,W=g.high&65535,z=g.low>>>16,re=g.low&65535,Y=0,K=0,ee=0,Ie=0;return Ie+=w*re,ee+=Ie>>>16,Ie&=65535,ee+=F*re,K+=ee>>>16,ee&=65535,ee+=w*z,K+=ee>>>16,ee&=65535,K+=L*re,Y+=K>>>16,K&=65535,K+=F*z,Y+=K>>>16,K&=65535,K+=w*W,Y+=K>>>16,K&=65535,Y+=B*re+L*z+F*W+w*D,Y&=65535,i(ee<<16|Ie,Y<<16|K,this.unsigned)},S.mul=S.multiply,S.divide=function(g){if(e(g)||(g=l(g)),g.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?x:m;var B,L,F;if(this.unsigned){if(g.unsigned||(g=g.toUnsigned()),g.gt(this))return x;if(g.gt(this.shru(1)))return M;F=x}else{if(this.eq(v)){if(g.eq(T)||g.eq(E))return v;if(g.eq(v))return T;var w=this.shr(1);return B=w.div(g).shl(1),B.eq(m)?g.isNegative()?T:E:(L=this.sub(g.mul(B)),F=B.add(L.div(g)),F)}else if(g.eq(v))return this.unsigned?x:m;if(this.isNegative())return g.isNegative()?this.neg().div(g.neg()):this.neg().div(g).neg();if(g.isNegative())return this.div(g.neg()).neg();F=m}for(L=this;L.gte(g);){B=Math.max(1,Math.floor(L.toNumber()/g.toNumber()));for(var D=Math.ceil(Math.log(B)/Math.LN2),W=D<=48?1:a(2,D-48),z=s(B),re=z.mul(g);re.isNegative()||re.gt(L);)B-=W,z=s(B,this.unsigned),re=z.mul(g);z.isZero()&&(z=T),F=F.add(z),L=L.sub(re)}return F},S.div=S.divide,S.modulo=function(g){return e(g)||(g=l(g)),this.sub(this.div(g).mul(g))},S.mod=S.modulo,S.not=function(){return i(~this.low,~this.high,this.unsigned)},S.and=function(g){return e(g)||(g=l(g)),i(this.low&g.low,this.high&g.high,this.unsigned)},S.or=function(g){return e(g)||(g=l(g)),i(this.low|g.low,this.high|g.high,this.unsigned)},S.xor=function(g){return e(g)||(g=l(g)),i(this.low^g.low,this.high^g.high,this.unsigned)},S.shiftLeft=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?i(this.low<<g,this.high<<g|this.low>>>32-g,this.unsigned):i(0,this.low<<g-32,this.unsigned)},S.shl=S.shiftLeft,S.shiftRight=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?i(this.low>>>g|this.high<<32-g,this.high>>g,this.unsigned):i(this.high>>g-32,this.high>=0?0:-1,this.unsigned)},S.shr=S.shiftRight,S.shiftRightUnsigned=function(g){if(e(g)&&(g=g.toInt()),g&=63,g===0)return this;var B=this.high;if(g<32){var L=this.low;return i(L>>>g|B<<32-g,B>>>g,this.unsigned)}else return g===32?i(B,0,this.unsigned):i(B>>>g-32,0,this.unsigned)},S.shru=S.shiftRightUnsigned,S.toSigned=function(){return this.unsigned?i(this.low,this.high,!1):this},S.toUnsigned=function(){return this.unsigned?this:i(this.low,this.high,!0)},S.toBytes=function(y){return y?this.toBytesLE():this.toBytesBE()},S.toBytesLE=function(){var y=this.high,g=this.low;return[g&255,g>>>8&255,g>>>16&255,g>>>24&255,y&255,y>>>8&255,y>>>16&255,y>>>24&255]},S.toBytesBE=function(){var y=this.high,g=this.low;return[y>>>24&255,y>>>16&255,y>>>8&255,y&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255]},t})});var Dc=We((uG,Nd)=>{Nd.exports=globalThis.luma});var js=We((hG,Od)=>{Od.exports=globalThis.deck});var qc=We((qG,Kd)=>{Kd.exports=globalThis.luma});var k0=We((Nk,z0)=>{z0.exports=globalThis.deck});var $0=We(mf=>{mf.read=function(t,e,r,n,o){var s,i,a=o*8-n-1,c=(1<<a)-1,l=c>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=t[e+u];for(u+=h,s=p&(1<<-f)-1,p>>=-f,f+=a;f>0;s=s*256+t[e+u],u+=h,f-=8);for(i=s&(1<<-f)-1,s>>=-f,f+=n;f>0;i=i*256+t[e+u],u+=h,f-=8);if(s===0)s=1-l;else{if(s===c)return i?NaN:(p?-1:1)*(1/0);i=i+Math.pow(2,n),s=s-l}return(p?-1:1)*i*Math.pow(2,s-n)};mf.write=function(t,e,r,n,o,s){var i,a,c,l=s*8-o-1,f=(1<<l)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,d=n?1:-1,A=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=f):(i=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+u>=1?e+=h/c:e+=h*Math.pow(2,1-u),e*c>=2&&(i++,c/=2),i+u>=f?(a=0,i=f):i+u>=1?(a=(e*c-1)*Math.pow(2,o),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,o),i=0));o>=8;t[r+p]=a&255,p+=d,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;t[r+p]=i&255,p+=d,i/=256,l-=8);t[r+p-d]|=A*128}});var s1=We((S5,o1)=>{"use strict";o1.exports=J;var qi=$0();function J(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}J.Varint=0;J.Fixed64=1;J.Bytes=2;J.Fixed32=5;var gf=(1<<16)*(1<<16),e1=1/gf,MR=12,n1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");J.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,s=this.pos;this.type=n&7,t(o,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ji(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=r1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ji(this.buf,this.pos)+ji(this.buf,this.pos+4)*gf;return this.pos+=8,t},readSFixed64:function(){var t=ji(this.buf,this.pos)+r1(this.buf,this.pos+4)*gf;return this.pos+=8,t},readFloat:function(){var t=qi.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=qi.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,n;return n=e[this.pos++],r=n&127,n<128||(n=e[this.pos++],r|=(n&127)<<7,n<128)||(n=e[this.pos++],r|=(n&127)<<14,n<128)||(n=e[this.pos++],r|=(n&127)<<21,n<128)?r:(n=e[this.pos],r|=(n&15)<<28,ER(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=MR&&n1?UR(this.buf,e,t):OR(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==J.Bytes)return t.push(this.readVarint(e));var r=Et(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==J.Bytes)return t.push(this.readSVarint());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==J.Bytes)return t.push(this.readBoolean());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==J.Bytes)return t.push(this.readFloat());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==J.Bytes)return t.push(this.readDouble());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed32());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed32());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed64());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed64());var e=Et(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===J.Varint)for(;this.buf[this.pos++]>127;);else if(e===J.Bytes)this.pos=this.readVarint()+this.pos;else if(e===J.Fixed32)this.pos+=4;else if(e===J.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),gn(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),gn(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),gn(this.buf,t&-1,this.pos),gn(this.buf,Math.floor(t*e1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),gn(this.buf,t&-1,this.pos),gn(this.buf,Math.floor(t*e1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){SR(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=DR(this.buf,t,this.pos);var r=this.pos-e;r>=128&&t1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),qi.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),qi.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&t1(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,J.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,BR,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,IR,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,wR,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,RR,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,vR,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,LR,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,FR,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,PR,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,NR,e)},writeBytesField:function(t,e){this.writeTag(t,J.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,J.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,J.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,J.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function ER(t,e,r){var n=r.buf,o,s;if(s=n[r.pos++],o=(s&112)>>4,s<128||(s=n[r.pos++],o|=(s&127)<<3,s<128)||(s=n[r.pos++],o|=(s&127)<<10,s<128)||(s=n[r.pos++],o|=(s&127)<<17,s<128)||(s=n[r.pos++],o|=(s&127)<<24,s<128)||(s=n[r.pos++],o|=(s&1)<<31,s<128))return mn(t,o,e);throw new Error("Expected varint not more than 10 bytes")}function Et(t){return t.type===J.Bytes?t.readVarint()+t.pos:t.pos+1}function mn(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function SR(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),_R(r,n,e),CR(n,e)}function _R(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function CR(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function t1(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(n);for(var o=r.pos-1;o>=t;o--)r.buf[o+n]=r.buf[o]}function BR(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function IR(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function RR(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function vR(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function wR(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function LR(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function FR(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function PR(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function NR(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function ji(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function gn(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function r1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function OR(t,e,r){for(var n="",o=e;o<r;){var s=t[o],i=null,a=s>239?4:s>223?3:s>191?2:1;if(o+a>r)break;var c,l,f;a===1?s<128&&(i=s):a===2?(c=t[o+1],(c&192)===128&&(i=(s&31)<<6|c&63,i<=127&&(i=null))):a===3?(c=t[o+1],l=t[o+2],(c&192)===128&&(l&192)===128&&(i=(s&15)<<12|(c&63)<<6|l&63,(i<=2047||i>=55296&&i<=57343)&&(i=null))):a===4&&(c=t[o+1],l=t[o+2],f=t[o+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(i=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,(i<=65535||i>=1114112)&&(i=null))),i===null?(i=65533,a=1):i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),n+=String.fromCharCode(i),o+=a}return n}function UR(t,e,r){return n1.decode(t.subarray(e,r))}function DR(t,e,r){for(var n=0,o,s;n<e.length;n++){if(o=e.charCodeAt(n),o>55295&&o<57344)if(s)if(o<56320){t[r++]=239,t[r++]=191,t[r++]=189,s=o;continue}else o=s-55296<<10|o-56320|65536,s=null;else{o>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):s=o;continue}else s&&(t[r++]=239,t[r++]=191,t[r++]=189,s=null);o<128?t[r++]=o:(o<2048?t[r++]=o>>6|192:(o<65536?t[r++]=o>>12|224:(t[r++]=o>>18|240,t[r++]=o>>12&63|128),t[r++]=o>>6&63|128),t[r++]=o&63|128)}return r}});var Oo={};ye(Oo,{A5Layer:()=>Xh,GeohashLayer:()=>C1,GreatCircleLayer:()=>Yp,H3ClusterLayer:()=>Pd,H3HexagonLayer:()=>qs,MVTLayer:()=>M1,QuadkeyLayer:()=>fd,S2Layer:()=>cd,TerrainLayer:()=>H0,Tile3DLayer:()=>F0,TileLayer:()=>pr,TripsLayer:()=>wd,_GeoCellLayer:()=>De,_Tile2DHeader:()=>ur,_Tileset2D:()=>hr,_WMSLayer:()=>Jr,_getURLFromTemplate:()=>ft});var nt={},Rf=U(Xe(),1);St(nt,U(Xe(),1));if(!Rf.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");St(Oo,nt);var wf=U(Ke(),1),Ki=U(Xe(),1),P1={...Ki.PolygonLayer.defaultProps},xn=class extends wf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:o,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,getElevation:p,getFillColor:d,getLineColor:A,getLineWidth:m}=this.props,{updateTriggers:x,material:T,transitions:M}=this.props,E=this.getSubLayerClass("cell",Ki.PolygonLayer),{updateTriggers:_,...C}=this.indexToBounds()||{};return new E({filled:o,wireframe:n,extruded:r,elevationScale:e,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,material:T,transitions:M,getElevation:p,getFillColor:d,getLineColor:A,getLineWidth:m},this.getSubLayerProps({id:"cell",updateTriggers:x&&{..._,getElevation:x.getElevation,getFillColor:x.getFillColor,getLineColor:x.getLineColor,getLineWidth:x.getLineWidth}}),C)}};xn.layerName="GeoCellLayer";xn.defaultProps=P1;var De=xn;var N1=Object.defineProperty,Mn=(t,e)=>{for(var r in e)N1(t,r,{get:e[r],enumerable:!0})},Ae={};Mn(Ae,{ARRAY_TYPE:()=>oe,EPSILON:()=>ge,RANDOM:()=>Wt,equals:()=>G1,setMatrixArrayType:()=>O1,toRadian:()=>D1});var ge=1e-6,oe=typeof Float32Array<"u"?Float32Array:Array,Wt=Math.random;function O1(t){oe=t}var U1=Math.PI/180;function D1(t){return t*U1}function G1(t,e){return Math.abs(t-e)<=ge*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Xt={};Mn(Xt,{LDU:()=>rA,add:()=>nA,adjoint:()=>X1,clone:()=>H1,copy:()=>z1,create:()=>V1,determinant:()=>K1,equals:()=>sA,exactEquals:()=>oA,frob:()=>tA,fromRotation:()=>Z1,fromScaling:()=>$1,fromValues:()=>q1,identity:()=>k1,invert:()=>W1,mul:()=>cA,multiply:()=>$f,multiplyScalar:()=>iA,multiplyScalarAndAdd:()=>aA,rotate:()=>Y1,scale:()=>Q1,set:()=>j1,str:()=>eA,sub:()=>lA,subtract:()=>eu,transpose:()=>J1});function V1(){var t=new oe(4);return oe!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}function H1(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function z1(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function k1(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function q1(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function j1(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function J1(t,e){if(t===e){var r=e[1];t[1]=e[2],t[2]=r}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t}function W1(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*s-o*n;return i?(i=1/i,t[0]=s*i,t[1]=-n*i,t[2]=-o*i,t[3]=r*i,t):null}function X1(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t}function K1(t){return t[0]*t[3]-t[2]*t[1]}function $f(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*a+s*c,t[1]=o*a+i*c,t[2]=n*l+s*f,t[3]=o*l+i*f,t}function Y1(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+s*a,t[1]=o*c+i*a,t[2]=n*-a+s*c,t[3]=o*-a+i*c,t}function Q1(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1];return t[0]=n*a,t[1]=o*a,t[2]=s*c,t[3]=i*c,t}function Z1(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t}function $1(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t}function eA(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function tA(t){return Math.hypot(t[0],t[1],t[2],t[3])}function rA(t,e,r,n){return t[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-t[2]*r[1],[t,e,r]}function nA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function eu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function oA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function sA(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}function iA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function aA(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}var cA=$f,lA=eu;function fA(){var t=new oe(9);return oe!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}var $i={};Mn($i,{add:()=>Ex,calculateW:()=>hx,clone:()=>bx,conjugate:()=>gx,copy:()=>Tx,create:()=>ta,dot:()=>gu,equals:()=>Rx,exactEquals:()=>Ix,exp:()=>hu,fromEuler:()=>Ax,fromMat3:()=>du,fromValues:()=>yx,getAngle:()=>cx,getAxisAngle:()=>ax,identity:()=>ix,invert:()=>mx,len:()=>Cx,length:()=>Au,lerp:()=>_x,ln:()=>pu,mul:()=>Sx,multiply:()=>uu,normalize:()=>ua,pow:()=>px,random:()=>dx,rotateX:()=>lx,rotateY:()=>fx,rotateZ:()=>ux,rotationTo:()=>vx,scale:()=>mu,set:()=>Mx,setAxes:()=>Lx,setAxisAngle:()=>fu,slerp:()=>Wo,sqlerp:()=>wx,sqrLen:()=>Bx,squaredLength:()=>xu,str:()=>xx});var R={};Mn(R,{add:()=>dA,angle:()=>PA,bezier:()=>CA,ceil:()=>mA,clone:()=>uA,copy:()=>hA,create:()=>la,cross:()=>Jo,dist:()=>zA,distance:()=>su,div:()=>HA,divide:()=>ou,dot:()=>fa,equals:()=>DA,exactEquals:()=>UA,floor:()=>gA,forEach:()=>jA,fromValues:()=>ea,hermite:()=>_A,inverse:()=>EA,len:()=>lu,length:()=>tu,lerp:()=>SA,max:()=>xA,min:()=>AA,mul:()=>VA,multiply:()=>nu,negate:()=>MA,normalize:()=>cu,random:()=>BA,rotateX:()=>wA,rotateY:()=>LA,rotateZ:()=>FA,round:()=>bA,scale:()=>yA,scaleAndAdd:()=>TA,set:()=>pA,sqrDist:()=>kA,sqrLen:()=>qA,squaredDistance:()=>iu,squaredLength:()=>au,str:()=>OA,sub:()=>GA,subtract:()=>ru,transformMat3:()=>RA,transformMat4:()=>IA,transformQuat:()=>vA,zero:()=>NA});function la(){var t=new oe(3);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function uA(t){var e=new oe(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function tu(t){var e=t[0],r=t[1],n=t[2];return Math.hypot(e,r,n)}function ea(t,e,r){var n=new oe(3);return n[0]=t,n[1]=e,n[2]=r,n}function hA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function pA(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function dA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function ru(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function nu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function ou(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function mA(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function gA(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function AA(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function xA(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function bA(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function yA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function TA(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function su(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.hypot(r,n,o)}function iu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function au(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function MA(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function EA(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function cu(t,e){var r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function fa(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Jo(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function SA(t,e,r,n){var o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function _A(t,e,r,n,o,s){var i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function CA(t,e,r,n,o,s){var i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function BA(t,e){e=e||1;var r=Wt()*2*Math.PI,n=Wt()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function IA(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function RA(t,e,r){var n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function vA(t,e,r){var n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,A=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,A*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+A,t}function wA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function LA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function FA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function PA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt(r*r+n*n+o*o),l=Math.sqrt(s*s+i*i+a*a),f=c*l,u=f&&fa(t,e)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function NA(t){return t[0]=0,t[1]=0,t[2]=0,t}function OA(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function UA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function DA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=ge*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=ge*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=ge*Math.max(1,Math.abs(o),Math.abs(a))}var GA=ru,VA=nu,HA=ou,zA=su,kA=iu,lu=tu,qA=au,jA=function(){var t=la();return function(e,r,n,o,s,i){var a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();function JA(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function WA(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function XA(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function KA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function YA(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function QA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function ZA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function $A(t){var e=t[0],r=t[1],n=t[2],o=t[3];return Math.hypot(e,r,n,o)}function ex(t){var e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function tx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function rx(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function nx(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function ox(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function sx(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}var Av=function(){var t=JA();return function(e,r,n,o,s,i){var a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();function ta(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function ix(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function fu(t,e,r){r=r*.5;var n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function ax(t,e){var r=Math.acos(e[3])*2,n=Math.sin(r/2);return n>ge?(t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n):(t[0]=1,t[1]=0,t[2]=0),r}function cx(t,e){var r=gu(t,e);return Math.acos(2*r*r-1)}function uu(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function lx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function fx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function ux(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function hx(t,e){var r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function hu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=Math.exp(s),c=i>0?a*Math.sin(i)/i:0;return t[0]=r*c,t[1]=n*c,t[2]=o*c,t[3]=a*Math.cos(i),t}function pu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=i>0?Math.atan2(i,s)/i:0;return t[0]=r*a,t[1]=n*a,t[2]=o*a,t[3]=.5*Math.log(r*r+n*n+o*o+s*s),t}function px(t,e,r){return pu(t,e),mu(t,t,r),hu(t,t),t}function Wo(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,A,m;return p=o*c+s*l+i*f+a*u,p<0&&(p=-p,c=-c,l=-l,f=-f,u=-u),1-p>ge?(h=Math.acos(p),d=Math.sin(h),A=Math.sin((1-n)*h)/d,m=Math.sin(n*h)/d):(A=1-n,m=n),t[0]=A*o+m*c,t[1]=A*s+m*l,t[2]=A*i+m*f,t[3]=A*a+m*u,t}function dx(t){var e=Wt(),r=Wt(),n=Wt(),o=Math.sqrt(1-e),s=Math.sqrt(e);return t[0]=o*Math.sin(2*Math.PI*r),t[1]=o*Math.cos(2*Math.PI*r),t[2]=s*Math.sin(2*Math.PI*n),t[3]=s*Math.cos(2*Math.PI*n),t}function mx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function gx(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function du(t,e){var r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{var o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);var s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}function Ax(t,e,r,n){var o=.5*Math.PI/180;e*=o,r*=o,n*=o;var s=Math.sin(e),i=Math.cos(e),a=Math.sin(r),c=Math.cos(r),l=Math.sin(n),f=Math.cos(n);return t[0]=s*c*f-i*a*l,t[1]=i*a*f+s*c*l,t[2]=i*c*l-s*a*f,t[3]=i*c*f+s*a*l,t}function xx(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}var bx=WA,yx=XA,Tx=KA,Mx=YA,Ex=QA,Sx=uu,mu=ZA,gu=rx,_x=nx,Au=$A,Cx=Au,xu=ex,Bx=xu,ua=tx,Ix=ox,Rx=sx,vx=function(){var t=la(),e=ea(1,0,0),r=ea(0,1,0);return function(n,o,s){var i=fa(o,s);return i<-.999999?(Jo(t,e,o),lu(t)<1e-6&&Jo(t,r,o),cu(t,t),fu(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Jo(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,ua(n,n))}}(),wx=function(){var t=ta(),e=ta();return function(r,n,o,s,i,a){return Wo(t,n,i,a),Wo(e,o,s,a),Wo(r,t,e,2*a*(1-a)),r}}(),Lx=function(){var t=fA();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],ua(e,du(e,t))}}(),P={};Mn(P,{add:()=>Ux,angle:()=>nb,ceil:()=>Dx,clone:()=>Fx,copy:()=>Nx,create:()=>bu,cross:()=>Kx,dist:()=>hb,distance:()=>Eu,div:()=>ub,divide:()=>Mu,dot:()=>Xx,equals:()=>ab,exactEquals:()=>ib,floor:()=>Gx,forEach:()=>mb,fromValues:()=>Px,inverse:()=>Jx,len:()=>cb,length:()=>_u,lerp:()=>Yx,max:()=>Hx,min:()=>Vx,mul:()=>fb,multiply:()=>Tu,negate:()=>jx,normalize:()=>Wx,random:()=>Qx,rotate:()=>rb,round:()=>zx,scale:()=>kx,scaleAndAdd:()=>qx,set:()=>Ox,sqrDist:()=>pb,sqrLen:()=>db,squaredDistance:()=>Su,squaredLength:()=>Cu,str:()=>sb,sub:()=>lb,subtract:()=>yu,transformMat2:()=>Zx,transformMat2d:()=>$x,transformMat3:()=>eb,transformMat4:()=>tb,zero:()=>ob});function bu(){var t=new oe(2);return oe!=Float32Array&&(t[0]=0,t[1]=0),t}function Fx(t){var e=new oe(2);return e[0]=t[0],e[1]=t[1],e}function Px(t,e){var r=new oe(2);return r[0]=t,r[1]=e,r}function Nx(t,e){return t[0]=e[0],t[1]=e[1],t}function Ox(t,e,r){return t[0]=e,t[1]=r,t}function Ux(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function yu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Tu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Mu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function Dx(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Gx(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function Vx(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Hx(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function zx(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function kx(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function qx(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function Eu(t,e){var r=e[0]-t[0],n=e[1]-t[1];return Math.hypot(r,n)}function Su(t,e){var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function _u(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function Cu(t){var e=t[0],r=t[1];return e*e+r*r}function jx(t,e){return t[0]=-e[0],t[1]=-e[1],t}function Jx(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function Wx(t,e){var r=e[0],n=e[1],o=r*r+n*n;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t}function Xx(t,e){return t[0]*e[0]+t[1]*e[1]}function Kx(t,e,r){var n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t}function Yx(t,e,r,n){var o=e[0],s=e[1];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t}function Qx(t,e){e=e||1;var r=Wt()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function Zx(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function $x(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function eb(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function tb(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}function rb(t,e,r,n){var o=e[0]-r[0],s=e[1]-r[1],i=Math.sin(n),a=Math.cos(n);return t[0]=o*a-s*i+r[0],t[1]=o*i+s*a+r[1],t}function nb(t,e){var r=t[0],n=t[1],o=e[0],s=e[1],i=Math.sqrt(r*r+n*n)*Math.sqrt(o*o+s*s),a=i&&(r*o+n*s)/i;return Math.acos(Math.min(Math.max(a,-1),1))}function ob(t){return t[0]=0,t[1]=0,t}function sb(t){return"vec2("+t[0]+", "+t[1]+")"}function ib(t,e){return t[0]===e[0]&&t[1]===e[1]}function ab(t,e){var r=t[0],n=t[1],o=e[0],s=e[1];return Math.abs(r-o)<=ge*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-s)<=ge*Math.max(1,Math.abs(n),Math.abs(s))}var cb=_u,lb=yu,fb=Tu,ub=Mu,hb=Eu,pb=Su,db=Cu,mb=function(){var t=bu();return function(e,r,n,o,s,i){var a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}(),Zo=(1+Math.sqrt(5))/2,xv=2*Math.PI,Xo=2*Math.PI/5,ot=Math.PI/5,Lf=Math.PI/10,gb=2*Math.atan(Zo),ra=Math.PI-gb,bv=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-Zo)),$o=(Math.sqrt(5)-1)/2,Ab=3-Math.sqrt(5),xb=Math.sqrt(3-Zo),yv=Math.sqrt(3)*xb/Zo,Ko=63710072e-1,Tv=4*Math.PI*Ko*Ko;Ae.setMatrixArrayType(Float64Array);var ha=class na{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let n=0;n<r;n++){let o=(n+1)%r;e+=(this.vertices[o][0]-this.vertices[n][0])*(this.vertices[o][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)P.scale(r,r,e);return this}rotate180(){for(let e of this.vertices)P.negate(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)P.add(r,r,e);return this}transform(e){for(let r of this.vertices)P.transformMat2(r,r,e);return this}transform2d(e){for(let r of this.vertices)P.transformMat2d(r,r,e);return this}clone(){return new na(this.vertices.map(r=>P.clone(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,o)=>[n[0]+o[0]/e,n[1]+o[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,n=1;for(let o=0;o<r;o++){let s=this.vertices[o],i=this.vertices[(o+1)%r],a=s[0]-i[0],c=s[1]-i[1],l=e[0]-s[0],f=e[1]-s[1],u=a*f-c*l;if(u<0){let h=Math.sqrt(l*l+f*f);n=Math.min(n,u/h)}}return n}splitEdges(e){if(e<=1)return this;let r=[],n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];r.push(P.clone(s));for(let a=1;a<e;a++){let c=a/e,l=P.create();P.lerp(l,s,i,c),r.push(l)}}return new na(r)}};Ae.setMatrixArrayType(Float64Array);var Bu=[0,0],Iu=[0,1],Kt=[.7885966681787006,1.6149108024237764],Ru=[1.6171013659387945,1.054928690397459],vu=[Math.cos(Lf),Math.sin(Lf)],bb=2*P.length(Kt)*Math.cos(ot),yb=ot-Math.atan2(Kt[1],Kt[0]),Tb=2*$o/bb;[Bu,Iu,Kt,Ru,vu].forEach(t=>{P.scale(t,t,Tb),P.rotate(t,t,[0,0],yb)});var Mb=new ha([Bu,Iu,Kt,Ru,vu]),wu=Math.atan2(Kt[1],Kt[0])-ot,Eb=[0,0],Yo=$o/Math.cos(ot),Ff=wu+ot,Qo=[Yo*Math.cos(Ff),Yo*Math.sin(Ff)],Pf=wu-ot,Tn=[Yo*Math.cos(Pf),Yo*Math.sin(Pf)],Lu=new ha([Eb,Qo,Tn]),Fu=Xt.fromValues(Qo[0],Qo[1],Tn[0],Tn[1]),Mv=Xt.invert(Xt.create(),Fu),Sb=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),_b=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),Cb=class{applyCoefficients(t,e){let r=Math.sin(t),n=Math.cos(t),o=2*(n-r)*(n+r),s,i;return s=o*e[5]+e[4],i=o*s+e[3],s=o*i-s+e[2],i=o*s-i+e[1],s=o*i-s+e[0],t+2*r*n*s}forward(t){return this.applyCoefficients(t,Sb)}inverse(t){return this.applyCoefficients(t,_b)}};Ae.setMatrixArrayType(Float64Array);var Pu=new Cb;function Nf(t){return t*(Math.PI/180)}function Of(t){return t*(180/Math.PI)}function Uf(t){let e=P.length(t),r=Math.atan2(t[1],t[0]);return[e,r]}function Bb([t,e]){let r=t*Math.cos(e),n=t*Math.sin(e);return[r,n]}function Ib(t,[e,r,n]){let o=[e[0]-n[0],e[1]-n[1]],s=[n[0]-r[0],n[1]-r[1]],i=[t[0]-n[0],t[1]-n[1]],a=s[0]*o[1]-s[1]*o[0],c=(s[0]*i[1]-s[1]*i[0])/a,l=(o[0]*i[1]-o[1]*i[0])/a,f=1-(c+l);return[c,l,f]}function Rb(t,[e,r,n]){return[t[0]*e[0]+t[1]*r[0]+t[2]*n[0],t[0]*e[1]+t[1]*r[1]+t[2]*n[1]]}function oa(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),n=Math.acos(t[2]/r);return[e,n]}function Lr([t,e]){let r=Math.sin(e),n=r*Math.cos(t),o=r*Math.sin(t),s=Math.cos(e);return[n,o,s]}var Nu=93;function vb([t,e]){let r=Nf(t+Nu),n=Nf(e),o=Pu.forward(n),s=Math.PI/2-o;return[r,s]}function Ou([t,e]){let r=Of(t)-Nu,n=Math.PI/2-e,o=Pu.inverse(n),s=Of(o);return[r,s]}function wb(t){let e=t.map(s=>Lr(vb(s))),r=R.create();for(let s of e)R.add(r,r,s);R.normalize(r,r);let[n,o]=Ou(oa(r));return(o>89.99||o<-89.99)&&(n=t[0][0]),n=((n+180)%360+360)%360-180,t.map(s=>{let[i,a]=s;for(;i-n>180;)i=i-360;for(;i-n<-180;)i=i+360;return[i,a]})}Ae.setMatrixArrayType(Float64Array);var es=Math.sqrt(5),ts=Math.sqrt(.2),Uu=Math.sqrt((1-ts)/2),Du=Math.sqrt((1+ts)/2),Do=.5,Df=Math.sqrt((2.5-es)/10),Gf=Math.sqrt((2.5+es)/10),Vf=Math.sqrt((1+ts)/8),Hf=Math.sqrt((1-ts)/8),zf=Math.sqrt((3-es)/8),kf=Math.sqrt((3+es)/8),Lb=[[0,0],[Uu,0],[Df,Do],[-Vf,zf],[-Vf,-zf],[Df,-Do],[-Du,0],[-Hf,-kf],[Gf,-Do],[Gf,Do],[-Hf,kf],[0,0]],Fb=Lb.map(([t,e])=>[-e,t]),Go=Fb.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?Du:Uu]);Ae.setMatrixArrayType(Float64Array);var Gu=["vu","uw","vw","vw","vw"],bn=["wu","uw","vw","vu","uw"],Yi=["wu","uv","wv","wu","uw"],Vo=["vu","uv","wv","wu","uw"],Pb=[Gu,Vo,Yi,bn,Yi,Vo,Yi,bn,bn,bn,Vo,Vo],Nb=[4,2,3,2,0,4,3,2,2,0,3,0],qf=[0,1,2,4,3,5,7,8,6,11,10,9],Ye=[];function Ob(){Ho([0,0],0,Go[0]);for(let t=0;t<5;t++){let e=t*Xo,r=e+ot;Ho([e,ra],ot,Go[t+1]),Ho([r,Math.PI-ra],ot,Go[(t+3)%5+6])}Ho([0,Math.PI],0,Go[11])}var Rr=0;function Ho(t,e,r){if(Rr>11)throw new Error(`Too many origins: ${Rr}`);let n=$i.create();$i.conjugate(n,r);let o={id:Rr,axis:t,quat:r,inverseQuat:n,angle:e,orientation:Pb[Rr],firstQuintant:Nb[Rr]};Ye.push(o),Rr++}Ob();Ye.sort((t,e)=>qf.indexOf(t.id)-qf.indexOf(e.id));Ye.forEach((t,e)=>t.id=e);function Ub(t,e){let r=e.orientation,n=r===Gu||r===bn?-1:1,o=(t-e.firstQuintant+5)%5,s=r[o];return{quintant:(e.firstQuintant+n*o+5)%5,orientation:s}}var Db=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}},vr=R.create(),yn=R.create(),jf=R.create(),Jf=R.create();function Qi(t,e){R.lerp(vr,t,e,.5),R.normalize(vr,vr),R.cross(vr,t,vr);let r=R.length(vr);if(r<1e-8){let n=R.subtract(R.create(),t,e);return .5*R.length(n)}return r}function Gb(t,e,r){return R.cross(yn,e,r),R.dot(t,yn)}function Vb(t,e,r,n,o){R.cross(yn,n,o);let s=R.dot(e,yn),i=R.dot(r,yn);return R.scale(jf,e,i),R.scale(Jf,r,s),R.sub(t,Jf,jf)}function sa(t,e,r,n){let o=R.angle(e,r);if(o<1e-12)return R.lerp(t,e,r,n);let s=Math.sin((1-n)*o)/Math.sin(o),i=Math.sin(n*o)/Math.sin(o),a=R.scale(R.create(),e,s),c=R.scale(R.create(),r,i);return R.add(t,a,c)}Ae.setMatrixArrayType(Float64Array);var zo=R.create(),ko=R.create(),qo=R.create(),wr=R.create(),Hb=class{constructor(t){this._area=null,this.vertices=t,Object.freeze(this.vertices)}getBoundary(t=1,e=!0){let r=[],n=this.vertices.length;for(let o=0;o<n*t;o++){let s=o/t;r.push(this.slerp(s))}return e&&r.push(r[0]),r}slerp(t){let e=this.vertices.length,r=t%1,n=Math.floor(t%e),o=(n+1)%e;return sa(R.create(),this.vertices[n],this.vertices[o],r)}getTransformedVertices(t){let e=this.vertices.length,r=Math.floor(t%e),n=(r+1)%e,o=(r+e-1)%e,s=R.clone(this.vertices[r]),i=R.clone(this.vertices[n]),a=R.clone(this.vertices[o]);return R.sub(i,i,s),R.sub(a,a,s),[s,i,a]}containsPoint(t){let e=this.vertices.length,r=1/0;for(let n=0;n<e;n++){let[o,s,i]=this.getTransformedVertices(n),a=R.sub(R.create(),t,o);R.normalize(a,a),R.normalize(s,s),R.normalize(i,i);let c=R.cross(R.create(),s,a),l=R.cross(R.create(),a,i),f=R.dot(o,c),u=R.dot(o,l);r=Math.min(r,f,u)}return r}getTriangleArea(t,e,r){R.lerp(zo,e,r,.5),R.lerp(ko,r,t,.5),R.lerp(qo,t,e,.5),R.normalize(zo,zo),R.normalize(ko,ko),R.normalize(qo,qo);let n=Gb(zo,ko,qo),o=Math.max(-1,Math.min(1,n));return Math.abs(o)<1e-8?2*o:Math.asin(o)*2}getArea(){return this._area===null&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(this.vertices.length===3)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;R.set(wr,0,0,0);for(let e of this.vertices)R.add(wr,wr,e);R.normalize(wr,wr);let t=0;for(let e=0;e<this.vertices.length;e++){let r=this.vertices[e],n=this.vertices[(e+1)%this.vertices.length],o=this.getTriangleArea(wr,r,n);isNaN(o)||(t+=o)}return this._area=t,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ae.setMatrixArrayType(Float64Array);var jo=class extends Hb{constructor(t){if(t.length!==3)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(t)}};Ae.setMatrixArrayType(Float64Array);var zb=class{forward(t,e,r){let[n,o,s]=e,i=new jo([n,o,s]),a=R.subtract(R.create(),t,n);R.normalize(a,a);let c=Vb(R.create(),n,a,o,s);R.normalize(c,c);let l=Qi(n,t)/Qi(n,c),f=i.getArea(),u=l/f,h=[1-l,u*new jo([n,c,s]).getArea(),u*new jo([n,o,c]).getArea()];return Rb(h,r)}inverse(t,e,r){let[n,o,s]=r,i=new jo([n,o,s]),a=Ib(t,e),c=1-1e-14;if(a[0]>c)return n;if(a[1]>c)return o;if(a[2]>c)return s;let l=R.create();R.cross(l,o,s);let f=i.getArea(),u=1-a[0],p=a[2]/u*f,d=Math.sin(p),A=Math.sin(p/2),m=2*A*A,x=R.dot(n,o),T=R.dot(o,s),M=R.dot(s,n),E=R.length(l),_=R.dot(n,l),C=d*_+m*(x*T-M),v=m*E*(1+x),S=2/Math.acos(T)*Math.atan2(v,C),y=sa(R.create(),o,s,S),g=Qi(n,y),B=this.safeAcos(u*g)/this.safeAcos(g);return sa([0,0,0],n,y,B)}safeAcos(t){return t<.001?2*t+t*t*t/3:Math.acos(1-2*t*t)}},Le=-1,Se=1;Ae.setMatrixArrayType(Float64Array);var kb=([t,e])=>P.fromValues(t-e,e);Ae.setMatrixArrayType(Float64Array);var ia=P.fromValues(1,0),aa=P.fromValues(0,1),Wf=P.negate(P.create(),ia),Xf=P.negate(P.create(),aa),Zi=P.fromValues(0,0),qb=(t,[e,r])=>{let n=Zi,o=Zi;switch(e===Se&&r===Se?(n=ia,o=aa):e===Le&&r===Se?(n=Xf,o=Wf):e===Se&&r===Le?(n=aa,o=ia):e===Le&&r===Le&&(n=Wf,o=Xf),t){case 0:return Zi;case 1:return n;case 2:return P.add(P.create(),o,n);case 3:return P.scaleAndAdd(P.create(),o,n,2);default:throw new Error(`Invalid Quaternary value: ${t}`)}},Kf=t=>[[Se,Se],[Se,Le],[Se,Se],[Le,Se]][t];function Vu(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var Hu=[0,1,3,4,5,6,7,2],zu=[0,1,2,7,3,4,5,6],Ev=Vu(Hu),Sv=Vu(zu),jb=(t,e,r,n,o)=>{if(e<=0)return;let s=t[e]||0,i=t[e-1],a=r[0]+r[1],c=!0,l=!0;if(n!==(a===0)?(c=s===1||s===2,l=s===1):(c=s<2,l=s===0),!c)return;let f=l?i:i+4,u=o[f];t[e-1]=u%4,t[e]=(s+4+Math.floor(u/4)-Math.floor(f/4))%4};Ae.setMatrixArrayType(Float64Array);var Yf=P.fromValues(-1,1),ku=!0,Jb=(t,e,r,n=ku)=>{let o=BigInt(t),s=r==="vu"||r==="wu"||r==="vw",i=r==="wv"||r==="vw",a=r==="wu"||r==="uw";s&&(o=(1n<<BigInt(2*e))-o-1n);let c=Wb(o,e,i,a,n);if(a){let{offset:[l,f],flips:[u,h]}=c;c.offset=[f,l],u===Le&&P.add(c.offset,c.offset,Yf),h===Le&&P.subtract(c.offset,c.offset,Yf)}if(i){let{offset:[l,f],flips:u}=c,h=(1<<e)-(l+f);u[0]=-u[0],c.offset[1]=h,c.flips=u}return c},Wb=(t,e,r,n,o=ku)=>{let s=P.create(),i=[Se,Se],a=BigInt(t),c=[];for(;a>0n||c.length<e;)c.push(Number(a%4n)),a=a>>2n;let l=n?zu:Hu;for(let u=c.length-1;u>=0;u--)o&&jb(c,u,i,r,l),P.multiply(i,i,Kf(c[u]));i[0]=Se,i[1]=Se;for(let u=c.length-1;u>=0;u--){P.scale(s,s,2);let h=qb(c[u],i);P.add(s,s,h),P.multiply(i,i,Kf(c[u]))}return{q:c[0]||0,offset:kb(s),flips:i}};var _t=.1,_v=[[_t*Math.cos(45*Math.PI/180),_t*Math.sin(45*Math.PI/180)],[_t*Math.cos(113*Math.PI/180),_t*Math.sin(113*Math.PI/180)],[_t*Math.cos(293*Math.PI/180),_t*Math.sin(293*Math.PI/180)],[_t*Math.cos(225*Math.PI/180),_t*Math.sin(225*Math.PI/180)]];Ae.setMatrixArrayType(Float64Array);var Xb=!1,Kb=P.clone(Tn),Yb=P.negate(P.create(),Tn),pa=[0,1,2,3,4].map(t=>{let e=Xt.create();return Xt.fromRotation(e,Xo*t),e}),Qf=P.create();function Qb(t,e,r){let n=(Xb?Lu:Mb).clone();P.transformMat2(Qf,r.offset,Fu),r.flips[0]===Se&&r.flips[1]===Le&&n.rotate180();let{q:o}=r,s=r.flips[0]+r.flips[1];return((s===-2||s===2)&&o>1||s===0&&(o===0||o===3))&&n.reflectY(),r.flips[0]===Le&&r.flips[1]===Le?n.rotate180():r.flips[0]===Le?n.translate(Yb):r.flips[1]===Le&&n.translate(Kb),n.translate(Qf),n.scale(1/2**t),n.transform(pa[e]),n}function qu(t){let e=Lu.clone();return e.transform(pa[t]),e}function Zb(){let t=[];for(let e of pa)t.push(P.transformMat2(P.create(),Qo,e));return t.reverse(),new ha(t)}Ae.setMatrixArrayType(Float64Array);var $b=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(let e of this.vertices)if(R.distance(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Ye.forEach(t=>this.add(Lr(t.axis)))}addVertices(){let t=Math.atan(Ab);for(let e of Ye)for(let r=0;r<5;r++){let n=(2*r+1)*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}addMidpoints(){let t=Math.atan($o);for(let e of Ye)for(let r=0;r<5;r++){let n=2*r*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}add(t){let e=R.normalize(R.create(),t);return this.vertices.find(n=>R.distance(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}};Ae.setMatrixArrayType(Float64Array);var ey=new $b,ty=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new zb,this.gnomonic=new Db}forward(t,e){let r=Ye[e],n=Lr(t),o=R.create();R.transformQuat(o,n,r.inverseQuat);let s=oa(o),i=this.gnomonic.forward(s);i[1]=i[1]-r.angle;let a=this.getFaceTriangleIndex(i),c=this.shouldReflect(i),l=this.getFaceTriangle(a,c,!1),f=this.getSphericalTriangle(a,e,c);return this.polyhedral.forward(n,f,l)}inverse(t,e){let r=Uf(t),n=this.getFaceTriangleIndex(r),o=this.shouldReflect(r),s=this.getFaceTriangle(n,o,!1),i=this.getSphericalTriangle(n,e,o),a=this.polyhedral.inverse(t,s,i);return oa(a)}shouldReflect(t){let[e,r]=t;return Bb([e,this.normalizeGamma(r)])[0]>$o}getFaceTriangleIndex([t,e]){return(Math.floor(e/ot)+10)%10}getFaceTriangle(t,e=!1,r=!1){let n=t;return e&&(n+=r?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,n,o]=qu(e).getVertices(),s=P.create();return P.lerp(s,n,o,.5),t%2===0?[r,s,n]:[r,o,s]}_getReflectedFaceTriangle(t,e=!1){let[r,n,o]=this._getFaceTriangle(t).map(a=>P.clone(a)),s=t%2===0;P.negate(r,r);let i=s?n:o;return P.scaleAndAdd(r,r,i,e?1+1/Math.cos(ra):2),[r,o,n]}getSphericalTriangle(t,e,r=!1){let n=10*e+t;return r&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(t,e,r=!1){let n=Ye[e];return this.getFaceTriangle(t,r,!0).map(i=>{let[a,c]=Uf(i),l=[a,c+n.angle],f=Lr(this.gnomonic.inverse(l));return R.transformQuat(f,f,n.quat),ey.getVertex(f)})}normalizeGamma(t){let e=t/Xo,r=Math.round(e);return(e-r)*Xo}},Fr=2,ca=30,Zf=58n,ry=0n;function ny(t){if(t===0n)return-1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return ca;let e=ca-1,r=t>>1n;if(r===0n)return-1;let n=Number(r&0xFFFFFFFFn),o;for(n===0?(r>>=32n,e-=16,o=Number(r)):o=n,o&65535||(o>>=16,e-=8),e>=6&&!(o&255)&&(o>>=8,e-=4),e>=4&&!(o&15)&&(o>>=4,e-=2);e>-1&&!(o&1);)e-=1,o=o>>(e<Fr?1:2);return e}function oy(t){let e=ny(t);if(e===-1)return{origin:Ye[0],segment:0,S:0n,resolution:e};let r=Zf,n=0;if(e===ca){let u=t&1n?1n:t&0b100n?3n:5n;r=Zf+u,n=u===1n?0:u===3n?32:40}let o=Number(t>>r)+n,s,i;if(e===0)s=Ye[o],i=0;else{let u=Math.floor(o/5);s=Ye[u],i=(o+s.firstQuintant)%5}if(!s)throw new Error(`Could not parse origin: ${o}`);if(e<Fr)return{origin:s,segment:i,S:0n,resolution:e};let a=e-Fr+1,c=BigInt(2*a),l=(1n<<r)-1n,f=(t&l)>>r-c;return{origin:s,segment:i,S:f,resolution:e}}Ae.setMatrixArrayType(Float64Array);var Cv=Xt.create(),sy=new ty;function iy({S:t,segment:e,origin:r,resolution:n}){let{quintant:o,orientation:s}=Ub(e,r);if(n===Fr-1)return qu(o);if(n===Fr-2)return Zb();let i=n-Fr+1,a=Jb(t,i,s);return Qb(i,o,a)}function ju(t,{closedRing:e=!0,segments:r="auto"}={closedRing:!0,segments:"auto"}){if(t===ry)return[];let{S:n,segment:o,origin:s,resolution:i}=oy(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-i)));let u=iy({S:n,segment:o,origin:s,resolution:i}).splitEdges(r).getVertices().map(p=>sy.inverse(p,s.id)).map(p=>Ou(p)),h=wb(u);return e&&h.push(h[0]),h.reverse(),h}function Ju(t){return BigInt(`0x${t}`)}var Wu=2;var ay=Wu*Ko/Math.sqrt(15),Xu=new Array(31);Xu[0]=Wu*Ko/Math.sqrt(3);for(let t=1;t<=30;t++)Xu[t]=ay/(1<<t-1);Ae.setMatrixArrayType(Float64Array);var vn=U(rs(),1);var cy=1/Math.PI*180,ly=1/180*Math.PI,fy={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...fy}};var Q=globalThis.mathgl.config;function da(t,{precision:e=Q.precision}={}){return t=uy(t),`${parseFloat(t.toPrecision(e))}`}function Fe(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ma(t){return Yu(t)}function ga(t){return Pe(t)}function Yu(t,e){return Aa(t,r=>r*ly,e)}function Pe(t,e){return Aa(t,r=>r*cy,e)}function ns(t,e,r){return Aa(t,n=>Math.max(e,Math.min(r,n)))}function Ct(t,e,r){return Fe(t)?t.map((n,o)=>Ct(n,e[o],r)):r*e+(1-r)*t}function _e(t,e,r){let n=Q.EPSILON;r&&(Q.EPSILON=r);try{if(t===e)return!0;if(Fe(t)&&Fe(e)){if(t.length!==e.length)return!1;for(let o=0;o<t.length;++o)if(!_e(t[o],e[o]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{Q.EPSILON=n}}function uy(t){return Math.round(t/Q.EPSILON)*Q.EPSILON}function hy(t){return t.clone?t.clone():new Array(t.length)}function Aa(t,e,r){if(Fe(t)){let n=t;r=r||hy(n);for(let o=0;o<r.length&&o<n.length;++o){let s=typeof t=="number"?t:t[o];r[o]=e(s,o,r)}return r}return e(t)}var Bt=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Fe(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Q)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+da(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!_e(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let o=0;o<this.ELEMENTS;++o){let s=e[o],i=typeof r=="number"?r:r[o];this[o]=s+n*(i-s)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(Q.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function py(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function V(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function It(t,e,r=""){if(Q.debug&&!py(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function he(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var Rt=class extends Bt{get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let o=this[n]-e[n];r+=o*o}return V(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return V(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return he(e>=0&&e<this.ELEMENTS,"index is out of range"),V(this[e])}setComponent(e,r){return he(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var te=typeof Float32Array<"u"?Float32Array:Array,En=Math.random;function Pr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var Jv=Math.PI/180;function dy(){let t=new te(2);return te!=Float32Array&&(t[0]=0,t[1]=0),t}function Qu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function Zu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function os(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function ss(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}var Wv=function(){let t=dy();return function(e,r,n,o,s,i){let a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}();function is(t,e,r){let n=e[0],o=e[1],s=r[3]*n+r[7]*o||1;return t[0]=(r[0]*n+r[4]*o)/s,t[1]=(r[1]*n+r[5]*o)/s,t}function as(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s||1;return t[0]=(r[0]*n+r[4]*o+r[8]*s)/i,t[1]=(r[1]*n+r[5]*o+r[9]*s)/i,t[2]=(r[2]*n+r[6]*o+r[10]*s)/i,t}function $u(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t}function eh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t[3]=e[3],t}function cs(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=r[0]*n+r[3]*o+r[6]*s,t[1]=r[1]*n+r[4]*o+r[7]*s,t[2]=r[2]*n+r[5]*o+r[8]*s,t[3]=e[3],t}var Yt=class extends Rt{constructor(e=0,r=0){super(2),Fe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r)),this[0]=e,this[1]=r)}set(e,r){return this[0]=e,this[1]=r,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return ss(this,this,e),this.check()}transformAsVector(e){return is(this,this,e),this.check()}transformByMatrix3(e){return os(this,this,e),this.check()}transformByMatrix2x3(e){return Zu(this,this,e),this.check()}transformByMatrix2(e){return Qu(this,this,e),this.check()}};var $t={};ye($t,{add:()=>xy,angle:()=>Ma,bezier:()=>wy,ceil:()=>by,clone:()=>my,copy:()=>gy,create:()=>ls,cross:()=>Qt,dist:()=>Vy,distance:()=>sh,div:()=>Gy,divide:()=>oh,dot:()=>Sn,equals:()=>Oy,exactEquals:()=>Ny,floor:()=>yy,forEach:()=>ky,fromValues:()=>fs,hermite:()=>vy,inverse:()=>By,len:()=>Ea,length:()=>th,lerp:()=>Iy,max:()=>My,min:()=>Ty,mul:()=>Dy,multiply:()=>nh,negate:()=>Cy,normalize:()=>xa,random:()=>Ly,rotateX:()=>ba,rotateY:()=>ya,rotateZ:()=>Ta,round:()=>Ey,scale:()=>Sy,scaleAndAdd:()=>_y,set:()=>Ay,slerp:()=>Ry,sqrDist:()=>Hy,sqrLen:()=>zy,squaredDistance:()=>ih,squaredLength:()=>ah,str:()=>Py,sub:()=>Uy,subtract:()=>rh,transformMat3:()=>_n,transformMat4:()=>Zt,transformQuat:()=>Cn,zero:()=>Fy});function ls(){let t=new te(3);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function my(t){let e=new te(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function th(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function fs(t,e,r){let n=new te(3);return n[0]=t,n[1]=e,n[2]=r,n}function gy(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Ay(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function xy(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function rh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function nh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function oh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function by(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function yy(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function Ty(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function My(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function Ey(t,e){return t[0]=Pr(e[0]),t[1]=Pr(e[1]),t[2]=Pr(e[2]),t}function Sy(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function _y(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function sh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}function ih(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function ah(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function Cy(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function By(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function xa(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Sn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Qt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function Iy(t,e,r,n){let o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function Ry(t,e,r,n){let o=Math.acos(Math.min(Math.max(Sn(e,r),-1),1)),s=Math.sin(o),i=Math.sin((1-n)*o)/s,a=Math.sin(n*o)/s;return t[0]=i*e[0]+a*r[0],t[1]=i*e[1]+a*r[1],t[2]=i*e[2]+a*r[2],t}function vy(t,e,r,n,o,s){let i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function wy(t,e,r,n,o,s){let i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function Ly(t,e){e=e===void 0?1:e;let r=En()*2*Math.PI,n=En()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function Zt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function _n(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function Cn(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,A=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,A*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+A,t}function ba(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function ya(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ta(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ma(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt((r*r+n*n+o*o)*(s*s+i*i+a*a)),l=c&&Sn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function Fy(t){return t[0]=0,t[1]=0,t[2]=0,t}function Py(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function Ny(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function Oy(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var Uy=rh,Dy=nh,Gy=oh,Vy=sh,Hy=ih,Ea=th,zy=ah,ky=function(){let t=ls();return function(e,r,n,o,s,i){let a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var Sa=[0,0,0],us,b=class extends Rt{static get ZERO(){return us||(us=new b(0,0,0),Object.freeze(us)),us}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Fe(e)?this.copy(e):(Q.debug&&(V(e),V(r),V(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=V(e)}angle(e){return Ma(this,e)}cross(e){return Qt(this,this,e),this.check()}rotateX({radians:e,origin:r=Sa}){return ba(this,this,r,e),this.check()}rotateY({radians:e,origin:r=Sa}){return ya(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=Sa}){return Ta(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Zt(this,this,e),this.check()}transformAsVector(e){return as(this,this,e),this.check()}transformByMatrix3(e){return _n(this,this,e),this.check()}transformByMatrix2(e){return $u(this,this,e),this.check()}transformByQuaternion(e){return Cn(this,this,e),this.check()}};var hs,Or=class extends Rt{static get ZERO(){return hs||(hs=new Or(0,0,0,0),Object.freeze(hs)),hs}constructor(e=0,r=0,n=0,o=0){super(-0,-0,-0,-0),Fe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r),V(n),V(o)),this[0]=e,this[1]=r,this[2]=n,this[3]=o)}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z),V(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}transform(e){return Zt(this,this,e),this.check()}transformByMatrix3(e){return cs(this,this,e),this.check()}transformByMatrix2(e){return eh(this,this,e),this.check()}transformByQuaternion(e){return Cn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var Ur=class extends Bt{toString(){let e="[";if(Q.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${this[r]}`}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=V(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)r[o]=this[n+o];return r}setColumn(e,r){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)this[n+o]=r[o];return this}};function ch(){let t=new te(9);return te!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function lh(t,e){if(t===e){let r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function fh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=f*i-a*l,h=-f*s+a*c,p=l*s-i*c,d=r*u+n*h+o*p;return d?(d=1/d,t[0]=u*d,t[1]=(-f*n+o*l)*d,t[2]=(a*n-o*i)*d,t[3]=h*d,t[4]=(f*r-o*c)*d,t[5]=(-a*r+o*s)*d,t[6]=p*d,t[7]=(-l*r+n*c)*d,t[8]=(i*r-n*s)*d,t):null}function uh(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8];return e*(l*s-i*c)+r*(-l*o+i*a)+n*(c*o-s*a)}function _a(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1],d=r[2],A=r[3],m=r[4],x=r[5],T=r[6],M=r[7],E=r[8];return t[0]=h*n+p*i+d*l,t[1]=h*o+p*a+d*f,t[2]=h*s+p*c+d*u,t[3]=A*n+m*i+x*l,t[4]=A*o+m*a+x*f,t[5]=A*s+m*c+x*u,t[6]=T*n+M*i+E*l,t[7]=T*o+M*a+E*f,t[8]=T*s+M*c+E*u,t}function hh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1];return t[0]=n,t[1]=o,t[2]=s,t[3]=i,t[4]=a,t[5]=c,t[6]=h*n+p*i+l,t[7]=h*o+p*a+f,t[8]=h*s+p*c+u,t}function ph(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=Math.sin(r),p=Math.cos(r);return t[0]=p*n+h*i,t[1]=p*o+h*a,t[2]=p*s+h*c,t[3]=p*i-h*n,t[4]=p*a-h*o,t[5]=p*c-h*s,t[6]=l,t[7]=f,t[8]=u,t}function Ca(t,e,r){let n=r[0],o=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=o*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function dh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,A=s*i,m=s*a,x=s*c;return t[0]=1-u-d,t[3]=f-x,t[6]=h+m,t[1]=f+x,t[4]=1-l-d,t[7]=p-A,t[2]=h-m,t[5]=p+A,t[8]=1-l-u,t}var Ba;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL1ROW0=3]="COL1ROW0",t[t.COL1ROW1=4]="COL1ROW1",t[t.COL1ROW2=5]="COL1ROW2",t[t.COL2ROW0=6]="COL2ROW0",t[t.COL2ROW1=7]="COL2ROW1",t[t.COL2ROW2=8]="COL2ROW2"})(Ba||(Ba={}));var jy=Object.freeze([1,0,0,0,1,0,0,0,1]),k=class extends Ur{static get IDENTITY(){return Wy()}static get ZERO(){return Jy()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Ba}constructor(e,...r){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):r.length>0?this.copy([e,...r]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(jy)}fromObject(e){return this.check()}fromQuaternion(e){return dh(this,e),this.check()}set(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=o,this[2]=a,this[3]=r,this[4]=s,this[5]=c,this[6]=n,this[7]=i,this[8]=l,this.check()}determinant(){return uh(this)}transpose(){return lh(this,this),this.check()}invert(){return fh(this,this),this.check()}multiplyLeft(e){return _a(this,e,this),this.check()}multiplyRight(e){return _a(this,this,e),this.check()}rotate(e){return ph(this,this,e),this.check()}scale(e){return Array.isArray(e)?Ca(this,this,e):Ca(this,this,[e,e]),this.check()}translate(e){return hh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=os(r||[-0,-0],e,this);break;case 3:n=_n(r||[-0,-0,-0],e,this);break;case 4:n=cs(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(n,e.length),n}transformVector(e,r){return this.transform(e,r)}transformVector2(e,r){return this.transform(e,r)}transformVector3(e,r){return this.transform(e,r)}},ps,ds=null;function Jy(){return ps||(ps=new k([0,0,0,0,0,0,0,0,0]),Object.freeze(ps)),ps}function Wy(){return ds||(ds=new k,Object.freeze(ds)),ds}var In={};ye(In,{add:()=>xT,adjoint:()=>$y,clone:()=>Ky,copy:()=>Yy,create:()=>Xy,decompose:()=>lT,determinant:()=>va,equals:()=>MT,exactEquals:()=>TT,frob:()=>AT,fromQuat:()=>Ua,fromQuat2:()=>iT,fromRotation:()=>rT,fromRotationTranslation:()=>gh,fromRotationTranslationScale:()=>fT,fromRotationTranslationScaleOrigin:()=>uT,fromScaling:()=>tT,fromTranslation:()=>eT,fromValues:()=>Qy,fromXRotation:()=>nT,fromYRotation:()=>oT,fromZRotation:()=>sT,frustum:()=>Da,getRotation:()=>cT,getScaling:()=>Ah,getTranslation:()=>aT,identity:()=>mh,invert:()=>Ra,lookAt:()=>Ha,mul:()=>ET,multiply:()=>Bn,multiplyScalar:()=>bT,multiplyScalarAndAdd:()=>yT,ortho:()=>Va,orthoNO:()=>bh,orthoZO:()=>dT,perspective:()=>Ga,perspectiveFromFieldOfView:()=>pT,perspectiveNO:()=>xh,perspectiveZO:()=>hT,rotate:()=>Fa,rotateX:()=>Pa,rotateY:()=>Na,rotateZ:()=>Oa,scale:()=>La,set:()=>Zy,str:()=>gT,sub:()=>ST,subtract:()=>yh,targetTo:()=>mT,translate:()=>wa,transpose:()=>Ia});function Xy(){let t=new te(16);return te!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Ky(t){let e=new te(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Yy(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Qy(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,A){let m=new te(16);return m[0]=t,m[1]=e,m[2]=r,m[3]=n,m[4]=o,m[5]=s,m[6]=i,m[7]=a,m[8]=c,m[9]=l,m[10]=f,m[11]=u,m[12]=h,m[13]=p,m[14]=d,m[15]=A,m}function Zy(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,A,m){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=s,t[5]=i,t[6]=a,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=h,t[12]=p,t[13]=d,t[14]=A,t[15]=m,t}function mh(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Ia(t,e){if(t===e){let r=e[1],n=e[2],o=e[3],s=e[6],i=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=s,t[11]=e[14],t[12]=o,t[13]=i,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function Ra(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],A=e[13],m=e[14],x=e[15],T=r*a-n*i,M=r*c-o*i,E=r*l-s*i,_=n*c-o*a,C=n*l-s*a,v=o*l-s*c,S=f*A-u*d,y=f*m-h*d,g=f*x-p*d,B=u*m-h*A,L=u*x-p*A,F=h*x-p*m,w=T*F-M*L+E*B+_*g-C*y+v*S;return w?(w=1/w,t[0]=(a*F-c*L+l*B)*w,t[1]=(o*L-n*F-s*B)*w,t[2]=(A*v-m*C+x*_)*w,t[3]=(h*C-u*v-p*_)*w,t[4]=(c*g-i*F-l*y)*w,t[5]=(r*F-o*g+s*y)*w,t[6]=(m*E-d*v-x*M)*w,t[7]=(f*v-h*E+p*M)*w,t[8]=(i*L-a*g+l*S)*w,t[9]=(n*g-r*L-s*S)*w,t[10]=(d*C-A*E+x*T)*w,t[11]=(u*E-f*C-p*T)*w,t[12]=(a*y-i*B-c*S)*w,t[13]=(r*B-n*y+o*S)*w,t[14]=(A*M-d*_-m*T)*w,t[15]=(f*_-u*M+h*T)*w,t):null}function $y(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],A=e[13],m=e[14],x=e[15],T=r*a-n*i,M=r*c-o*i,E=r*l-s*i,_=n*c-o*a,C=n*l-s*a,v=o*l-s*c,S=f*A-u*d,y=f*m-h*d,g=f*x-p*d,B=u*m-h*A,L=u*x-p*A,F=h*x-p*m;return t[0]=a*F-c*L+l*B,t[1]=o*L-n*F-s*B,t[2]=A*v-m*C+x*_,t[3]=h*C-u*v-p*_,t[4]=c*g-i*F-l*y,t[5]=r*F-o*g+s*y,t[6]=m*E-d*v-x*M,t[7]=f*v-h*E+p*M,t[8]=i*L-a*g+l*S,t[9]=n*g-r*L-s*S,t[10]=d*C-A*E+x*T,t[11]=u*E-f*C-p*T,t[12]=a*y-i*B-c*S,t[13]=r*B-n*y+o*S,t[14]=A*M-d*_-m*T,t[15]=f*_-u*M+h*T,t}function va(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8],f=t[9],u=t[10],h=t[11],p=t[12],d=t[13],A=t[14],m=t[15],x=e*i-r*s,T=e*a-n*s,M=r*a-n*i,E=l*d-f*p,_=l*A-u*p,C=f*A-u*d,v=e*C-r*_+n*E,S=s*C-i*_+a*E,y=l*M-f*T+u*x,g=p*M-d*T+A*x;return c*v-o*S+m*y-h*g}function Bn(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=e[9],p=e[10],d=e[11],A=e[12],m=e[13],x=e[14],T=e[15],M=r[0],E=r[1],_=r[2],C=r[3];return t[0]=M*n+E*a+_*u+C*A,t[1]=M*o+E*c+_*h+C*m,t[2]=M*s+E*l+_*p+C*x,t[3]=M*i+E*f+_*d+C*T,M=r[4],E=r[5],_=r[6],C=r[7],t[4]=M*n+E*a+_*u+C*A,t[5]=M*o+E*c+_*h+C*m,t[6]=M*s+E*l+_*p+C*x,t[7]=M*i+E*f+_*d+C*T,M=r[8],E=r[9],_=r[10],C=r[11],t[8]=M*n+E*a+_*u+C*A,t[9]=M*o+E*c+_*h+C*m,t[10]=M*s+E*l+_*p+C*x,t[11]=M*i+E*f+_*d+C*T,M=r[12],E=r[13],_=r[14],C=r[15],t[12]=M*n+E*a+_*u+C*A,t[13]=M*o+E*c+_*h+C*m,t[14]=M*s+E*l+_*p+C*x,t[15]=M*i+E*f+_*d+C*T,t}function wa(t,e,r){let n=r[0],o=r[1],s=r[2],i,a,c,l,f,u,h,p,d,A,m,x;return e===t?(t[12]=e[0]*n+e[4]*o+e[8]*s+e[12],t[13]=e[1]*n+e[5]*o+e[9]*s+e[13],t[14]=e[2]*n+e[6]*o+e[10]*s+e[14],t[15]=e[3]*n+e[7]*o+e[11]*s+e[15]):(i=e[0],a=e[1],c=e[2],l=e[3],f=e[4],u=e[5],h=e[6],p=e[7],d=e[8],A=e[9],m=e[10],x=e[11],t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=h,t[7]=p,t[8]=d,t[9]=A,t[10]=m,t[11]=x,t[12]=i*n+f*o+d*s+e[12],t[13]=a*n+u*o+A*s+e[13],t[14]=c*n+h*o+m*s+e[14],t[15]=l*n+p*o+x*s+e[15]),t}function La(t,e,r){let n=r[0],o=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Fa(t,e,r,n){let o=n[0],s=n[1],i=n[2],a=Math.sqrt(o*o+s*s+i*i),c,l,f,u,h,p,d,A,m,x,T,M,E,_,C,v,S,y,g,B,L,F,w,D;return a<1e-6?null:(a=1/a,o*=a,s*=a,i*=a,l=Math.sin(r),c=Math.cos(r),f=1-c,u=e[0],h=e[1],p=e[2],d=e[3],A=e[4],m=e[5],x=e[6],T=e[7],M=e[8],E=e[9],_=e[10],C=e[11],v=o*o*f+c,S=s*o*f+i*l,y=i*o*f-s*l,g=o*s*f-i*l,B=s*s*f+c,L=i*s*f+o*l,F=o*i*f+s*l,w=s*i*f-o*l,D=i*i*f+c,t[0]=u*v+A*S+M*y,t[1]=h*v+m*S+E*y,t[2]=p*v+x*S+_*y,t[3]=d*v+T*S+C*y,t[4]=u*g+A*B+M*L,t[5]=h*g+m*B+E*L,t[6]=p*g+x*B+_*L,t[7]=d*g+T*B+C*L,t[8]=u*F+A*w+M*D,t[9]=h*F+m*w+E*D,t[10]=p*F+x*w+_*D,t[11]=d*F+T*w+C*D,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function Pa(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[4],i=e[5],a=e[6],c=e[7],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*o+l*n,t[5]=i*o+f*n,t[6]=a*o+u*n,t[7]=c*o+h*n,t[8]=l*o-s*n,t[9]=f*o-i*n,t[10]=u*o-a*n,t[11]=h*o-c*n,t}function Na(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o-l*n,t[1]=i*o-f*n,t[2]=a*o-u*n,t[3]=c*o-h*n,t[8]=s*n+l*o,t[9]=i*n+f*o,t[10]=a*n+u*o,t[11]=c*n+h*o,t}function Oa(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[4],f=e[5],u=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o+l*n,t[1]=i*o+f*n,t[2]=a*o+u*n,t[3]=c*o+h*n,t[4]=l*o-s*n,t[5]=f*o-i*n,t[6]=u*o-a*n,t[7]=h*o-c*n,t}function eT(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function tT(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function rT(t,e,r){let n=r[0],o=r[1],s=r[2],i=Math.sqrt(n*n+o*o+s*s),a,c,l;return i<1e-6?null:(i=1/i,n*=i,o*=i,s*=i,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=o*n*l+s*c,t[2]=s*n*l-o*c,t[3]=0,t[4]=n*o*l-s*c,t[5]=o*o*l+a,t[6]=s*o*l+n*c,t[7]=0,t[8]=n*s*l+o*c,t[9]=o*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function nT(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function oT(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function sT(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function gh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=n+n,c=o+o,l=s+s,f=n*a,u=n*c,h=n*l,p=o*c,d=o*l,A=s*l,m=i*a,x=i*c,T=i*l;return t[0]=1-(p+A),t[1]=u+T,t[2]=h-x,t[3]=0,t[4]=u-T,t[5]=1-(f+A),t[6]=d+m,t[7]=0,t[8]=h+x,t[9]=d-m,t[10]=1-(f+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function iT(t,e){let r=new te(3),n=-e[0],o=-e[1],s=-e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=n*n+o*o+s*s+i*i;return u>0?(r[0]=(a*i+f*n+c*s-l*o)*2/u,r[1]=(c*i+f*o+l*n-a*s)*2/u,r[2]=(l*i+f*s+a*o-c*n)*2/u):(r[0]=(a*i+f*n+c*s-l*o)*2,r[1]=(c*i+f*o+l*n-a*s)*2,r[2]=(l*i+f*s+a*o-c*n)*2),gh(t,e,r),t}function aT(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Ah(t,e){let r=e[0],n=e[1],o=e[2],s=e[4],i=e[5],a=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.sqrt(r*r+n*n+o*o),t[1]=Math.sqrt(s*s+i*i+a*a),t[2]=Math.sqrt(c*c+l*l+f*f),t}function cT(t,e){let r=new te(3);Ah(r,e);let n=1/r[0],o=1/r[1],s=1/r[2],i=e[0]*n,a=e[1]*o,c=e[2]*s,l=e[4]*n,f=e[5]*o,u=e[6]*s,h=e[8]*n,p=e[9]*o,d=e[10]*s,A=i+f+d,m=0;return A>0?(m=Math.sqrt(A+1)*2,t[3]=.25*m,t[0]=(u-p)/m,t[1]=(h-c)/m,t[2]=(a-l)/m):i>f&&i>d?(m=Math.sqrt(1+i-f-d)*2,t[3]=(u-p)/m,t[0]=.25*m,t[1]=(a+l)/m,t[2]=(h+c)/m):f>d?(m=Math.sqrt(1+f-i-d)*2,t[3]=(h-c)/m,t[0]=(a+l)/m,t[1]=.25*m,t[2]=(u+p)/m):(m=Math.sqrt(1+d-i-f)*2,t[3]=(a-l)/m,t[0]=(h+c)/m,t[1]=(u+p)/m,t[2]=.25*m),t}function lT(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let o=n[0],s=n[1],i=n[2],a=n[4],c=n[5],l=n[6],f=n[8],u=n[9],h=n[10];r[0]=Math.sqrt(o*o+s*s+i*i),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(f*f+u*u+h*h);let p=1/r[0],d=1/r[1],A=1/r[2],m=o*p,x=s*d,T=i*A,M=a*p,E=c*d,_=l*A,C=f*p,v=u*d,S=h*A,y=m+E+S,g=0;return y>0?(g=Math.sqrt(y+1)*2,t[3]=.25*g,t[0]=(_-v)/g,t[1]=(C-T)/g,t[2]=(x-M)/g):m>E&&m>S?(g=Math.sqrt(1+m-E-S)*2,t[3]=(_-v)/g,t[0]=.25*g,t[1]=(x+M)/g,t[2]=(C+T)/g):E>S?(g=Math.sqrt(1+E-m-S)*2,t[3]=(C-T)/g,t[0]=(x+M)/g,t[1]=.25*g,t[2]=(_+v)/g):(g=Math.sqrt(1+S-m-E)*2,t[3]=(x-M)/g,t[0]=(C+T)/g,t[1]=(_+v)/g,t[2]=.25*g),t}function fT(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=o+o,l=s+s,f=i+i,u=o*c,h=o*l,p=o*f,d=s*l,A=s*f,m=i*f,x=a*c,T=a*l,M=a*f,E=n[0],_=n[1],C=n[2];return t[0]=(1-(d+m))*E,t[1]=(h+M)*E,t[2]=(p-T)*E,t[3]=0,t[4]=(h-M)*_,t[5]=(1-(u+m))*_,t[6]=(A+x)*_,t[7]=0,t[8]=(p+T)*C,t[9]=(A-x)*C,t[10]=(1-(u+d))*C,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function uT(t,e,r,n,o){let s=e[0],i=e[1],a=e[2],c=e[3],l=s+s,f=i+i,u=a+a,h=s*l,p=s*f,d=s*u,A=i*f,m=i*u,x=a*u,T=c*l,M=c*f,E=c*u,_=n[0],C=n[1],v=n[2],S=o[0],y=o[1],g=o[2],B=(1-(A+x))*_,L=(p+E)*_,F=(d-M)*_,w=(p-E)*C,D=(1-(h+x))*C,W=(m+T)*C,z=(d+M)*v,re=(m-T)*v,Y=(1-(h+A))*v;return t[0]=B,t[1]=L,t[2]=F,t[3]=0,t[4]=w,t[5]=D,t[6]=W,t[7]=0,t[8]=z,t[9]=re,t[10]=Y,t[11]=0,t[12]=r[0]+S-(B*S+w*y+z*g),t[13]=r[1]+y-(L*S+D*y+re*g),t[14]=r[2]+g-(F*S+W*y+Y*g),t[15]=1,t}function Ua(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,A=s*i,m=s*a,x=s*c;return t[0]=1-u-d,t[1]=f+x,t[2]=h-m,t[3]=0,t[4]=f-x,t[5]=1-l-d,t[6]=p+A,t[7]=0,t[8]=h+m,t[9]=p-A,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Da(t,e,r,n,o,s,i){let a=1/(r-e),c=1/(o-n),l=1/(s-i);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(o+n)*c,t[10]=(i+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*l,t[15]=0,t}function xh(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=(o+n)*i,t[14]=2*o*n*i}else t[10]=-1,t[14]=-2*n;return t}var Ga=xh;function hT(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=o*i,t[14]=o*n*i}else t[10]=-1,t[14]=-n;return t}function pT(t,e,r,n){let o=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(i+a),l=2/(o+s);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((i-a)*c*.5),t[9]=(o-s)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function bh(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=(i+s)*l,t[15]=1,t}var Va=bh;function dT(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=s*l,t[15]=1,t}function Ha(t,e,r,n){let o,s,i,a,c,l,f,u,h,p,d=e[0],A=e[1],m=e[2],x=n[0],T=n[1],M=n[2],E=r[0],_=r[1],C=r[2];return Math.abs(d-E)<1e-6&&Math.abs(A-_)<1e-6&&Math.abs(m-C)<1e-6?mh(t):(u=d-E,h=A-_,p=m-C,o=1/Math.sqrt(u*u+h*h+p*p),u*=o,h*=o,p*=o,s=T*p-M*h,i=M*u-x*p,a=x*h-T*u,o=Math.sqrt(s*s+i*i+a*a),o?(o=1/o,s*=o,i*=o,a*=o):(s=0,i=0,a=0),c=h*a-p*i,l=p*s-u*a,f=u*i-h*s,o=Math.sqrt(c*c+l*l+f*f),o?(o=1/o,c*=o,l*=o,f*=o):(c=0,l=0,f=0),t[0]=s,t[1]=c,t[2]=u,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=a,t[9]=f,t[10]=p,t[11]=0,t[12]=-(s*d+i*A+a*m),t[13]=-(c*d+l*A+f*m),t[14]=-(u*d+h*A+p*m),t[15]=1,t)}function mT(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=n[0],c=n[1],l=n[2],f=o-r[0],u=s-r[1],h=i-r[2],p=f*f+u*u+h*h;p>0&&(p=1/Math.sqrt(p),f*=p,u*=p,h*=p);let d=c*h-l*u,A=l*f-a*h,m=a*u-c*f;return p=d*d+A*A+m*m,p>0&&(p=1/Math.sqrt(p),d*=p,A*=p,m*=p),t[0]=d,t[1]=A,t[2]=m,t[3]=0,t[4]=u*m-h*A,t[5]=h*d-f*m,t[6]=f*A-u*d,t[7]=0,t[8]=f,t[9]=u,t[10]=h,t[11]=0,t[12]=o,t[13]=s,t[14]=i,t[15]=1,t}function gT(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function AT(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function xT(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function yh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function bT(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function yT(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function TT(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function MT(t,e){let r=t[0],n=t[1],o=t[2],s=t[3],i=t[4],a=t[5],c=t[6],l=t[7],f=t[8],u=t[9],h=t[10],p=t[11],d=t[12],A=t[13],m=t[14],x=t[15],T=e[0],M=e[1],E=e[2],_=e[3],C=e[4],v=e[5],S=e[6],y=e[7],g=e[8],B=e[9],L=e[10],F=e[11],w=e[12],D=e[13],W=e[14],z=e[15];return Math.abs(r-T)<=1e-6*Math.max(1,Math.abs(r),Math.abs(T))&&Math.abs(n-M)<=1e-6*Math.max(1,Math.abs(n),Math.abs(M))&&Math.abs(o-E)<=1e-6*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(s-_)<=1e-6*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(i-C)<=1e-6*Math.max(1,Math.abs(i),Math.abs(C))&&Math.abs(a-v)<=1e-6*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(c-S)<=1e-6*Math.max(1,Math.abs(c),Math.abs(S))&&Math.abs(l-y)<=1e-6*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(f-g)<=1e-6*Math.max(1,Math.abs(f),Math.abs(g))&&Math.abs(u-B)<=1e-6*Math.max(1,Math.abs(u),Math.abs(B))&&Math.abs(h-L)<=1e-6*Math.max(1,Math.abs(h),Math.abs(L))&&Math.abs(p-F)<=1e-6*Math.max(1,Math.abs(p),Math.abs(F))&&Math.abs(d-w)<=1e-6*Math.max(1,Math.abs(d),Math.abs(w))&&Math.abs(A-D)<=1e-6*Math.max(1,Math.abs(A),Math.abs(D))&&Math.abs(m-W)<=1e-6*Math.max(1,Math.abs(m),Math.abs(W))&&Math.abs(x-z)<=1e-6*Math.max(1,Math.abs(x),Math.abs(z))}var ET=Bn,ST=yh;function _T(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Th(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function Mh(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function Eh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return Math.sqrt(e*e+r*r+n*n+o*o)}function Sh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function _h(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function Ch(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Bh(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function Ih(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3];return t[0]=r[0]*n+r[4]*o+r[8]*s+r[12]*i,t[1]=r[1]*n+r[5]*o+r[9]*s+r[13]*i,t[2]=r[2]*n+r[6]*o+r[10]*s+r[14]*i,t[3]=r[3]*n+r[7]*o+r[11]*s+r[15]*i,t}function Rh(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2],l=r[3],f=l*n+a*s-c*o,u=l*o+c*n-i*s,h=l*s+i*o-a*n,p=-i*n-a*o-c*s;return t[0]=f*l+p*-i+u*-c-h*-a,t[1]=u*l+p*-a+h*-i-f*-c,t[2]=h*l+p*-c+f*-a-u*-i,t[3]=e[3],t}var _w=function(){let t=_T();return function(e,r,n,o,s,i){let a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var qa;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(qa||(qa={}));var BT=45*Math.PI/180,IT=1,za=.1,ka=500,RT=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),N=class extends Ur{static get IDENTITY(){return wT()}static get ZERO(){return vT()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return qa}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,o,s,i,a,c,l,f,u,h,p,d,A,m){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this[9]=f,this[10]=u,this[11]=h,this[12]=p,this[13]=d,this[14]=A,this[15]=m,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l,f,u,h,p,d,A,m){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=i,this[6]=f,this[7]=d,this[8]=n,this[9]=a,this[10]=u,this[11]=A,this[12]=o,this[13]=c,this[14]=h,this[15]=m,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(RT)}fromObject(e){return this.check()}fromQuaternion(e){return Ua(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:o,top:s,near:i=za,far:a=ka}=e;return a===1/0?LT(this,r,n,o,s,i):Da(this,r,n,o,s,i,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:o=[0,1,0]}=e;return Ha(this,r,n,o),this.check()}ortho(e){let{left:r,right:n,bottom:o,top:s,near:i=za,far:a=ka}=e;return Va(this,r,n,o,s,i,a),this.check()}orthographic(e){let{fovy:r=BT,aspect:n=IT,focalDistance:o=1,near:s=za,far:i=ka}=e;vh(r);let a=r/2,c=o*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:i})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:o=.1,far:s=500}=e;return vh(r),Ga(this,r,n,o,s),this.check()}determinant(){return va(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*o,e[5]=this[5]*s,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*o,e[9]=this[9]*s,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=this[4]*o,e[4]=this[5]*s,e[5]=this[6]*i,e[6]=this[8]*o,e[7]=this[9]*s,e[8]=this[10]*i,e}transpose(){return Ia(this,this),this.check()}invert(){return Ra(this,this),this.check()}multiplyLeft(e){return Bn(this,e,this),this.check()}multiplyRight(e){return Bn(this,this,e),this.check()}rotateX(e){return Pa(this,this,e),this.check()}rotateY(e){return Na(this,this,e),this.check()}rotateZ(e){return Oa(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return Fa(this,this,e,r),this.check()}scale(e){return La(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return wa(this,this,e),this.check()}transform(e,r){return e.length===4?(r=Ih(r||[-0,-0,-0,-0],e,this),It(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,o;switch(n){case 2:o=ss(r||[-0,-0],e,this);break;case 3:o=Zt(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(o,e.length),o}transformAsVector(e,r){let n;switch(e.length){case 2:n=is(r||[-0,-0],e,this);break;case 3:n=as(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},ms,gs;function vT(){return ms||(ms=new N([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(ms)),ms}function wT(){return gs||(gs=new N,Object.freeze(gs)),gs}function vh(t){if(t>Math.PI*2)throw Error("expected radians")}function LT(t,e,r,n,o,s){let i=2*s/(r-e),a=2*s/(o-n),c=(r+e)/(r-e),l=(o+n)/(o-n),f=-1,u=-1,h=-2*s;return t[0]=i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=f,t[11]=u,t[12]=0,t[13]=0,t[14]=h,t[15]=0,t}function wh(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Lh(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function ja(t,e,r){r=r*.5;let n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function Ja(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Fh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Ph(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function Nh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function Oh(t,e){let r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function Rn(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,A,m;return h=o*c+s*l+i*f+a*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>1e-6?(p=Math.acos(h),m=Math.sin(p),d=Math.sin((1-n)*p)/m,A=Math.sin(n*p)/m):(d=1-n,A=n),t[0]=d*o+A*c,t[1]=d*s+A*l,t[2]=d*i+A*f,t[3]=d*a+A*u,t}function Uh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function Dh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Wa(t,e){let r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);let s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}var Gh=Th;var Vh=Mh,Hh=Ch,zh=Bh,kh=Eh;var qh=Sh;var jh=_h;var Jh=function(){let t=ls(),e=fs(1,0,0),r=fs(0,1,0);return function(n,o,s){let i=Sn(o,s);return i<-.999999?(Qt(t,e,o),Ea(t)<1e-6&&Qt(t,r,o),xa(t,t),ja(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Qt(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,jh(n,n))}}(),Gw=function(){let t=wh(),e=wh();return function(r,n,o,s,i,a){return Rn(t,n,i,a),Rn(e,o,s,a),Rn(r,t,e,2*a*(1-a)),r}}(),Vw=function(){let t=ch();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],jh(e,Wa(e,t))}}();var FT=[0,0,0,1],st=class extends Bt{constructor(e=0,r=0,n=0,o=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,o)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return Wa(this,e),this.check()}fromAxisRotation(e,r){return ja(this,e,r),this.check()}identity(){return Lh(this),this.check()}setAxisAngle(e,r){return this.fromAxisRotation(e,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}len(){return kh(this)}lengthSquared(){return qh(this)}dot(e){return Hh(this,e)}rotationTo(e,r){return Jh(this,e,r),this.check()}add(e){return Gh(this,this,e),this.check()}calculateW(){return Oh(this,this),this.check()}conjugate(){return Dh(this,this),this.check()}invert(){return Uh(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(zh(this,e,r,n),this.check())}multiplyRight(e){return Ja(this,this,e),this.check()}multiplyLeft(e){return Ja(this,e,this),this.check()}normalize(){let e=this.len(),r=e>0?1/e:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,e===0&&(this[3]=1),this.check()}rotateX(e){return Fh(this,this,e),this.check()}rotateY(e){return Ph(this,this,e),this.check()}rotateZ(e){return Nh(this,this,e),this.check()}scale(e){return Vh(this,this,e),this.check()}slerp(e,r,n){let o,s,i;switch(arguments.length){case 1:({start:o=FT,target:s,ratio:i}=e);break;case 2:o=this,s=e,i=r;break;default:o=e,s=r,i=n}return Rn(this,o,s,i),this.check()}transformVector4(e,r=new Or){return Rh(r,e,this),It(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,r){return this.setAxisAngle(e,r)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}};var Ge={};ye(Ge,{EPSILON1:()=>PT,EPSILON10:()=>kT,EPSILON11:()=>qT,EPSILON12:()=>jT,EPSILON13:()=>JT,EPSILON14:()=>WT,EPSILON15:()=>XT,EPSILON16:()=>KT,EPSILON17:()=>YT,EPSILON18:()=>QT,EPSILON19:()=>ZT,EPSILON2:()=>NT,EPSILON20:()=>$T,EPSILON3:()=>OT,EPSILON4:()=>UT,EPSILON5:()=>DT,EPSILON6:()=>GT,EPSILON7:()=>VT,EPSILON8:()=>HT,EPSILON9:()=>zT,PI_OVER_FOUR:()=>tM,PI_OVER_SIX:()=>rM,PI_OVER_TWO:()=>eM,TWO_PI:()=>nM});var PT=.1,NT=.01,OT=.001,UT=1e-4,DT=1e-5,GT=1e-6,VT=1e-7,HT=1e-8,zT=1e-9,kT=1e-10,qT=1e-11,jT=1e-12,JT=1e-13,WT=1e-14,XT=1e-15,KT=1e-16,YT=1e-17,QT=1e-18,ZT=1e-19,$T=1e-20,eM=Math.PI/2,tM=Math.PI/4,rM=Math.PI/6,nM=Math.PI*2;function As(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let n=r[0]-e;n>180?r[0]-=360:n<-180&&(r[0]+=360)}}function oM(t,e,r){let[n,o]=(0,vn.cellToLatLng)(t),s=e.length;As(e,o);let i=e[0]===e[s-1]?s-1:s;for(let a=0;a<i;a++)e[a][0]=Ct(o,e[a][0],r),e[a][1]=Ct(n,e[a][1],r)}function Wh(t,e,r){let n=t(e,r),[o,s]=(0,vn.cellToLatLng)(n);return[s,o]}function Xa(t,e=1){let r=(0,vn.cellToBoundary)(t,!0);return e!==1?oM(t,r,e):As(r),r}function xs(t){let e=new Float64Array(t.length*2),r=0;for(let n of t)e[r++]=n[0],e[r++]=n[1];return e}var sM={getPentagon:{type:"accessor",value:t=>t.pentagon}},wn=class extends De{indexToBounds(){let{data:e,getPentagon:r}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(n,o)=>{let s=r(n,o),i=ju(typeof s=="string"?Ju(s):s,{closedRing:!0,segments:"auto"});return xs(i)}}}};wn.layerName="A5Layer";wn.defaultProps=sM;var Xh=wn;var fr=U(Ke(),1),Wp=U(Xe(),1),Xp=U(er(),1);function iM(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function bs(t){if(Array.isArray(t))return t.map(e=>bs(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[iM(r)]=bs(n);return e}return t}var Yh=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",aM=Yh+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",cM="["+Yh+"]["+aM+"]*",lM=new RegExp("^"+cM+"$");function ys(t,e){let r=[],n=e.exec(t);for(;n;){let o=[];o.startIndex=e.lastIndex-n[0].length;let s=n.length;for(let i=0;i<s;i++)o.push(n[i]);r.push(o),n=e.exec(t)}return r}var Dr=function(t){let e=lM.exec(t);return!(e===null||typeof e>"u")};function Qh(t){return typeof t<"u"}var fM={allowBooleanAttributes:!1,unpairedTags:[]};function rp(t,e){e=Object.assign({},fM,e);let r=[],n=!1,o=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let s=0;s<t.length;s++)if(t[s]==="<"&&t[s+1]==="?"){if(s+=2,s=$h(t,s),s.err)return s}else if(t[s]==="<"){let i=s;if(s++,t[s]==="!"){s=ep(t,s);continue}else{let a=!1;t[s]==="/"&&(a=!0,s++);let c="";for(;s<t.length&&t[s]!==">"&&t[s]!==" "&&t[s]!==" "&&t[s]!==`
|
|
8
|
-
`&&t[s]!=="\r";s++)c+=t[s];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),s--),!
|
|
9
|
-
`||t==="\r"}function $h(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let n=t.substr(r,e-r);if(e>5&&n==="xml")return se("InvalidXml","XML declaration allowed only at the start of the document.",Ce(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function ep(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var uM='"',hM="'";function pM(t,e){let r="",n="",o=!1;for(;e<t.length;e++){if(t[e]===uM||t[e]===hM)n===""?n=t[e]:n!==t[e]||(n="");else if(t[e]===">"&&n===""){o=!0;break}r+=t[e]}return n!==""?!1:{value:r,index:e,tagClosed:o}}var dM=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function tp(t,e){let r=ys(t,dM),n={};for(let o=0;o<r.length;o++){if(r[o][1].length===0)return se("InvalidAttr","Attribute '"+r[o][2]+"' has no space in starting.",Ln(r[o]));if(r[o][3]!==void 0&&r[o][4]===void 0)return se("InvalidAttr","Attribute '"+r[o][2]+"' is without value.",Ln(r[o]));if(r[o][3]===void 0&&!e.allowBooleanAttributes)return se("InvalidAttr","boolean attribute '"+r[o][2]+"' is not allowed.",Ln(r[o]));let s=r[o][2];if(!AM(s))return se("InvalidAttr","Attribute '"+s+"' is an invalid name.",Ln(r[o]));if(!n.hasOwnProperty(s))n[s]=1;else return se("InvalidAttr","Attribute '"+s+"' is repeated.",Ln(r[o]))}return!0}function mM(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function gM(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,mM(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function se(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function AM(t){return Dr(t)}function xM(t){return Dr(t)}function Ce(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function Ln(t){return t.startIndex+t[1].length}var bM={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1};function np(t){return typeof t=="boolean"?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,allowedTags:null,tagFilter:null}:typeof t=="object"&&t!==null?{enabled:t.enabled!==!1,maxEntitySize:t.maxEntitySize??1e4,maxExpansionDepth:t.maxExpansionDepth??10,maxTotalExpansions:t.maxTotalExpansions??1e3,maxExpandedLength:t.maxExpandedLength??1e5,allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:np(!0)}var op=function(t){let e=Object.assign({},bM,t);return e.processEntities=np(e.processEntities),e};var Ts;typeof Symbol!="function"?Ts="@@xmlMetadata":Ts=Symbol("XML Node Metadata");var Ne=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,r){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:r})}addChild(e,r){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,[":@"]:e[":@"]}):this.child.push({[e.tagname]:e.child}),r!==void 0&&(this.child[this.child.length-1][Ts]={startIndex:r})}static getMetaDataSymbol(){return Ts}};var Pn=class{constructor(e){this.suppressValidationErr=!e,this.options=e}readDocType(e,r){let n={};if(e[r+3]==="O"&&e[r+4]==="C"&&e[r+5]==="T"&&e[r+6]==="Y"&&e[r+7]==="P"&&e[r+8]==="E"){r=r+9;let o=1,s=!1,i=!1,a="";for(;r<e.length;r++)if(e[r]==="<"&&!i){if(s&&tr(e,"!ENTITY",r)){r+=7;let c,l;if([c,l,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),l.indexOf("&")===-1){let f=c.replace(/[.\-+*:]/g,"\\.");n[c]={regx:RegExp(`&${f};`,"g"),val:l}}}else if(s&&tr(e,"!ELEMENT",r)){r+=8;let{index:c}=this.readElementExp(e,r+1);r=c}else if(s&&tr(e,"!ATTLIST",r))r+=8;else if(s&&tr(e,"!NOTATION",r)){r+=9;let{index:c}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=c}else if(tr(e,"!--",r))i=!0;else throw new Error("Invalid DOCTYPE");o++,a=""}else if(e[r]===">"){if(i?e[r-1]==="-"&&e[r-2]==="-"&&(i=!1,o--):o--,o===0)break}else e[r]==="["?s=!0:a+=e[r];if(o!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:r}}readEntityExp(e,r){r=Re(e,r);let n="";for(;r<e.length&&!/\s/.test(e[r])&&e[r]!=='"'&&e[r]!=="'";)n+=e[r],r++;if(Fn(n),r=Re(e,r),!this.suppressValidationErr){if(e.substring(r,r+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[r]==="%")throw new Error("Parameter entities are not supported")}let o="";if([r,o]=this.readIdentifierVal(e,r,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize&&o.length>this.options.maxEntitySize)throw new Error(`Entity "${n}" size (${o.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return r--,[n,o,r]}readNotationExp(e,r){r=Re(e,r);let n="";for(;r<e.length&&!/\s/.test(e[r]);)n+=e[r],r++;!this.suppressValidationErr&&Fn(n),r=Re(e,r);let o=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&o!=="SYSTEM"&&o!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${o}"`);r+=o.length,r=Re(e,r);let s=null,i=null;if(o==="PUBLIC")[r,s]=this.readIdentifierVal(e,r,"publicIdentifier"),r=Re(e,r),(e[r]==='"'||e[r]==="'")&&([r,i]=this.readIdentifierVal(e,r,"systemIdentifier"));else if(o==="SYSTEM"&&([r,i]=this.readIdentifierVal(e,r,"systemIdentifier"),!this.suppressValidationErr&&!i))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:n,publicIdentifier:s,systemIdentifier:i,index:--r}}readIdentifierVal(e,r,n){let o="",s=e[r];if(s!=='"'&&s!=="'")throw new Error(`Expected quoted string, found "${s}"`);for(r++;r<e.length&&e[r]!==s;)o+=e[r],r++;if(e[r]!==s)throw new Error(`Unterminated ${n} value`);return r++,[r,o]}readElementExp(e,r){r=Re(e,r);let n="";for(;r<e.length&&!/\s/.test(e[r]);)n+=e[r],r++;if(!this.suppressValidationErr&&!Dr(n))throw new Error(`Invalid element name: "${n}"`);r=Re(e,r);let o="";if(e[r]==="E"&&tr(e,"MPTY",r))r+=4;else if(e[r]==="A"&&tr(e,"NY",r))r+=2;else if(e[r]==="("){for(r++;r<e.length&&e[r]!==")";)o+=e[r],r++;if(e[r]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return{elementName:n,contentModel:o.trim(),index:r}}readAttlistExp(e,r){r=Re(e,r);let n="";for(;r<e.length&&!/\s/.test(e[r]);)n+=e[r],r++;Fn(n),r=Re(e,r);let o="";for(;r<e.length&&!/\s/.test(e[r]);)o+=e[r],r++;if(!Fn(o))throw new Error(`Invalid attribute name: "${o}"`);r=Re(e,r);let s="";if(e.substring(r,r+8).toUpperCase()==="NOTATION"){if(s="NOTATION",r+=8,r=Re(e,r),e[r]!=="(")throw new Error(`Expected '(', found "${e[r]}"`);r++;let a=[];for(;r<e.length&&e[r]!==")";){let c="";for(;r<e.length&&e[r]!=="|"&&e[r]!==")";)c+=e[r],r++;if(c=c.trim(),!Fn(c))throw new Error(`Invalid notation name: "${c}"`);a.push(c),e[r]==="|"&&(r++,r=Re(e,r))}if(e[r]!==")")throw new Error("Unterminated list of notations");r++,s+=" ("+a.join("|")+")"}else{for(;r<e.length&&!/\s/.test(e[r]);)s+=e[r],r++;let a=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!a.includes(s.toUpperCase()))throw new Error(`Invalid attribute type: "${s}"`)}r=Re(e,r);let i="";return e.substring(r,r+8).toUpperCase()==="#REQUIRED"?(i="#REQUIRED",r+=8):e.substring(r,r+7).toUpperCase()==="#IMPLIED"?(i="#IMPLIED",r+=7):[r,i]=this.readIdentifierVal(e,r,"ATTLIST"),{elementName:n,attributeName:o,attributeType:s,defaultValue:i,index:r}}},Re=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function tr(t,e,r){for(let n=0;n<e.length;n++)if(e[n]!==t[r+n+1])return!1;return!0}function Fn(t){if(Dr(t))return t;throw new Error(`Invalid entity name ${t}`)}var yM=/^[-+]?0x[a-fA-F0-9]+$/,TM=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,MM={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function Ka(t,e={}){if(e=Object.assign({},MM,e),!t||typeof t!="string")return t;let r=t.trim();if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(t==="0")return 0;if(e.hex&&yM.test(r))return CM(r,16);if(r.includes("e")||r.includes("E"))return SM(t,r,e);{let n=TM.exec(r);if(n){let o=n[1]||"",s=n[2],i=_M(n[3]),a=o?t[s.length+1]===".":t[s.length]===".";if(!e.leadingZeros&&(s.length>1||s.length===1&&!a))return t;{let c=Number(r),l=String(c);if(c===0)return c;if(l.search(/[eE]/)!==-1)return e.eNotation?c:t;if(r.indexOf(".")!==-1)return l==="0"||l===i||l===`${o}${i}`?c:t;let f=s?i:r;return s?f===l||o+f===l?c:t:f===l||f===o+l?c:t}}else return t}}var EM=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function SM(t,e,r){if(!r.eNotation)return t;let n=e.match(EM);if(n){let o=n[1]||"",s=n[3].indexOf("e")===-1?"E":"e",i=n[2],a=o?t[i.length+1]===s:t[i.length]===s;return i.length>1&&a?t:i.length===1&&(n[3].startsWith(`.${s}`)||n[3][0]===s)?Number(e):r.leadingZeros&&!a?(e=(n[1]||"")+n[3],Number(e)):t}else return t}function _M(t){return t&&t.indexOf(".")!==-1&&(t=t.replace(/0+$/,""),t==="."?t="0":t[0]==="."?t="0"+t:t[t.length-1]==="."&&(t=t.substring(0,t.length-1))),t}function CM(t,e){if(parseInt)return parseInt(t,e);if(Number.parseInt)return Number.parseInt(t,e);if(window&&window.parseInt)return window.parseInt(t,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function Ya(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var Nn=class{constructor(e){if(this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(r,n)=>sp(n,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(r,n)=>sp(n,16,"&#x")}},this.addExternalEntities=BM,this.parseXml=LM,this.parseTextData=IM,this.resolveNameSpace=RM,this.buildAttributesMap=wM,this.isItStopNode=OM,this.replaceEntitiesValue=PM,this.readStopNodeData=DM,this.saveTextToParentTag=NM,this.addChild=FM,this.ignoreAttributesFn=Ya(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let r=0;r<this.options.stopNodes.length;r++){let n=this.options.stopNodes[r];typeof n=="string"&&(n.startsWith("*.")?this.stopNodesWildcard.add(n.substring(2)):this.stopNodesExact.add(n))}}}};function BM(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r],o=n.replace(/[.\-+*:]/g,"\\.");this.lastEntities[n]={regex:new RegExp("&"+o+";","g"),val:t[n]}}}function IM(t,e,r,n,o,s,i){if(t!==void 0&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){i||(t=this.replaceEntitiesValue(t,e,r));let a=this.options.tagValueProcessor(e,t,r,o,s);return a==null?t:typeof a!=typeof t||a!==t?a:this.options.trimValues?Za(t,this.options.parseTagValue,this.options.numberParseOptions):t.trim()===t?Za(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function RM(t){if(this.options.removeNSPrefix){let e=t.split(":"),r=t.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(t=r+e[1])}return t}var vM=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function wM(t,e,r){if(this.options.ignoreAttributes!==!0&&typeof t=="string"){let n=ys(t,vM),o=n.length,s={};for(let i=0;i<o;i++){let a=this.resolveNameSpace(n[i][1]);if(this.ignoreAttributesFn(a,e))continue;let c=n[i][4],l=this.options.attributeNamePrefix+a;if(a.length)if(this.options.transformAttributeName&&(l=this.options.transformAttributeName(l)),l==="__proto__"&&(l="#__proto__"),c!==void 0){this.options.trimValues&&(c=c.trim()),c=this.replaceEntitiesValue(c,r,e);let f=this.options.attributeValueProcessor(a,c,e);f==null?s[l]=c:typeof f!=typeof c||f!==c?s[l]=f:s[l]=Za(c,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[l]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){let i={};return i[this.options.attributesGroupName]=s,i}return s}}var LM=function(t){t=t.replace(/\r\n?/g,`
|
|
10
|
-
`);let e=new Ne("!xml"),r=e,n="",o="";this.entityExpansionCount=0,this.currentExpandedLength=0;let s=new Pn(this.options.processEntities);for(let i=0;i<t.length;i++)if(t[i]==="<")if(t[i+1]==="/"){let c=rr(t,">",i,"Closing Tag is not closed."),l=t.substring(i+2,c).trim();if(this.options.removeNSPrefix){let h=l.indexOf(":");h!==-1&&(l=l.substr(h+1))}this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&(n=this.saveTextToParentTag(n,r,o));let f=o.substring(o.lastIndexOf(".")+1);if(l&&this.options.unpairedTags.indexOf(l)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${l}>`);let u=0;f&&this.options.unpairedTags.indexOf(f)!==-1?(u=o.lastIndexOf(".",o.lastIndexOf(".")-1),this.tagsNodeStack.pop()):u=o.lastIndexOf("."),o=o.substring(0,u),r=this.tagsNodeStack.pop(),n="",i=c}else if(t[i+1]==="?"){let c=Qa(t,i,!1,"?>");if(!c)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,o),!(this.options.ignoreDeclaration&&c.tagName==="?xml"||this.options.ignorePiTags)){let l=new Ne(c.tagName);l.add(this.options.textNodeName,""),c.tagName!==c.tagExp&&c.attrExpPresent&&(l[":@"]=this.buildAttributesMap(c.tagExp,o,c.tagName)),this.addChild(r,l,o,i)}i=c.closeIndex+1}else if(t.substr(i+1,3)==="!--"){let c=rr(t,"-->",i+4,"Comment is not closed.");if(this.options.commentPropName){let l=t.substring(i+4,c-2);n=this.saveTextToParentTag(n,r,o),r.add(this.options.commentPropName,[{[this.options.textNodeName]:l}])}i=c}else if(t.substr(i+1,2)==="!D"){let c=s.readDocType(t,i);this.docTypeEntities=c.entities,i=c.i}else if(t.substr(i+1,2)==="!["){let c=rr(t,"]]>",i,"CDATA is not closed.")-2,l=t.substring(i+9,c);n=this.saveTextToParentTag(n,r,o);let f=this.parseTextData(l,r.tagname,o,!0,!1,!0,!0);f==null&&(f=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:l}]):r.add(this.options.textNodeName,f),i=c+2}else{let c=Qa(t,i,this.options.removeNSPrefix),l=c.tagName,f=c.rawTagName,u=c.tagExp,h=c.attrExpPresent,p=c.closeIndex;if(this.options.transformTagName){let m=this.options.transformTagName(l);u===l&&(u=m),l=m}r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,o,!1));let d=r;d&&this.options.unpairedTags.indexOf(d.tagname)!==-1&&(r=this.tagsNodeStack.pop(),o=o.substring(0,o.lastIndexOf("."))),l!==e.tagname&&(o+=o?"."+l:l);let A=i;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,o,l)){let m="";if(u.length>0&&u.lastIndexOf("/")===u.length-1)l[l.length-1]==="/"?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),u=l):u=u.substr(0,u.length-1),i=c.closeIndex;else if(this.options.unpairedTags.indexOf(l)!==-1)i=c.closeIndex;else{let T=this.readStopNodeData(t,f,p+1);if(!T)throw new Error(`Unexpected end of ${f}`);i=T.i,m=T.tagContent}let x=new Ne(l);l!==u&&h&&(x[":@"]=this.buildAttributesMap(u,o,l)),m&&(m=this.parseTextData(m,l,o,!0,h,!0,!0)),o=o.substr(0,o.lastIndexOf(".")),x.add(this.options.textNodeName,m),this.addChild(r,x,o,A)}else{if(u.length>0&&u.lastIndexOf("/")===u.length-1){if(l[l.length-1]==="/"?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),u=l):u=u.substr(0,u.length-1),this.options.transformTagName){let x=this.options.transformTagName(l);u===l&&(u=x),l=x}let m=new Ne(l);l!==u&&h&&(m[":@"]=this.buildAttributesMap(u,o,l)),this.addChild(r,m,o,A),o=o.substr(0,o.lastIndexOf("."))}else{let m=new Ne(l);this.tagsNodeStack.push(r),l!==u&&h&&(m[":@"]=this.buildAttributesMap(u,o,l)),this.addChild(r,m,o,A),r=m}n="",i=p}}else n+=t[i];return e.child};function FM(t,e,r,n){this.options.captureMetaData||(n=void 0);let o=this.options.updateTag(e.tagname,r,e[":@"]);o===!1||(typeof o=="string"&&(e.tagname=o),t.addChild(e,n))}var PM=function(t,e,r){if(t.indexOf("&")===-1)return t;let n=this.options.processEntities;if(!n.enabled||n.allowedTags&&!n.allowedTags.includes(e)||n.tagFilter&&!n.tagFilter(e,r))return t;for(let o in this.docTypeEntities){let s=this.docTypeEntities[o],i=t.match(s.regx);if(i){if(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);let a=t.length;if(t=t.replace(s.regx,s.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-a,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(t.indexOf("&")===-1)return t;for(let o in this.lastEntities){let s=this.lastEntities[o];t=t.replace(s.regex,s.val)}if(t.indexOf("&")===-1)return t;if(this.options.htmlEntities)for(let o in this.htmlEntities){let s=this.htmlEntities[o];t=t.replace(s.regex,s.val)}return t=t.replace(this.ampEntity.regex,this.ampEntity.val),t};function NM(t,e,r,n){return t&&(n===void 0&&(n=e.child.length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function OM(t,e,r,n){return!!(e&&e.has(n)||t&&t.has(r))}function UM(t,e,r=">"){let n,o="";for(let s=e;s<t.length;s++){let i=t[s];if(n)i===n&&(n="");else if(i==='"'||i==="'")n=i;else if(i===r[0])if(r[1]){if(t[s+1]===r[1])return{data:o,index:s}}else return{data:o,index:s};else i===" "&&(i=" ");o+=i}}function rr(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o+e.length-1}function Qa(t,e,r,n=">"){let o=UM(t,e+1,n);if(!o)return;let s=o.data,i=o.index,a=s.search(/\s/),c=s,l=!0;a!==-1&&(c=s.substring(0,a),s=s.substring(a+1).trimStart());let f=c;if(r){let u=c.indexOf(":");u!==-1&&(c=c.substr(u+1),l=c!==o.data.substr(u+1))}return{tagName:c,tagExp:s,closeIndex:i,attrExpPresent:l,rawTagName:f}}function DM(t,e,r){let n=r,o=1;for(;r<t.length;r++)if(t[r]==="<")if(t[r+1]==="/"){let s=rr(t,">",r,`${e} is not closed`);if(t.substring(r+2,s).trim()===e&&(o--,o===0))return{tagContent:t.substring(n,r),i:s};r=s}else if(t[r+1]==="?")r=rr(t,"?>",r+1,"StopNode is not closed.");else if(t.substr(r+1,3)==="!--")r=rr(t,"-->",r+3,"StopNode is not closed.");else if(t.substr(r+1,2)==="![")r=rr(t,"]]>",r,"StopNode is not closed.")-2;else{let s=Qa(t,r,">");s&&((s&&s.tagName)===e&&s.tagExp[s.tagExp.length-1]!=="/"&&o++,r=s.closeIndex)}}function Za(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:Ka(t,r)}else return Qh(t)?t:""}function sp(t,e,r){let n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}var $a=Ne.getMetaDataSymbol();function ec(t,e){return ip(t,e)}function ip(t,e,r){let n,o={};for(let s=0;s<t.length;s++){let i=t[s],a=GM(i),c="";if(r===void 0?c=a:c=r+"."+a,a===e.textNodeName)n===void 0?n=i[a]:n+=""+i[a];else{if(a===void 0)continue;if(i[a]){let l=ip(i[a],e,c),f=HM(l,e);i[$a]!==void 0&&(l[$a]=i[$a]),i[":@"]?VM(l,i[":@"],c,e):Object.keys(l).length===1&&l[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?l=l[e.textNodeName]:Object.keys(l).length===0&&(e.alwaysCreateTextNode?l[e.textNodeName]="":l=""),o[a]!==void 0&&o.hasOwnProperty(a)?(Array.isArray(o[a])||(o[a]=[o[a]]),o[a].push(l)):e.isArray(a,c,f)?o[a]=[l]:o[a]=l}}}return typeof n=="string"?n.length>0&&(o[e.textNodeName]=n):n!==void 0&&(o[e.textNodeName]=n),o}function GM(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function VM(t,e,r,n){if(e){let o=Object.keys(e),s=o.length;for(let i=0;i<s;i++){let a=o[i];n.isArray(a,r+"."+a,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function HM(t,e){let{textNodeName:r}=e,n=Object.keys(t).length;return!!(n===0||n===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}var Gr=class{constructor(e){this.externalEntities={},this.options=op(e)}parse(e,r){if(typeof e!="string"&&e.toString)e=e.toString();else if(typeof e!="string")throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let s=rp(e,r);if(s!==!0)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}let n=new Nn(this.options);n.addExternalEntities(this.externalEntities);let o=n.parseXml(e);return this.options.preserveOrder||o===void 0?o:ec(o,this.options)}addEntity(e,r){if(r.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if(r==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=r}static getMetaDataSymbol(){return Ne.getMetaDataSymbol()}};function tc(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(o,s,i,a)=>Boolean(e?.arrayPaths?.some(l=>s===l)),...e?._fastXML},n=zM(t,r);return e?.uncapitalizeKeys?bs(n):n}function zM(t,e){return new Gr({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var kM="4.4.1",Qe={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:kM,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:qM,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>tc(new TextDecoder().decode(t),{...Qe.options.xml,...e?.xml}),parseTextSync:(t,e)=>tc(t,{...Qe.options.xml,...e?.xml})};function qM(t){return t.startsWith("<?xml")}async function Oe(t,e,r,n){return n._parse(t,e,r,n)}function H(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var it={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},jM=it.self||it.window||it.global||{},JM=it.window||it.self||it.global||{},WM=it.global||it.self||it.window||{},XM=it.document||{};var On=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var ap=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),KM=ap&&parseFloat(ap[1])||0;var Ms=globalThis,YM=globalThis.document||{},Es=globalThis.process||{},QM=globalThis.console,eF=globalThis.navigator||{};function cp(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return Boolean(r&&r.indexOf("Electron")>=0)}function nr(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||cp()}var rc="4.1.1";function Vr(t,e){if(!t)throw new Error(e||"Assertion failed")}function nc(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Vr(Number.isFinite(e)&&e>=0),e}function lp(t){let{logLevel:e,message:r}=t;t.logLevel=nc(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return Vr(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}var or=()=>{},Ss=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,o,s={}){let i=lp({logLevel:r,message:n,args:this._buildArgs(r,n,o),opts:s});return this._createLogFunction(e,i,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return or;let o=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return or;this._onceCache.add(o)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=nc(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function $M(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var _s=class{constructor(e,r,n="sessionStorage"){this.storage=$M(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function fp(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function up(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}var Cs;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Cs||(Cs={}));var eE=10;function hp(t){return typeof t!="string"?t:(t=t.toUpperCase(),Cs[t]||Cs.WHITE)}function pp(t,e,r){return!nr&&typeof t=="string"&&(e&&(t=`\x1B[${hp(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${hp(r)+eE}m${t}\x1B[49m`)),t}function dp(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let s of n){let i=o[s];typeof i=="function"&&(e.find(a=>s===a)||(o[s]=i.bind(t)))}}function Hr(){let t;if(nr()&&Ms.performance)t=Ms?.performance?.now?.();else if("hrtime"in Es){let e=Es?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var zr={debug:nr()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},oc={enabled:!0,level:0},pt=class extends Ss{constructor({id:e}={id:""}){super({level:0}),this.VERSION=rc,this._startTs=Hr(),this._deltaTs=Hr(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new _s(`__probe-${this.id}__`,{[this.id]:oc}),this.timeStamp(`${this.id} started`),dp(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((Hr()-this._startTs).toPrecision(10))}getDelta(){return Number((Hr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:zr.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:zr.error})}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r,...n){return this._log("log",e,r,n,{method:zr.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:zr.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:zr.debug||zr.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||or,tag:rE(r)}):or}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||or})}group(e,r,n={collapsed:!1}){let o=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:o})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||or})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;Vr(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Hr();let o=tE(this.id,r.message,r);return n.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(oc),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...oc};this._storage.setConfiguration({[this.id]:{...r,...e}})}};pt.VERSION=rc;function tE(t,e,r){if(typeof e=="string"){let n=r.time?up(fp(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=pp(e,r.color,r.background)}return e}function rE(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var sc=new pt({id:"@probe.gl/log"});var ic="4.4.1",nE=ic[0]>="0"&&ic[0]<="9"?`v${ic}`:"";function oE(){let t=new pt({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=t,globalThis.loaders.version=nE,globalThis.probe||={},globalThis.probe.loaders=t,t}var ac=oE();var mp=t=>typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer;function Un(t,e){return gp(t||{},e)}function gp(t,e,r=0){if(r>3)return e;let n={...t};for(let[o,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[o]=gp(n[o]||{},e[o],r+1):n[o]=e[o];return n}function cc(t){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t)}function lc(t){return globalThis.loaders?.modules?.[t]||null}function sE(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.1"),globalThis._loadersgl_.version}var Ap=sE();function xp(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var at={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},VF=at.self||at.window||at.global||{},HF=at.window||at.self||at.global||{},zF=at.global||at.self||at.window||{},kF=at.document||{};var dt=typeof process!="object"||String(process)!=="[object process]"||process.browser,Dn=typeof importScripts=="function",qF=typeof window<"u"&&typeof window.orientation<"u",bp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),jF=bp&&parseFloat(bp[1])||0;var fc={};function Gn(t={}){let e=t.useLocalLibraries??t.core?.useLocalLibraries,r=t.CDN??t.core?.CDN,n=t.modules;return{...e!==void 0?{useLocalLibraries:e}:{},...r!==void 0?{CDN:r}:{},...n!==void 0?{modules:n}:{}}}async function Ve(t,e=null,r={},n=null){return e&&(t=yp(t,e,r,n)),fc[t]=fc[t]||iE(t),await fc[t]}function yp(t,e,r={},n=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let o=r.modules||{};return o[n]?o[n]:dt?r.CDN?(xp(r.CDN.startsWith("http")),`${r.CDN}/${e}@${Ap}/dist/libs/${n}`):Dn?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function iE(t){if(t.endsWith("wasm"))return await cE(t);if(!dt){let{requireFromFile:r}=globalThis.loaders||{};try{let n=await r?.(t);return n||!t.includes("/dist/libs/")?n:await r?.(t.replace("/dist/libs/","/src/libs/"))}catch(n){if(t.includes("/dist/libs/"))try{return await r?.(t.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(n),null}}if(Dn)return importScripts(t);let e=await lE(t);return aE(e,t)}function aE(t,e){if(!dt){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(Dn)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function cE(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).arrayBuffer();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${t}`)}}async function lE(t){let{readFileAsText:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).text();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${t}`)}}function Mp(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?Tp(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?Tp(t,0,e):""}function Tp(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),o="";for(let s=0;s<r;s++)o+=String.fromCharCode(n.getUint8(e+s));return o}function uc(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${Mp(t)}"`)}}function Vn(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((i,a)=>i+a.length,0),o=new r(n),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}function sr(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function vt(t,e){return H(t>=0),H(e>0),t+(e-1)&~(e-1)}function hc(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let o=t.byteOffset,s=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,o,s)}return e.set(n,r),r+vt(n.byteLength,4)}function Hn(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var ir=class{constructor(e,r){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Hn(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Hn()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var wt=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,r="count"){return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof ir?o=e:o=new ir(r,n),this.stats[r]=o),o}};var fE="Queued Requests",uE="Active Requests",hE="Cancelled Requests",pE="Queued Requests Ever",dE="Active Requests Ever",mE={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Lt=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...mE,...e},this.stats=new wt({id:this.props.id}),this.stats.get(fE),this.stats.get(uE),this.stats.get(hE),this.stats.get(pE),this.stats.get(dE)}setProps(e){e.throttleRequests!==void 0&&(this.props.throttleRequests=e.throttleRequests),e.maxRequests!==void 0&&(this.props.maxRequests=e.maxRequests),e.debounceTime!==void 0&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},o=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,o),this._issueNewRequests(),o}_issueRequest(e){let{handle:r,resolve:n}=e,o=!1,s=()=>{o||(o=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var gE="",Ep={};function Sp(t){for(let e in Ep)if(t.startsWith(e)){let r=Ep[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${gE}${t}`),t}function Ft(t){if(t instanceof ArrayBuffer)return t;if(mp(t))return zn(t);let{buffer:e,byteOffset:r,byteLength:n}=t;return e instanceof ArrayBuffer&&r===0&&n===e.byteLength?e:zn(e,r,n)}function zn(t,e=0,r=t.byteLength-e){let n=new Uint8Array(t,e,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var Pt={};ye(Pt,{dirname:()=>xE,filename:()=>AE,join:()=>bE,resolve:()=>yE});function _p(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function AE(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):t}function xE(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function bE(...t){let e="/";return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp(`^${e}`),"")),n!==t.length-1&&(r=r.replace(new RegExp(`${e}$`),"")),r)),t.join(e)}function yE(...t){let e=[];for(let s=0;s<t.length;s++)e[s]=t[s];let r="",n=!1,o;for(let s=e.length-1;s>=-1&&!n;s--){let i;s>=0?i=e[s]:(o===void 0&&(o=_p()),i=o),i.length!==0&&(r=`${i}/${r}`,n=i.charCodeAt(0)===kn)}return r=TE(r,!n),n?`/${r}`:r.length>0?r:"."}var kn=47,pc=46;function TE(t,e){let r="",n=-1,o=0,s,i=!1;for(let a=0;a<=t.length;++a){if(a<t.length)s=t.charCodeAt(a);else{if(s===kn)break;s=kn}if(s===kn){if(!(n===a-1||o===1))if(n!==a-1&&o===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==pc||r.charCodeAt(r.length-2)!==pc){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==kn;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,o=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,o=0,i=!1;continue}}e&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}n=a,o=0}else s===pc&&o!==-1?++o:o=-1}return r}var dc=class{optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(e,r,n){n?this.options=Un({...n,core:dc.defaultOptions},r):this.options={...r},this.data=e,this.url=typeof e=="string"?Sp(e):"",this.loadOptions=EE(this.options.core?.loadOptions),this.fetch=ME(this.loadOptions)}setProps(e){this.options=Object.assign(this.options,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}},kr=dc;Jt(kr,"defaultOptions",{core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}});function ME(t){let e=t?.core?.fetch;if(e&&typeof e=="function")return(n,o)=>e(n,o);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}function EE(t){let e={...t};t?.core&&(e.core={...t.core});let r=typeof e.baseUri=="string"?e.baseUri:void 0,n=typeof e.baseUrl=="string"?e.baseUrl:void 0;return(r!==void 0||n!==void 0)&&(e.core||={},e.core.baseUrl===void 0&&(e.core.baseUrl=n??r),delete e.baseUri,delete e.baseUrl),e}var Nt=class{};Jt(Nt,"type","template"),Jt(Nt,"testURL",e=>!1);function Cp(t,e){let r=Qe.parseTextSync?.(t,e),n=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var SE="4.4.1",qn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:SE,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:_E,options:{wms:{throwOnError:!1}},parse:async(t,e)=>mc(new TextDecoder().decode(t),e),parseSync:(t,e)=>mc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>mc(t,e)};function _E(t){return t.startsWith("<?xml")}function mc(t,e){let r={...qn.options.wms,...e?.wms},n=Cp(t,r),o=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(o);return o}function ar(t){return Array.isArray(t)?t:t?[t]:[]}function jn(t){let e=ar(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Jn(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function Bs(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function cr(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function gc(t,e){let r=Qe.parseTextSync?.(t,e),n=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,o=CE(n);if(e?.inheritedLayerProps)for(let s of o.layers)Ip(s,null);return e?.includeRawJSON&&(o.json=n),e?.includeXMLText&&(o.xml=t),o}function CE(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:jn(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:Bs(t.Service?.LayerLimit),maxWidth:Bs(t.Service?.maxWidth),maxHeight:Bs(t.Service?.maxHeight),layers:[],requests:BE(t.Capability?.Request),exceptions:IE(t.Exception)},r=ar(t.Capability?.Layer);for(let n of r)e.layers.push(Bp(n));for(let[n,o]of Object.entries(e))o===void 0&&delete e[n];return e}function BE(t){let e={};for(let[r,n]of Object.entries(t||{})){let o=jn(n?.Format);e[r]={mimeTypes:o}}return e}function IE(t){if(ar(t?.Format).length>0)return{mimeTypes:jn(t)}}function Bp(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:jn(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(l=>typeof l=="string")&&(e.crs=r);let n=t?.EX_GeographicBoundingBox&&RE(t?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&vE(t?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let o=t?.BoundingBox&&wE(t?.BoundingBox);o&&o.length>0&&(e.boundingBoxes=o);let i=ar(t?.Dimension).map(l=>FE(l));i.length&&(e.dimensions=i),t?.opaque&&(e.opaque=cr(t?.opaque)),t?.cascaded&&(e.cascaded=cr(t?.cascaded)),t?.queryable&&(e.queryable=cr(t?.queryable));let a=ar(t?.Layer),c=[];for(let l of a)c.push(Bp(l));c.length>0&&(e.layers=c);for(let[l,f]of Object.entries(e))f===void 0&&delete e[l];return e}function RE(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:o}=t;return[[e,o],[n,r]]}function vE(t){let{minx:e,miny:r,maxx:n,maxy:o}=t;return[[e,r],[n,o]]}function wE(t){return ar(t).map(r=>LE(r))}function LE(t){let{CRS:e,SRS:r,minx:n,miny:o,maxx:s,maxy:i,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[Jn(n),Jn(o)],[Jn(s),Jn(i)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function FE(t){let{name:e,units:r,value:n}=t,o={name:e,units:r,extent:n};return t.unitSymbol&&(o.unitSymbol=t.unitSymbol),t.default&&(o.defaultValue=t.default),t.multipleValues&&(o.multipleValues=cr(t.multipleValues)),t.nearestValue&&(o.nearestValue=cr(t.nearestValue)),t.current&&(o.current=cr(t.current)),o}function Ip(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Ip(r,t)}var PE="4.4.1",qr={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:PE,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:NE,options:{wms:{}},parse:async(t,e)=>gc(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>gc(t,e?.wms)};function NE(t){return t.startsWith("<?xml")}function Ac(t,e){let n=(Qe.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>OE(s))}}function OE(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var Rp={...qr,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>Ac(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Ac(t,e)};function xc(t,e){return Qe.parseTextSync?.(t,e)}var vp={...qr,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>xc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>xc(t,e)};var wp="4.4.1";var UE=globalThis.loaders?.parseImageNode,bc=typeof Image<"u",yc=typeof ImageBitmap<"u",DE=Boolean(UE),Tc=On?!0:DE;function Lp(t){switch(t){case"auto":return yc||bc||Tc;case"imagebitmap":return yc;case"image":return bc;case"data":return Tc;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Fp(){if(yc)return"imagebitmap";if(bc)return"image";if(Tc)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Pp(t){let e=GE(t);if(!e)throw new Error("Not an image");return e}function Wn(t){switch(Pp(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function GE(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var VE=/^data:image\/svg\+xml/,HE=/\.svg((\?|#).*)?$/;function Is(t){return t&&(VE.test(t)||HE.test(t))}function Np(t,e){if(Is(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Mc(t,e)}function Mc(t,e){if(Is(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function Rs(t,e,r){let n=Np(t,r),o=self.URL||self.webkitURL,s=typeof n!="string"&&o.createObjectURL(n);try{return await zE(s||n,e)}finally{s&&o.revokeObjectURL(s)}}async function zE(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,o)=>{try{r.onload=()=>n(r),r.onerror=s=>{let i=s instanceof Error?s.message:"error";o(new Error(i))}}catch(s){o(s)}})}var Op=!0;async function Up(t,e,r){let n;Is(r)?n=await Rs(t,e,r):n=Mc(t,r);let o=e&&e.imagebitmap;return await kE(n,o)}async function kE(t,e=null){if((qE(e)||!Op)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),Op=!1}return await createImageBitmap(t)}function qE(t){if(!t)return!0;for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function Dp(t){return!XE(t,"ftyp",4)||!(t[8]&96)?null:jE(t)}function jE(t){switch(JE(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function JE(t,e,r){return String.fromCharCode(...t.slice(e,r))}function WE(t){return[...t].map(e=>e.charCodeAt(0))}function XE(t,e,r=0){let n=WE(e);for(let o=0;o<n.length;++o)if(n[o]!==t[o+r])return!1;return!0}var ct=!1,Xn=!0;function lr(t){let e=Kn(t);return YE(e)||$E(e)||QE(e)||ZE(e)||KE(e)}function KE(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Dp(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function YE(t){let e=Kn(t);return e.byteLength>=24&&e.getUint32(0,ct)===2303741511?{mimeType:"image/png",width:e.getUint32(16,ct),height:e.getUint32(20,ct)}:null}function QE(t){let e=Kn(t);return e.byteLength>=10&&e.getUint32(0,ct)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,Xn),height:e.getUint16(8,Xn)}:null}function ZE(t){let e=Kn(t);return e.byteLength>=14&&e.getUint16(0,ct)===16973&&e.getUint32(2,Xn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,Xn),height:e.getUint32(22,Xn)}:null}function $E(t){let e=Kn(t);if(!(e.byteLength>=3&&e.getUint16(0,ct)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=eS(),s=2;for(;s+9<e.byteLength;){let i=e.getUint16(s,ct);if(o.has(i))return{mimeType:"image/jpeg",height:e.getUint16(s+5,ct),width:e.getUint16(s+7,ct)};if(!n.has(i))return null;s+=2,s+=e.getUint16(s,ct)}return null}function eS(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Kn(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function Gp(t,e){let{mimeType:r}=lr(t)||{},n=globalThis.loaders?.parseImageNode;return H(n),await n(t,r)}async function Vp(t,e,r){e=e||{};let o=(e.image||{}).type||"auto",{url:s}=r||{},i=tS(o),a;switch(i){case"imagebitmap":a=await Up(t,e,s);break;case"image":a=await Rs(t,e,s);break;case"data":a=await Gp(t,e);break;default:H(!1)}return o==="data"&&(a=Wn(a)),a}function tS(t){switch(t){case"auto":case"data":return Fp();default:return Lp(t),t}}var rS=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],nS=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],oS={image:{type:"auto",decode:!0}},jr={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:wp,mimeTypes:nS,extensions:rS,parse:Vp,tests:[t=>Boolean(lr(new DataView(t)))],options:oS};var Ec={};function Sc(t){if(Ec[t]===void 0){let e=On?iS(t):sS(t);Ec[t]=e}return Ec[t]}function sS(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,n=globalThis.loaders?.parseImageNode;return Boolean(n)&&r.includes(t)}function iS(t){switch(t){case"image/avif":case"image/webp":return aS(t);default:return!0}}function aS(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var ws={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new vs(t,e)},vs=class extends kr{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,ws.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...r.wmsParameters,...r.wms?.wmsParameters},this.vendorParameters=r.wms?.vendorParameters||r.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...o}=e,s={bbox:r?[...r[0],...r[1]]:n,...o};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);let i=await qr.parse(s,this.loadOptions);return this.capabilities=i,i}async getMap(e,r){let n=this.getMapURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await jr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Rp.parse(s,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),new TextDecoder().decode(s)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await vp.parse(s,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await jr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}getCapabilitiesURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:n,bbox:o}=e;e.bbox=n?[...n[0],...n[1]]:o;let s={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",s,r)}describeLayerURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,r)}getLegendGraphicURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,r)}_parseWMSUrl(e){let[r,n]=e.split("?"),o=n.split("&"),s={};for(let i of o){let[a,c]=i.split("=");s[a]=c}return{url:r,parameters:s}}_getWMSUrl(e,r,n){let o=this.url,s=!0,i={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(i))(!a.includes(c)||l)&&(o+=s?"?":"&",s=!1,o+=this._getURLParameter(c,l,r));return encodeURI(o)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let o=this._flipBoundingBox(r,n);o&&(r=o);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let n=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),o=e;return n?[o[1],o[0],o[3],o[2]]:o}async _fetchArrayBuffer(e){let r=await this.fetch(e),n=await r.arrayBuffer();return this._checkResponse(r,n),n}_checkResponse(e,r){let n=e.headers["content-type"];if(!e.ok||qn.mimeTypes.includes(n)){let o=Un(this.loadOptions,{wms:{throwOnError:!0}}),s=qn.parseSync?.(r,o);throw new Error(s)}}_parseError(e){let r=qn.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};function Ls(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Ze=Math.PI,qp=Ze/4,Hp=Ze/180,zp=180/Ze,Fs=512;function mt(t){let[e,r]=t;Ls(Number.isFinite(e)),Ls(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Hp,o=r*Hp,s=Fs*(n+Ze)/(2*Ze),i=Fs*(Ze+Math.log(Math.tan(qp+o*.5)))/(2*Ze);return[s,i]}function gt(t){let[e,r]=t,n=e/Fs*(2*Ze)-Ze,o=2*(Math.atan(Math.exp(r/Fs*(2*Ze)-Ze))-qp);return[n*zp,o*zp]}var IO=Math.PI/180;var Jp=6378137*Math.PI;function _c(t){let e=mt(t);return e[0]=(e[0]/256-1)*Jp,e[1]=(e[1]/256-1)*Jp,e}var ES={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},Jr=class extends fr.CompositeLayer{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:n}){let{viewport:o}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(o,"image source changed"),0)):(0,fr._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(o,"viewport changed")):this.debounce(()=>this.loadImage(o,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new Wp.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?fr.COORDINATE_SYSTEM.LNGLAT:fr.COORDINATE_SYSTEM.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Nt)return e.data;if(typeof e.data=="string")return(0,Xp.createDataSource)(e.data,[ws],{core:{type:e.serviceType,loadOptions:e.loadOptions}});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:n,serviceType:o}=this.props;if(o==="wms"&&n.length===0)return;let s=e.getBounds(),{width:i,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let f={width:i,height:a,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let u=_c([s[0],s[1]]),h=_c([s[2],s[3]]);f.boundingBox=[u,h]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let u=await this.state.imageSource.getImage(f);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:u,bounds:s,lastRequestParameters:f,lastRequestId:c}))}catch(u){this.raiseError(u,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,u)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}};Jr.layerName="WMSLayer";Jr.defaultProps=ES;var Kp=U(Xe(),1),SS={getHeight:{type:"accessor",value:0},greatCircle:!0},Yn=class extends Kp.ArcLayer{};Yn.layerName="GreatCircleLayer";Yn.defaultProps=SS;var Yp=Yn;var Ps=U(Cc(),1),_S=3,CS=30,BS=2*CS+1,Zp=180/Math.PI;function ed(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function $p(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function td(t){return[$p(t[0]),$p(t[1])]}function rd(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function nd([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*Zp,n*Zp]}function od(t){let e=Ps.default.fromString(t,!0,10).toString(2);for(;e.length<_S+BS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=Ps.default.fromString(n,!0,2).toString(10),a=Ps.default.fromString(o,!0,2).toString(4);for(;a.length<s;)a="0"+a;return`${i}/${a}`}function IS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function sd(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=[0,0],i;for(let a=o-1;a>=0;a--){i=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,i-1);IS(u,s,l,f),s[0]+=u*l,s[1]+=u*f}if(r%2===1){let a=s[0];s[0]=s[1],s[1]=a}return{face:r,ij:s,level:i}}var id=U(Cc(),1);function RS(t){let e=t.padEnd(16,"0");return id.default.fromString(e,16)}var vS=100;function wS({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(vS*Math.pow(2,-r))),s=new Float64Array(4*o*2+2),i=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),f=n[c+1],u=(f[0]-l[0])/o,h=(f[1]-l[1])/o;for(let p=0;p<o;p++){l[0]+=u,l[1]+=h;let d=ed(e,r,l),A=td(d),m=rd(t,A),x=nd(m);Math.abs(x[1])>89.999&&(x[0]=a);let T=x[0]-a;x[0]+=T>180?-360:T<-180?360:0,s[i++]=x[0],s[i++]=x[1],a=x[0]}}return s[i++]=s[0],s[i++]=s[1],s}function LS(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=RS(t)}return od(t.toString())}function ad(t){let e=LS(t),r=sd(e);return wS(r)}var FS={getS2Token:{type:"accessor",value:t=>t.token}},Zn=class extends De{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>ad(r(n,o))}}};Zn.layerName="S2Layer";Zn.defaultProps=FS;var cd=Zn;var Bc=512;function PS(t,e){let r=0,n=0,o=1<<t.length,s=o/Bc;for(let i=0;i<t.length;i++){o>>=1;let a=parseInt(t[i]);a%2&&(r|=o),a>1&&(n|=o)}return[[r/s,Bc-n/s],[(r+e)/s,Bc-(n+e)/s]]}function ld(t,e=1){let[r,n]=PS(t,e),[o,s]=gt(r),[i,a]=gt(n);return[i,s,i,a,o,a,o,s,i,s]}var NS={getQuadkey:{type:"accessor",value:t=>t.quadkey}},$n=class extends De{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,o=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,i)=>ld(n(s,i),o),updateTriggers:{getPolygon:o}}}};$n.layerName="QuadkeyLayer";$n.defaultProps=NS;var fd=$n;var zs=U(Ke(),1),Bd=U(Xe(),1);var ur=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:n,onError:o}){let{index:s,id:i,bbox:a,userData:c,zoom:l}=this,f=this._loaderId;this._abortController=new AbortController;let{signal:u}=this._abortController,h=await r.scheduleRequest(this,A=>A.isSelected?1:-1);if(!h){this._isCancelled=!0;return}if(this._isCancelled){h.done();return}let p=null,d;try{p=await e({index:s,id:i,bbox:a,userData:c,zoom:l,signal:u})}catch(A){d=A||!0}finally{h.done()}if(f===this._loaderId){if(this._loader=void 0,this.content=p,this._isCancelled&&!p){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,d?o(d,this):n(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var ro=U(Ke(),1);var ie={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var ud=new b,OS=new b,Ot=class{constructor(e=[0,0,0],r=[0,0,0],n){n=n||ud.copy(e).add(r).scale(.5),this.center=new b(n),this.halfDiagonal=new b(r).subtract(this.center),this.minimum=new b(e),this.maximum=new b(r)}clone(){return new Ot(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,n=OS.from(e.normal),o=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-o>0?ie.INSIDE:s+o<0?ie.OUTSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=ud.from(e).subtract(this.center),{halfDiagonal:n}=this,o=0,s;return s=Math.abs(r.x)-n.x,s>0&&(o+=s*s),s=Math.abs(r.y)-n.y,s>0&&(o+=s*s),s=Math.abs(r.z)-n.z,s>0&&(o+=s*s),o}};var eo=new b,hd=new b,He=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new b,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=eo.from(r),this.center=new b().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new He(this.center,this.radius)}union(e){let r=this.center,n=this.radius,o=e.center,s=e.radius,i=eo.copy(o).subtract(r),a=i.magnitude();if(n>=a+s)return this.clone();if(s>=a+n)return e.clone();let c=(n+a+s)*.5;return hd.copy(i).scale((-n+c)/a).add(r),this.center.copy(hd),this.radius=c,this}expand(e){let n=eo.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=In.getScaling(eo,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let n=eo.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,s=e.normal.dot(r)+e.distance;return s<-n?ie.OUTSIDE:s<n?ie.INTERSECTING:ie.INSIDE}};var US=new b,DS=new b,Ns=new b,Os=new b,Us=new b,GS=new b,VS=new b,At={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},$e=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new b().from(e),this.halfAxes=new k(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new b(e).len(),new b(r).len(),new b(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),o=new b(e).normalize(),s=new b(r).normalize(),i=new b(n).normalize();return new st().fromMatrix3(new k([...o,...s,...i]))}fromCenterHalfSizeQuaternion(e,r,n){let o=new st(n),s=new k().fromQuaternion(o);return s[0]=s[0]*r[0],s[1]=s[1]*r[0],s[2]=s[2]*r[0],s[3]=s[3]*r[1],s[4]=s[4]*r[1],s[5]=s[5]*r[1],s[6]=s[6]*r[2],s[7]=s[7]*r[2],s[8]=s[8]*r[2],this.center=new b().from(e),this.halfAxes=s,this}clone(){return new $e(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new He){let r=this.halfAxes,n=r.getColumn(0,Ns),o=r.getColumn(1,Os),s=r.getColumn(2,Us),i=US.copy(n).add(o).add(s);return e.center.copy(this.center),e.radius=i.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,o=this.halfAxes,s=n.x,i=n.y,a=n.z,c=Math.abs(s*o[At.COLUMN0ROW0]+i*o[At.COLUMN0ROW1]+a*o[At.COLUMN0ROW2])+Math.abs(s*o[At.COLUMN1ROW0]+i*o[At.COLUMN1ROW1]+a*o[At.COLUMN1ROW2])+Math.abs(s*o[At.COLUMN2ROW0]+i*o[At.COLUMN2ROW1]+a*o[At.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?ie.OUTSIDE:l>=c?ie.INSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=DS.from(e).subtract(this.center),n=this.halfAxes,o=n.getColumn(0,Ns),s=n.getColumn(1,Os),i=n.getColumn(2,Us),a=o.magnitude(),c=s.magnitude(),l=i.magnitude();o.normalize(),s.normalize(),i.normalize();let f=0,u;return u=Math.abs(r.dot(o))-a,u>0&&(f+=u*u),u=Math.abs(r.dot(s))-c,u>0&&(f+=u*u),u=Math.abs(r.dot(i))-l,u>0&&(f+=u*u),f}computePlaneDistances(e,r,n=[-0,-0]){let o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=this.center,a=this.halfAxes,c=a.getColumn(0,Ns),l=a.getColumn(1,Os),f=a.getColumn(2,Us),u=GS.copy(c).add(l).add(f).add(i),h=VS.copy(u).subtract(e),p=r.dot(h);return o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),n[0]=o,n[1]=s,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,Ns);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Os);n.transformAsPoint(e);let o=this.halfAxes.getColumn(2,Us);return o.transformAsPoint(e),this.halfAxes=new k([...r,...n,...o]),this}getTransform(){throw new Error("not implemented")}};var pd=new b,dd=new b,pe=class{constructor(e=[0,0,1],r=0){this.normal=new b,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return he(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=pd.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,o){return this.normal.set(e,r,n),he(_e(this.normal.len(),1)),this.distance=o,this}clone(){return new pe(this.normal,this.distance)}equals(e){return _e(this.distance,e.distance)&&_e(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=dd.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,r)}projectPointOntoPlane(e,r=[0,0,0]){let n=pd.from(e),o=this.getPointDistance(n),s=dd.copy(this.normal).scale(o);return n.subtract(s).to(r)}};var md=[new b([1,0,0]),new b([0,1,0]),new b([0,0,1])],gd=new b,HS=new b,ce=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*md.length;let r=e.center,n=e.radius,o=0;for(let s of md){let i=this.planes[o],a=this.planes[o+1];i||(i=this.planes[o]=new pe),a||(a=this.planes[o+1]=new pe);let c=gd.copy(s).scale(-n).add(r);i.fromPointNormal(c,s);let l=gd.copy(s).scale(n).add(r),f=HS.copy(s).negate();a.fromPointNormal(l,f),o+=2}return this}computeVisibility(e){let r=ie.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case ie.OUTSIDE:return ie.OUTSIDE;case ie.INTERSECTING:r=ie.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(he(Number.isFinite(r),"parentPlaneMask is required."),r===ce.MASK_OUTSIDE||r===ce.MASK_INSIDE)return r;let n=ce.MASK_INSIDE,o=this.planes;for(let s=0;s<this.planes.length;++s){let i=s<31?1<<s:0;if(s<31&&!(r&i))continue;let a=o[s],c=e.intersectPlane(a);if(c===ie.OUTSIDE)return ce.MASK_OUTSIDE;c===ie.INTERSECTING&&(n|=i)}return n}};ce.MASK_OUTSIDE=4294967295;ce.MASK_INSIDE=0;ce.MASK_INDETERMINATE=2147483647;var qU=new b,jU=new b,JU=new b,WU=new b,XU=new b;var eD=new b,tD=new b,rD=new b,nD=new b,oD=new b,sD=new b,iD=new b,aD=new b,cD=new b,lD=new b,fD=new b,uD=new b;var lt=new k,kS=new k,qS=new k,Ds=new k,Ad=new k;function vc(t,e={}){let r=Ge.EPSILON20,n=10,o=0,s=0,i=kS,a=qS;i.identity(),a.copy(t);let c=r*jS(a);for(;s<n&&JS(a)>c;)WS(a,Ds),Ad.copy(Ds).transpose(),a.multiplyRight(Ds),a.multiplyLeft(Ad),i.multiplyRight(Ds),++o>2&&(++s,o=0);return e.unitary=i.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function jS(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Ic=[1,0,0],Rc=[2,2,1];function JS(t){let e=0;for(let r=0;r<3;++r){let n=t[lt.getElementIndex(Rc[r],Ic[r])];e+=2*n*n}return Math.sqrt(e)}function WS(t,e){let r=Ge.EPSILON15,n=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(t[lt.getElementIndex(Rc[l],Ic[l])]);f>n&&(o=l,n=f)}let s=Ic[o],i=Rc[o],a=1,c=0;if(Math.abs(t[lt.getElementIndex(i,s)])>r){let l=t[lt.getElementIndex(i,i)],f=t[lt.getElementIndex(s,s)],u=t[lt.getElementIndex(i,s)],h=(l-f)/2/u,p;h<0?p=-1/(-h+Math.sqrt(1+h*h)):p=1/(h+Math.sqrt(1+h*h)),a=1/Math.sqrt(1+p*p),c=p*a}return k.IDENTITY.to(e),e[lt.getElementIndex(s,s)]=e[lt.getElementIndex(i,i)]=a,e[lt.getElementIndex(i,s)]=c,e[lt.getElementIndex(s,i)]=-c,e}var Ut=new b,XS=new b,KS=new b,YS=new b,QS=new b,ZS=new k,$S={diagonal:new k,unitary:new k};function to(t,e=new $e){if(!t||t.length===0)return e.halfAxes=new k([0,0,0,0,0,0,0,0,0]),e.center=new b,e;let r=t.length,n=new b(0,0,0);for(let y of t)n.add(y);let o=1/r;n.multiplyByScalar(o);let s=0,i=0,a=0,c=0,l=0,f=0;for(let y of t){let g=Ut.copy(y).subtract(n);s+=g.x*g.x,i+=g.x*g.y,a+=g.x*g.z,c+=g.y*g.y,l+=g.y*g.z,f+=g.z*g.z}s*=o,i*=o,a*=o,c*=o,l*=o,f*=o;let u=ZS;u[0]=s,u[1]=i,u[2]=a,u[3]=i,u[4]=c,u[5]=l,u[6]=a,u[7]=l,u[8]=f;let{unitary:h}=vc(u,$S),p=e.halfAxes.copy(h),d=p.getColumn(0,KS),A=p.getColumn(1,YS),m=p.getColumn(2,QS),x=-Number.MAX_VALUE,T=-Number.MAX_VALUE,M=-Number.MAX_VALUE,E=Number.MAX_VALUE,_=Number.MAX_VALUE,C=Number.MAX_VALUE;for(let y of t)Ut.copy(y),x=Math.max(Ut.dot(d),x),T=Math.max(Ut.dot(A),T),M=Math.max(Ut.dot(m),M),E=Math.min(Ut.dot(d),E),_=Math.min(Ut.dot(A),_),C=Math.min(Ut.dot(m),C);d=d.multiplyByScalar(.5*(E+x)),A=A.multiplyByScalar(.5*(_+T)),m=m.multiplyByScalar(.5*(C+M)),e.center.copy(d).add(A).add(m);let v=XS.set(x-E,T-_,M-C).multiplyByScalar(.5),S=new k([v[0],0,0,0,v[1],0,0,0,v[2]]);return e.halfAxes.multiplyRight(S),e}var Wr=512,xd=3,bd=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],yd=bd.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),e_=yd.concat([[.25,.5],[.75,.5]]),Dt=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}get children(){if(!this._children){let e=this.x*2,r=this.y*2,n=this.z+1;this._children=[new Dt(e,r,n),new Dt(e,r+1,n),new Dt(e+1,r,n),new Dt(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:o,minZ:s,maxZ:i,bounds:a,offset:c,project:l}=e,f=this.getBoundingVolume(o,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(f)<0)return!1;if(!this.childVisible){let{z:h}=this;if(h<i&&h>=s){let p=f.distanceTo(r.cameraPosition)*r.scale/r.height;h+=Math.floor(Math.log2(p))}if(h>=i)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let h of this.children)h.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,n,o]){let s=Math.pow(2,this.z),i=Wr/s;return this.x*i<n&&this.y*i<o&&(this.x+1)*i>e&&(this.y+1)*i>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?e_:this.z<2?yd:bd,l=[];for(let f of c){let u=Gs(this.x+f[0],this.y+f[1],this.z);u[2]=e[0],l.push(n(u)),e[0]!==e[1]&&(u[2]=e[1],l.push(n(u)))}return to(l)}let o=Math.pow(2,this.z),s=Wr/o,i=this.x*s+r*Wr,a=Wr-(this.y+1)*s;return new Ot([i,a,e[0]],[i+s,a+s,e[1]])}};function Td(t,e,r,n){let o=t instanceof ro._GlobeViewport&&t.resolution?t.projectPosition:null,s=Object.values(t.getFrustumPlanes()).map(({normal:p,distance:d})=>new pe(p.clone().negate(),d)),i=new ce(s),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,f=t instanceof ro.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[p,d,A,m]=n,x=mt([p,m]),T=mt([A,d]);n=[x[0],Wr-x[1],T[0],Wr-T[1]]}let u=new Dt(0,0,0),h={viewport:t,project:o,cullingVolume:i,elevationBounds:[c,l],minZ:f,maxZ:e,bounds:n,offset:0};if(u.update(h),t instanceof ro.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-xd););for(h.offset=1;u.update(h)&&!(++h.offset>xd););}return u.getSelected()}var xt=512,t_=[-1/0,-1/0,1/0,1/0],Gt={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}};function Vs(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(o=>o[0])),Math.min(...r.map(o=>o[1])),Math.max(...r.map(o=>o[0])),Math.max(...r.map(o=>o[1]))]}function r_(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function ft(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let s=r_(n)%t.length;t=t[s]}let o=t;for(let s of Object.keys(r)){let i=new RegExp(`{${s}}`,"g");o=o.replace(i,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),o}function n_(t,e,r){let n;if(e&&e.length===2){let[o,s]=e,i=t.getBounds({z:o}),a=t.getBounds({z:s});n=[Math.min(i[0],a[0]),Math.min(i[1],a[1]),Math.max(i[2],a[2]),Math.max(i[3],a[3])]}else n=t.getBounds();return t.isGeospatial?[Math.max(n[0],r[0]),Math.max(n[1],r[1]),Math.min(n[2],r[2]),Math.min(n[3],r[3])]:[Math.max(Math.min(n[0],r[2]),r[0]),Math.max(Math.min(n[1],r[3]),r[1]),Math.min(Math.max(n[2],r[0]),r[2]),Math.min(Math.max(n[3],r[1]),r[3])]}function Ed({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(o=>wc(o,e||0,r))}function wc(t,e,r){if(!Array.isArray(e)){let s=r.x-t.x,i=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},f=t.unproject([s,i],l),u=t.unproject([s+a,i],l),h=t.unproject([s,i+c],l),p=t.unproject([s+a,i+c],l);return[Math.min(f[0],u[0],h[0],p[0]),Math.min(f[1],u[1],h[1],p[1]),Math.max(f[0],u[0],h[0],p[0]),Math.max(f[1],u[1],h[1],p[1])]}let n=wc(t,e[0],r),o=wc(t,e[1],r);return[Math.min(n[0],o[0]),Math.min(n[1],o[1]),Math.max(n[2],o[2]),Math.max(n[3],o[3])]}function o_(t,e,r){return r?Vs(t,r).map(o=>o*e/xt):t.map(n=>n*e/xt)}function Lc(t,e){return Math.pow(2,t)*xt/e}function Gs(t,e,r){let n=Lc(r,xt),o=t/n*360-180,s=Math.PI-2*Math.PI*e/n,i=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[o,i]}function Md(t,e,r,n){let o=Lc(r,n);return[t/o*xt,e/o*xt]}function Fc(t,e,r,n,o=xt){if(t.isGeospatial){let[l,f]=Gs(e,r,n),[u,h]=Gs(e+1,r+1,n);return{west:l,north:f,east:u,south:h}}let[s,i]=Md(e,r,n,o),[a,c]=Md(e+1,r+1,n,o);return{left:s,top:i,right:a,bottom:c}}function s_(t,e,r,n,o){let s=n_(t,null,n),i=Lc(e,r),[a,c,l,f]=o_(s,i,o),u=[];for(let h=Math.floor(a);h<l;h++)for(let p=Math.floor(c);p<f;p++)u.push({x:h,y:p,z:e});return u}function Pc({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:o,tileSize:s=xt,modelMatrix:i,modelMatrixInverse:a,zoomOffset:c=0,visibleMinZoom:l,visibleMaxZoom:f}){let u=t.isGeospatial?Math.round(t.zoom+Math.log2(xt/s)+c):Math.ceil(t.zoom+c);if(typeof r=="number"&&Number.isFinite(r)&&u<r){if(!o)return[];u=r}if(typeof e=="number"&&Number.isFinite(e)&&u>e&&(u=e),l!=null&&t.zoom<l)return[];if(f!=null&&t.zoom>f)return[];let h=o;return i&&a&&o&&!t.isGeospatial&&(h=Vs(o,i)),t.isGeospatial?Td(t,u,n,o):s_(t,u,s,h||t_,a)}function Nc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function Oc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Sd(t){let e={},r;return n=>{for(let o in n)if(!i_(n[o],e[o])){r=t(n),e=n;break}return r}}function i_(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}return!1}var _d=1,Hs=2,a_="never",c_="no-overlap",no="best-available",l_=5,f_={[no]:h_,[c_]:p_,[a_]:()=>{}},u_={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},hr=class{constructor(e){this._getCullBounds=Sd(Ed),this.opts={...u_,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new Lt({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new N,this._modelMatrixInverse=new N}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:n}={zRange:null,modelMatrix:null}){let o=n?new N(n):new N,s=!o.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!_e(this._zRange,r)||s){s&&(this._modelMatrixInverse=o.clone().invert(),this._modelMatrix=o),this._viewport=e,this._zRange=r;let a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map(c=>this._getTile(c,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(a=>this._getTile(a.index,!0)));let i=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),i&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,n){if(!e.isVisible)return!1;if(r&&this._viewport){let o=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,a,c,l]of o){let f;if("west"in s)f=s.west<c&&s.east>i&&s.south<l&&s.north>a;else{if(n&&!N.IDENTITY.equals(n)){let[p,d,A,m]=Vs([s.left,s.top,s.right,s.bottom],n);s={left:p,top:d,right:A,bottom:m}}let u=Math.min(s.top,s.bottom),h=Math.max(s.top,s.bottom);f=s.left<c&&s.right>i&&u<l&&h>a}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:o,modelMatrix:s,modelMatrixInverse:i}){let{tileSize:a,extent:c,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u}=this.opts;return Pc({viewport:e,maxZoom:r,minZoom:n,zRange:o,tileSize:a,extent:c,modelMatrix:s,modelMatrixInverse:i,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Fc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),o=e.z-1;return{x:r,y:n,z:o}}updateTileStates(){let e=this.opts.refinementStrategy||no,r=new Array(this._cache.size),n=0;for(let o of this._cache.values())r[n++]=o.isVisible,o.isSelected=!1,o.isVisible=!1;for(let o of this._selectedTiles)o.isSelected=!0,o.isVisible=!0;(typeof e=="function"?e:f_[e])(Array.from(this._cache.values())),n=0;for(let o of this._cache.values())if(r[n++]!==o.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let o of this._cache.values())o.isLoading&&(n++,!o.isSelected&&!o.isVisible&&r.push(o));for(;e>0&&n>e&&r.length>0;)r.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let n=this._getNearestAncestor(r);r.parent=n,n?.children&&n.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,n=r.maxCacheSize??(r.maxCacheByteSize!==null?1/0:l_*this.selectedTiles.length),o=r.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>o){for(let[i,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?a.byteLength:0,e.delete(i),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=o)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((i,a)=>i.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),o=this._cache.get(n),s=!1;return!o&&r?(o=new ur(e),Object.assign(o,this.getTileMetadata(o.index)),Object.assign(o,{id:n,zoom:this.getTileZoom(o.index)}),s=!0,this._cache.set(n,o),this._dirty=!0):o&&o.needsReload&&(s=!0),o&&s&&o.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let o=this._getTile(n);if(o)return o}return null}};function h_(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Cd(e)&&Uc(e);for(let e of t)e.isVisible=Boolean(e.state&Hs)}function p_(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Cd(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&Hs),r.children&&(r.isVisible||r.state&_d))for(let n of r.children)n.state=_d;else r.isSelected&&Uc(r)}function Cd(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Hs,!0;e=e.parent}return!1}function Uc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Hs:Uc(e)}var d_={TilesetClass:hr,data:{type:"data",value:[]},dataComparator:Gt.equal,renderSubLayers:{type:"function",value:t=>new Bd.GeoJsonLayer(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:no,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},oo=class extends zs.CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&(!e.content||!e.layers||e.layers.every(r=>r.isLoaded))))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,n=e.propsOrDataChanged||e.updateTriggersChanged,o=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),o?r.reloadAll():r.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:o,extent:s,maxZoom:i,minZoom:a,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:i,minZoom:a,tileSize:e,refinementStrategy:o,extent:s,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:n}=this.props,o=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:s}=e,i=this.state.isLoaded!==s,a=this.state.frameNumber!==o;s&&(i||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:o}),this.state.isLoaded=s}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:n,fetch:o}=this.props,{signal:s}=e;return e.url=typeof r=="string"||Array.isArray(r)?ft(r,e):null,n?n(e):o&&e.url?o(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,n=r.props.tile,o=e.info;return o.picked&&(o.tile=n),o.sourceTile=n,o.sourceTileSubLayer=r,o}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:r,minZoom:n,extent:o}=this.props,s=this.context.viewport.zoom;if(e!=null&&s<e||r!=null&&s>r||n!=null&&!o&&s<n){for(let a of this.state.tileset.tiles)a.layers=null;return[]}return this.state.tileset.tiles.map(a=>{let c=this.getSubLayerPropsByTile(a);if(!(!a.isLoaded&&!a.content))if(a.layers)c&&a.layers[0]&&Object.keys(c).some(l=>a.layers[0].props[l]!==c[l])&&(a.layers=a.layers.map(l=>l.clone(c)));else{let l=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:a.id,updateTriggers:this.props.updateTriggers}),data:a.content,_offset:0,tile:a});a.layers=(0,zs._flatten)(l,Boolean).map(f=>f.clone({tile:a,...c}))}return a.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props,{modelMatrix:o}=this.props;return this.state.tileset.isTileVisible(n,r,o?new N(o):null)}};oo.defaultProps=d_;oo.layerName="TileLayer";var pr=oo;var vd=U(Xe(),1);var Id=`layout(std140) uniform tripsUniforms {
|
|
7
|
+
"use strict";var __exports__=(()=>{var N1=Object.create;var bn=Object.defineProperty;var O1=Object.getOwnPropertyDescriptor;var U1=Object.getOwnPropertyNames;var D1=Object.getPrototypeOf,G1=Object.prototype.hasOwnProperty;var V1=(t,e,r)=>e in t?bn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Ff=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var We=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),be=(t,e)=>{for(var r in e)bn(t,r,{get:e[r],enumerable:!0})},Ho=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of U1(e))!G1.call(t,o)&&o!==r&&bn(t,o,{get:()=>e[o],enumerable:!(n=O1(e,o))||n.enumerable});return t},Et=(t,e,r)=>(Ho(t,e,"default"),r&&Ho(r,e,"default")),U=(t,e,r)=>(r=t!=null?N1(D1(t)):{},Ho(e||!t||!t.__esModule?bn(r,"default",{value:t,enumerable:!0}):r,t)),H1=t=>Ho(bn({},"__esModule",{value:!0}),t);var Jt=(t,e,r)=>(V1(t,typeof e!="symbol"?e+"":e,r),r);var Ke=We((IR,Pf)=>{Pf.exports=globalThis.deck});var Xe=We((RR,Of)=>{Of.exports=globalThis.deck});var is=We((YR,th)=>{th.exports=globalThis.h3||{}});var er=We((FL,tp)=>{tp.exports=globalThis.loaders});var Lc=We((sd,to)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Ff=="function"&&typeof to=="object"&&to&&to.exports?to.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(sd,function(){"use strict";function t(T,A,B){this.low=T|0,this.high=A|0,this.unsigned=!!B}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(T){return(T&&T.__isLong__)===!0}t.isLong=e;var r={},n={};function o(T,A){var B,L,F;return A?(T>>>=0,(F=0<=T&&T<256)&&(L=n[T],L)?L:(B=i(T,(T|0)<0?-1:0,!0),F&&(n[T]=B),B)):(T|=0,(F=-128<=T&&T<128)&&(L=r[T],L)?L:(B=i(T,T<0?-1:0,!1),F&&(r[T]=B),B))}t.fromInt=o;function s(T,A){if(isNaN(T)||!isFinite(T))return A?y:m;if(A){if(T<0)return y;if(T>=p)return _}else{if(T<=-d)return v;if(T+1>=d)return C}return T<0?s(-T,A).neg():i(T%h|0,T/h|0,A)}t.fromNumber=s;function i(T,A,B){return new t(T,A,B)}t.fromBits=i;var a=Math.pow;function c(T,A,B){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return m;if(typeof A=="number"?(B=A,A=!1):A=!!A,B=B||10,B<2||36<B)throw RangeError("radix");var L;if((L=T.indexOf("-"))>0)throw Error("interior hyphen");if(L===0)return c(T.substring(1),A,B).neg();for(var F=s(a(B,8)),w=m,D=0;D<T.length;D+=8){var W=Math.min(8,T.length-D),z=parseInt(T.substring(D,D+W),B);if(W<8){var re=s(a(B,W));w=w.mul(re).add(s(z))}else w=w.mul(F),w=w.add(s(z))}return w.unsigned=A,w}t.fromString=c;function l(T){return T instanceof t?T:typeof T=="number"?s(T):typeof T=="string"?c(T):i(T.low,T.high,T.unsigned)}t.fromValue=l;var f=1<<16,u=1<<24,h=f*f,p=h*h,d=p/2,g=o(u),m=o(0);t.ZERO=m;var y=o(0,!0);t.UZERO=y;var b=o(1);t.ONE=b;var M=o(1,!0);t.UONE=M;var S=o(-1);t.NEG_ONE=S;var C=i(-1,2147483647,!1);t.MAX_VALUE=C;var _=i(-1,-1,!0);t.MAX_UNSIGNED_VALUE=_;var v=i(0,-2147483648,!1);t.MIN_VALUE=v;var E=t.prototype;return E.toInt=function(){return this.unsigned?this.low>>>0:this.low},E.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},E.toString=function(A){if(A=A||10,A<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(v)){var B=s(A),L=this.div(B),F=L.mul(B).sub(this);return L.toString(A)+F.toInt().toString(A)}else return"-"+this.neg().toString(A);for(var w=s(a(A,6),this.unsigned),D=this,W="";;){var z=D.div(w),re=D.sub(z.mul(w)).toInt()>>>0,Y=re.toString(A);if(D=z,D.isZero())return Y+W;for(;Y.length<6;)Y="0"+Y;W=""+Y+W}},E.getHighBits=function(){return this.high},E.getHighBitsUnsigned=function(){return this.high>>>0},E.getLowBits=function(){return this.low},E.getLowBitsUnsigned=function(){return this.low>>>0},E.getNumBitsAbs=function(){if(this.isNegative())return this.eq(v)?64:this.neg().getNumBitsAbs();for(var A=this.high!=0?this.high:this.low,B=31;B>0&&!(A&1<<B);B--);return this.high!=0?B+33:B+1},E.isZero=function(){return this.high===0&&this.low===0},E.isNegative=function(){return!this.unsigned&&this.high<0},E.isPositive=function(){return this.unsigned||this.high>=0},E.isOdd=function(){return(this.low&1)===1},E.isEven=function(){return(this.low&1)===0},E.equals=function(A){return e(A)||(A=l(A)),this.unsigned!==A.unsigned&&this.high>>>31===1&&A.high>>>31===1?!1:this.high===A.high&&this.low===A.low},E.eq=E.equals,E.notEquals=function(A){return!this.eq(A)},E.neq=E.notEquals,E.lessThan=function(A){return this.comp(A)<0},E.lt=E.lessThan,E.lessThanOrEqual=function(A){return this.comp(A)<=0},E.lte=E.lessThanOrEqual,E.greaterThan=function(A){return this.comp(A)>0},E.gt=E.greaterThan,E.greaterThanOrEqual=function(A){return this.comp(A)>=0},E.gte=E.greaterThanOrEqual,E.compare=function(A){if(e(A)||(A=l(A)),this.eq(A))return 0;var B=this.isNegative(),L=A.isNegative();return B&&!L?-1:!B&&L?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1},E.comp=E.compare,E.negate=function(){return!this.unsigned&&this.eq(v)?v:this.not().add(b)},E.neg=E.negate,E.add=function(A){e(A)||(A=l(A));var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,D=A.high>>>16,W=A.high&65535,z=A.low>>>16,re=A.low&65535,Y=0,X=0,ee=0,Ie=0;return Ie+=w+re,ee+=Ie>>>16,Ie&=65535,ee+=F+z,X+=ee>>>16,ee&=65535,X+=L+W,Y+=X>>>16,X&=65535,Y+=B+D,Y&=65535,i(ee<<16|Ie,Y<<16|X,this.unsigned)},E.subtract=function(A){return e(A)||(A=l(A)),this.add(A.neg())},E.sub=E.subtract,E.multiply=function(A){if(this.isZero()||(e(A)||(A=l(A)),A.isZero()))return m;if(this.eq(v))return A.isOdd()?v:m;if(A.eq(v))return this.isOdd()?v:m;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(g)&&A.lt(g))return s(this.toNumber()*A.toNumber(),this.unsigned);var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,D=A.high>>>16,W=A.high&65535,z=A.low>>>16,re=A.low&65535,Y=0,X=0,ee=0,Ie=0;return Ie+=w*re,ee+=Ie>>>16,Ie&=65535,ee+=F*re,X+=ee>>>16,ee&=65535,ee+=w*z,X+=ee>>>16,ee&=65535,X+=L*re,Y+=X>>>16,X&=65535,X+=F*z,Y+=X>>>16,X&=65535,X+=w*W,Y+=X>>>16,X&=65535,Y+=B*re+L*z+F*W+w*D,Y&=65535,i(ee<<16|Ie,Y<<16|X,this.unsigned)},E.mul=E.multiply,E.divide=function(A){if(e(A)||(A=l(A)),A.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?y:m;var B,L,F;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return y;if(A.gt(this.shru(1)))return M;F=y}else{if(this.eq(v)){if(A.eq(b)||A.eq(S))return v;if(A.eq(v))return b;var w=this.shr(1);return B=w.div(A).shl(1),B.eq(m)?A.isNegative()?b:S:(L=this.sub(A.mul(B)),F=B.add(L.div(A)),F)}else if(A.eq(v))return this.unsigned?y:m;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();F=m}for(L=this;L.gte(A);){B=Math.max(1,Math.floor(L.toNumber()/A.toNumber()));for(var D=Math.ceil(Math.log(B)/Math.LN2),W=D<=48?1:a(2,D-48),z=s(B),re=z.mul(A);re.isNegative()||re.gt(L);)B-=W,z=s(B,this.unsigned),re=z.mul(A);z.isZero()&&(z=b),F=F.add(z),L=L.sub(re)}return F},E.div=E.divide,E.modulo=function(A){return e(A)||(A=l(A)),this.sub(this.div(A).mul(A))},E.mod=E.modulo,E.not=function(){return i(~this.low,~this.high,this.unsigned)},E.and=function(A){return e(A)||(A=l(A)),i(this.low&A.low,this.high&A.high,this.unsigned)},E.or=function(A){return e(A)||(A=l(A)),i(this.low|A.low,this.high|A.high,this.unsigned)},E.xor=function(A){return e(A)||(A=l(A)),i(this.low^A.low,this.high^A.high,this.unsigned)},E.shiftLeft=function(A){return e(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?i(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):i(0,this.low<<A-32,this.unsigned)},E.shl=E.shiftLeft,E.shiftRight=function(A){return e(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?i(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):i(this.high>>A-32,this.high>=0?0:-1,this.unsigned)},E.shr=E.shiftRight,E.shiftRightUnsigned=function(A){if(e(A)&&(A=A.toInt()),A&=63,A===0)return this;var B=this.high;if(A<32){var L=this.low;return i(L>>>A|B<<32-A,B>>>A,this.unsigned)}else return A===32?i(B,0,this.unsigned):i(B>>>A-32,0,this.unsigned)},E.shru=E.shiftRightUnsigned,E.toSigned=function(){return this.unsigned?i(this.low,this.high,!1):this},E.toUnsigned=function(){return this.unsigned?this:i(this.low,this.high,!0)},E.toBytes=function(T){return T?this.toBytesLE():this.toBytesBE()},E.toBytesLE=function(){var T=this.high,A=this.low;return[A&255,A>>>8&255,A>>>16&255,A>>>24&255,T&255,T>>>8&255,T>>>16&255,T>>>24&255]},E.toBytesBE=function(){var T=this.high,A=this.low;return[T>>>24&255,T>>>16&255,T>>>8&255,T&255,A>>>24&255,A>>>16&255,A>>>8&255,A&255]},t})});var jc=We((OG,kd)=>{kd.exports=globalThis.luma});var Ys=We((UG,jd)=>{jd.exports=globalThis.deck});var Yc=We((mV,nm)=>{nm.exports=globalThis.luma});var Q0=We((i5,Y0)=>{Y0.exports=globalThis.deck});var a1=We(Tf=>{Tf.read=function(t,e,r,n,o){var s,i,a=o*8-n-1,c=(1<<a)-1,l=c>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=t[e+u];for(u+=h,s=p&(1<<-f)-1,p>>=-f,f+=a;f>0;s=s*256+t[e+u],u+=h,f-=8);for(i=s&(1<<-f)-1,s>>=-f,f+=n;f>0;i=i*256+t[e+u],u+=h,f-=8);if(s===0)s=1-l;else{if(s===c)return i?NaN:(p?-1:1)*(1/0);i=i+Math.pow(2,n),s=s-l}return(p?-1:1)*i*Math.pow(2,s-n)};Tf.write=function(t,e,r,n,o,s){var i,a,c,l=s*8-o-1,f=(1<<l)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,d=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=f):(i=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+u>=1?e+=h/c:e+=h*Math.pow(2,1-u),e*c>=2&&(i++,c/=2),i+u>=f?(a=0,i=f):i+u>=1?(a=(e*c-1)*Math.pow(2,o),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,o),i=0));o>=8;t[r+p]=a&255,p+=d,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;t[r+p]=i&255,p+=d,i/=256,l-=8);t[r+p-d]|=g*128}});var p1=We((X5,h1)=>{"use strict";h1.exports=J;var Xi=a1();function J(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}J.Varint=0;J.Fixed64=1;J.Bytes=2;J.Fixed32=5;var Mf=(1<<16)*(1<<16),c1=1/Mf,Uv=12,u1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");J.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,s=this.pos;this.type=n&7,t(o,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=Yi(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=f1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Yi(this.buf,this.pos)+Yi(this.buf,this.pos+4)*Mf;return this.pos+=8,t},readSFixed64:function(){var t=Yi(this.buf,this.pos)+f1(this.buf,this.pos+4)*Mf;return this.pos+=8,t},readFloat:function(){var t=Xi.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Xi.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,n;return n=e[this.pos++],r=n&127,n<128||(n=e[this.pos++],r|=(n&127)<<7,n<128)||(n=e[this.pos++],r|=(n&127)<<14,n<128)||(n=e[this.pos++],r|=(n&127)<<21,n<128)?r:(n=e[this.pos],r|=(n&15)<<28,Dv(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=Uv&&u1?Zv(this.buf,e,t):Qv(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==J.Bytes)return t.push(this.readVarint(e));var r=St(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==J.Bytes)return t.push(this.readSVarint());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==J.Bytes)return t.push(this.readBoolean());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==J.Bytes)return t.push(this.readFloat());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==J.Bytes)return t.push(this.readDouble());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===J.Varint)for(;this.buf[this.pos++]>127;);else if(e===J.Bytes)this.pos=this.readVarint()+this.pos;else if(e===J.Fixed32)this.pos+=4;else if(e===J.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),yn(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),yn(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),yn(this.buf,t&-1,this.pos),yn(this.buf,Math.floor(t*c1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),yn(this.buf,t&-1,this.pos),yn(this.buf,Math.floor(t*c1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){Gv(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=$v(this.buf,t,this.pos);var r=this.pos-e;r>=128&&l1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),Xi.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),Xi.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&l1(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,J.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,zv,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,kv,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Jv,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,jv,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,qv,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Wv,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Kv,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Xv,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Yv,e)},writeBytesField:function(t,e){this.writeTag(t,J.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,J.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,J.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,J.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function Dv(t,e,r){var n=r.buf,o,s;if(s=n[r.pos++],o=(s&112)>>4,s<128||(s=n[r.pos++],o|=(s&127)<<3,s<128)||(s=n[r.pos++],o|=(s&127)<<10,s<128)||(s=n[r.pos++],o|=(s&127)<<17,s<128)||(s=n[r.pos++],o|=(s&127)<<24,s<128)||(s=n[r.pos++],o|=(s&1)<<31,s<128))return xn(t,o,e);throw new Error("Expected varint not more than 10 bytes")}function St(t){return t.type===J.Bytes?t.readVarint()+t.pos:t.pos+1}function xn(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function Gv(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),Vv(r,n,e),Hv(n,e)}function Vv(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function Hv(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function l1(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(n);for(var o=r.pos-1;o>=t;o--)r.buf[o+n]=r.buf[o]}function zv(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function kv(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function jv(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function qv(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function Jv(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function Wv(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function Kv(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function Xv(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function Yv(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function Yi(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function yn(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function f1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function Qv(t,e,r){for(var n="",o=e;o<r;){var s=t[o],i=null,a=s>239?4:s>223?3:s>191?2:1;if(o+a>r)break;var c,l,f;a===1?s<128&&(i=s):a===2?(c=t[o+1],(c&192)===128&&(i=(s&31)<<6|c&63,i<=127&&(i=null))):a===3?(c=t[o+1],l=t[o+2],(c&192)===128&&(l&192)===128&&(i=(s&15)<<12|(c&63)<<6|l&63,(i<=2047||i>=55296&&i<=57343)&&(i=null))):a===4&&(c=t[o+1],l=t[o+2],f=t[o+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(i=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,(i<=65535||i>=1114112)&&(i=null))),i===null?(i=65533,a=1):i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),n+=String.fromCharCode(i),o+=a}return n}function Zv(t,e,r){return u1.decode(t.subarray(e,r))}function $v(t,e,r){for(var n=0,o,s;n<e.length;n++){if(o=e.charCodeAt(n),o>55295&&o<57344)if(s)if(o<56320){t[r++]=239,t[r++]=191,t[r++]=189,s=o;continue}else o=s-55296<<10|o-56320|65536,s=null;else{o>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):s=o;continue}else s&&(t[r++]=239,t[r++]=191,t[r++]=189,s=null);o<128?t[r++]=o:(o<2048?t[r++]=o>>6|192:(o<65536?t[r++]=o>>12|224:(t[r++]=o>>18|240,t[r++]=o>>12&63|128),t[r++]=o>>6&63|128),t[r++]=o&63|128)}return r}});var Vo={};be(Vo,{A5Layer:()=>ep,GeohashLayer:()=>P1,GreatCircleLayer:()=>od,H3ClusterLayer:()=>zd,H3HexagonLayer:()=>Xs,MVTLayer:()=>R1,QuadkeyLayer:()=>xd,S2Layer:()=>gd,TerrainLayer:()=>X0,Tile3DLayer:()=>H0,TileLayer:()=>pr,TripsLayer:()=>Gd,_GeoCellLayer:()=>De,_Tile2DHeader:()=>ur,_Tileset2D:()=>hr,_WMSLayer:()=>Xr,_getURLFromTemplate:()=>ft});var nt={},Nf=U(Ke(),1);Et(nt,U(Ke(),1));if(!Nf.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");Et(Vo,nt);var Uf=U(Xe(),1),ea=U(Ke(),1),z1={...ea.PolygonLayer.defaultProps},Tn=class extends Uf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:o,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,getElevation:p,getFillColor:d,getLineColor:g,getLineWidth:m}=this.props,{updateTriggers:y,material:b,transitions:M}=this.props,S=this.getSubLayerClass("cell",ea.PolygonLayer),{updateTriggers:C,..._}=this.indexToBounds()||{};return new S({filled:o,wireframe:n,extruded:r,elevationScale:e,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,material:b,transitions:M,getElevation:p,getFillColor:d,getLineColor:g,getLineWidth:m},this.getSubLayerProps({id:"cell",updateTriggers:y&&{...C,getElevation:y.getElevation,getFillColor:y.getFillColor,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}),_)}};Tn.layerName="GeoCellLayer";Tn.defaultProps=z1;var De=Tn;var k1=Object.defineProperty,_n=(t,e)=>{for(var r in e)k1(t,r,{get:e[r],enumerable:!0})},Ae={};_n(Ae,{ARRAY_TYPE:()=>oe,EPSILON:()=>ge,RANDOM:()=>Wt,equals:()=>W1,setMatrixArrayType:()=>j1,toRadian:()=>J1});var ge=1e-6,oe=typeof Float32Array<"u"?Float32Array:Array,Wt=Math.random;function j1(t){oe=t}var q1=Math.PI/180;function J1(t){return t*q1}function W1(t,e){return Math.abs(t-e)<=ge*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Kt={};_n(Kt,{LDU:()=>fA,add:()=>uA,adjoint:()=>rA,clone:()=>X1,copy:()=>Y1,create:()=>K1,determinant:()=>nA,equals:()=>pA,exactEquals:()=>hA,frob:()=>lA,fromRotation:()=>iA,fromScaling:()=>aA,fromValues:()=>Z1,identity:()=>Q1,invert:()=>tA,mul:()=>gA,multiply:()=>su,multiplyScalar:()=>dA,multiplyScalarAndAdd:()=>mA,rotate:()=>oA,scale:()=>sA,set:()=>$1,str:()=>cA,sub:()=>AA,subtract:()=>iu,transpose:()=>eA});function K1(){var t=new oe(4);return oe!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}function X1(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Y1(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Q1(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function Z1(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function $1(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function eA(t,e){if(t===e){var r=e[1];t[1]=e[2],t[2]=r}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t}function tA(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*s-o*n;return i?(i=1/i,t[0]=s*i,t[1]=-n*i,t[2]=-o*i,t[3]=r*i,t):null}function rA(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t}function nA(t){return t[0]*t[3]-t[2]*t[1]}function su(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*a+s*c,t[1]=o*a+i*c,t[2]=n*l+s*f,t[3]=o*l+i*f,t}function oA(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+s*a,t[1]=o*c+i*a,t[2]=n*-a+s*c,t[3]=o*-a+i*c,t}function sA(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1];return t[0]=n*a,t[1]=o*a,t[2]=s*c,t[3]=i*c,t}function iA(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t}function aA(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t}function cA(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function lA(t){return Math.hypot(t[0],t[1],t[2],t[3])}function fA(t,e,r,n){return t[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-t[2]*r[1],[t,e,r]}function uA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function iu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function hA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function pA(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}function dA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function mA(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}var gA=su,AA=iu;function xA(){var t=new oe(9);return oe!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}var oa={};_n(oa,{add:()=>wx,calculateW:()=>bx,clone:()=>Bx,conjugate:()=>Ex,copy:()=>vx,create:()=>ia,dot:()=>Mu,equals:()=>Ux,exactEquals:()=>Ox,exp:()=>xu,fromEuler:()=>_x,fromMat3:()=>bu,fromValues:()=>Ix,getAngle:()=>gx,getAxisAngle:()=>mx,identity:()=>dx,invert:()=>Sx,len:()=>Px,length:()=>Su,lerp:()=>Fx,ln:()=>yu,mul:()=>Lx,multiply:()=>Au,normalize:()=>ga,pow:()=>Tx,random:()=>Mx,rotateX:()=>Ax,rotateY:()=>xx,rotateZ:()=>yx,rotationTo:()=>Dx,scale:()=>Tu,set:()=>Rx,setAxes:()=>Vx,setAxisAngle:()=>gu,slerp:()=>Qo,sqlerp:()=>Gx,sqrLen:()=>Nx,squaredLength:()=>Eu,str:()=>Cx});var R={};_n(R,{add:()=>MA,angle:()=>zA,bezier:()=>PA,ceil:()=>SA,clone:()=>yA,copy:()=>bA,create:()=>da,cross:()=>Yo,dist:()=>YA,distance:()=>uu,div:()=>XA,divide:()=>fu,dot:()=>ma,equals:()=>JA,exactEquals:()=>qA,floor:()=>EA,forEach:()=>$A,fromValues:()=>sa,hermite:()=>FA,inverse:()=>wA,len:()=>mu,length:()=>au,lerp:()=>LA,max:()=>CA,min:()=>_A,mul:()=>KA,multiply:()=>lu,negate:()=>RA,normalize:()=>du,random:()=>NA,rotateX:()=>GA,rotateY:()=>VA,rotateZ:()=>HA,round:()=>BA,scale:()=>IA,scaleAndAdd:()=>vA,set:()=>TA,sqrDist:()=>QA,sqrLen:()=>ZA,squaredDistance:()=>hu,squaredLength:()=>pu,str:()=>jA,sub:()=>WA,subtract:()=>cu,transformMat3:()=>UA,transformMat4:()=>OA,transformQuat:()=>DA,zero:()=>kA});function da(){var t=new oe(3);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function yA(t){var e=new oe(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function au(t){var e=t[0],r=t[1],n=t[2];return Math.hypot(e,r,n)}function sa(t,e,r){var n=new oe(3);return n[0]=t,n[1]=e,n[2]=r,n}function bA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function TA(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function MA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function cu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function lu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function fu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function SA(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function EA(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function _A(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function CA(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function BA(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function IA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function vA(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function uu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.hypot(r,n,o)}function hu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function pu(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function RA(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function wA(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function du(t,e){var r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function ma(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Yo(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function LA(t,e,r,n){var o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function FA(t,e,r,n,o,s){var i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function PA(t,e,r,n,o,s){var i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function NA(t,e){e=e||1;var r=Wt()*2*Math.PI,n=Wt()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function OA(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function UA(t,e,r){var n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function DA(t,e,r){var n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,g=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,g*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+g,t}function GA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function VA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function HA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function zA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt(r*r+n*n+o*o),l=Math.sqrt(s*s+i*i+a*a),f=c*l,u=f&&ma(t,e)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function kA(t){return t[0]=0,t[1]=0,t[2]=0,t}function jA(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function qA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function JA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=ge*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=ge*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=ge*Math.max(1,Math.abs(o),Math.abs(a))}var WA=cu,KA=lu,XA=fu,YA=uu,QA=hu,mu=au,ZA=pu,$A=function(){var t=da();return function(e,r,n,o,s,i){var a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();function ex(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function tx(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function rx(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function nx(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function ox(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function sx(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function ix(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function ax(t){var e=t[0],r=t[1],n=t[2],o=t[3];return Math.hypot(e,r,n,o)}function cx(t){var e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function lx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function fx(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function ux(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function hx(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function px(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}var LR=function(){var t=ex();return function(e,r,n,o,s,i){var a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();function ia(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function dx(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function gu(t,e,r){r=r*.5;var n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function mx(t,e){var r=Math.acos(e[3])*2,n=Math.sin(r/2);return n>ge?(t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n):(t[0]=1,t[1]=0,t[2]=0),r}function gx(t,e){var r=Mu(t,e);return Math.acos(2*r*r-1)}function Au(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Ax(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function xx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function yx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function bx(t,e){var r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function xu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=Math.exp(s),c=i>0?a*Math.sin(i)/i:0;return t[0]=r*c,t[1]=n*c,t[2]=o*c,t[3]=a*Math.cos(i),t}function yu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=i>0?Math.atan2(i,s)/i:0;return t[0]=r*a,t[1]=n*a,t[2]=o*a,t[3]=.5*Math.log(r*r+n*n+o*o+s*s),t}function Tx(t,e,r){return yu(t,e),Tu(t,t,r),xu(t,t),t}function Qo(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,g,m;return p=o*c+s*l+i*f+a*u,p<0&&(p=-p,c=-c,l=-l,f=-f,u=-u),1-p>ge?(h=Math.acos(p),d=Math.sin(h),g=Math.sin((1-n)*h)/d,m=Math.sin(n*h)/d):(g=1-n,m=n),t[0]=g*o+m*c,t[1]=g*s+m*l,t[2]=g*i+m*f,t[3]=g*a+m*u,t}function Mx(t){var e=Wt(),r=Wt(),n=Wt(),o=Math.sqrt(1-e),s=Math.sqrt(e);return t[0]=o*Math.sin(2*Math.PI*r),t[1]=o*Math.cos(2*Math.PI*r),t[2]=s*Math.sin(2*Math.PI*n),t[3]=s*Math.cos(2*Math.PI*n),t}function Sx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function Ex(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function bu(t,e){var r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{var o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);var s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}function _x(t,e,r,n){var o=.5*Math.PI/180;e*=o,r*=o,n*=o;var s=Math.sin(e),i=Math.cos(e),a=Math.sin(r),c=Math.cos(r),l=Math.sin(n),f=Math.cos(n);return t[0]=s*c*f-i*a*l,t[1]=i*a*f+s*c*l,t[2]=i*c*l-s*a*f,t[3]=i*c*f+s*a*l,t}function Cx(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}var Bx=tx,Ix=rx,vx=nx,Rx=ox,wx=sx,Lx=Au,Tu=ix,Mu=fx,Fx=ux,Su=ax,Px=Su,Eu=cx,Nx=Eu,ga=lx,Ox=hx,Ux=px,Dx=function(){var t=da(),e=sa(1,0,0),r=sa(0,1,0);return function(n,o,s){var i=ma(o,s);return i<-.999999?(Yo(t,e,o),mu(t)<1e-6&&Yo(t,r,o),du(t,t),gu(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Yo(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,ga(n,n))}}(),Gx=function(){var t=ia(),e=ia();return function(r,n,o,s,i,a){return Qo(t,n,i,a),Qo(e,o,s,a),Qo(r,t,e,2*a*(1-a)),r}}(),Vx=function(){var t=xA();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],ga(e,bu(e,t))}}(),P={};_n(P,{add:()=>qx,angle:()=>uy,ceil:()=>Jx,clone:()=>Hx,copy:()=>kx,create:()=>_u,cross:()=>ny,dist:()=>by,distance:()=>vu,div:()=>yy,divide:()=>Iu,dot:()=>ry,equals:()=>my,exactEquals:()=>dy,floor:()=>Wx,forEach:()=>Sy,fromValues:()=>zx,inverse:()=>ey,len:()=>gy,length:()=>wu,lerp:()=>oy,max:()=>Xx,min:()=>Kx,mul:()=>xy,multiply:()=>Bu,negate:()=>$x,normalize:()=>ty,random:()=>sy,rotate:()=>fy,round:()=>Yx,scale:()=>Qx,scaleAndAdd:()=>Zx,set:()=>jx,sqrDist:()=>Ty,sqrLen:()=>My,squaredDistance:()=>Ru,squaredLength:()=>Lu,str:()=>py,sub:()=>Ay,subtract:()=>Cu,transformMat2:()=>iy,transformMat2d:()=>ay,transformMat3:()=>cy,transformMat4:()=>ly,zero:()=>hy});function _u(){var t=new oe(2);return oe!=Float32Array&&(t[0]=0,t[1]=0),t}function Hx(t){var e=new oe(2);return e[0]=t[0],e[1]=t[1],e}function zx(t,e){var r=new oe(2);return r[0]=t,r[1]=e,r}function kx(t,e){return t[0]=e[0],t[1]=e[1],t}function jx(t,e,r){return t[0]=e,t[1]=r,t}function qx(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Cu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Bu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Iu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function Jx(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Wx(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function Kx(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Xx(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function Yx(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function Qx(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Zx(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function vu(t,e){var r=e[0]-t[0],n=e[1]-t[1];return Math.hypot(r,n)}function Ru(t,e){var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function wu(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function Lu(t){var e=t[0],r=t[1];return e*e+r*r}function $x(t,e){return t[0]=-e[0],t[1]=-e[1],t}function ey(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function ty(t,e){var r=e[0],n=e[1],o=r*r+n*n;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t}function ry(t,e){return t[0]*e[0]+t[1]*e[1]}function ny(t,e,r){var n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t}function oy(t,e,r,n){var o=e[0],s=e[1];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t}function sy(t,e){e=e||1;var r=Wt()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function iy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function ay(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function cy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function ly(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}function fy(t,e,r,n){var o=e[0]-r[0],s=e[1]-r[1],i=Math.sin(n),a=Math.cos(n);return t[0]=o*a-s*i+r[0],t[1]=o*i+s*a+r[1],t}function uy(t,e){var r=t[0],n=t[1],o=e[0],s=e[1],i=Math.sqrt(r*r+n*n)*Math.sqrt(o*o+s*s),a=i&&(r*o+n*s)/i;return Math.acos(Math.min(Math.max(a,-1),1))}function hy(t){return t[0]=0,t[1]=0,t}function py(t){return"vec2("+t[0]+", "+t[1]+")"}function dy(t,e){return t[0]===e[0]&&t[1]===e[1]}function my(t,e){var r=t[0],n=t[1],o=e[0],s=e[1];return Math.abs(r-o)<=ge*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-s)<=ge*Math.max(1,Math.abs(n),Math.abs(s))}var gy=wu,Ay=Cu,xy=Bu,yy=Iu,by=vu,Ty=Ru,My=Lu,Sy=function(){var t=_u();return function(e,r,n,o,s,i){var a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}(),rs=(1+Math.sqrt(5))/2,FR=2*Math.PI,Zo=2*Math.PI/5,ot=Math.PI/5,Df=Math.PI/10,Ey=2*Math.atan(rs),aa=Math.PI-Ey,PR=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-rs)),ns=(Math.sqrt(5)-1)/2,_y=3-Math.sqrt(5),Cy=Math.sqrt(3-rs),NR=Math.sqrt(3)*Cy/rs,$o=63710072e-1,OR=4*Math.PI*$o*$o;Ae.setMatrixArrayType(Float64Array);var Aa=class ca{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let n=0;n<r;n++){let o=(n+1)%r;e+=(this.vertices[o][0]-this.vertices[n][0])*(this.vertices[o][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)P.scale(r,r,e);return this}rotate180(){for(let e of this.vertices)P.negate(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)P.add(r,r,e);return this}transform(e){for(let r of this.vertices)P.transformMat2(r,r,e);return this}transform2d(e){for(let r of this.vertices)P.transformMat2d(r,r,e);return this}clone(){return new ca(this.vertices.map(r=>P.clone(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,o)=>[n[0]+o[0]/e,n[1]+o[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,n=1;for(let o=0;o<r;o++){let s=this.vertices[o],i=this.vertices[(o+1)%r],a=s[0]-i[0],c=s[1]-i[1],l=e[0]-s[0],f=e[1]-s[1],u=a*f-c*l;if(u<0){let h=Math.sqrt(l*l+f*f);n=Math.min(n,u/h)}}return n}splitEdges(e){if(e<=1)return this;let r=[],n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];r.push(P.clone(s));for(let a=1;a<e;a++){let c=a/e,l=P.create();P.lerp(l,s,i,c),r.push(l)}}return new ca(r)}};Ae.setMatrixArrayType(Float64Array);var Fu=[0,0],Pu=[0,1],Xt=[.7885966681787006,1.6149108024237764],Nu=[1.6171013659387945,1.054928690397459],Ou=[Math.cos(Df),Math.sin(Df)],By=2*P.length(Xt)*Math.cos(ot),Iy=ot-Math.atan2(Xt[1],Xt[0]),vy=2*ns/By;[Fu,Pu,Xt,Nu,Ou].forEach(t=>{P.scale(t,t,vy),P.rotate(t,t,[0,0],Iy)});var Ry=new Aa([Fu,Pu,Xt,Nu,Ou]),Uu=Math.atan2(Xt[1],Xt[0])-ot,wy=[0,0],es=ns/Math.cos(ot),Gf=Uu+ot,ts=[es*Math.cos(Gf),es*Math.sin(Gf)],Vf=Uu-ot,En=[es*Math.cos(Vf),es*Math.sin(Vf)],Du=new Aa([wy,ts,En]),Gu=Kt.fromValues(ts[0],ts[1],En[0],En[1]),UR=Kt.invert(Kt.create(),Gu),Ly=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),Fy=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),Py=class{applyCoefficients(t,e){let r=Math.sin(t),n=Math.cos(t),o=2*(n-r)*(n+r),s,i;return s=o*e[5]+e[4],i=o*s+e[3],s=o*i-s+e[2],i=o*s-i+e[1],s=o*i-s+e[0],t+2*r*n*s}forward(t){return this.applyCoefficients(t,Ly)}inverse(t){return this.applyCoefficients(t,Fy)}};Ae.setMatrixArrayType(Float64Array);var Vu=new Py;function Hf(t){return t*(Math.PI/180)}function zf(t){return t*(180/Math.PI)}function kf(t){let e=P.length(t),r=Math.atan2(t[1],t[0]);return[e,r]}function Ny([t,e]){let r=t*Math.cos(e),n=t*Math.sin(e);return[r,n]}function Oy(t,[e,r,n]){let o=[e[0]-n[0],e[1]-n[1]],s=[n[0]-r[0],n[1]-r[1]],i=[t[0]-n[0],t[1]-n[1]],a=s[0]*o[1]-s[1]*o[0],c=(s[0]*i[1]-s[1]*i[0])/a,l=(o[0]*i[1]-o[1]*i[0])/a,f=1-(c+l);return[c,l,f]}function Uy(t,[e,r,n]){return[t[0]*e[0]+t[1]*r[0]+t[2]*n[0],t[0]*e[1]+t[1]*r[1]+t[2]*n[1]]}function la(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),n=Math.acos(t[2]/r);return[e,n]}function Lr([t,e]){let r=Math.sin(e),n=r*Math.cos(t),o=r*Math.sin(t),s=Math.cos(e);return[n,o,s]}var Hu=93;function Dy([t,e]){let r=Hf(t+Hu),n=Hf(e),o=Vu.forward(n),s=Math.PI/2-o;return[r,s]}function zu([t,e]){let r=zf(t)-Hu,n=Math.PI/2-e,o=Vu.inverse(n),s=zf(o);return[r,s]}function Gy(t){let e=t.map(s=>Lr(Dy(s))),r=R.create();for(let s of e)R.add(r,r,s);R.normalize(r,r);let[n,o]=zu(la(r));return(o>89.99||o<-89.99)&&(n=t[0][0]),n=((n+180)%360+360)%360-180,t.map(s=>{let[i,a]=s;for(;i-n>180;)i=i-360;for(;i-n<-180;)i=i+360;return[i,a]})}Ae.setMatrixArrayType(Float64Array);var os=Math.sqrt(5),ss=Math.sqrt(.2),ku=Math.sqrt((1-ss)/2),ju=Math.sqrt((1+ss)/2),zo=.5,jf=Math.sqrt((2.5-os)/10),qf=Math.sqrt((2.5+os)/10),Jf=Math.sqrt((1+ss)/8),Wf=Math.sqrt((1-ss)/8),Kf=Math.sqrt((3-os)/8),Xf=Math.sqrt((3+os)/8),Vy=[[0,0],[ku,0],[jf,zo],[-Jf,Kf],[-Jf,-Kf],[jf,-zo],[-ju,0],[-Wf,-Xf],[qf,-zo],[qf,zo],[-Wf,Xf],[0,0]],Hy=Vy.map(([t,e])=>[-e,t]),ko=Hy.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?ju:ku]);Ae.setMatrixArrayType(Float64Array);var qu=["vu","uw","vw","vw","vw"],Mn=["wu","uw","vw","vu","uw"],ta=["wu","uv","wv","wu","uw"],jo=["vu","uv","wv","wu","uw"],zy=[qu,jo,ta,Mn,ta,jo,ta,Mn,Mn,Mn,jo,jo],ky=[4,2,3,2,0,4,3,2,2,0,3,0],Yf=[0,1,2,4,3,5,7,8,6,11,10,9],Ye=[];function jy(){qo([0,0],0,ko[0]);for(let t=0;t<5;t++){let e=t*Zo,r=e+ot;qo([e,aa],ot,ko[t+1]),qo([r,Math.PI-aa],ot,ko[(t+3)%5+6])}qo([0,Math.PI],0,ko[11])}var vr=0;function qo(t,e,r){if(vr>11)throw new Error(`Too many origins: ${vr}`);let n=oa.create();oa.conjugate(n,r);let o={id:vr,axis:t,quat:r,inverseQuat:n,angle:e,orientation:zy[vr],firstQuintant:ky[vr]};Ye.push(o),vr++}jy();Ye.sort((t,e)=>Yf.indexOf(t.id)-Yf.indexOf(e.id));Ye.forEach((t,e)=>t.id=e);function qy(t,e){let r=e.orientation,n=r===qu||r===Mn?-1:1,o=(t-e.firstQuintant+5)%5,s=r[o];return{quintant:(e.firstQuintant+n*o+5)%5,orientation:s}}var Jy=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}},Rr=R.create(),Sn=R.create(),Qf=R.create(),Zf=R.create();function ra(t,e){R.lerp(Rr,t,e,.5),R.normalize(Rr,Rr),R.cross(Rr,t,Rr);let r=R.length(Rr);if(r<1e-8){let n=R.subtract(R.create(),t,e);return .5*R.length(n)}return r}function Wy(t,e,r){return R.cross(Sn,e,r),R.dot(t,Sn)}function Ky(t,e,r,n,o){R.cross(Sn,n,o);let s=R.dot(e,Sn),i=R.dot(r,Sn);return R.scale(Qf,e,i),R.scale(Zf,r,s),R.sub(t,Zf,Qf)}function fa(t,e,r,n){let o=R.angle(e,r);if(o<1e-12)return R.lerp(t,e,r,n);let s=Math.sin((1-n)*o)/Math.sin(o),i=Math.sin(n*o)/Math.sin(o),a=R.scale(R.create(),e,s),c=R.scale(R.create(),r,i);return R.add(t,a,c)}Ae.setMatrixArrayType(Float64Array);var Jo=R.create(),Wo=R.create(),Ko=R.create(),wr=R.create(),Xy=class{constructor(t){this._area=null,this.vertices=t,Object.freeze(this.vertices)}getBoundary(t=1,e=!0){let r=[],n=this.vertices.length;for(let o=0;o<n*t;o++){let s=o/t;r.push(this.slerp(s))}return e&&r.push(r[0]),r}slerp(t){let e=this.vertices.length,r=t%1,n=Math.floor(t%e),o=(n+1)%e;return fa(R.create(),this.vertices[n],this.vertices[o],r)}getTransformedVertices(t){let e=this.vertices.length,r=Math.floor(t%e),n=(r+1)%e,o=(r+e-1)%e,s=R.clone(this.vertices[r]),i=R.clone(this.vertices[n]),a=R.clone(this.vertices[o]);return R.sub(i,i,s),R.sub(a,a,s),[s,i,a]}containsPoint(t){let e=this.vertices.length,r=1/0;for(let n=0;n<e;n++){let[o,s,i]=this.getTransformedVertices(n),a=R.sub(R.create(),t,o);R.normalize(a,a),R.normalize(s,s),R.normalize(i,i);let c=R.cross(R.create(),s,a),l=R.cross(R.create(),a,i),f=R.dot(o,c),u=R.dot(o,l);r=Math.min(r,f,u)}return r}getTriangleArea(t,e,r){R.lerp(Jo,e,r,.5),R.lerp(Wo,r,t,.5),R.lerp(Ko,t,e,.5),R.normalize(Jo,Jo),R.normalize(Wo,Wo),R.normalize(Ko,Ko);let n=Wy(Jo,Wo,Ko),o=Math.max(-1,Math.min(1,n));return Math.abs(o)<1e-8?2*o:Math.asin(o)*2}getArea(){return this._area===null&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(this.vertices.length===3)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;R.set(wr,0,0,0);for(let e of this.vertices)R.add(wr,wr,e);R.normalize(wr,wr);let t=0;for(let e=0;e<this.vertices.length;e++){let r=this.vertices[e],n=this.vertices[(e+1)%this.vertices.length],o=this.getTriangleArea(wr,r,n);isNaN(o)||(t+=o)}return this._area=t,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ae.setMatrixArrayType(Float64Array);var Xo=class extends Xy{constructor(t){if(t.length!==3)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(t)}};Ae.setMatrixArrayType(Float64Array);var Yy=class{forward(t,e,r){let[n,o,s]=e,i=new Xo([n,o,s]),a=R.subtract(R.create(),t,n);R.normalize(a,a);let c=Ky(R.create(),n,a,o,s);R.normalize(c,c);let l=ra(n,t)/ra(n,c),f=i.getArea(),u=l/f,h=[1-l,u*new Xo([n,c,s]).getArea(),u*new Xo([n,o,c]).getArea()];return Uy(h,r)}inverse(t,e,r){let[n,o,s]=r,i=new Xo([n,o,s]),a=Oy(t,e),c=1-1e-14;if(a[0]>c)return n;if(a[1]>c)return o;if(a[2]>c)return s;let l=R.create();R.cross(l,o,s);let f=i.getArea(),u=1-a[0],p=a[2]/u*f,d=Math.sin(p),g=Math.sin(p/2),m=2*g*g,y=R.dot(n,o),b=R.dot(o,s),M=R.dot(s,n),S=R.length(l),C=R.dot(n,l),_=d*C+m*(y*b-M),v=m*S*(1+y),E=2/Math.acos(b)*Math.atan2(v,_),T=fa(R.create(),o,s,E),A=ra(n,T),B=this.safeAcos(u*A)/this.safeAcos(A);return fa([0,0,0],n,T,B)}safeAcos(t){return t<.001?2*t+t*t*t/3:Math.acos(1-2*t*t)}},Fe=-1,Ee=1;Ae.setMatrixArrayType(Float64Array);var Qy=([t,e])=>P.fromValues(t-e,e);Ae.setMatrixArrayType(Float64Array);var ua=P.fromValues(1,0),ha=P.fromValues(0,1),$f=P.negate(P.create(),ua),eu=P.negate(P.create(),ha),na=P.fromValues(0,0),Zy=(t,[e,r])=>{let n=na,o=na;switch(e===Ee&&r===Ee?(n=ua,o=ha):e===Fe&&r===Ee?(n=eu,o=$f):e===Ee&&r===Fe?(n=ha,o=ua):e===Fe&&r===Fe&&(n=$f,o=eu),t){case 0:return na;case 1:return n;case 2:return P.add(P.create(),o,n);case 3:return P.scaleAndAdd(P.create(),o,n,2);default:throw new Error(`Invalid Quaternary value: ${t}`)}},tu=t=>[[Ee,Ee],[Ee,Fe],[Ee,Ee],[Fe,Ee]][t];function Ju(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var Wu=[0,1,3,4,5,6,7,2],Ku=[0,1,2,7,3,4,5,6],DR=Ju(Wu),GR=Ju(Ku),$y=(t,e,r,n,o)=>{if(e<=0)return;let s=t[e]||0,i=t[e-1],a=r[0]+r[1],c=!0,l=!0;if(n!==(a===0)?(c=s===1||s===2,l=s===1):(c=s<2,l=s===0),!c)return;let f=l?i:i+4,u=o[f];t[e-1]=u%4,t[e]=(s+4+Math.floor(u/4)-Math.floor(f/4))%4};Ae.setMatrixArrayType(Float64Array);var ru=P.fromValues(-1,1),Xu=!0,eb=(t,e,r,n=Xu)=>{let o=BigInt(t),s=r==="vu"||r==="wu"||r==="vw",i=r==="wv"||r==="vw",a=r==="wu"||r==="uw";s&&(o=(1n<<BigInt(2*e))-o-1n);let c=tb(o,e,i,a,n);if(a){let{offset:[l,f],flips:[u,h]}=c;c.offset=[f,l],u===Fe&&P.add(c.offset,c.offset,ru),h===Fe&&P.subtract(c.offset,c.offset,ru)}if(i){let{offset:[l,f],flips:u}=c,h=(1<<e)-(l+f);u[0]=-u[0],c.offset[1]=h,c.flips=u}return c},tb=(t,e,r,n,o=Xu)=>{let s=P.create(),i=[Ee,Ee],a=BigInt(t),c=[];for(;a>0n||c.length<e;)c.push(Number(a%4n)),a=a>>2n;let l=n?Ku:Wu;for(let u=c.length-1;u>=0;u--)o&&$y(c,u,i,r,l),P.multiply(i,i,tu(c[u]));i[0]=Ee,i[1]=Ee;for(let u=c.length-1;u>=0;u--){P.scale(s,s,2);let h=Zy(c[u],i);P.add(s,s,h),P.multiply(i,i,tu(c[u]))}return{q:c[0]||0,offset:Qy(s),flips:i}};var _t=.1,VR=[[_t*Math.cos(45*Math.PI/180),_t*Math.sin(45*Math.PI/180)],[_t*Math.cos(113*Math.PI/180),_t*Math.sin(113*Math.PI/180)],[_t*Math.cos(293*Math.PI/180),_t*Math.sin(293*Math.PI/180)],[_t*Math.cos(225*Math.PI/180),_t*Math.sin(225*Math.PI/180)]];Ae.setMatrixArrayType(Float64Array);var rb=!1,nb=P.clone(En),ob=P.negate(P.create(),En),xa=[0,1,2,3,4].map(t=>{let e=Kt.create();return Kt.fromRotation(e,Zo*t),e}),nu=P.create();function sb(t,e,r){let n=(rb?Du:Ry).clone();P.transformMat2(nu,r.offset,Gu),r.flips[0]===Ee&&r.flips[1]===Fe&&n.rotate180();let{q:o}=r,s=r.flips[0]+r.flips[1];return((s===-2||s===2)&&o>1||s===0&&(o===0||o===3))&&n.reflectY(),r.flips[0]===Fe&&r.flips[1]===Fe?n.rotate180():r.flips[0]===Fe?n.translate(ob):r.flips[1]===Fe&&n.translate(nb),n.translate(nu),n.scale(1/2**t),n.transform(xa[e]),n}function Yu(t){let e=Du.clone();return e.transform(xa[t]),e}function ib(){let t=[];for(let e of xa)t.push(P.transformMat2(P.create(),ts,e));return t.reverse(),new Aa(t)}Ae.setMatrixArrayType(Float64Array);var ab=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(let e of this.vertices)if(R.distance(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Ye.forEach(t=>this.add(Lr(t.axis)))}addVertices(){let t=Math.atan(_y);for(let e of Ye)for(let r=0;r<5;r++){let n=(2*r+1)*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}addMidpoints(){let t=Math.atan(ns);for(let e of Ye)for(let r=0;r<5;r++){let n=2*r*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}add(t){let e=R.normalize(R.create(),t);return this.vertices.find(n=>R.distance(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}};Ae.setMatrixArrayType(Float64Array);var cb=new ab,lb=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new Yy,this.gnomonic=new Jy}forward(t,e){let r=Ye[e],n=Lr(t),o=R.create();R.transformQuat(o,n,r.inverseQuat);let s=la(o),i=this.gnomonic.forward(s);i[1]=i[1]-r.angle;let a=this.getFaceTriangleIndex(i),c=this.shouldReflect(i),l=this.getFaceTriangle(a,c,!1),f=this.getSphericalTriangle(a,e,c);return this.polyhedral.forward(n,f,l)}inverse(t,e){let r=kf(t),n=this.getFaceTriangleIndex(r),o=this.shouldReflect(r),s=this.getFaceTriangle(n,o,!1),i=this.getSphericalTriangle(n,e,o),a=this.polyhedral.inverse(t,s,i);return la(a)}shouldReflect(t){let[e,r]=t;return Ny([e,this.normalizeGamma(r)])[0]>ns}getFaceTriangleIndex([t,e]){return(Math.floor(e/ot)+10)%10}getFaceTriangle(t,e=!1,r=!1){let n=t;return e&&(n+=r?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,n,o]=Yu(e).getVertices(),s=P.create();return P.lerp(s,n,o,.5),t%2===0?[r,s,n]:[r,o,s]}_getReflectedFaceTriangle(t,e=!1){let[r,n,o]=this._getFaceTriangle(t).map(a=>P.clone(a)),s=t%2===0;P.negate(r,r);let i=s?n:o;return P.scaleAndAdd(r,r,i,e?1+1/Math.cos(aa):2),[r,o,n]}getSphericalTriangle(t,e,r=!1){let n=10*e+t;return r&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(t,e,r=!1){let n=Ye[e];return this.getFaceTriangle(t,r,!0).map(i=>{let[a,c]=kf(i),l=[a,c+n.angle],f=Lr(this.gnomonic.inverse(l));return R.transformQuat(f,f,n.quat),cb.getVertex(f)})}normalizeGamma(t){let e=t/Zo,r=Math.round(e);return(e-r)*Zo}},Fr=2,pa=30,ou=58n,fb=0n;function ub(t){if(t===0n)return-1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return pa;let e=pa-1,r=t>>1n;if(r===0n)return-1;let n=Number(r&0xFFFFFFFFn),o;for(n===0?(r>>=32n,e-=16,o=Number(r)):o=n,o&65535||(o>>=16,e-=8),e>=6&&!(o&255)&&(o>>=8,e-=4),e>=4&&!(o&15)&&(o>>=4,e-=2);e>-1&&!(o&1);)e-=1,o=o>>(e<Fr?1:2);return e}function hb(t){let e=ub(t);if(e===-1)return{origin:Ye[0],segment:0,S:0n,resolution:e};let r=ou,n=0;if(e===pa){let u=t&1n?1n:t&0b100n?3n:5n;r=ou+u,n=u===1n?0:u===3n?32:40}let o=Number(t>>r)+n,s,i;if(e===0)s=Ye[o],i=0;else{let u=Math.floor(o/5);s=Ye[u],i=(o+s.firstQuintant)%5}if(!s)throw new Error(`Could not parse origin: ${o}`);if(e<Fr)return{origin:s,segment:i,S:0n,resolution:e};let a=e-Fr+1,c=BigInt(2*a),l=(1n<<r)-1n,f=(t&l)>>r-c;return{origin:s,segment:i,S:f,resolution:e}}Ae.setMatrixArrayType(Float64Array);var HR=Kt.create(),pb=new lb;function db({S:t,segment:e,origin:r,resolution:n}){let{quintant:o,orientation:s}=qy(e,r);if(n===Fr-1)return Yu(o);if(n===Fr-2)return ib();let i=n-Fr+1,a=eb(t,i,s);return sb(i,o,a)}function Qu(t,{closedRing:e=!0,segments:r="auto"}={closedRing:!0,segments:"auto"}){if(t===fb)return[];let{S:n,segment:o,origin:s,resolution:i}=hb(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-i)));let u=db({S:n,segment:o,origin:s,resolution:i}).splitEdges(r).getVertices().map(p=>pb.inverse(p,s.id)).map(p=>zu(p)),h=Gy(u);return e&&h.push(h[0]),h.reverse(),h}function Zu(t){return BigInt(`0x${t}`)}var $u=2;var mb=$u*$o/Math.sqrt(15),eh=new Array(31);eh[0]=$u*$o/Math.sqrt(3);for(let t=1;t<=30;t++)eh[t]=mb/(1<<t-1);Ae.setMatrixArrayType(Float64Array);var Fn=U(is(),1);var gb=1/Math.PI*180,Ab=1/180*Math.PI,xb={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...xb}};var Q=globalThis.mathgl.config;function ya(t,{precision:e=Q.precision}={}){return t=yb(t),`${parseFloat(t.toPrecision(e))}`}function Pe(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ba(t){return rh(t)}function Ta(t){return Ne(t)}function rh(t,e){return Ma(t,r=>r*Ab,e)}function Ne(t,e){return Ma(t,r=>r*gb,e)}function as(t,e,r){return Ma(t,n=>Math.max(e,Math.min(r,n)))}function Ct(t,e,r){return Pe(t)?t.map((n,o)=>Ct(n,e[o],r)):r*e+(1-r)*t}function _e(t,e,r){let n=Q.EPSILON;r&&(Q.EPSILON=r);try{if(t===e)return!0;if(Pe(t)&&Pe(e)){if(t.length!==e.length)return!1;for(let o=0;o<t.length;++o)if(!_e(t[o],e[o]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{Q.EPSILON=n}}function yb(t){return Math.round(t/Q.EPSILON)*Q.EPSILON}function bb(t){return t.clone?t.clone():new Array(t.length)}function Ma(t,e,r){if(Pe(t)){let n=t;r=r||bb(n);for(let o=0;o<r.length&&o<n.length;++o){let s=typeof t=="number"?t:t[o];r[o]=e(s,o,r)}return r}return e(t)}var Bt=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Pe(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Q)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+ya(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!_e(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let o=0;o<this.ELEMENTS;++o){let s=e[o],i=typeof r=="number"?r:r[o];this[o]=s+n*(i-s)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(Q.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function Tb(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function V(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function It(t,e,r=""){if(Q.debug&&!Tb(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function he(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var vt=class extends Bt{get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let o=this[n]-e[n];r+=o*o}return V(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return V(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return he(e>=0&&e<this.ELEMENTS,"index is out of range"),V(this[e])}setComponent(e,r){return he(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var te=typeof Float32Array<"u"?Float32Array:Array,Cn=Math.random;function Pr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var aw=Math.PI/180;function Mb(){let t=new te(2);return te!=Float32Array&&(t[0]=0,t[1]=0),t}function nh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function oh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function cs(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function ls(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}var cw=function(){let t=Mb();return function(e,r,n,o,s,i){let a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}();function fs(t,e,r){let n=e[0],o=e[1],s=r[3]*n+r[7]*o||1;return t[0]=(r[0]*n+r[4]*o)/s,t[1]=(r[1]*n+r[5]*o)/s,t}function us(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s||1;return t[0]=(r[0]*n+r[4]*o+r[8]*s)/i,t[1]=(r[1]*n+r[5]*o+r[9]*s)/i,t[2]=(r[2]*n+r[6]*o+r[10]*s)/i,t}function sh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t}function ih(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t[3]=e[3],t}function hs(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=r[0]*n+r[3]*o+r[6]*s,t[1]=r[1]*n+r[4]*o+r[7]*s,t[2]=r[2]*n+r[5]*o+r[8]*s,t[3]=e[3],t}var Yt=class extends vt{constructor(e=0,r=0){super(2),Pe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r)),this[0]=e,this[1]=r)}set(e,r){return this[0]=e,this[1]=r,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return ls(this,this,e),this.check()}transformAsVector(e){return fs(this,this,e),this.check()}transformByMatrix3(e){return cs(this,this,e),this.check()}transformByMatrix2x3(e){return oh(this,this,e),this.check()}transformByMatrix2(e){return nh(this,this,e),this.check()}};var $t={};be($t,{add:()=>Cb,angle:()=>Ba,bezier:()=>Gb,ceil:()=>Bb,clone:()=>Sb,copy:()=>Eb,create:()=>ps,cross:()=>Qt,dist:()=>Kb,distance:()=>uh,div:()=>Wb,divide:()=>fh,dot:()=>Bn,equals:()=>jb,exactEquals:()=>kb,floor:()=>Ib,forEach:()=>Qb,fromValues:()=>ds,hermite:()=>Db,inverse:()=>Nb,len:()=>Ia,length:()=>ah,lerp:()=>Ob,max:()=>Rb,min:()=>vb,mul:()=>Jb,multiply:()=>lh,negate:()=>Pb,normalize:()=>Sa,random:()=>Vb,rotateX:()=>Ea,rotateY:()=>_a,rotateZ:()=>Ca,round:()=>wb,scale:()=>Lb,scaleAndAdd:()=>Fb,set:()=>_b,slerp:()=>Ub,sqrDist:()=>Xb,sqrLen:()=>Yb,squaredDistance:()=>hh,squaredLength:()=>ph,str:()=>zb,sub:()=>qb,subtract:()=>ch,transformMat3:()=>In,transformMat4:()=>Zt,transformQuat:()=>vn,zero:()=>Hb});function ps(){let t=new te(3);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function Sb(t){let e=new te(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function ah(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function ds(t,e,r){let n=new te(3);return n[0]=t,n[1]=e,n[2]=r,n}function Eb(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function _b(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function Cb(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function ch(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function lh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function fh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Bb(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function Ib(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function vb(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function Rb(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function wb(t,e){return t[0]=Pr(e[0]),t[1]=Pr(e[1]),t[2]=Pr(e[2]),t}function Lb(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Fb(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function uh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}function hh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function ph(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function Pb(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function Nb(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function Sa(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Bn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Qt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function Ob(t,e,r,n){let o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function Ub(t,e,r,n){let o=Math.acos(Math.min(Math.max(Bn(e,r),-1),1)),s=Math.sin(o),i=Math.sin((1-n)*o)/s,a=Math.sin(n*o)/s;return t[0]=i*e[0]+a*r[0],t[1]=i*e[1]+a*r[1],t[2]=i*e[2]+a*r[2],t}function Db(t,e,r,n,o,s){let i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function Gb(t,e,r,n,o,s){let i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function Vb(t,e){e=e===void 0?1:e;let r=Cn()*2*Math.PI,n=Cn()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function Zt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function In(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function vn(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,g=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,g*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+g,t}function Ea(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function _a(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ca(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ba(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt((r*r+n*n+o*o)*(s*s+i*i+a*a)),l=c&&Bn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function Hb(t){return t[0]=0,t[1]=0,t[2]=0,t}function zb(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function kb(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function jb(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var qb=ch,Jb=lh,Wb=fh,Kb=uh,Xb=hh,Ia=ah,Yb=ph,Qb=function(){let t=ps();return function(e,r,n,o,s,i){let a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var va=[0,0,0],ms,x=class extends vt{static get ZERO(){return ms||(ms=new x(0,0,0),Object.freeze(ms)),ms}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Pe(e)?this.copy(e):(Q.debug&&(V(e),V(r),V(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=V(e)}angle(e){return Ba(this,e)}cross(e){return Qt(this,this,e),this.check()}rotateX({radians:e,origin:r=va}){return Ea(this,this,r,e),this.check()}rotateY({radians:e,origin:r=va}){return _a(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=va}){return Ca(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Zt(this,this,e),this.check()}transformAsVector(e){return us(this,this,e),this.check()}transformByMatrix3(e){return In(this,this,e),this.check()}transformByMatrix2(e){return sh(this,this,e),this.check()}transformByQuaternion(e){return vn(this,this,e),this.check()}};var gs,Or=class extends vt{static get ZERO(){return gs||(gs=new Or(0,0,0,0),Object.freeze(gs)),gs}constructor(e=0,r=0,n=0,o=0){super(-0,-0,-0,-0),Pe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r),V(n),V(o)),this[0]=e,this[1]=r,this[2]=n,this[3]=o)}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z),V(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}transform(e){return Zt(this,this,e),this.check()}transformByMatrix3(e){return hs(this,this,e),this.check()}transformByMatrix2(e){return ih(this,this,e),this.check()}transformByQuaternion(e){return vn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var Ur=class extends Bt{toString(){let e="[";if(Q.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${this[r]}`}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=V(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)r[o]=this[n+o];return r}setColumn(e,r){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)this[n+o]=r[o];return this}};function dh(){let t=new te(9);return te!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function mh(t,e){if(t===e){let r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function gh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=f*i-a*l,h=-f*s+a*c,p=l*s-i*c,d=r*u+n*h+o*p;return d?(d=1/d,t[0]=u*d,t[1]=(-f*n+o*l)*d,t[2]=(a*n-o*i)*d,t[3]=h*d,t[4]=(f*r-o*c)*d,t[5]=(-a*r+o*s)*d,t[6]=p*d,t[7]=(-l*r+n*c)*d,t[8]=(i*r-n*s)*d,t):null}function Ah(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8];return e*(l*s-i*c)+r*(-l*o+i*a)+n*(c*o-s*a)}function Ra(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1],d=r[2],g=r[3],m=r[4],y=r[5],b=r[6],M=r[7],S=r[8];return t[0]=h*n+p*i+d*l,t[1]=h*o+p*a+d*f,t[2]=h*s+p*c+d*u,t[3]=g*n+m*i+y*l,t[4]=g*o+m*a+y*f,t[5]=g*s+m*c+y*u,t[6]=b*n+M*i+S*l,t[7]=b*o+M*a+S*f,t[8]=b*s+M*c+S*u,t}function xh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1];return t[0]=n,t[1]=o,t[2]=s,t[3]=i,t[4]=a,t[5]=c,t[6]=h*n+p*i+l,t[7]=h*o+p*a+f,t[8]=h*s+p*c+u,t}function yh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=Math.sin(r),p=Math.cos(r);return t[0]=p*n+h*i,t[1]=p*o+h*a,t[2]=p*s+h*c,t[3]=p*i-h*n,t[4]=p*a-h*o,t[5]=p*c-h*s,t[6]=l,t[7]=f,t[8]=u,t}function wa(t,e,r){let n=r[0],o=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=o*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function bh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,g=s*i,m=s*a,y=s*c;return t[0]=1-u-d,t[3]=f-y,t[6]=h+m,t[1]=f+y,t[4]=1-l-d,t[7]=p-g,t[2]=h-m,t[5]=p+g,t[8]=1-l-u,t}var La;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL1ROW0=3]="COL1ROW0",t[t.COL1ROW1=4]="COL1ROW1",t[t.COL1ROW2=5]="COL1ROW2",t[t.COL2ROW0=6]="COL2ROW0",t[t.COL2ROW1=7]="COL2ROW1",t[t.COL2ROW2=8]="COL2ROW2"})(La||(La={}));var $b=Object.freeze([1,0,0,0,1,0,0,0,1]),k=class extends Ur{static get IDENTITY(){return tT()}static get ZERO(){return eT()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return La}constructor(e,...r){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):r.length>0?this.copy([e,...r]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy($b)}fromObject(e){return this.check()}fromQuaternion(e){return bh(this,e),this.check()}set(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=o,this[2]=a,this[3]=r,this[4]=s,this[5]=c,this[6]=n,this[7]=i,this[8]=l,this.check()}determinant(){return Ah(this)}transpose(){return mh(this,this),this.check()}invert(){return gh(this,this),this.check()}multiplyLeft(e){return Ra(this,e,this),this.check()}multiplyRight(e){return Ra(this,this,e),this.check()}rotate(e){return yh(this,this,e),this.check()}scale(e){return Array.isArray(e)?wa(this,this,e):wa(this,this,[e,e]),this.check()}translate(e){return xh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=cs(r||[-0,-0],e,this);break;case 3:n=In(r||[-0,-0,-0],e,this);break;case 4:n=hs(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(n,e.length),n}transformVector(e,r){return this.transform(e,r)}transformVector2(e,r){return this.transform(e,r)}transformVector3(e,r){return this.transform(e,r)}},As,xs=null;function eT(){return As||(As=new k([0,0,0,0,0,0,0,0,0]),Object.freeze(As)),As}function tT(){return xs||(xs=new k,Object.freeze(xs)),xs}var wn={};be(wn,{add:()=>CT,adjoint:()=>aT,clone:()=>nT,copy:()=>oT,create:()=>rT,decompose:()=>AT,determinant:()=>Na,equals:()=>RT,exactEquals:()=>vT,frob:()=>_T,fromQuat:()=>za,fromQuat2:()=>dT,fromRotation:()=>fT,fromRotationTranslation:()=>Mh,fromRotationTranslationScale:()=>xT,fromRotationTranslationScaleOrigin:()=>yT,fromScaling:()=>lT,fromTranslation:()=>cT,fromValues:()=>sT,fromXRotation:()=>uT,fromYRotation:()=>hT,fromZRotation:()=>pT,frustum:()=>ka,getRotation:()=>gT,getScaling:()=>Sh,getTranslation:()=>mT,identity:()=>Th,invert:()=>Pa,lookAt:()=>Ja,mul:()=>wT,multiply:()=>Rn,multiplyScalar:()=>BT,multiplyScalarAndAdd:()=>IT,ortho:()=>qa,orthoNO:()=>_h,orthoZO:()=>MT,perspective:()=>ja,perspectiveFromFieldOfView:()=>TT,perspectiveNO:()=>Eh,perspectiveZO:()=>bT,rotate:()=>Da,rotateX:()=>Ga,rotateY:()=>Va,rotateZ:()=>Ha,scale:()=>Ua,set:()=>iT,str:()=>ET,sub:()=>LT,subtract:()=>Ch,targetTo:()=>ST,translate:()=>Oa,transpose:()=>Fa});function rT(){let t=new te(16);return te!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function nT(t){let e=new te(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function oT(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function sT(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,g){let m=new te(16);return m[0]=t,m[1]=e,m[2]=r,m[3]=n,m[4]=o,m[5]=s,m[6]=i,m[7]=a,m[8]=c,m[9]=l,m[10]=f,m[11]=u,m[12]=h,m[13]=p,m[14]=d,m[15]=g,m}function iT(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=s,t[5]=i,t[6]=a,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=h,t[12]=p,t[13]=d,t[14]=g,t[15]=m,t}function Th(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Fa(t,e){if(t===e){let r=e[1],n=e[2],o=e[3],s=e[6],i=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=s,t[11]=e[14],t[12]=o,t[13]=i,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function Pa(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],g=e[13],m=e[14],y=e[15],b=r*a-n*i,M=r*c-o*i,S=r*l-s*i,C=n*c-o*a,_=n*l-s*a,v=o*l-s*c,E=f*g-u*d,T=f*m-h*d,A=f*y-p*d,B=u*m-h*g,L=u*y-p*g,F=h*y-p*m,w=b*F-M*L+S*B+C*A-_*T+v*E;return w?(w=1/w,t[0]=(a*F-c*L+l*B)*w,t[1]=(o*L-n*F-s*B)*w,t[2]=(g*v-m*_+y*C)*w,t[3]=(h*_-u*v-p*C)*w,t[4]=(c*A-i*F-l*T)*w,t[5]=(r*F-o*A+s*T)*w,t[6]=(m*S-d*v-y*M)*w,t[7]=(f*v-h*S+p*M)*w,t[8]=(i*L-a*A+l*E)*w,t[9]=(n*A-r*L-s*E)*w,t[10]=(d*_-g*S+y*b)*w,t[11]=(u*S-f*_-p*b)*w,t[12]=(a*T-i*B-c*E)*w,t[13]=(r*B-n*T+o*E)*w,t[14]=(g*M-d*C-m*b)*w,t[15]=(f*C-u*M+h*b)*w,t):null}function aT(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],g=e[13],m=e[14],y=e[15],b=r*a-n*i,M=r*c-o*i,S=r*l-s*i,C=n*c-o*a,_=n*l-s*a,v=o*l-s*c,E=f*g-u*d,T=f*m-h*d,A=f*y-p*d,B=u*m-h*g,L=u*y-p*g,F=h*y-p*m;return t[0]=a*F-c*L+l*B,t[1]=o*L-n*F-s*B,t[2]=g*v-m*_+y*C,t[3]=h*_-u*v-p*C,t[4]=c*A-i*F-l*T,t[5]=r*F-o*A+s*T,t[6]=m*S-d*v-y*M,t[7]=f*v-h*S+p*M,t[8]=i*L-a*A+l*E,t[9]=n*A-r*L-s*E,t[10]=d*_-g*S+y*b,t[11]=u*S-f*_-p*b,t[12]=a*T-i*B-c*E,t[13]=r*B-n*T+o*E,t[14]=g*M-d*C-m*b,t[15]=f*C-u*M+h*b,t}function Na(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8],f=t[9],u=t[10],h=t[11],p=t[12],d=t[13],g=t[14],m=t[15],y=e*i-r*s,b=e*a-n*s,M=r*a-n*i,S=l*d-f*p,C=l*g-u*p,_=f*g-u*d,v=e*_-r*C+n*S,E=s*_-i*C+a*S,T=l*M-f*b+u*y,A=p*M-d*b+g*y;return c*v-o*E+m*T-h*A}function Rn(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=e[9],p=e[10],d=e[11],g=e[12],m=e[13],y=e[14],b=e[15],M=r[0],S=r[1],C=r[2],_=r[3];return t[0]=M*n+S*a+C*u+_*g,t[1]=M*o+S*c+C*h+_*m,t[2]=M*s+S*l+C*p+_*y,t[3]=M*i+S*f+C*d+_*b,M=r[4],S=r[5],C=r[6],_=r[7],t[4]=M*n+S*a+C*u+_*g,t[5]=M*o+S*c+C*h+_*m,t[6]=M*s+S*l+C*p+_*y,t[7]=M*i+S*f+C*d+_*b,M=r[8],S=r[9],C=r[10],_=r[11],t[8]=M*n+S*a+C*u+_*g,t[9]=M*o+S*c+C*h+_*m,t[10]=M*s+S*l+C*p+_*y,t[11]=M*i+S*f+C*d+_*b,M=r[12],S=r[13],C=r[14],_=r[15],t[12]=M*n+S*a+C*u+_*g,t[13]=M*o+S*c+C*h+_*m,t[14]=M*s+S*l+C*p+_*y,t[15]=M*i+S*f+C*d+_*b,t}function Oa(t,e,r){let n=r[0],o=r[1],s=r[2],i,a,c,l,f,u,h,p,d,g,m,y;return e===t?(t[12]=e[0]*n+e[4]*o+e[8]*s+e[12],t[13]=e[1]*n+e[5]*o+e[9]*s+e[13],t[14]=e[2]*n+e[6]*o+e[10]*s+e[14],t[15]=e[3]*n+e[7]*o+e[11]*s+e[15]):(i=e[0],a=e[1],c=e[2],l=e[3],f=e[4],u=e[5],h=e[6],p=e[7],d=e[8],g=e[9],m=e[10],y=e[11],t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=h,t[7]=p,t[8]=d,t[9]=g,t[10]=m,t[11]=y,t[12]=i*n+f*o+d*s+e[12],t[13]=a*n+u*o+g*s+e[13],t[14]=c*n+h*o+m*s+e[14],t[15]=l*n+p*o+y*s+e[15]),t}function Ua(t,e,r){let n=r[0],o=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Da(t,e,r,n){let o=n[0],s=n[1],i=n[2],a=Math.sqrt(o*o+s*s+i*i),c,l,f,u,h,p,d,g,m,y,b,M,S,C,_,v,E,T,A,B,L,F,w,D;return a<1e-6?null:(a=1/a,o*=a,s*=a,i*=a,l=Math.sin(r),c=Math.cos(r),f=1-c,u=e[0],h=e[1],p=e[2],d=e[3],g=e[4],m=e[5],y=e[6],b=e[7],M=e[8],S=e[9],C=e[10],_=e[11],v=o*o*f+c,E=s*o*f+i*l,T=i*o*f-s*l,A=o*s*f-i*l,B=s*s*f+c,L=i*s*f+o*l,F=o*i*f+s*l,w=s*i*f-o*l,D=i*i*f+c,t[0]=u*v+g*E+M*T,t[1]=h*v+m*E+S*T,t[2]=p*v+y*E+C*T,t[3]=d*v+b*E+_*T,t[4]=u*A+g*B+M*L,t[5]=h*A+m*B+S*L,t[6]=p*A+y*B+C*L,t[7]=d*A+b*B+_*L,t[8]=u*F+g*w+M*D,t[9]=h*F+m*w+S*D,t[10]=p*F+y*w+C*D,t[11]=d*F+b*w+_*D,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function Ga(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[4],i=e[5],a=e[6],c=e[7],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*o+l*n,t[5]=i*o+f*n,t[6]=a*o+u*n,t[7]=c*o+h*n,t[8]=l*o-s*n,t[9]=f*o-i*n,t[10]=u*o-a*n,t[11]=h*o-c*n,t}function Va(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o-l*n,t[1]=i*o-f*n,t[2]=a*o-u*n,t[3]=c*o-h*n,t[8]=s*n+l*o,t[9]=i*n+f*o,t[10]=a*n+u*o,t[11]=c*n+h*o,t}function Ha(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[4],f=e[5],u=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o+l*n,t[1]=i*o+f*n,t[2]=a*o+u*n,t[3]=c*o+h*n,t[4]=l*o-s*n,t[5]=f*o-i*n,t[6]=u*o-a*n,t[7]=h*o-c*n,t}function cT(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function lT(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function fT(t,e,r){let n=r[0],o=r[1],s=r[2],i=Math.sqrt(n*n+o*o+s*s),a,c,l;return i<1e-6?null:(i=1/i,n*=i,o*=i,s*=i,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=o*n*l+s*c,t[2]=s*n*l-o*c,t[3]=0,t[4]=n*o*l-s*c,t[5]=o*o*l+a,t[6]=s*o*l+n*c,t[7]=0,t[8]=n*s*l+o*c,t[9]=o*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function uT(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function hT(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function pT(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Mh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=n+n,c=o+o,l=s+s,f=n*a,u=n*c,h=n*l,p=o*c,d=o*l,g=s*l,m=i*a,y=i*c,b=i*l;return t[0]=1-(p+g),t[1]=u+b,t[2]=h-y,t[3]=0,t[4]=u-b,t[5]=1-(f+g),t[6]=d+m,t[7]=0,t[8]=h+y,t[9]=d-m,t[10]=1-(f+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function dT(t,e){let r=new te(3),n=-e[0],o=-e[1],s=-e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=n*n+o*o+s*s+i*i;return u>0?(r[0]=(a*i+f*n+c*s-l*o)*2/u,r[1]=(c*i+f*o+l*n-a*s)*2/u,r[2]=(l*i+f*s+a*o-c*n)*2/u):(r[0]=(a*i+f*n+c*s-l*o)*2,r[1]=(c*i+f*o+l*n-a*s)*2,r[2]=(l*i+f*s+a*o-c*n)*2),Mh(t,e,r),t}function mT(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Sh(t,e){let r=e[0],n=e[1],o=e[2],s=e[4],i=e[5],a=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.sqrt(r*r+n*n+o*o),t[1]=Math.sqrt(s*s+i*i+a*a),t[2]=Math.sqrt(c*c+l*l+f*f),t}function gT(t,e){let r=new te(3);Sh(r,e);let n=1/r[0],o=1/r[1],s=1/r[2],i=e[0]*n,a=e[1]*o,c=e[2]*s,l=e[4]*n,f=e[5]*o,u=e[6]*s,h=e[8]*n,p=e[9]*o,d=e[10]*s,g=i+f+d,m=0;return g>0?(m=Math.sqrt(g+1)*2,t[3]=.25*m,t[0]=(u-p)/m,t[1]=(h-c)/m,t[2]=(a-l)/m):i>f&&i>d?(m=Math.sqrt(1+i-f-d)*2,t[3]=(u-p)/m,t[0]=.25*m,t[1]=(a+l)/m,t[2]=(h+c)/m):f>d?(m=Math.sqrt(1+f-i-d)*2,t[3]=(h-c)/m,t[0]=(a+l)/m,t[1]=.25*m,t[2]=(u+p)/m):(m=Math.sqrt(1+d-i-f)*2,t[3]=(a-l)/m,t[0]=(h+c)/m,t[1]=(u+p)/m,t[2]=.25*m),t}function AT(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let o=n[0],s=n[1],i=n[2],a=n[4],c=n[5],l=n[6],f=n[8],u=n[9],h=n[10];r[0]=Math.sqrt(o*o+s*s+i*i),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(f*f+u*u+h*h);let p=1/r[0],d=1/r[1],g=1/r[2],m=o*p,y=s*d,b=i*g,M=a*p,S=c*d,C=l*g,_=f*p,v=u*d,E=h*g,T=m+S+E,A=0;return T>0?(A=Math.sqrt(T+1)*2,t[3]=.25*A,t[0]=(C-v)/A,t[1]=(_-b)/A,t[2]=(y-M)/A):m>S&&m>E?(A=Math.sqrt(1+m-S-E)*2,t[3]=(C-v)/A,t[0]=.25*A,t[1]=(y+M)/A,t[2]=(_+b)/A):S>E?(A=Math.sqrt(1+S-m-E)*2,t[3]=(_-b)/A,t[0]=(y+M)/A,t[1]=.25*A,t[2]=(C+v)/A):(A=Math.sqrt(1+E-m-S)*2,t[3]=(y-M)/A,t[0]=(_+b)/A,t[1]=(C+v)/A,t[2]=.25*A),t}function xT(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=o+o,l=s+s,f=i+i,u=o*c,h=o*l,p=o*f,d=s*l,g=s*f,m=i*f,y=a*c,b=a*l,M=a*f,S=n[0],C=n[1],_=n[2];return t[0]=(1-(d+m))*S,t[1]=(h+M)*S,t[2]=(p-b)*S,t[3]=0,t[4]=(h-M)*C,t[5]=(1-(u+m))*C,t[6]=(g+y)*C,t[7]=0,t[8]=(p+b)*_,t[9]=(g-y)*_,t[10]=(1-(u+d))*_,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function yT(t,e,r,n,o){let s=e[0],i=e[1],a=e[2],c=e[3],l=s+s,f=i+i,u=a+a,h=s*l,p=s*f,d=s*u,g=i*f,m=i*u,y=a*u,b=c*l,M=c*f,S=c*u,C=n[0],_=n[1],v=n[2],E=o[0],T=o[1],A=o[2],B=(1-(g+y))*C,L=(p+S)*C,F=(d-M)*C,w=(p-S)*_,D=(1-(h+y))*_,W=(m+b)*_,z=(d+M)*v,re=(m-b)*v,Y=(1-(h+g))*v;return t[0]=B,t[1]=L,t[2]=F,t[3]=0,t[4]=w,t[5]=D,t[6]=W,t[7]=0,t[8]=z,t[9]=re,t[10]=Y,t[11]=0,t[12]=r[0]+E-(B*E+w*T+z*A),t[13]=r[1]+T-(L*E+D*T+re*A),t[14]=r[2]+A-(F*E+W*T+Y*A),t[15]=1,t}function za(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,g=s*i,m=s*a,y=s*c;return t[0]=1-u-d,t[1]=f+y,t[2]=h-m,t[3]=0,t[4]=f-y,t[5]=1-l-d,t[6]=p+g,t[7]=0,t[8]=h+m,t[9]=p-g,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ka(t,e,r,n,o,s,i){let a=1/(r-e),c=1/(o-n),l=1/(s-i);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(o+n)*c,t[10]=(i+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*l,t[15]=0,t}function Eh(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=(o+n)*i,t[14]=2*o*n*i}else t[10]=-1,t[14]=-2*n;return t}var ja=Eh;function bT(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=o*i,t[14]=o*n*i}else t[10]=-1,t[14]=-n;return t}function TT(t,e,r,n){let o=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(i+a),l=2/(o+s);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((i-a)*c*.5),t[9]=(o-s)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function _h(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=(i+s)*l,t[15]=1,t}var qa=_h;function MT(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=s*l,t[15]=1,t}function Ja(t,e,r,n){let o,s,i,a,c,l,f,u,h,p,d=e[0],g=e[1],m=e[2],y=n[0],b=n[1],M=n[2],S=r[0],C=r[1],_=r[2];return Math.abs(d-S)<1e-6&&Math.abs(g-C)<1e-6&&Math.abs(m-_)<1e-6?Th(t):(u=d-S,h=g-C,p=m-_,o=1/Math.sqrt(u*u+h*h+p*p),u*=o,h*=o,p*=o,s=b*p-M*h,i=M*u-y*p,a=y*h-b*u,o=Math.sqrt(s*s+i*i+a*a),o?(o=1/o,s*=o,i*=o,a*=o):(s=0,i=0,a=0),c=h*a-p*i,l=p*s-u*a,f=u*i-h*s,o=Math.sqrt(c*c+l*l+f*f),o?(o=1/o,c*=o,l*=o,f*=o):(c=0,l=0,f=0),t[0]=s,t[1]=c,t[2]=u,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=a,t[9]=f,t[10]=p,t[11]=0,t[12]=-(s*d+i*g+a*m),t[13]=-(c*d+l*g+f*m),t[14]=-(u*d+h*g+p*m),t[15]=1,t)}function ST(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=n[0],c=n[1],l=n[2],f=o-r[0],u=s-r[1],h=i-r[2],p=f*f+u*u+h*h;p>0&&(p=1/Math.sqrt(p),f*=p,u*=p,h*=p);let d=c*h-l*u,g=l*f-a*h,m=a*u-c*f;return p=d*d+g*g+m*m,p>0&&(p=1/Math.sqrt(p),d*=p,g*=p,m*=p),t[0]=d,t[1]=g,t[2]=m,t[3]=0,t[4]=u*m-h*g,t[5]=h*d-f*m,t[6]=f*g-u*d,t[7]=0,t[8]=f,t[9]=u,t[10]=h,t[11]=0,t[12]=o,t[13]=s,t[14]=i,t[15]=1,t}function ET(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function _T(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function CT(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function Ch(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function BT(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function IT(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function vT(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function RT(t,e){let r=t[0],n=t[1],o=t[2],s=t[3],i=t[4],a=t[5],c=t[6],l=t[7],f=t[8],u=t[9],h=t[10],p=t[11],d=t[12],g=t[13],m=t[14],y=t[15],b=e[0],M=e[1],S=e[2],C=e[3],_=e[4],v=e[5],E=e[6],T=e[7],A=e[8],B=e[9],L=e[10],F=e[11],w=e[12],D=e[13],W=e[14],z=e[15];return Math.abs(r-b)<=1e-6*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(n-M)<=1e-6*Math.max(1,Math.abs(n),Math.abs(M))&&Math.abs(o-S)<=1e-6*Math.max(1,Math.abs(o),Math.abs(S))&&Math.abs(s-C)<=1e-6*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(i-_)<=1e-6*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(a-v)<=1e-6*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(c-E)<=1e-6*Math.max(1,Math.abs(c),Math.abs(E))&&Math.abs(l-T)<=1e-6*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(f-A)<=1e-6*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(u-B)<=1e-6*Math.max(1,Math.abs(u),Math.abs(B))&&Math.abs(h-L)<=1e-6*Math.max(1,Math.abs(h),Math.abs(L))&&Math.abs(p-F)<=1e-6*Math.max(1,Math.abs(p),Math.abs(F))&&Math.abs(d-w)<=1e-6*Math.max(1,Math.abs(d),Math.abs(w))&&Math.abs(g-D)<=1e-6*Math.max(1,Math.abs(g),Math.abs(D))&&Math.abs(m-W)<=1e-6*Math.max(1,Math.abs(m),Math.abs(W))&&Math.abs(y-z)<=1e-6*Math.max(1,Math.abs(y),Math.abs(z))}var wT=Rn,LT=Ch;function FT(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Bh(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function Ih(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function vh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return Math.sqrt(e*e+r*r+n*n+o*o)}function Rh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function wh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function Lh(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Fh(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function Ph(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3];return t[0]=r[0]*n+r[4]*o+r[8]*s+r[12]*i,t[1]=r[1]*n+r[5]*o+r[9]*s+r[13]*i,t[2]=r[2]*n+r[6]*o+r[10]*s+r[14]*i,t[3]=r[3]*n+r[7]*o+r[11]*s+r[15]*i,t}function Nh(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2],l=r[3],f=l*n+a*s-c*o,u=l*o+c*n-i*s,h=l*s+i*o-a*n,p=-i*n-a*o-c*s;return t[0]=f*l+p*-i+u*-c-h*-a,t[1]=u*l+p*-a+h*-i-f*-c,t[2]=h*l+p*-c+f*-a-u*-i,t[3]=e[3],t}var Vw=function(){let t=FT();return function(e,r,n,o,s,i){let a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var Xa;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(Xa||(Xa={}));var NT=45*Math.PI/180,OT=1,Wa=.1,Ka=500,UT=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),N=class extends Ur{static get IDENTITY(){return GT()}static get ZERO(){return DT()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Xa}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this[9]=f,this[10]=u,this[11]=h,this[12]=p,this[13]=d,this[14]=g,this[15]=m,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=i,this[6]=f,this[7]=d,this[8]=n,this[9]=a,this[10]=u,this[11]=g,this[12]=o,this[13]=c,this[14]=h,this[15]=m,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(UT)}fromObject(e){return this.check()}fromQuaternion(e){return za(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:o,top:s,near:i=Wa,far:a=Ka}=e;return a===1/0?VT(this,r,n,o,s,i):ka(this,r,n,o,s,i,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:o=[0,1,0]}=e;return Ja(this,r,n,o),this.check()}ortho(e){let{left:r,right:n,bottom:o,top:s,near:i=Wa,far:a=Ka}=e;return qa(this,r,n,o,s,i,a),this.check()}orthographic(e){let{fovy:r=NT,aspect:n=OT,focalDistance:o=1,near:s=Wa,far:i=Ka}=e;Oh(r);let a=r/2,c=o*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:i})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:o=.1,far:s=500}=e;return Oh(r),ja(this,r,n,o,s),this.check()}determinant(){return Na(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*o,e[5]=this[5]*s,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*o,e[9]=this[9]*s,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=this[4]*o,e[4]=this[5]*s,e[5]=this[6]*i,e[6]=this[8]*o,e[7]=this[9]*s,e[8]=this[10]*i,e}transpose(){return Fa(this,this),this.check()}invert(){return Pa(this,this),this.check()}multiplyLeft(e){return Rn(this,e,this),this.check()}multiplyRight(e){return Rn(this,this,e),this.check()}rotateX(e){return Ga(this,this,e),this.check()}rotateY(e){return Va(this,this,e),this.check()}rotateZ(e){return Ha(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return Da(this,this,e,r),this.check()}scale(e){return Ua(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return Oa(this,this,e),this.check()}transform(e,r){return e.length===4?(r=Ph(r||[-0,-0,-0,-0],e,this),It(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,o;switch(n){case 2:o=ls(r||[-0,-0],e,this);break;case 3:o=Zt(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(o,e.length),o}transformAsVector(e,r){let n;switch(e.length){case 2:n=fs(r||[-0,-0],e,this);break;case 3:n=us(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},ys,bs;function DT(){return ys||(ys=new N([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(ys)),ys}function GT(){return bs||(bs=new N,Object.freeze(bs)),bs}function Oh(t){if(t>Math.PI*2)throw Error("expected radians")}function VT(t,e,r,n,o,s){let i=2*s/(r-e),a=2*s/(o-n),c=(r+e)/(r-e),l=(o+n)/(o-n),f=-1,u=-1,h=-2*s;return t[0]=i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=f,t[11]=u,t[12]=0,t[13]=0,t[14]=h,t[15]=0,t}function Uh(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Dh(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Ya(t,e,r){r=r*.5;let n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function Qa(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Gh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Vh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function Hh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function zh(t,e){let r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function Ln(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,g,m;return h=o*c+s*l+i*f+a*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>1e-6?(p=Math.acos(h),m=Math.sin(p),d=Math.sin((1-n)*p)/m,g=Math.sin(n*p)/m):(d=1-n,g=n),t[0]=d*o+g*c,t[1]=d*s+g*l,t[2]=d*i+g*f,t[3]=d*a+g*u,t}function kh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function jh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Za(t,e){let r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);let s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}var qh=Bh;var Jh=Ih,Wh=Lh,Kh=Fh,Xh=vh;var Yh=Rh;var Qh=wh;var Zh=function(){let t=ps(),e=ds(1,0,0),r=ds(0,1,0);return function(n,o,s){let i=Bn(o,s);return i<-.999999?(Qt(t,e,o),Ia(t)<1e-6&&Qt(t,r,o),Sa(t,t),Ya(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Qt(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,Qh(n,n))}}(),eL=function(){let t=Uh(),e=Uh();return function(r,n,o,s,i,a){return Ln(t,n,i,a),Ln(e,o,s,a),Ln(r,t,e,2*a*(1-a)),r}}(),tL=function(){let t=dh();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Qh(e,Za(e,t))}}();var HT=[0,0,0,1],st=class extends Bt{constructor(e=0,r=0,n=0,o=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,o)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return Za(this,e),this.check()}fromAxisRotation(e,r){return Ya(this,e,r),this.check()}identity(){return Dh(this),this.check()}setAxisAngle(e,r){return this.fromAxisRotation(e,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}len(){return Xh(this)}lengthSquared(){return Yh(this)}dot(e){return Wh(this,e)}rotationTo(e,r){return Zh(this,e,r),this.check()}add(e){return qh(this,this,e),this.check()}calculateW(){return zh(this,this),this.check()}conjugate(){return jh(this,this),this.check()}invert(){return kh(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(Kh(this,e,r,n),this.check())}multiplyRight(e){return Qa(this,this,e),this.check()}multiplyLeft(e){return Qa(this,e,this),this.check()}normalize(){let e=this.len(),r=e>0?1/e:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,e===0&&(this[3]=1),this.check()}rotateX(e){return Gh(this,this,e),this.check()}rotateY(e){return Vh(this,this,e),this.check()}rotateZ(e){return Hh(this,this,e),this.check()}scale(e){return Jh(this,this,e),this.check()}slerp(e,r,n){let o,s,i;switch(arguments.length){case 1:({start:o=HT,target:s,ratio:i}=e);break;case 2:o=this,s=e,i=r;break;default:o=e,s=r,i=n}return Ln(this,o,s,i),this.check()}transformVector4(e,r=new Or){return Nh(r,e,this),It(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,r){return this.setAxisAngle(e,r)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}};var Ge={};be(Ge,{EPSILON1:()=>zT,EPSILON10:()=>QT,EPSILON11:()=>ZT,EPSILON12:()=>$T,EPSILON13:()=>eM,EPSILON14:()=>tM,EPSILON15:()=>rM,EPSILON16:()=>nM,EPSILON17:()=>oM,EPSILON18:()=>sM,EPSILON19:()=>iM,EPSILON2:()=>kT,EPSILON20:()=>aM,EPSILON3:()=>jT,EPSILON4:()=>qT,EPSILON5:()=>JT,EPSILON6:()=>WT,EPSILON7:()=>KT,EPSILON8:()=>XT,EPSILON9:()=>YT,PI_OVER_FOUR:()=>lM,PI_OVER_SIX:()=>fM,PI_OVER_TWO:()=>cM,TWO_PI:()=>uM});var zT=.1,kT=.01,jT=.001,qT=1e-4,JT=1e-5,WT=1e-6,KT=1e-7,XT=1e-8,YT=1e-9,QT=1e-10,ZT=1e-11,$T=1e-12,eM=1e-13,tM=1e-14,rM=1e-15,nM=1e-16,oM=1e-17,sM=1e-18,iM=1e-19,aM=1e-20,cM=Math.PI/2,lM=Math.PI/4,fM=Math.PI/6,uM=Math.PI*2;function Ts(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let n=r[0]-e;n>180?r[0]-=360:n<-180&&(r[0]+=360)}}function hM(t,e,r){let[n,o]=(0,Fn.cellToLatLng)(t),s=e.length;Ts(e,o);let i=e[0]===e[s-1]?s-1:s;for(let a=0;a<i;a++)e[a][0]=Ct(o,e[a][0],r),e[a][1]=Ct(n,e[a][1],r)}function $h(t,e,r){let n=t(e,r),[o,s]=(0,Fn.cellToLatLng)(n);return[s,o]}function $a(t,e=1){let r=(0,Fn.cellToBoundary)(t,!0);return e!==1?hM(t,r,e):Ts(r),r}function Ms(t){let e=new Float64Array(t.length*2),r=0;for(let n of t)e[r++]=n[0],e[r++]=n[1];return e}var pM={getPentagon:{type:"accessor",value:t=>t.pentagon}},Pn=class extends De{indexToBounds(){let{data:e,getPentagon:r}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(n,o)=>{let s=r(n,o),i=Qu(typeof s=="string"?Zu(s):s,{closedRing:!0,segments:"auto"});return Ms(i)}}}};Pn.layerName="A5Layer";Pn.defaultProps=pM;var ep=Pn;var fr=U(Xe(),1),td=U(Ke(),1),rd=U(er(),1);function dM(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function Ss(t){if(Array.isArray(t))return t.map(e=>Ss(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[dM(r)]=Ss(n);return e}return t}var rp=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",mM=rp+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",gM="["+rp+"]["+mM+"]*",AM=new RegExp("^"+gM+"$");function Es(t,e){let r=[],n=e.exec(t);for(;n;){let o=[];o.startIndex=e.lastIndex-n[0].length;let s=n.length;for(let i=0;i<s;i++)o.push(n[i]);r.push(o),n=e.exec(t)}return r}var Dr=function(t){let e=AM.exec(t);return!(e===null||typeof e>"u")};function np(t){return typeof t<"u"}var Nn=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],_s=["__proto__","constructor","prototype"];var xM={allowBooleanAttributes:!1,unpairedTags:[]};function cp(t,e){e=Object.assign({},xM,e);let r=[],n=!1,o=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let s=0;s<t.length;s++)if(t[s]==="<"&&t[s+1]==="?"){if(s+=2,s=sp(t,s),s.err)return s}else if(t[s]==="<"){let i=s;if(s++,t[s]==="!"){s=ip(t,s);continue}else{let a=!1;t[s]==="/"&&(a=!0,s++);let c="";for(;s<t.length&&t[s]!==">"&&t[s]!==" "&&t[s]!==" "&&t[s]!==`
|
|
8
|
+
`&&t[s]!=="\r";s++)c+=t[s];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),s--),!CM(c)){let u;return c.trim().length===0?u="Invalid space after '<'.":u="Tag '"+c+"' is an invalid name.",se("InvalidTag",u,Ce(t,s))}let l=TM(t,s);if(l===!1)return se("InvalidAttr","Attributes for '"+c+"' have open quote.",Ce(t,s));let f=l.value;if(s=l.index,f[f.length-1]==="/"){let u=s-f.length;f=f.substring(0,f.length-1);let h=ap(f,e);if(h===!0)n=!0;else return se(h.err.code,h.err.msg,Ce(t,u+h.err.line))}else if(a)if(l.tagClosed){if(f.trim().length>0)return se("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",Ce(t,i));if(r.length===0)return se("InvalidTag","Closing tag '"+c+"' has not been opened.",Ce(t,i));{let u=r.pop();if(c!==u.tagName){let h=Ce(t,u.tagStartPos);return se("InvalidTag","Expected closing tag '"+u.tagName+"' (opened in line "+h.line+", col "+h.col+") instead of closing tag '"+c+"'.",Ce(t,i))}r.length==0&&(o=!0)}}else return se("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",Ce(t,s));else{let u=ap(f,e);if(u!==!0)return se(u.err.code,u.err.msg,Ce(t,s-f.length+u.err.line));if(o===!0)return se("InvalidXml","Multiple possible root nodes found.",Ce(t,s));e.unpairedTags.indexOf(c)!==-1||r.push({tagName:c,tagStartPos:i}),n=!0}for(s++;s<t.length;s++)if(t[s]==="<")if(t[s+1]==="!"){s++,s=ip(t,s);continue}else if(t[s+1]==="?"){if(s=sp(t,++s),s.err)return s}else break;else if(t[s]==="&"){let u=EM(t,s);if(u==-1)return se("InvalidChar","char '&' is not expected.",Ce(t,s));s=u}else if(o===!0&&!op(t[s]))return se("InvalidXml","Extra text at the end",Ce(t,s));t[s]==="<"&&s--}}else{if(op(t[s]))continue;return se("InvalidChar","char '"+t[s]+"' is not expected.",Ce(t,s))}if(n){if(r.length==1)return se("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",Ce(t,r[0].tagStartPos));if(r.length>0)return se("InvalidXml","Invalid '"+JSON.stringify(r.map(s=>s.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return se("InvalidXml","Start tag expected.",1);return!0}function op(t){return t===" "||t===" "||t===`
|
|
9
|
+
`||t==="\r"}function sp(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let n=t.substr(r,e-r);if(e>5&&n==="xml")return se("InvalidXml","XML declaration allowed only at the start of the document.",Ce(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function ip(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var yM='"',bM="'";function TM(t,e){let r="",n="",o=!1;for(;e<t.length;e++){if(t[e]===yM||t[e]===bM)n===""?n=t[e]:n!==t[e]||(n="");else if(t[e]===">"&&n===""){o=!0;break}r+=t[e]}return n!==""?!1:{value:r,index:e,tagClosed:o}}var MM=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function ap(t,e){let r=Es(t,MM),n={};for(let o=0;o<r.length;o++){if(r[o][1].length===0)return se("InvalidAttr","Attribute '"+r[o][2]+"' has no space in starting.",On(r[o]));if(r[o][3]!==void 0&&r[o][4]===void 0)return se("InvalidAttr","Attribute '"+r[o][2]+"' is without value.",On(r[o]));if(r[o][3]===void 0&&!e.allowBooleanAttributes)return se("InvalidAttr","boolean attribute '"+r[o][2]+"' is not allowed.",On(r[o]));let s=r[o][2];if(!_M(s))return se("InvalidAttr","Attribute '"+s+"' is an invalid name.",On(r[o]));if(!Object.prototype.hasOwnProperty.call(n,s))n[s]=1;else return se("InvalidAttr","Attribute '"+s+"' is repeated.",On(r[o]))}return!0}function SM(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function EM(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,SM(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function se(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function _M(t){return Dr(t)}function CM(t){return Dr(t)}function Ce(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function On(t){return t.startIndex+t[1].length}var lp=t=>Nn.includes(t)?"__"+t:t,BM={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:lp};function IM(t,e){if(typeof t!="string")return;let r=t.toLowerCase();if(Nn.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);if(_s.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`)}function fp(t){return typeof t=="boolean"?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:typeof t=="object"&&t!==null?{enabled:t.enabled!==!1,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??1e3),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:fp(!0)}var up=function(t){let e=Object.assign({},BM,t),r=[{value:e.attributeNamePrefix,name:"attributeNamePrefix"},{value:e.attributesGroupName,name:"attributesGroupName"},{value:e.textNodeName,name:"textNodeName"},{value:e.cdataPropName,name:"cdataPropName"},{value:e.commentPropName,name:"commentPropName"}];for(let{value:n,name:o}of r)n&&IM(n,o);return e.onDangerousProperty===null&&(e.onDangerousProperty=lp),e.processEntities=fp(e.processEntities),e.unpairedTagsSet=new Set(e.unpairedTags),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(n=>typeof n=="string"&&n.startsWith("*.")?".."+n.substring(2):n)),e};var Cs;typeof Symbol!="function"?Cs="@@xmlMetadata":Cs=Symbol("XML Node Metadata");var ve=class{constructor(e){this.tagname=e,this.child=[],this[":@"]=Object.create(null)}add(e,r){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:r})}addChild(e,r){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,[":@"]:e[":@"]}):this.child.push({[e.tagname]:e.child}),r!==void 0&&(this.child[this.child.length-1][Cs]={startIndex:r})}static getMetaDataSymbol(){return Cs}};var Dn=class{constructor(e){this.suppressValidationErr=!e,this.options=e}readDocType(e,r){let n=Object.create(null),o=0;if(e[r+3]==="O"&&e[r+4]==="C"&&e[r+5]==="T"&&e[r+6]==="Y"&&e[r+7]==="P"&&e[r+8]==="E"){r=r+9;let s=1,i=!1,a=!1,c="";for(;r<e.length;r++)if(e[r]==="<"&&!a){if(i&&tr(e,"!ENTITY",r)){r+=7;let l,f;if([l,f,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),f.indexOf("&")===-1){if(this.options.enabled!==!1&&this.options.maxEntityCount!=null&&o>=this.options.maxEntityCount)throw new Error(`Entity count (${o+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);let u=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n[l]={regx:RegExp(`&${u};`,"g"),val:f},o++}}else if(i&&tr(e,"!ELEMENT",r)){r+=8;let{index:l}=this.readElementExp(e,r+1);r=l}else if(i&&tr(e,"!ATTLIST",r))r+=8;else if(i&&tr(e,"!NOTATION",r)){r+=9;let{index:l}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=l}else if(tr(e,"!--",r))a=!0;else throw new Error("Invalid DOCTYPE");s++,c=""}else if(e[r]===">"){if(a?e[r-1]==="-"&&e[r-2]==="-"&&(a=!1,s--):s--,s===0)break}else e[r]==="["?i=!0:c+=e[r];if(s!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:r}}readEntityExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r])&&e[r]!=='"'&&e[r]!=="'";)r++;let o=e.substring(n,r);if(Un(o),r=Re(e,r),!this.suppressValidationErr){if(e.substring(r,r+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[r]==="%")throw new Error("Parameter entities are not supported")}let s="";if([r,s]=this.readIdentifierVal(e,r,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize!=null&&s.length>this.options.maxEntitySize)throw new Error(`Entity "${o}" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return r--,[o,s,r]}readNotationExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);!this.suppressValidationErr&&Un(o),r=Re(e,r);let s=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&s!=="SYSTEM"&&s!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${s}"`);r+=s.length,r=Re(e,r);let i=null,a=null;if(s==="PUBLIC")[r,i]=this.readIdentifierVal(e,r,"publicIdentifier"),r=Re(e,r),(e[r]==='"'||e[r]==="'")&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"));else if(s==="SYSTEM"&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"),!this.suppressValidationErr&&!a))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:o,publicIdentifier:i,systemIdentifier:a,index:--r}}readIdentifierVal(e,r,n){let o="",s=e[r];if(s!=='"'&&s!=="'")throw new Error(`Expected quoted string, found "${s}"`);r++;let i=r;for(;r<e.length&&e[r]!==s;)r++;if(o=e.substring(i,r),e[r]!==s)throw new Error(`Unterminated ${n} value`);return r++,[r,o]}readElementExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);if(!this.suppressValidationErr&&!Dr(o))throw new Error(`Invalid element name: "${o}"`);r=Re(e,r);let s="";if(e[r]==="E"&&tr(e,"MPTY",r))r+=4;else if(e[r]==="A"&&tr(e,"NY",r))r+=2;else if(e[r]==="("){r++;let i=r;for(;r<e.length&&e[r]!==")";)r++;if(s=e.substring(i,r),e[r]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return{elementName:o,contentModel:s.trim(),index:r}}readAttlistExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);for(Un(o),r=Re(e,r),n=r;r<e.length&&!/\s/.test(e[r]);)r++;let s=e.substring(n,r);if(!Un(s))throw new Error(`Invalid attribute name: "${s}"`);r=Re(e,r);let i="";if(e.substring(r,r+8).toUpperCase()==="NOTATION"){if(i="NOTATION",r+=8,r=Re(e,r),e[r]!=="(")throw new Error(`Expected '(', found "${e[r]}"`);r++;let c=[];for(;r<e.length&&e[r]!==")";){let l=r;for(;r<e.length&&e[r]!=="|"&&e[r]!==")";)r++;let f=e.substring(l,r);if(f=f.trim(),!Un(f))throw new Error(`Invalid notation name: "${f}"`);c.push(f),e[r]==="|"&&(r++,r=Re(e,r))}if(e[r]!==")")throw new Error("Unterminated list of notations");r++,i+=" ("+c.join("|")+")"}else{let c=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;i+=e.substring(c,r);let l=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!l.includes(i.toUpperCase()))throw new Error(`Invalid attribute type: "${i}"`)}r=Re(e,r);let a="";return e.substring(r,r+8).toUpperCase()==="#REQUIRED"?(a="#REQUIRED",r+=8):e.substring(r,r+7).toUpperCase()==="#IMPLIED"?(a="#IMPLIED",r+=7):[r,a]=this.readIdentifierVal(e,r,"ATTLIST"),{elementName:o,attributeName:s,attributeType:i,defaultValue:a,index:r}}},Re=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function tr(t,e,r){for(let n=0;n<e.length;n++)if(e[n]!==t[r+n+1])return!1;return!0}function Un(t){if(Dr(t))return t;throw new Error(`Invalid entity name ${t}`)}var vM=/^[-+]?0x[a-fA-F0-9]+$/,RM=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,wM={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original"};function ec(t,e={}){if(e=Object.assign({},wM,e),!t||typeof t!="string")return t;let r=t.trim();if(r.length===0)return t;if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(r==="0")return 0;if(e.hex&&vM.test(r))return NM(r,16);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return FM(t,r,e);{let n=RM.exec(r);if(n){let o=n[1]||"",s=n[2],i=PM(n[3]),a=o?t[s.length+1]===".":t[s.length]===".";if(!e.leadingZeros&&(s.length>1||s.length===1&&!a))return t;{let c=Number(r),l=String(c);if(c===0)return c;if(l.search(/[eE]/)!==-1)return e.eNotation?c:t;if(r.indexOf(".")!==-1)return l==="0"||l===i||l===`${o}${i}`?c:t;let f=s?i:r;return s?f===l||o+f===l?c:t:f===l||f===o+l?c:t}}else return t}}else return OM(t,Number(r),e)}var LM=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function FM(t,e,r){if(!r.eNotation)return t;let n=e.match(LM);if(n){let o=n[1]||"",s=n[3].indexOf("e")===-1?"E":"e",i=n[2],a=o?t[i.length+1]===s:t[i.length]===s;return i.length>1&&a?t:i.length===1&&(n[3].startsWith(`.${s}`)||n[3][0]===s)?Number(e):i.length>0?r.leadingZeros&&!a?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}else return t}function PM(t){return t&&t.indexOf(".")!==-1&&(t=t.replace(/0+$/,""),t==="."?t="0":t[0]==="."?t="0"+t:t[t.length-1]==="."&&(t=t.substring(0,t.length-1))),t}function NM(t,e){if(parseInt)return parseInt(t,e);if(Number.parseInt)return Number.parseInt(t,e);if(window&&window.parseInt)return window.parseInt(t,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function OM(t,e,r){let n=e===1/0;switch(r.infinity.toLowerCase()){case"null":return null;case"infinity":return e;case"string":return n?"Infinity":"-Infinity";case"original":default:return t}}function tc(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var rr=class{constructor(e,r={},n){this.pattern=e,this.separator=r.separator||".",this.segments=this._parse(e),this.data=n,this._hasDeepWildcard=this.segments.some(o=>o.type==="deep-wildcard"),this._hasAttributeCondition=this.segments.some(o=>o.attrName!==void 0),this._hasPositionSelector=this.segments.some(o=>o.position!==void 0)}_parse(e){let r=[],n=0,o="";for(;n<e.length;)e[n]===this.separator?n+1<e.length&&e[n+1]===this.separator?(o.trim()&&(r.push(this._parseSegment(o.trim())),o=""),r.push({type:"deep-wildcard"}),n+=2):(o.trim()&&r.push(this._parseSegment(o.trim())),o="",n++):(o+=e[n],n++);return o.trim()&&r.push(this._parseSegment(o.trim())),r}_parseSegment(e){let r={type:"tag"},n=null,o=e,s=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(s&&(o=s[1]+s[3],s[2])){let f=s[2].slice(1,-1);f&&(n=f)}let i,a=o;if(o.includes("::")){let f=o.indexOf("::");if(i=o.substring(0,f).trim(),a=o.substring(f+2).trim(),!i)throw new Error(`Invalid namespace in pattern: ${e}`)}let c,l=null;if(a.includes(":")){let f=a.lastIndexOf(":"),u=a.substring(0,f).trim(),h=a.substring(f+1).trim();["first","last","odd","even"].includes(h)||/^nth\(\d+\)$/.test(h)?(c=u,l=h):c=a}else c=a;if(!c)throw new Error(`Invalid segment pattern: ${e}`);if(r.tag=c,i&&(r.namespace=i),n)if(n.includes("=")){let f=n.indexOf("=");r.attrName=n.substring(0,f).trim(),r.attrValue=n.substring(f+1).trim()}else r.attrName=n.trim();if(l){let f=l.match(/^nth\((\d+)\)$/);f?(r.position="nth",r.positionValue=parseInt(f[1],10)):r.position=l}return r}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}};var Gr=class{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._patterns=new Set,this._sealed=!1}add(e){if(this._sealed)throw new TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(e.pattern))return this;if(this._patterns.add(e.pattern),e.hasDeepWildcard())return this._deepWildcards.push(e),this;let r=e.length,o=e.segments[e.segments.length-1]?.tag;if(!o||o==="*")this._wildcardByDepth.has(r)||this._wildcardByDepth.set(r,[]),this._wildcardByDepth.get(r).push(e);else{let s=`${r}:${o}`;this._byDepthAndTag.has(s)||this._byDepthAndTag.set(s,[]),this._byDepthAndTag.get(s).push(e)}return this}addAll(e){for(let r of e)this.add(r);return this}has(e){return this._patterns.has(e.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(e){return this.findMatch(e)!==null}findMatch(e){let r=e.getDepth(),n=e.getCurrentTag(),o=`${r}:${n}`,s=this._byDepthAndTag.get(o);if(s){for(let a=0;a<s.length;a++)if(e.matches(s[a]))return s[a]}let i=this._wildcardByDepth.get(r);if(i){for(let a=0;a<i.length;a++)if(e.matches(i[a]))return i[a]}for(let a=0;a<this._deepWildcards.length;a++)if(e.matches(this._deepWildcards[a]))return this._deepWildcards[a];return null}};var UM=new Set(["push","pop","reset","updateCurrent","restore"]),Vr=class{constructor(e={}){this.separator=e.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null}push(e,r=null,n=null){if(this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path.length>0){let f=this.path[this.path.length-1];f.values=void 0}let o=this.path.length;this.siblingStacks[o]||(this.siblingStacks[o]=new Map);let s=this.siblingStacks[o],i=n?`${n}:${e}`:e,a=s.get(i)||0,c=0;for(let f of s.values())c+=f;s.set(i,a+1);let l={tag:e,position:c,counter:a};n!=null&&(l.namespace=n),r!=null&&(l.values=r),this.path.push(l)}pop(){if(this.path.length===0)return;this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null;let e=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),e}updateCurrent(e){if(this.path.length>0){let r=this.path[this.path.length-1];e!=null&&(r.values=e,this._frozenPathCache=null)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(e){return this.path.length===0?void 0:this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return!1;let r=this.path[this.path.length-1];return r.values!==void 0&&e in r.values}getPosition(){return this.path.length===0?-1:this.path[this.path.length-1].position??0}getCounter(){return this.path.length===0?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(e,r=!0){let n=e||this.separator;if(n===this.separator&&r===!0){if(this._pathStringCache!==null&&this._pathStringCache!==void 0)return this._pathStringCache;let s=this.path.map(i=>r&&i.namespace?`${i.namespace}:${i.tag}`:i.tag).join(n);return this._pathStringCache=s,s}return this.path.map(s=>r&&s.namespace?`${s.namespace}:${s.tag}`:s.tag).join(n)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=[],this.siblingStacks=[]}matches(e){let r=e.segments;return r.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(r):this._matchSimple(r)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let r=0;r<e.length;r++){let n=e[r],o=this.path[r],s=r===this.path.length-1;if(!this._matchSegment(n,o,s))return!1}return!0}_matchWithDeepWildcard(e){let r=this.path.length-1,n=e.length-1;for(;n>=0&&r>=0;){let o=e[n];if(o.type==="deep-wildcard"){if(n--,n<0)return!0;let s=e[n],i=!1;for(let a=r;a>=0;a--){let c=a===this.path.length-1;if(this._matchSegment(s,this.path[a],c)){r=a-1,n--,i=!0;break}}if(!i)return!1}else{let s=r===this.path.length-1;if(!this._matchSegment(o,this.path[r],s))return!1;r--,n--}}return n<0}_matchSegment(e,r,n){if(e.tag!=="*"&&e.tag!==r.tag||e.namespace!==void 0&&e.namespace!=="*"&&e.namespace!==r.namespace)return!1;if(e.attrName!==void 0){if(!n||!r.values||!(e.attrName in r.values))return!1;if(e.attrValue!==void 0){let o=r.values[e.attrName];if(String(o)!==String(e.attrValue))return!1}}if(e.position!==void 0){if(!n)return!1;let o=r.counter??0;if(e.position==="first"&&o!==0)return!1;if(e.position==="odd"&&o%2!==1)return!1;if(e.position==="even"&&o%2!==0)return!1;if(e.position==="nth"&&o!==e.positionValue)return!1}return!0}matchesAny(e){return e.matchesAny(this)}snapshot(){return{path:this.path.map(e=>({...e})),siblingStacks:this.siblingStacks.map(e=>new Map(e))}}restore(e){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=e.path.map(r=>({...r})),this.siblingStacks=e.siblingStacks.map(r=>new Map(r))}readOnly(){let e=this;return new Proxy(e,{get(r,n,o){if(UM.has(n))return()=>{throw new TypeError(`Cannot call '${n}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};if(n==="path")return r._frozenPathCache===null&&(r._frozenPathCache=Object.freeze(r.path.map(i=>Object.freeze({...i})))),r._frozenPathCache;if(n==="siblingStacks")return r._frozenSiblingsCache===null&&(r._frozenSiblingsCache=Object.freeze(r.siblingStacks.map(i=>Object.freeze(new Map(i))))),r._frozenSiblingsCache;let s=Reflect.get(r,n,o);return typeof s=="function"?s.bind(r):s},set(r,n){throw new TypeError(`Cannot set property '${String(n)}' on a read-only Matcher.`)},deleteProperty(r,n){throw new TypeError(`Cannot delete property '${String(n)}' from a read-only Matcher.`)}})}};function DM(t,e){if(!t)return{};let r=e.attributesGroupName?t[e.attributesGroupName]:t;if(!r)return{};let n={};for(let o in r)if(o.startsWith(e.attributeNamePrefix)){let s=o.substring(e.attributeNamePrefix.length);n[s]=r[o]}else n[o]=r[o];return n}function GM(t){if(!t||typeof t!="string")return;let e=t.indexOf(":");if(e!==-1&&e>0){let r=t.substring(0,e);if(r!=="xmlns")return r}}var Gn=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(n,o)=>hp(o,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(n,o)=>hp(o,16,"&#x")}},this.addExternalEntities=VM,this.parseXml=qM,this.parseTextData=HM,this.resolveNameSpace=zM,this.buildAttributesMap=jM,this.isItStopNode=XM,this.replaceEntitiesValue=WM,this.readStopNodeData=ZM,this.saveTextToParentTag=KM,this.addChild=JM,this.ignoreAttributesFn=tc(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new Vr,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new Gr;let r=this.options.stopNodes;if(r&&r.length>0){for(let n=0;n<r.length;n++){let o=r[n];typeof o=="string"?this.stopNodeExpressionsSet.add(new rr(o)):o instanceof rr&&this.stopNodeExpressionsSet.add(o)}this.stopNodeExpressionsSet.seal()}}};function VM(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r],o=n.replace(/[.\-+*:]/g,"\\.");this.lastEntities[n]={regex:new RegExp("&"+o+";","g"),val:t[n]}}}function HM(t,e,r,n,o,s,i){let a=this.options;if(t!==void 0&&(a.trimValues&&!n&&(t=t.trim()),t.length>0)){i||(t=this.replaceEntitiesValue(t,e,r));let c=a.jPath?r.toString():r,l=a.tagValueProcessor(e,t,c,o,s);return l==null?t:typeof l!=typeof t||l!==t?l:a.trimValues||t.trim()===t?oc(t,a.parseTagValue,a.numberParseOptions):t}}function zM(t){if(this.options.removeNSPrefix){let e=t.split(":"),r=t.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(t=r+e[1])}return t}var kM=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function jM(t,e,r){let n=this.options;if(n.ignoreAttributes!==!0&&typeof t=="string"){let o=Es(t,kM),s=o.length,i={},a=new Array(s),c=!1,l={};for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]),d=o[h][4];if(p.length&&d!==void 0){let g=d;n.trimValues&&(g=g.trim()),g=this.replaceEntitiesValue(g,r,this.readonlyMatcher),a[h]=g,l[p]=g,c=!0}}c&&typeof e=="object"&&e.updateCurrent&&e.updateCurrent(l);let f=n.jPath?e.toString():this.readonlyMatcher,u=!1;for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]);if(this.ignoreAttributesFn(p,f))continue;let d=n.attributeNamePrefix+p;if(p.length)if(n.transformAttributeName&&(d=n.transformAttributeName(d)),d=pp(d,n),o[h][4]!==void 0){let g=a[h],m=n.attributeValueProcessor(p,g,f);m==null?i[d]=g:typeof m!=typeof g||m!==g?i[d]=m:i[d]=oc(g,n.parseAttributeValue,n.numberParseOptions),u=!0}else n.allowBooleanAttributes&&(i[d]=!0,u=!0)}if(!u)return;if(n.attributesGroupName){let h={};return h[n.attributesGroupName]=i,h}return i}}var qM=function(t){t=t.replace(/\r\n?/g,`
|
|
10
|
+
`);let e=new ve("!xml"),r=e,n="";this.matcher.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.docTypeEntitiesKeys=[],this.lastEntitiesKeys=Object.keys(this.lastEntities),this.htmlEntitiesKeys=this.options.htmlEntities?Object.keys(this.htmlEntities):[];let o=this.options,s=new Dn(o.processEntities),i=t.length;for(let a=0;a<i;a++)if(t[a]==="<"){let l=t.charCodeAt(a+1);if(l===47){let f=Hr(t,">",a,"Closing Tag is not closed."),u=t.substring(a+2,f).trim();if(o.removeNSPrefix){let p=u.indexOf(":");p!==-1&&(u=u.substr(p+1))}u=rc(o.transformTagName,u,"",o).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));let h=this.matcher.getCurrentTag();if(u&&o.unpairedTagsSet.has(u))throw new Error(`Unpaired tag can not be used as closing tag: </${u}>`);h&&o.unpairedTagsSet.has(h)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",a=f}else if(l===63){let f=nc(t,a,!1,"?>");if(!f)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),!(o.ignoreDeclaration&&f.tagName==="?xml"||o.ignorePiTags)){let u=new ve(f.tagName);u.add(o.textNodeName,""),f.tagName!==f.tagExp&&f.attrExpPresent&&(u[":@"]=this.buildAttributesMap(f.tagExp,this.matcher,f.tagName)),this.addChild(r,u,this.readonlyMatcher,a)}a=f.closeIndex+1}else if(l===33&&t.charCodeAt(a+2)===45&&t.charCodeAt(a+3)===45){let f=Hr(t,"-->",a+4,"Comment is not closed.");if(o.commentPropName){let u=t.substring(a+4,f-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(o.commentPropName,[{[o.textNodeName]:u}])}a=f}else if(l===33&&t.charCodeAt(a+2)===68){let f=s.readDocType(t,a);this.docTypeEntities=f.entities,this.docTypeEntitiesKeys=Object.keys(this.docTypeEntities)||[],a=f.i}else if(l===33&&t.charCodeAt(a+2)===91){let f=Hr(t,"]]>",a,"CDATA is not closed.")-2,u=t.substring(a+9,f);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);let h=this.parseTextData(u,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);h==null&&(h=""),o.cdataPropName?r.add(o.cdataPropName,[{[o.textNodeName]:u}]):r.add(o.textNodeName,h),a=f+2}else{let f=nc(t,a,o.removeNSPrefix);if(!f){let _=t.substring(Math.max(0,a-50),Math.min(i,a+50));throw new Error(`readTagExp returned undefined at position ${a}. Context: "${_}"`)}let u=f.tagName,h=f.rawTagName,p=f.tagExp,d=f.attrExpPresent,g=f.closeIndex;if({tagName:u,tagExp:p}=rc(o.transformTagName,u,p,o),o.strictReservedNames&&(u===o.commentPropName||u===o.cdataPropName||u===o.textNodeName||u===o.attributesGroupName))throw new Error(`Invalid tag name: ${u}`);r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));let m=r;m&&o.unpairedTagsSet.has(m.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let y=!1;p.length>0&&p.lastIndexOf("/")===p.length-1&&(y=!0,u[u.length-1]==="/"?(u=u.substr(0,u.length-1),p=u):p=p.substr(0,p.length-1),d=u!==p);let b=null,M={},S;S=GM(h),u!==e.tagname&&this.matcher.push(u,{},S),u!==p&&d&&(b=this.buildAttributesMap(p,this.matcher,u),b&&(M=DM(b,o))),u!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let C=a;if(this.isCurrentNodeStopNode){let _="";if(y)a=f.closeIndex;else if(o.unpairedTagsSet.has(u))a=f.closeIndex;else{let E=this.readStopNodeData(t,h,g+1);if(!E)throw new Error(`Unexpected end of ${h}`);a=E.i,_=E.tagContent}let v=new ve(u);b&&(v[":@"]=b),v.add(o.textNodeName,_),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,v,this.readonlyMatcher,C)}else{if(y){({tagName:u,tagExp:p}=rc(o.transformTagName,u,p,o));let _=new ve(u);b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(o.unpairedTagsSet.has(u)){let _=new ve(u);b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),this.matcher.pop(),this.isCurrentNodeStopNode=!1,a=f.closeIndex;continue}else{let _=new ve(u);if(this.tagsNodeStack.length>o.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),r=_}n="",a=g}}}else n+=t[a];return e.child};function JM(t,e,r,n){this.options.captureMetaData||(n=void 0);let o=this.options.jPath?r.toString():r,s=this.options.updateTag(e.tagname,o,e[":@"]);s===!1||(typeof s=="string"&&(e.tagname=s),t.addChild(e,n))}function WM(t,e,r){let n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){let o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,o)))return t}if(n.tagFilter){let o=this.options.jPath?r.toString():r;if(!n.tagFilter(e,o))return t}for(let o of this.docTypeEntitiesKeys){let s=this.docTypeEntities[o],i=t.match(s.regx);if(i){if(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);let a=t.length;if(t=t.replace(s.regx,s.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-a,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(t.indexOf("&")===-1)return t;for(let o of this.lastEntitiesKeys){let s=this.lastEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}if(t.indexOf("&")===-1)return t;for(let o of this.htmlEntitiesKeys){let s=this.htmlEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}return t=t.replace(this.ampEntity.regex,this.ampEntity.val),t}function KM(t,e,r,n){return t&&(n===void 0&&(n=e.child.length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function XM(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function YM(t,e,r=">"){let n=0,o=[],s=t.length,i=r.charCodeAt(0),a=r.length>1?r.charCodeAt(1):-1;for(let c=e;c<s;c++){let l=t.charCodeAt(c);if(n)l===n&&(n=0);else if(l===34||l===39)n=l;else if(l===i)if(a!==-1){if(t.charCodeAt(c+1)===a)return{data:String.fromCharCode(...o),index:c}}else return{data:String.fromCharCode(...o),index:c};else if(l===9){o.push(32);continue}o.push(l)}}function Hr(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o+e.length-1}function QM(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o}function nc(t,e,r,n=">"){let o=YM(t,e+1,n);if(!o)return;let s=o.data,i=o.index,a=s.search(/\s/),c=s,l=!0;a!==-1&&(c=s.substring(0,a),s=s.substring(a+1).trimStart());let f=c;if(r){let u=c.indexOf(":");u!==-1&&(c=c.substr(u+1),l=c!==o.data.substr(u+1))}return{tagName:c,tagExp:s,closeIndex:i,attrExpPresent:l,rawTagName:f}}function ZM(t,e,r){let n=r,o=1,s=t.length;for(;r<s;r++)if(t[r]==="<"){let i=t.charCodeAt(r+1);if(i===47){let a=QM(t,">",r,`${e} is not closed`);if(t.substring(r+2,a).trim()===e&&(o--,o===0))return{tagContent:t.substring(n,r),i:a};r=a}else if(i===63)r=Hr(t,"?>",r+1,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=Hr(t,"-->",r+3,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===91)r=Hr(t,"]]>",r,"StopNode is not closed.")-2;else{let a=nc(t,r,">");a&&((a&&a.tagName)===e&&a.tagExp[a.tagExp.length-1]!=="/"&&o++,r=a.closeIndex)}}}function oc(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:ec(t,r)}else return np(t)?t:""}function hp(t,e,r){let n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}function rc(t,e,r,n){if(t){let o=t(e);r===e&&(r=o),e=o}return e=pp(e,n),{tagName:e,tagExp:r}}function pp(t,e){if(_s.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return Nn.includes(t)?e.onDangerousProperty(t):t}var sc=ve.getMetaDataSymbol();function $M(t,e){if(!t||typeof t!="object")return{};if(!e)return t;let r={};for(let n in t)if(n.startsWith(e)){let o=n.substring(e.length);r[o]=t[n]}else r[n]=t[n];return r}function ic(t,e,r,n){return dp(t,e,r,n)}function dp(t,e,r,n){let o,s={};for(let i=0;i<t.length;i++){let a=t[i],c=eS(a);if(c!==void 0&&c!==e.textNodeName){let l=$M(a[":@"]||{},e.attributeNamePrefix);r.push(c,l)}if(c===e.textNodeName)o===void 0?o=a[c]:o+=""+a[c];else{if(c===void 0)continue;if(a[c]){let l=dp(a[c],e,r,n),f=rS(l,e);if(a[":@"]?tS(l,a[":@"],n,e):Object.keys(l).length===1&&l[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?l=l[e.textNodeName]:Object.keys(l).length===0&&(e.alwaysCreateTextNode?l[e.textNodeName]="":l=""),a[sc]!==void 0&&typeof l=="object"&&l!==null&&(l[sc]=a[sc]),s[c]!==void 0&&Object.prototype.hasOwnProperty.call(s,c))Array.isArray(s[c])||(s[c]=[s[c]]),s[c].push(l);else{let u=e.jPath?n.toString():n;e.isArray(c,u,f)?s[c]=[l]:s[c]=l}c!==void 0&&c!==e.textNodeName&&r.pop()}}}return typeof o=="string"?o.length>0&&(s[e.textNodeName]=o):o!==void 0&&(s[e.textNodeName]=o),s}function eS(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function tS(t,e,r,n){if(e){let o=Object.keys(e),s=o.length;for(let i=0;i<s;i++){let a=o[i],c=a.startsWith(n.attributeNamePrefix)?a.substring(n.attributeNamePrefix.length):a,l=n.jPath?r.toString()+"."+c:r;n.isArray(a,l,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function rS(t,e){let{textNodeName:r}=e,n=Object.keys(t).length;return!!(n===0||n===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}var zr=class{constructor(e){this.externalEntities={},this.options=up(e)}parse(e,r){if(typeof e!="string"&&e.toString)e=e.toString();else if(typeof e!="string")throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let s=cp(e,r);if(s!==!0)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}let n=new Gn(this.options);n.addExternalEntities(this.externalEntities);let o=n.parseXml(e);return this.options.preserveOrder||o===void 0?o:ic(o,this.options,n.matcher,n.readonlyMatcher)}addEntity(e,r){if(r.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if(r==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=r}static getMetaDataSymbol(){return ve.getMetaDataSymbol()}};function ac(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(o,s,i,a)=>Boolean(e?.arrayPaths?.some(l=>s===l)),...e?._fastXML},n=nS(t,r);return e?.uncapitalizeKeys?Ss(n):n}function nS(t,e){return new zr({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var oS="4.4.1",Qe={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:oS,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:sS,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>ac(new TextDecoder().decode(t),{...Qe.options.xml,...e?.xml}),parseTextSync:(t,e)=>ac(t,{...Qe.options.xml,...e?.xml})};function sS(t){return t.startsWith("<?xml")}async function Oe(t,e,r,n){return n._parse(t,e,r,n)}function H(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var it={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},iS=it.self||it.window||it.global||{},aS=it.window||it.self||it.global||{},cS=it.global||it.self||it.window||{},lS=it.document||{};var Vn=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var mp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),fS=mp&&parseFloat(mp[1])||0;var Bs=globalThis,uS=globalThis.document||{},Is=globalThis.process||{},hS=globalThis.console,_F=globalThis.navigator||{};function gp(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return Boolean(r&&r.indexOf("Electron")>=0)}function nr(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||gp()}var cc="4.1.1";function kr(t,e){if(!t)throw new Error(e||"Assertion failed")}function lc(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return kr(Number.isFinite(e)&&e>=0),e}function Ap(t){let{logLevel:e,message:r}=t;t.logLevel=lc(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return kr(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}var or=()=>{},vs=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,o,s={}){let i=Ap({logLevel:r,message:n,args:this._buildArgs(r,n,o),opts:s});return this._createLogFunction(e,i,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return or;let o=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return or;this._onceCache.add(o)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=lc(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function dS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Rs=class{constructor(e,r,n="sessionStorage"){this.storage=dS(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function xp(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function yp(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}var ws;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(ws||(ws={}));var mS=10;function bp(t){return typeof t!="string"?t:(t=t.toUpperCase(),ws[t]||ws.WHITE)}function Tp(t,e,r){return!nr&&typeof t=="string"&&(e&&(t=`\x1B[${bp(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${bp(r)+mS}m${t}\x1B[49m`)),t}function Mp(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let s of n){let i=o[s];typeof i=="function"&&(e.find(a=>s===a)||(o[s]=i.bind(t)))}}function jr(){let t;if(nr()&&Bs.performance)t=Bs?.performance?.now?.();else if("hrtime"in Is){let e=Is?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var qr={debug:nr()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},fc={enabled:!0,level:0},pt=class extends vs{constructor({id:e}={id:""}){super({level:0}),this.VERSION=cc,this._startTs=jr(),this._deltaTs=jr(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Rs(`__probe-${this.id}__`,{[this.id]:fc}),this.timeStamp(`${this.id} started`),Mp(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((jr()-this._startTs).toPrecision(10))}getDelta(){return Number((jr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:qr.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:qr.error})}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r,...n){return this._log("log",e,r,n,{method:qr.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:qr.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:qr.debug||qr.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||or,tag:AS(r)}):or}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||or})}group(e,r,n={collapsed:!1}){let o=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:o})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||or})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;kr(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=jr();let o=gS(this.id,r.message,r);return n.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(fc),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...fc};this._storage.setConfiguration({[this.id]:{...r,...e}})}};pt.VERSION=cc;function gS(t,e,r){if(typeof e=="string"){let n=r.time?yp(xp(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=Tp(e,r.color,r.background)}return e}function AS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var uc=new pt({id:"@probe.gl/log"});var hc="4.4.1",xS=hc[0]>="0"&&hc[0]<="9"?`v${hc}`:"";function yS(){let t=new pt({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=t,globalThis.loaders.version=xS,globalThis.probe||={},globalThis.probe.loaders=t,t}var pc=yS();var Sp=t=>typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer;function Hn(t,e){return Ep(t||{},e)}function Ep(t,e,r=0){if(r>3)return e;let n={...t};for(let[o,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[o]=Ep(n[o]||{},e[o],r+1):n[o]=e[o];return n}function dc(t){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t)}function mc(t){return globalThis.loaders?.modules?.[t]||null}function bS(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.1"),globalThis._loadersgl_.version}var _p=bS();function Cp(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var at={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},uP=at.self||at.window||at.global||{},hP=at.window||at.self||at.global||{},pP=at.global||at.self||at.window||{},dP=at.document||{};var dt=typeof process!="object"||String(process)!=="[object process]"||process.browser,zn=typeof importScripts=="function",mP=typeof window<"u"&&typeof window.orientation<"u",Bp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),gP=Bp&&parseFloat(Bp[1])||0;var gc={};function kn(t={}){let e=t.useLocalLibraries??t.core?.useLocalLibraries,r=t.CDN??t.core?.CDN,n=t.modules;return{...e!==void 0?{useLocalLibraries:e}:{},...r!==void 0?{CDN:r}:{},...n!==void 0?{modules:n}:{}}}async function Ve(t,e=null,r={},n=null){return e&&(t=Ip(t,e,r,n)),gc[t]=gc[t]||TS(t),await gc[t]}function Ip(t,e,r={},n=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let o=r.modules||{};return o[n]?o[n]:dt?r.CDN?(Cp(r.CDN.startsWith("http")),`${r.CDN}/${e}@${_p}/dist/libs/${n}`):zn?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function TS(t){if(t.endsWith("wasm"))return await SS(t);if(!dt){let{requireFromFile:r}=globalThis.loaders||{};try{let n=await r?.(t);return n||!t.includes("/dist/libs/")?n:await r?.(t.replace("/dist/libs/","/src/libs/"))}catch(n){if(t.includes("/dist/libs/"))try{return await r?.(t.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(n),null}}if(zn)return importScripts(t);let e=await ES(t);return MS(e,t)}function MS(t,e){if(!dt){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(zn)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function SS(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).arrayBuffer();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${t}`)}}async function ES(t){let{readFileAsText:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).text();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${t}`)}}function Rp(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?vp(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?vp(t,0,e):""}function vp(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),o="";for(let s=0;s<r;s++)o+=String.fromCharCode(n.getUint8(e+s));return o}function Ac(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${Rp(t)}"`)}}function jn(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((i,a)=>i+a.length,0),o=new r(n),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}function sr(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function Rt(t,e){return H(t>=0),H(e>0),t+(e-1)&~(e-1)}function xc(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let o=t.byteOffset,s=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,o,s)}return e.set(n,r),r+Rt(n.byteLength,4)}function qn(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var ir=class{constructor(e,r){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=qn(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(qn()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var wt=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,r="count"){return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof ir?o=e:o=new ir(r,n),this.stats[r]=o),o}};var _S="Queued Requests",CS="Active Requests",BS="Cancelled Requests",IS="Queued Requests Ever",vS="Active Requests Ever",RS={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Lt=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...RS,...e},this.stats=new wt({id:this.props.id}),this.stats.get(_S),this.stats.get(CS),this.stats.get(BS),this.stats.get(IS),this.stats.get(vS)}setProps(e){e.throttleRequests!==void 0&&(this.props.throttleRequests=e.throttleRequests),e.maxRequests!==void 0&&(this.props.maxRequests=e.maxRequests),e.debounceTime!==void 0&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},o=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,o),this._issueNewRequests(),o}_issueRequest(e){let{handle:r,resolve:n}=e,o=!1,s=()=>{o||(o=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var wS="",wp={};function Lp(t){for(let e in wp)if(t.startsWith(e)){let r=wp[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${wS}${t}`),t}function Ft(t){if(t instanceof ArrayBuffer)return t;if(Sp(t))return Jn(t);let{buffer:e,byteOffset:r,byteLength:n}=t;return e instanceof ArrayBuffer&&r===0&&n===e.byteLength?e:Jn(e,r,n)}function Jn(t,e=0,r=t.byteLength-e){let n=new Uint8Array(t,e,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var Pt={};be(Pt,{dirname:()=>FS,filename:()=>LS,join:()=>PS,resolve:()=>NS});function Fp(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function LS(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):t}function FS(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function PS(...t){let e="/";return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp(`^${e}`),"")),n!==t.length-1&&(r=r.replace(new RegExp(`${e}$`),"")),r)),t.join(e)}function NS(...t){let e=[];for(let s=0;s<t.length;s++)e[s]=t[s];let r="",n=!1,o;for(let s=e.length-1;s>=-1&&!n;s--){let i;s>=0?i=e[s]:(o===void 0&&(o=Fp()),i=o),i.length!==0&&(r=`${i}/${r}`,n=i.charCodeAt(0)===Wn)}return r=OS(r,!n),n?`/${r}`:r.length>0?r:"."}var Wn=47,yc=46;function OS(t,e){let r="",n=-1,o=0,s,i=!1;for(let a=0;a<=t.length;++a){if(a<t.length)s=t.charCodeAt(a);else{if(s===Wn)break;s=Wn}if(s===Wn){if(!(n===a-1||o===1))if(n!==a-1&&o===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==yc||r.charCodeAt(r.length-2)!==yc){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Wn;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,o=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,o=0,i=!1;continue}}e&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}n=a,o=0}else s===yc&&o!==-1?++o:o=-1}return r}var bc=class{optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(e,r,n){n?this.options=Hn({...n,core:bc.defaultOptions},r):this.options={...r},this.data=e,this.url=typeof e=="string"?Lp(e):"",this.loadOptions=DS(this.options.core?.loadOptions),this.fetch=US(this.loadOptions)}setProps(e){this.options=Object.assign(this.options,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}},Jr=bc;Jt(Jr,"defaultOptions",{core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}});function US(t){let e=t?.core?.fetch;if(e&&typeof e=="function")return(n,o)=>e(n,o);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}function DS(t){let e={...t};t?.core&&(e.core={...t.core});let r=typeof e.baseUri=="string"?e.baseUri:void 0,n=typeof e.baseUrl=="string"?e.baseUrl:void 0;return(r!==void 0||n!==void 0)&&(e.core||={},e.core.baseUrl===void 0&&(e.core.baseUrl=n??r),delete e.baseUri,delete e.baseUrl),e}var Nt=class{};Jt(Nt,"type","template"),Jt(Nt,"testURL",e=>!1);function Pp(t,e){let r=Qe.parseTextSync?.(t,e),n=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var GS="4.4.1",Kn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:GS,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:VS,options:{wms:{throwOnError:!1}},parse:async(t,e)=>Tc(new TextDecoder().decode(t),e),parseSync:(t,e)=>Tc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Tc(t,e)};function VS(t){return t.startsWith("<?xml")}function Tc(t,e){let r={...Kn.options.wms,...e?.wms},n=Pp(t,r),o=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(o);return o}function ar(t){return Array.isArray(t)?t:t?[t]:[]}function Xn(t){let e=ar(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Yn(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function Ls(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function cr(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function Mc(t,e){let r=Qe.parseTextSync?.(t,e),n=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,o=HS(n);if(e?.inheritedLayerProps)for(let s of o.layers)Op(s,null);return e?.includeRawJSON&&(o.json=n),e?.includeXMLText&&(o.xml=t),o}function HS(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:Xn(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:Ls(t.Service?.LayerLimit),maxWidth:Ls(t.Service?.maxWidth),maxHeight:Ls(t.Service?.maxHeight),layers:[],requests:zS(t.Capability?.Request),exceptions:kS(t.Exception)},r=ar(t.Capability?.Layer);for(let n of r)e.layers.push(Np(n));for(let[n,o]of Object.entries(e))o===void 0&&delete e[n];return e}function zS(t){let e={};for(let[r,n]of Object.entries(t||{})){let o=Xn(n?.Format);e[r]={mimeTypes:o}}return e}function kS(t){if(ar(t?.Format).length>0)return{mimeTypes:Xn(t)}}function Np(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Xn(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(l=>typeof l=="string")&&(e.crs=r);let n=t?.EX_GeographicBoundingBox&&jS(t?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&qS(t?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let o=t?.BoundingBox&&JS(t?.BoundingBox);o&&o.length>0&&(e.boundingBoxes=o);let i=ar(t?.Dimension).map(l=>KS(l));i.length&&(e.dimensions=i),t?.opaque&&(e.opaque=cr(t?.opaque)),t?.cascaded&&(e.cascaded=cr(t?.cascaded)),t?.queryable&&(e.queryable=cr(t?.queryable));let a=ar(t?.Layer),c=[];for(let l of a)c.push(Np(l));c.length>0&&(e.layers=c);for(let[l,f]of Object.entries(e))f===void 0&&delete e[l];return e}function jS(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:o}=t;return[[e,o],[n,r]]}function qS(t){let{minx:e,miny:r,maxx:n,maxy:o}=t;return[[e,r],[n,o]]}function JS(t){return ar(t).map(r=>WS(r))}function WS(t){let{CRS:e,SRS:r,minx:n,miny:o,maxx:s,maxy:i,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[Yn(n),Yn(o)],[Yn(s),Yn(i)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function KS(t){let{name:e,units:r,value:n}=t,o={name:e,units:r,extent:n};return t.unitSymbol&&(o.unitSymbol=t.unitSymbol),t.default&&(o.defaultValue=t.default),t.multipleValues&&(o.multipleValues=cr(t.multipleValues)),t.nearestValue&&(o.nearestValue=cr(t.nearestValue)),t.current&&(o.current=cr(t.current)),o}function Op(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Op(r,t)}var XS="4.4.1",Wr={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:XS,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:YS,options:{wms:{}},parse:async(t,e)=>Mc(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>Mc(t,e?.wms)};function YS(t){return t.startsWith("<?xml")}function Sc(t,e){let n=(Qe.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>QS(s))}}function QS(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var Up={...Wr,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>Sc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Sc(t,e)};function Ec(t,e){return Qe.parseTextSync?.(t,e)}var Dp={...Wr,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>Ec(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Ec(t,e)};var Gp="4.4.1";var ZS=globalThis.loaders?.parseImageNode,_c=typeof Image<"u",Cc=typeof ImageBitmap<"u",$S=Boolean(ZS),Bc=Vn?!0:$S;function Vp(t){switch(t){case"auto":return Cc||_c||Bc;case"imagebitmap":return Cc;case"image":return _c;case"data":return Bc;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Hp(){if(Cc)return"imagebitmap";if(_c)return"image";if(Bc)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function zp(t){let e=eE(t);if(!e)throw new Error("Not an image");return e}function Qn(t){switch(zp(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function eE(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var tE=/^data:image\/svg\+xml/,rE=/\.svg((\?|#).*)?$/;function Fs(t){return t&&(tE.test(t)||rE.test(t))}function kp(t,e){if(Fs(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Ic(t,e)}function Ic(t,e){if(Fs(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function Ps(t,e,r){let n=kp(t,r),o=self.URL||self.webkitURL,s=typeof n!="string"&&o.createObjectURL(n);try{return await nE(s||n,e)}finally{s&&o.revokeObjectURL(s)}}async function nE(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,o)=>{try{r.onload=()=>n(r),r.onerror=s=>{let i=s instanceof Error?s.message:"error";o(new Error(i))}}catch(s){o(s)}})}var jp=!0;async function qp(t,e,r){let n;Fs(r)?n=await Ps(t,e,r):n=Ic(t,r);let o=e&&e.imagebitmap;return await oE(n,o)}async function oE(t,e=null){if((sE(e)||!jp)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),jp=!1}return await createImageBitmap(t)}function sE(t){if(!t)return!0;for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function Jp(t){return!lE(t,"ftyp",4)||!(t[8]&96)?null:iE(t)}function iE(t){switch(aE(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function aE(t,e,r){return String.fromCharCode(...t.slice(e,r))}function cE(t){return[...t].map(e=>e.charCodeAt(0))}function lE(t,e,r=0){let n=cE(e);for(let o=0;o<n.length;++o)if(n[o]!==t[o+r])return!1;return!0}var ct=!1,Zn=!0;function lr(t){let e=$n(t);return uE(e)||dE(e)||hE(e)||pE(e)||fE(e)}function fE(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Jp(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function uE(t){let e=$n(t);return e.byteLength>=24&&e.getUint32(0,ct)===2303741511?{mimeType:"image/png",width:e.getUint32(16,ct),height:e.getUint32(20,ct)}:null}function hE(t){let e=$n(t);return e.byteLength>=10&&e.getUint32(0,ct)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,Zn),height:e.getUint16(8,Zn)}:null}function pE(t){let e=$n(t);return e.byteLength>=14&&e.getUint16(0,ct)===16973&&e.getUint32(2,Zn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,Zn),height:e.getUint32(22,Zn)}:null}function dE(t){let e=$n(t);if(!(e.byteLength>=3&&e.getUint16(0,ct)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=mE(),s=2;for(;s+9<e.byteLength;){let i=e.getUint16(s,ct);if(o.has(i))return{mimeType:"image/jpeg",height:e.getUint16(s+5,ct),width:e.getUint16(s+7,ct)};if(!n.has(i))return null;s+=2,s+=e.getUint16(s,ct)}return null}function mE(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function $n(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function Wp(t,e){let{mimeType:r}=lr(t)||{},n=globalThis.loaders?.parseImageNode;return H(n),await n(t,r)}async function Kp(t,e,r){e=e||{};let o=(e.image||{}).type||"auto",{url:s}=r||{},i=gE(o),a;switch(i){case"imagebitmap":a=await qp(t,e,s);break;case"image":a=await Ps(t,e,s);break;case"data":a=await Wp(t,e);break;default:H(!1)}return o==="data"&&(a=Qn(a)),a}function gE(t){switch(t){case"auto":case"data":return Hp();default:return Vp(t),t}}var AE=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],xE=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],yE={image:{type:"auto",decode:!0}},Kr={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Gp,mimeTypes:xE,extensions:AE,parse:Kp,tests:[t=>Boolean(lr(new DataView(t)))],options:yE};var vc={};function Rc(t){if(vc[t]===void 0){let e=Vn?TE(t):bE(t);vc[t]=e}return vc[t]}function bE(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,n=globalThis.loaders?.parseImageNode;return Boolean(n)&&r.includes(t)}function TE(t){switch(t){case"image/avif":case"image/webp":return ME(t);default:return!0}}function ME(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Os={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new Ns(t,e)},Ns=class extends Jr{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,Os.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...r.wmsParameters,...r.wms?.wmsParameters},this.vendorParameters=r.wms?.vendorParameters||r.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...o}=e,s={bbox:r?[...r[0],...r[1]]:n,...o};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);let i=await Wr.parse(s,this.loadOptions);return this.capabilities=i,i}async getMap(e,r){let n=this.getMapURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Kr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Up.parse(s,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),new TextDecoder().decode(s)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Dp.parse(s,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Kr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}getCapabilitiesURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:n,bbox:o}=e;e.bbox=n?[...n[0],...n[1]]:o;let s={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",s,r)}describeLayerURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,r)}getLegendGraphicURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,r)}_parseWMSUrl(e){let[r,n]=e.split("?"),o=n.split("&"),s={};for(let i of o){let[a,c]=i.split("=");s[a]=c}return{url:r,parameters:s}}_getWMSUrl(e,r,n){let o=this.url,s=!0,i={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(i))(!a.includes(c)||l)&&(o+=s?"?":"&",s=!1,o+=this._getURLParameter(c,l,r));return encodeURI(o)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let o=this._flipBoundingBox(r,n);o&&(r=o);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let n=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),o=e;return n?[o[1],o[0],o[3],o[2]]:o}async _fetchArrayBuffer(e){let r=await this.fetch(e),n=await r.arrayBuffer();return this._checkResponse(r,n),n}_checkResponse(e,r){let n=e.headers["content-type"];if(!e.ok||Kn.mimeTypes.includes(n)){let o=Hn(this.loadOptions,{wms:{throwOnError:!0}}),s=Kn.parseSync?.(r,o);throw new Error(s)}}_parseError(e){let r=Kn.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};function Us(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Ze=Math.PI,Zp=Ze/4,Xp=Ze/180,Yp=180/Ze,Ds=512;function mt(t){let[e,r]=t;Us(Number.isFinite(e)),Us(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Xp,o=r*Xp,s=Ds*(n+Ze)/(2*Ze),i=Ds*(Ze+Math.log(Math.tan(Zp+o*.5)))/(2*Ze);return[s,i]}function gt(t){let[e,r]=t,n=e/Ds*(2*Ze)-Ze,o=2*(Math.atan(Math.exp(r/Ds*(2*Ze)-Ze))-Zp);return[n*Yp,o*Yp]}var $O=Math.PI/180;var ed=6378137*Math.PI;function wc(t){let e=mt(t);return e[0]=(e[0]/256-1)*ed,e[1]=(e[1]/256-1)*ed,e}var DE={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},Xr=class extends fr.CompositeLayer{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:n}){let{viewport:o}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(o,"image source changed"),0)):(0,fr._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(o,"viewport changed")):this.debounce(()=>this.loadImage(o,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new td.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?fr.COORDINATE_SYSTEM.LNGLAT:fr.COORDINATE_SYSTEM.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Nt)return e.data;if(typeof e.data=="string")return(0,rd.createDataSource)(e.data,[Os],{core:{type:e.serviceType,loadOptions:e.loadOptions}});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:n,serviceType:o}=this.props;if(o==="wms"&&n.length===0)return;let s=e.getBounds(),{width:i,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let f={width:i,height:a,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let u=wc([s[0],s[1]]),h=wc([s[2],s[3]]);f.boundingBox=[u,h]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let u=await this.state.imageSource.getImage(f);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:u,bounds:s,lastRequestParameters:f,lastRequestId:c}))}catch(u){this.raiseError(u,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,u)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}};Xr.layerName="WMSLayer";Xr.defaultProps=DE;var nd=U(Ke(),1),GE={getHeight:{type:"accessor",value:0},greatCircle:!0},eo=class extends nd.ArcLayer{};eo.layerName="GreatCircleLayer";eo.defaultProps=GE;var od=eo;var Gs=U(Lc(),1),VE=3,HE=30,zE=2*HE+1,id=180/Math.PI;function cd(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function ad(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function ld(t){return[ad(t[0]),ad(t[1])]}function fd(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function ud([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*id,n*id]}function hd(t){let e=Gs.default.fromString(t,!0,10).toString(2);for(;e.length<VE+zE;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=Gs.default.fromString(n,!0,2).toString(10),a=Gs.default.fromString(o,!0,2).toString(4);for(;a.length<s;)a="0"+a;return`${i}/${a}`}function kE(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function pd(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=[0,0],i;for(let a=o-1;a>=0;a--){i=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,i-1);kE(u,s,l,f),s[0]+=u*l,s[1]+=u*f}if(r%2===1){let a=s[0];s[0]=s[1],s[1]=a}return{face:r,ij:s,level:i}}var dd=U(Lc(),1);function jE(t){let e=t.padEnd(16,"0");return dd.default.fromString(e,16)}var qE=100;function JE({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(qE*Math.pow(2,-r))),s=new Float64Array(4*o*2+2),i=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),f=n[c+1],u=(f[0]-l[0])/o,h=(f[1]-l[1])/o;for(let p=0;p<o;p++){l[0]+=u,l[1]+=h;let d=cd(e,r,l),g=ld(d),m=fd(t,g),y=ud(m);Math.abs(y[1])>89.999&&(y[0]=a);let b=y[0]-a;y[0]+=b>180?-360:b<-180?360:0,s[i++]=y[0],s[i++]=y[1],a=y[0]}}return s[i++]=s[0],s[i++]=s[1],s}function WE(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=jE(t)}return hd(t.toString())}function md(t){let e=WE(t),r=pd(e);return JE(r)}var KE={getS2Token:{type:"accessor",value:t=>t.token}},ro=class extends De{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>md(r(n,o))}}};ro.layerName="S2Layer";ro.defaultProps=KE;var gd=ro;var Fc=512;function XE(t,e){let r=0,n=0,o=1<<t.length,s=o/Fc;for(let i=0;i<t.length;i++){o>>=1;let a=parseInt(t[i]);a%2&&(r|=o),a>1&&(n|=o)}return[[r/s,Fc-n/s],[(r+e)/s,Fc-(n+e)/s]]}function Ad(t,e=1){let[r,n]=XE(t,e),[o,s]=gt(r),[i,a]=gt(n);return[i,s,i,a,o,a,o,s,i,s]}var YE={getQuadkey:{type:"accessor",value:t=>t.quadkey}},no=class extends De{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,o=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,i)=>Ad(n(s,i),o),updateTriggers:{getPolygon:o}}}};no.layerName="QuadkeyLayer";no.defaultProps=YE;var xd=no;var Ws=U(Xe(),1),Nd=U(Ke(),1);var ur=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:n,onError:o}){let{index:s,id:i,bbox:a,userData:c,zoom:l}=this,f=this._loaderId;this._abortController=new AbortController;let{signal:u}=this._abortController,h=await r.scheduleRequest(this,g=>g.isSelected?1:-1);if(!h){this._isCancelled=!0;return}if(this._isCancelled){h.done();return}let p=null,d;try{p=await e({index:s,id:i,bbox:a,userData:c,zoom:l,signal:u})}catch(g){d=g||!0}finally{h.done()}if(f===this._loaderId){if(this._loader=void 0,this.content=p,this._isCancelled&&!p){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,d?o(d,this):n(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var io=U(Xe(),1);var ie={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var yd=new x,QE=new x,Ot=class{constructor(e=[0,0,0],r=[0,0,0],n){n=n||yd.copy(e).add(r).scale(.5),this.center=new x(n),this.halfDiagonal=new x(r).subtract(this.center),this.minimum=new x(e),this.maximum=new x(r)}clone(){return new Ot(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,n=QE.from(e.normal),o=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-o>0?ie.INSIDE:s+o<0?ie.OUTSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=yd.from(e).subtract(this.center),{halfDiagonal:n}=this,o=0,s;return s=Math.abs(r.x)-n.x,s>0&&(o+=s*s),s=Math.abs(r.y)-n.y,s>0&&(o+=s*s),s=Math.abs(r.z)-n.z,s>0&&(o+=s*s),o}};var oo=new x,bd=new x,He=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new x,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=oo.from(r),this.center=new x().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new He(this.center,this.radius)}union(e){let r=this.center,n=this.radius,o=e.center,s=e.radius,i=oo.copy(o).subtract(r),a=i.magnitude();if(n>=a+s)return this.clone();if(s>=a+n)return e.clone();let c=(n+a+s)*.5;return bd.copy(i).scale((-n+c)/a).add(r),this.center.copy(bd),this.radius=c,this}expand(e){let n=oo.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=wn.getScaling(oo,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let n=oo.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,s=e.normal.dot(r)+e.distance;return s<-n?ie.OUTSIDE:s<n?ie.INTERSECTING:ie.INSIDE}};var ZE=new x,$E=new x,Vs=new x,Hs=new x,zs=new x,e_=new x,t_=new x,At={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},$e=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new x().from(e),this.halfAxes=new k(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new x(e).len(),new x(r).len(),new x(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),o=new x(e).normalize(),s=new x(r).normalize(),i=new x(n).normalize();return new st().fromMatrix3(new k([...o,...s,...i]))}fromCenterHalfSizeQuaternion(e,r,n){let o=new st(n),s=new k().fromQuaternion(o);return s[0]=s[0]*r[0],s[1]=s[1]*r[0],s[2]=s[2]*r[0],s[3]=s[3]*r[1],s[4]=s[4]*r[1],s[5]=s[5]*r[1],s[6]=s[6]*r[2],s[7]=s[7]*r[2],s[8]=s[8]*r[2],this.center=new x().from(e),this.halfAxes=s,this}clone(){return new $e(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new He){let r=this.halfAxes,n=r.getColumn(0,Vs),o=r.getColumn(1,Hs),s=r.getColumn(2,zs),i=ZE.copy(n).add(o).add(s);return e.center.copy(this.center),e.radius=i.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,o=this.halfAxes,s=n.x,i=n.y,a=n.z,c=Math.abs(s*o[At.COLUMN0ROW0]+i*o[At.COLUMN0ROW1]+a*o[At.COLUMN0ROW2])+Math.abs(s*o[At.COLUMN1ROW0]+i*o[At.COLUMN1ROW1]+a*o[At.COLUMN1ROW2])+Math.abs(s*o[At.COLUMN2ROW0]+i*o[At.COLUMN2ROW1]+a*o[At.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?ie.OUTSIDE:l>=c?ie.INSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=$E.from(e).subtract(this.center),n=this.halfAxes,o=n.getColumn(0,Vs),s=n.getColumn(1,Hs),i=n.getColumn(2,zs),a=o.magnitude(),c=s.magnitude(),l=i.magnitude();o.normalize(),s.normalize(),i.normalize();let f=0,u;return u=Math.abs(r.dot(o))-a,u>0&&(f+=u*u),u=Math.abs(r.dot(s))-c,u>0&&(f+=u*u),u=Math.abs(r.dot(i))-l,u>0&&(f+=u*u),f}computePlaneDistances(e,r,n=[-0,-0]){let o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=this.center,a=this.halfAxes,c=a.getColumn(0,Vs),l=a.getColumn(1,Hs),f=a.getColumn(2,zs),u=e_.copy(c).add(l).add(f).add(i),h=t_.copy(u).subtract(e),p=r.dot(h);return o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),n[0]=o,n[1]=s,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,Vs);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Hs);n.transformAsPoint(e);let o=this.halfAxes.getColumn(2,zs);return o.transformAsPoint(e),this.halfAxes=new k([...r,...n,...o]),this}getTransform(){throw new Error("not implemented")}};var Td=new x,Md=new x,pe=class{constructor(e=[0,0,1],r=0){this.normal=new x,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return he(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=Td.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,o){return this.normal.set(e,r,n),he(_e(this.normal.len(),1)),this.distance=o,this}clone(){return new pe(this.normal,this.distance)}equals(e){return _e(this.distance,e.distance)&&_e(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=Md.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,r)}projectPointOntoPlane(e,r=[0,0,0]){let n=Td.from(e),o=this.getPointDistance(n),s=Md.copy(this.normal).scale(o);return n.subtract(s).to(r)}};var Sd=[new x([1,0,0]),new x([0,1,0]),new x([0,0,1])],Ed=new x,r_=new x,ce=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*Sd.length;let r=e.center,n=e.radius,o=0;for(let s of Sd){let i=this.planes[o],a=this.planes[o+1];i||(i=this.planes[o]=new pe),a||(a=this.planes[o+1]=new pe);let c=Ed.copy(s).scale(-n).add(r);i.fromPointNormal(c,s);let l=Ed.copy(s).scale(n).add(r),f=r_.copy(s).negate();a.fromPointNormal(l,f),o+=2}return this}computeVisibility(e){let r=ie.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case ie.OUTSIDE:return ie.OUTSIDE;case ie.INTERSECTING:r=ie.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(he(Number.isFinite(r),"parentPlaneMask is required."),r===ce.MASK_OUTSIDE||r===ce.MASK_INSIDE)return r;let n=ce.MASK_INSIDE,o=this.planes;for(let s=0;s<this.planes.length;++s){let i=s<31?1<<s:0;if(s<31&&!(r&i))continue;let a=o[s],c=e.intersectPlane(a);if(c===ie.OUTSIDE)return ce.MASK_OUTSIDE;c===ie.INTERSECTING&&(n|=i)}return n}};ce.MASK_OUTSIDE=4294967295;ce.MASK_INSIDE=0;ce.MASK_INDETERMINATE=2147483647;var mD=new x,gD=new x,AD=new x,xD=new x,yD=new x;var _D=new x,CD=new x,BD=new x,ID=new x,vD=new x,RD=new x,wD=new x,LD=new x,FD=new x,PD=new x,ND=new x,OD=new x;var lt=new k,o_=new k,s_=new k,ks=new k,_d=new k;function Oc(t,e={}){let r=Ge.EPSILON20,n=10,o=0,s=0,i=o_,a=s_;i.identity(),a.copy(t);let c=r*i_(a);for(;s<n&&a_(a)>c;)c_(a,ks),_d.copy(ks).transpose(),a.multiplyRight(ks),a.multiplyLeft(_d),i.multiplyRight(ks),++o>2&&(++s,o=0);return e.unitary=i.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function i_(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Pc=[1,0,0],Nc=[2,2,1];function a_(t){let e=0;for(let r=0;r<3;++r){let n=t[lt.getElementIndex(Nc[r],Pc[r])];e+=2*n*n}return Math.sqrt(e)}function c_(t,e){let r=Ge.EPSILON15,n=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(t[lt.getElementIndex(Nc[l],Pc[l])]);f>n&&(o=l,n=f)}let s=Pc[o],i=Nc[o],a=1,c=0;if(Math.abs(t[lt.getElementIndex(i,s)])>r){let l=t[lt.getElementIndex(i,i)],f=t[lt.getElementIndex(s,s)],u=t[lt.getElementIndex(i,s)],h=(l-f)/2/u,p;h<0?p=-1/(-h+Math.sqrt(1+h*h)):p=1/(h+Math.sqrt(1+h*h)),a=1/Math.sqrt(1+p*p),c=p*a}return k.IDENTITY.to(e),e[lt.getElementIndex(s,s)]=e[lt.getElementIndex(i,i)]=a,e[lt.getElementIndex(i,s)]=c,e[lt.getElementIndex(s,i)]=-c,e}var Ut=new x,l_=new x,f_=new x,u_=new x,h_=new x,p_=new k,d_={diagonal:new k,unitary:new k};function so(t,e=new $e){if(!t||t.length===0)return e.halfAxes=new k([0,0,0,0,0,0,0,0,0]),e.center=new x,e;let r=t.length,n=new x(0,0,0);for(let T of t)n.add(T);let o=1/r;n.multiplyByScalar(o);let s=0,i=0,a=0,c=0,l=0,f=0;for(let T of t){let A=Ut.copy(T).subtract(n);s+=A.x*A.x,i+=A.x*A.y,a+=A.x*A.z,c+=A.y*A.y,l+=A.y*A.z,f+=A.z*A.z}s*=o,i*=o,a*=o,c*=o,l*=o,f*=o;let u=p_;u[0]=s,u[1]=i,u[2]=a,u[3]=i,u[4]=c,u[5]=l,u[6]=a,u[7]=l,u[8]=f;let{unitary:h}=Oc(u,d_),p=e.halfAxes.copy(h),d=p.getColumn(0,f_),g=p.getColumn(1,u_),m=p.getColumn(2,h_),y=-Number.MAX_VALUE,b=-Number.MAX_VALUE,M=-Number.MAX_VALUE,S=Number.MAX_VALUE,C=Number.MAX_VALUE,_=Number.MAX_VALUE;for(let T of t)Ut.copy(T),y=Math.max(Ut.dot(d),y),b=Math.max(Ut.dot(g),b),M=Math.max(Ut.dot(m),M),S=Math.min(Ut.dot(d),S),C=Math.min(Ut.dot(g),C),_=Math.min(Ut.dot(m),_);d=d.multiplyByScalar(.5*(S+y)),g=g.multiplyByScalar(.5*(C+b)),m=m.multiplyByScalar(.5*(_+M)),e.center.copy(d).add(g).add(m);let v=l_.set(y-S,b-C,M-_).multiplyByScalar(.5),E=new k([v[0],0,0,0,v[1],0,0,0,v[2]]);return e.halfAxes.multiplyRight(E),e}var Yr=512,Cd=3,Bd=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],Id=Bd.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),m_=Id.concat([[.25,.5],[.75,.5]]),Dt=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}get children(){if(!this._children){let e=this.x*2,r=this.y*2,n=this.z+1;this._children=[new Dt(e,r,n),new Dt(e,r+1,n),new Dt(e+1,r,n),new Dt(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:o,minZ:s,maxZ:i,bounds:a,offset:c,project:l}=e,f=this.getBoundingVolume(o,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(f)<0)return!1;if(!this.childVisible){let{z:h}=this;if(h<i&&h>=s){let p=f.distanceTo(r.cameraPosition)*r.scale/r.height;h+=Math.floor(Math.log2(p))}if(h>=i)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let h of this.children)h.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,n,o]){let s=Math.pow(2,this.z),i=Yr/s;return this.x*i<n&&this.y*i<o&&(this.x+1)*i>e&&(this.y+1)*i>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?m_:this.z<2?Id:Bd,l=[];for(let f of c){let u=js(this.x+f[0],this.y+f[1],this.z);u[2]=e[0],l.push(n(u)),e[0]!==e[1]&&(u[2]=e[1],l.push(n(u)))}return so(l)}let o=Math.pow(2,this.z),s=Yr/o,i=this.x*s+r*Yr,a=Yr-(this.y+1)*s;return new Ot([i,a,e[0]],[i+s,a+s,e[1]])}};function vd(t,e,r,n){let o=t instanceof io._GlobeViewport&&t.resolution?t.projectPosition:null,s=Object.values(t.getFrustumPlanes()).map(({normal:p,distance:d})=>new pe(p.clone().negate(),d)),i=new ce(s),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,f=t instanceof io.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[p,d,g,m]=n,y=mt([p,m]),b=mt([g,d]);n=[y[0],Yr-y[1],b[0],Yr-b[1]]}let u=new Dt(0,0,0),h={viewport:t,project:o,cullingVolume:i,elevationBounds:[c,l],minZ:f,maxZ:e,bounds:n,offset:0};if(u.update(h),t instanceof io.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-Cd););for(h.offset=1;u.update(h)&&!(++h.offset>Cd););}return u.getSelected()}var xt=512,g_=[-1/0,-1/0,1/0,1/0],Gt={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}};function qs(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(o=>o[0])),Math.min(...r.map(o=>o[1])),Math.max(...r.map(o=>o[0])),Math.max(...r.map(o=>o[1]))]}function A_(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function ft(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let s=A_(n)%t.length;t=t[s]}let o=t;for(let s of Object.keys(r)){let i=new RegExp(`{${s}}`,"g");o=o.replace(i,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),o}function x_(t,e,r){let n;if(e&&e.length===2){let[o,s]=e,i=t.getBounds({z:o}),a=t.getBounds({z:s});n=[Math.min(i[0],a[0]),Math.min(i[1],a[1]),Math.max(i[2],a[2]),Math.max(i[3],a[3])]}else n=t.getBounds();return t.isGeospatial?[Math.max(n[0],r[0]),Math.max(n[1],r[1]),Math.min(n[2],r[2]),Math.min(n[3],r[3])]:[Math.max(Math.min(n[0],r[2]),r[0]),Math.max(Math.min(n[1],r[3]),r[1]),Math.min(Math.max(n[2],r[0]),r[2]),Math.min(Math.max(n[3],r[1]),r[3])]}function wd({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(o=>Uc(o,e||0,r))}function Uc(t,e,r){if(!Array.isArray(e)){let s=r.x-t.x,i=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},f=t.unproject([s,i],l),u=t.unproject([s+a,i],l),h=t.unproject([s,i+c],l),p=t.unproject([s+a,i+c],l);return[Math.min(f[0],u[0],h[0],p[0]),Math.min(f[1],u[1],h[1],p[1]),Math.max(f[0],u[0],h[0],p[0]),Math.max(f[1],u[1],h[1],p[1])]}let n=Uc(t,e[0],r),o=Uc(t,e[1],r);return[Math.min(n[0],o[0]),Math.min(n[1],o[1]),Math.max(n[2],o[2]),Math.max(n[3],o[3])]}function y_(t,e,r){return r?qs(t,r).map(o=>o*e/xt):t.map(n=>n*e/xt)}function Dc(t,e){return Math.pow(2,t)*xt/e}function js(t,e,r){let n=Dc(r,xt),o=t/n*360-180,s=Math.PI-2*Math.PI*e/n,i=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[o,i]}function Rd(t,e,r,n){let o=Dc(r,n);return[t/o*xt,e/o*xt]}function Gc(t,e,r,n,o=xt){if(t.isGeospatial){let[l,f]=js(e,r,n),[u,h]=js(e+1,r+1,n);return{west:l,north:f,east:u,south:h}}let[s,i]=Rd(e,r,n,o),[a,c]=Rd(e+1,r+1,n,o);return{left:s,top:i,right:a,bottom:c}}function b_(t,e,r,n,o){let s=x_(t,null,n),i=Dc(e,r),[a,c,l,f]=y_(s,i,o),u=[];for(let h=Math.floor(a);h<l;h++)for(let p=Math.floor(c);p<f;p++)u.push({x:h,y:p,z:e});return u}function Vc({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:o,tileSize:s=xt,modelMatrix:i,modelMatrixInverse:a,zoomOffset:c=0,visibleMinZoom:l,visibleMaxZoom:f}){let u=t.isGeospatial?Math.round(t.zoom+Math.log2(xt/s)+c):Math.ceil(t.zoom+c);if(typeof r=="number"&&Number.isFinite(r)&&u<r){if(!o)return[];u=r}if(typeof e=="number"&&Number.isFinite(e)&&u>e&&(u=e),l!=null&&t.zoom<l)return[];if(f!=null&&t.zoom>f)return[];let h=o;return i&&a&&o&&!t.isGeospatial&&(h=qs(o,i)),t.isGeospatial?vd(t,u,n,o):b_(t,u,s,h||g_,a)}function Hc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function zc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Ld(t){let e={},r;return n=>{for(let o in n)if(!T_(n[o],e[o])){r=t(n),e=n;break}return r}}function T_(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}return!1}var Fd=1,Js=2,M_="never",S_="no-overlap",ao="best-available",E_=5,__={[ao]:B_,[S_]:I_,[M_]:()=>{}},C_={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},hr=class{constructor(e){this._getCullBounds=Ld(wd),this.opts={...C_,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new Lt({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new N,this._modelMatrixInverse=new N}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:n}={zRange:null,modelMatrix:null}){let o=n?new N(n):new N,s=!o.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!_e(this._zRange,r)||s){s&&(this._modelMatrixInverse=o.clone().invert(),this._modelMatrix=o),this._viewport=e,this._zRange=r;let a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map(c=>this._getTile(c,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(a=>this._getTile(a.index,!0)));let i=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),i&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,n){if(!e.isVisible)return!1;if(r&&this._viewport){let o=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,a,c,l]of o){let f;if("west"in s)f=s.west<c&&s.east>i&&s.south<l&&s.north>a;else{if(n&&!N.IDENTITY.equals(n)){let[p,d,g,m]=qs([s.left,s.top,s.right,s.bottom],n);s={left:p,top:d,right:g,bottom:m}}let u=Math.min(s.top,s.bottom),h=Math.max(s.top,s.bottom);f=s.left<c&&s.right>i&&u<l&&h>a}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:o,modelMatrix:s,modelMatrixInverse:i}){let{tileSize:a,extent:c,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u}=this.opts;return Vc({viewport:e,maxZoom:r,minZoom:n,zRange:o,tileSize:a,extent:c,modelMatrix:s,modelMatrixInverse:i,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Gc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),o=e.z-1;return{x:r,y:n,z:o}}updateTileStates(){let e=this.opts.refinementStrategy||ao,r=new Array(this._cache.size),n=0;for(let o of this._cache.values())r[n++]=o.isVisible,o.isSelected=!1,o.isVisible=!1;for(let o of this._selectedTiles)o.isSelected=!0,o.isVisible=!0;(typeof e=="function"?e:__[e])(Array.from(this._cache.values())),n=0;for(let o of this._cache.values())if(r[n++]!==o.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let o of this._cache.values())o.isLoading&&(n++,!o.isSelected&&!o.isVisible&&r.push(o));for(;e>0&&n>e&&r.length>0;)r.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let n=this._getNearestAncestor(r);r.parent=n,n?.children&&n.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,n=r.maxCacheSize??(r.maxCacheByteSize!==null?1/0:E_*this.selectedTiles.length),o=r.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>o){for(let[i,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?a.byteLength:0,e.delete(i),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=o)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((i,a)=>i.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),o=this._cache.get(n),s=!1;return!o&&r?(o=new ur(e),Object.assign(o,this.getTileMetadata(o.index)),Object.assign(o,{id:n,zoom:this.getTileZoom(o.index)}),s=!0,this._cache.set(n,o),this._dirty=!0):o&&o.needsReload&&(s=!0),o&&s&&o.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let o=this._getTile(n);if(o)return o}return null}};function B_(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Pd(e)&&kc(e);for(let e of t)e.isVisible=Boolean(e.state&Js)}function I_(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Pd(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&Js),r.children&&(r.isVisible||r.state&Fd))for(let n of r.children)n.state=Fd;else r.isSelected&&kc(r)}function Pd(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Js,!0;e=e.parent}return!1}function kc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Js:kc(e)}var v_={TilesetClass:hr,data:{type:"data",value:[]},dataComparator:Gt.equal,renderSubLayers:{type:"function",value:t=>new Nd.GeoJsonLayer(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:ao,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},co=class extends Ws.CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&(!e.content||!e.layers||e.layers.every(r=>r.isLoaded))))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,n=e.propsOrDataChanged||e.updateTriggersChanged,o=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),o?r.reloadAll():r.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:o,extent:s,maxZoom:i,minZoom:a,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:i,minZoom:a,tileSize:e,refinementStrategy:o,extent:s,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:n}=this.props,o=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:s}=e,i=this.state.isLoaded!==s,a=this.state.frameNumber!==o;s&&(i||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:o}),this.state.isLoaded=s}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:n,fetch:o}=this.props,{signal:s}=e;return e.url=typeof r=="string"||Array.isArray(r)?ft(r,e):null,n?n(e):o&&e.url?o(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,n=r.props.tile,o=e.info;return o.picked&&(o.tile=n),o.sourceTile=n,o.sourceTileSubLayer=r,o}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:r,minZoom:n,extent:o}=this.props,s=this.context.viewport.zoom;if(e!=null&&s<e||r!=null&&s>r||n!=null&&!o&&s<n){for(let a of this.state.tileset.tiles)a.layers=null;return[]}return this.state.tileset.tiles.map(a=>{let c=this.getSubLayerPropsByTile(a);if(!(!a.isLoaded&&!a.content))if(a.layers)c&&a.layers[0]&&Object.keys(c).some(l=>a.layers[0].props[l]!==c[l])&&(a.layers=a.layers.map(l=>l.clone(c)));else{let l=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:a.id,updateTriggers:this.props.updateTriggers}),data:a.content,_offset:0,tile:a});a.layers=(0,Ws._flatten)(l,Boolean).map(f=>f.clone({tile:a,...c}))}return a.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props,{modelMatrix:o}=this.props;return this.state.tileset.isTileVisible(n,r,o?new N(o):null)}};co.defaultProps=v_;co.layerName="TileLayer";var pr=co;var Dd=U(Ke(),1);var Od=`layout(std140) uniform tripsUniforms {
|
|
11
11
|
bool fadeTrail;
|
|
12
12
|
float trailLength;
|
|
13
13
|
float currentTime;
|
|
14
14
|
} trips;
|
|
15
|
-
`,
|
|
15
|
+
`,Ud={name:"trips",vs:Od,fs:Od,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};var R_={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},lo=class extends Dd.PathLayer{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`in float instanceTimestamps;
|
|
16
16
|
in float instanceNextTimestamps;
|
|
17
17
|
out float vTime;
|
|
18
18
|
`,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;
|
|
@@ -23,7 +23,7 @@ out float vTime;
|
|
|
23
23
|
`,"fs:DECKGL_FILTER_COLOR":`if(trips.fadeTrail) {
|
|
24
24
|
color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;
|
|
25
25
|
}
|
|
26
|
-
`},e.modules=[...e.modules,Rd],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(e){let{fadeTrail:r,trailLength:n,currentTime:o}=this.props,s={fadeTrail:r,trailLength:n,currentTime:o};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}};so.layerName="TripsLayer";so.defaultProps=m_;var wd=so;var Ld=U(rs(),1),Fd=U(Ke(),1);var ze=U(rs(),1),ks=U(Ke(),1),io=U(Xe(),1);var g_=10;function A_(t,e){let r;return t==null?r=e:typeof t=="object"?r={...t,coverage:e}:r={getHexagon:t,coverage:e},r}var x_={...io.PolygonLayer.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:!0},Vt=class extends ks.CompositeLayer{initializeState(){Vt._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,n=!1,{iterable:o,objectInfo:s}=(0,ks.createIterable)(this.props.data);for(let i of o){s.index++;let a=this.props.getHexagon(i,s),c=(0,ze.getResolution)(a);if(e<0){if(e=c,!this.props.highPrecision)break}else if(e!==c){n=!0;break}if((0,ze.isPentagon)(a)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?(0,ze.getHexagonEdgeLengthAvg)(e,"km"):0,hasMultipleRes:n,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:e,hasPentagon:r,hasMultipleRes:n}=this.state,{viewport:o}=this.context;return Boolean(o?.resolution)||n||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:n,centerHex:o}=this.state;if(r<0)return;let s=this.props.centerHexagon||(0,ze.latLngToCell)(e.latitude,e.longitude,r);if(o===s)return;if(o)try{if((0,ze.gridDistance)(o,s)*n<g_)return}catch{}let{unitsPerMeter:i}=e.distanceScales,a=Xa(s),[c,l]=(0,ze.cellToLatLng)(s),[f,u]=e.projectFlat([l,c]);a=a.map(h=>{let p=e.projectFlat(h);return[(p[0]-f)/i[0],(p[1]-u)/i[1]]}),this.setState({centerHex:s,vertices:a})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:n,extruded:o,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:h,getElevation:p,getLineColor:d,getLineWidth:A,transitions:m,updateTriggers:x}=this.props;return{elevationScale:e,extruded:o,coverage:n,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:r,getElevation:p,getFillColor:h,getLineColor:d,getLineWidth:A,transitions:m,updateTriggers:{getFillColor:x.getFillColor,getElevation:x.getElevation,getLineColor:x.getLineColor,getLineWidth:x.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:n,coverage:o}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",io.PolygonLayer),i=this._getForwardProps();return i.updateTriggers.getPolygon=A_(n.getHexagon,o),new s(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{let l=r(a,c);return xs(Xa(l,o))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:n}=this.props,o=this.getSubLayerClass("hexagon-cell",io.ColumnLayer),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new o(s,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Wh.bind(null,r)})}};Vt.defaultProps=x_;Vt.layerName="H3HexagonLayer";Vt._checkH3Lib=()=>{};var qs=Vt;var b_={getHexagons:{type:"accessor",value:t=>t.hexagons}},ao=class extends De{initializeState(){qs._checkH3Lib()}updateState({props:e,changeFlags:r}){if(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagons){let{data:n,getHexagons:o}=e,s=[],{iterable:i,objectInfo:a}=(0,Fd.createIterable)(n);for(let c of i){a.index++;let l=o(c,a),f=(0,Ld.cellsToMultiPolygon)(l,!0);for(let u of f){for(let h of u)As(h);s.push(this.getSubLayerRow({polygon:u},c,a.index))}}this.setState({polygons:s})}}indexToBounds(){let{getElevation:e,getFillColor:r,getLineColor:n,getLineWidth:o}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(r),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(o)}}};ao.layerName="H3ClusterLayer";ao.defaultProps=b_;var Pd=ao;var R0=U(Dc(),1),jt=U(Ke(),1),v0=U(Xe(),1),w0=U(js(),1);var Ud="4.4.1";var Js={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Dd;async function Vc(t){cc(t.modules);let e=lc("basis");return e||(Dd||=y_(t),await Dd)}async function y_(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Js.TRANSCODER,"textures",t),await Ve(Js.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await T_(e,r)}function T_(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,initializeBasis:i}=o;i(),n({BasisFile:s})})})}var Gc;async function Hc(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(Gc=Gc||M_(t),await Gc)}async function M_(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Js.ENCODER,"textures",t),await Ve(Js.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await E_(e,r)}function E_(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,KTX2File:i,initializeBasis:a,BasisEncoder:c}=o;a(),n({BasisFile:s,KTX2File:i,BasisEncoder:c})})})}var S_=["","WEBKIT_","MOZ_"],Gd={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var Ws=null;function Vd(t){if(!Ws){t=t||__()||void 0,Ws=new Set;for(let e of S_)for(let r in Gd)if(t&&t.getExtension(`${e}${r}`))for(let n of Gd[r])Ws.add(n)}return Ws}function __(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Ue=[171,75,84,88,32,50,48,187,13,10,26,10];function Hd(t){let e=new Uint8Array(t);return!(e.byteLength<Ue.length||e[0]!==Ue[0]||e[1]!==Ue[1]||e[2]!==Ue[2]||e[3]!==Ue[3]||e[4]!==Ue[4]||e[5]!==Ue[5]||e[6]!==Ue[6]||e[7]!==Ue[7]||e[8]!==Ue[8]||e[9]!==Ue[9]||e[10]!==Ue[10]||e[11]!==Ue[11])}var zd=Promise.resolve(),jd={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},OG=Object.freeze(Object.keys(jd));async function I_(t){let e=zd,r;zd=new Promise(n=>{r=n}),await e;try{return await t()}finally{r()}}async function Jd(t,e={}){let r=Gn(e);return await I_(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Hd(t)){let o=await Hc(r);return kd(o.KTX2File,t,e)}let{BasisFile:n}=await Vc(r);return zc(n,t,e)}switch(e.basis.module){case"encoder":let n=await Hc(r);switch(e.basis.containerFormat){case"ktx2":return kd(n.KTX2File,t,e);case"basis":default:return zc(n.BasisFile,t,e)}case"transcoder":default:let{BasisFile:o}=await Vc(r);return zc(o,t,e)}})}function zc(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let o=n.getNumImages(),s=[];for(let i=0;i<o;i++){let a=n.getNumLevels(i),c=[];for(let l=0;l<a;l++)c.push(R_(n,i,l,r));s.push(c)}return s}finally{n.close(),n.delete()}}function R_(t,e,r,n){let o=t.getImageWidth(e,r),s=t.getImageHeight(e,r),i=t.getHasAlpha(),{compressed:a,format:c,basisFormat:l,textureFormat:f}=Wd(n,i),u=t.getImageTranscodedSizeInBytes(e,r,l),h=new Uint8Array(u);if(!t.transcodeImage(h,e,r,l,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:s,data:h,compressed:a,...c!==void 0?{format:c}:{},...f!==void 0?{textureFormat:f}:{},hasAlpha:i}}function kd(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=n.getLevels(),s=[];for(let i=0;i<o;i++)s.push(v_(n,i,r));return[s]}finally{n.close(),n.delete()}}function v_(t,e,r){let{alphaFlag:n,height:o,width:s}=t.getImageLevelInfo(e,0,0),{compressed:i,format:a,basisFormat:c,textureFormat:l}=Wd(r,n),f=t.getImageTranscodedSizeInBytes(e,0,0,c),u=new Uint8Array(f);if(!t.transcodeImage(u,e,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:o,data:u,compressed:i,...a!==void 0?{format:a}:{},...l!==void 0?{textureFormat:l}:{},levelSize:f,hasAlpha:n}}function Wd(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?qd(t.basis.supportedTextureFormats):qd()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let n=r.toLowerCase(),o=jd[n];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function qd(t=Vd()){let e=new Set(t);return Xr(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":Xr(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:Xr(e,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:Xr(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:Xr(e,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":e.has("etc1-rgb-unorm-webgl")?"etc1":Xr(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function Xr(t,e){return e.some(r=>t.has(r))}var Xd={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Ud,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},kc={...Xd,parse:Jd};var le=U(qc(),1);var $;(function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST=9728]="NEAREST",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})($||($={}));function Qd(t){return{addressModeU:Yd(t.wrapS),addressModeV:Yd(t.wrapT),magFilter:w_(t.magFilter),...L_(t.minFilter)}}function Yd(t){switch(t){case $.CLAMP_TO_EDGE:return"clamp-to-edge";case $.REPEAT:return"repeat";case $.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function w_(t){switch(t){case $.NEAREST:return"nearest";case $.LINEAR:return"linear";default:return}}function L_(t){switch(t){case $.NEAREST:return{minFilter:"nearest"};case $.LINEAR:return{minFilter:"linear"};case $.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case $.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case $.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case $.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var Zd=[xe("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),xe("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),xe("normal","pbr_normalSampler","normalTexture",["normalTexture"]),xe("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),xe("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),xe("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),xe("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),xe("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),xe("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),xe("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),xe("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),xe("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),xe("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),xe("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),xe("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),xe("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),xe("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"])],F_=new Map(Zd.map(t=>[t.slot,t]));function xe(t,e,r,n){return{slot:t,binding:e,displayName:r,pathSegments:n,uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function $d(){return Zd}function em(t){let e=F_.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function tm(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function jc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function rm(t){let e=new k().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new k().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),n=new k().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(n))}function Wc(t,e,r,n){let o={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};o.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:s}=n;return s&&(o.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,o.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,o.bindings.pbr_brdfLUT=s.brdfLutTexture.texture,o.uniforms.IBLenabled=!0,o.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(o.defines.PBR_DEBUG=!0,o.uniforms.scaleDiffBaseMR=[0,0,0,0],o.uniforms.scaleFGDSpec=[0,0,0,0]),r.NORMAL&&(o.defines.HAS_NORMALS=!0),r.TANGENT&&n?.useTangents&&(o.defines.HAS_TANGENTS=!0),r.TEXCOORD_0&&(o.defines.HAS_UV=!0),r.TEXCOORD_1&&(o.defines.HAS_UV_1=!0),r.JOINTS_0&&r.WEIGHTS_0&&(o.defines.HAS_SKIN=!0),r.COLOR_0&&(o.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(o.defines.USE_IBL=!0),n?.lights&&(o.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&P_(e,r),O_(t,e,o,r,n.gltf)),o}function P_(t,e){let r=nm(t,0);r.length>0&&!e.TEXCOORD_0&&le.log.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=nm(t,1);if(n.length>0&&!e.TEXCOORD_1&&le.log.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),Boolean(t.unlit||t.extensions?.KHR_materials_unlit)||e.NORMAL)return;let s=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";le.log.warn(`glTF primitive is missing NORMAL while using ${s}; shading will fall back to geometric normals`)()}function nm(t,e){let r=[];for(let n of $d()){let o=N_(t,n.pathSegments);o&&jc(o)===e&&r.push(n.displayName)}return r}function N_(t,e){let r=t;for(let n of e)if(r=r?.[n],!r)return null;return r}function O_(t,e,r,n,o){if(r.uniforms.unlit=Boolean(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&G_(t,e.pbrMetallicRoughness,r,n,o),e.normalTexture){be(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"normal"});let{scale:s=1}=e.normalTexture;r.uniforms.normalScale=s}if(e.occlusionTexture){be(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"occlusion"});let{strength:s=1}=e.occlusionTexture;r.uniforms.occlusionStrength=s}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&be(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"emissive"}),V_(t,e.extensions,r,o,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:s=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=s;break}case"BLEND":le.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),U_(r);break}}function U_(t){t.parameters.blend=!0,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="src-alpha",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.SRC_ALPHA,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function D_(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="one",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.ONE,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function G_(t,e,r,n,o){e.baseColorTexture&&be(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&be(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:s=1,roughnessFactor:i=1}=e;r.uniforms.metallicRoughnessValues=[s,i]}function V_(t,e,r,n,o={}){e&&(H_(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),z_(t,e.KHR_materials_specular,r,n,o),k_(e.KHR_materials_ior,r),q_(t,e.KHR_materials_transmission,r,n,o),j_(t,e.KHR_materials_volume,r,n,o),J_(t,e.KHR_materials_clearcoat,r,n,o),W_(t,e.KHR_materials_sheen,r,n,o),X_(t,e.KHR_materials_iridescence,r,n,o),K_(t,e.KHR_materials_anisotropy,r,n,o),Y_(e.KHR_materials_emissive_strength,r))}function H_(t){return Boolean(t.KHR_materials_specular||t.KHR_materials_ior||t.KHR_materials_transmission||t.KHR_materials_volume||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function z_(t,e,r,n,o={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&be(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularColor"}),e.specularTexture&&be(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularIntensity"}))}function k_(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function q_(t,e,r,n,o={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&be(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(le.log.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),D_(r)))}function j_(t,e,r,n,o={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&be(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function J_(t,e,r,n,o={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&be(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&be(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&be(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:o,textureTransformSlot:"clearcoatNormal"}))}function W_(t,e,r,n,o={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&be(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&be(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenRoughness"}))}function X_(t,e,r,n,o={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&be(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&be(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"iridescenceThickness"}))}function K_(t,e,r,n,o={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&be(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"anisotropy"}))}function Y_(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function be(t,e,r,n,o={}){let{featureOptions:s={},gltf:i,attributes:a={},textureTransformSlot:c}=o,{define:l,enabledUniformName:f}=s,u=jc(e);if(u>1){le.log.warn(`Skipping ${String(r)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(u===1&&!a.TEXCOORD_1){le.log.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let h=Q_(e,i),p=h.texture?.source?.image;if(!p){le.log.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let d={wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729,...h?.texture?.sampler},A={id:h.uniformName||h.id,sampler:Qd(d)},m;if(p.compressed)m=$_(t,p,A);else{let{width:x,height:T}=t.getExternalImageSize(p);m=t.createTexture({...A,width:x,height:T,data:p})}if(n.bindings[r]=m,l&&(n.defines[l]=!0),f&&(n.uniforms[f]=!0),c){let x=em(c);n.uniforms[x.uvSetUniform]=u,n.uniforms[x.uvTransformUniform]=rm(tm(e))}n.generatedTextures.push(m)}function Q_(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r=e.textures[t.index];return r?"texture"in r&&r.texture?{...r,...t,texture:r.texture}:"source"in r?{...t,texture:r}:t:t}function Jc(t,e){return t.createTexture({...e,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function om(t){return t.textureFormat}function Z_(t,e,r){let{blockWidth:n=1,blockHeight:o=1}=le.textureFormatDecoder.getInfo(r),s=1;for(let i=1;;i++){let a=Math.max(1,t>>i),c=Math.max(1,e>>i);if(a<n||c<o)break;s++}return s}function $_(t,e,r){let n;if(Array.isArray(e.data)&&e.data[0]?.data?n=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?n=e.mipmaps:n=[],n.length===0||!n[0]?.data)return le.log.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),Jc(t,r);let o=n[0],s=o.width??e.width??0,i=o.height??e.height??0;if(s<=0||i<=0)return le.log.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),Jc(t,r);let a=om(o);if(!a)return le.log.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),Jc(t,r);let c=Z_(s,i,a),l=Math.min(n.length,c),f=1;for(let h=1;h<l;h++){let p=n[h];if(!p.data||p.width<=0||p.height<=0){le.log.warn(`createCompressedTexture: mip level ${h} has invalid data/dimensions, truncating`)();break}let d=om(p);if(d&&d!==a){le.log.warn(`createCompressedTexture: mip level ${h} format '${d}' differs from base '${a}', truncating`)();break}let A=Math.max(1,s>>h),m=Math.max(1,i>>h);if(p.width!==A||p.height!==m){le.log.warn(`createCompressedTexture: mip level ${h} dimensions ${p.width}x${p.height} don't match expected ${A}x${m}, truncating`)();break}f++}let u=t.createTexture({...r,format:a,usage:le.Texture.TEXTURE|le.Texture.COPY_DST,width:s,height:i,mipLevels:f,data:o.data});for(let h=1;h<f;h++)u.writeData(n[h].data,{width:n[h].width,height:n[h].height,mipLevel:h});return u}function sm(t,e=!0){return t??e}function im(t=[0,0,0],e=!0){return e?t.map(r=>r/255):[...t]}var cm=U(qc(),1);var Xc=`precision highp int;
|
|
26
|
+
`},e.modules=[...e.modules,Ud],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(e){let{fadeTrail:r,trailLength:n,currentTime:o}=this.props,s={fadeTrail:r,trailLength:n,currentTime:o};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}};lo.layerName="TripsLayer";lo.defaultProps=R_;var Gd=lo;var Vd=U(is(),1),Hd=U(Xe(),1);var ze=U(is(),1),Ks=U(Xe(),1),fo=U(Ke(),1);var w_=10;function L_(t,e){let r;return t==null?r=e:typeof t=="object"?r={...t,coverage:e}:r={getHexagon:t,coverage:e},r}var F_={...fo.PolygonLayer.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:!0},Vt=class extends Ks.CompositeLayer{initializeState(){Vt._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,n=!1,{iterable:o,objectInfo:s}=(0,Ks.createIterable)(this.props.data);for(let i of o){s.index++;let a=this.props.getHexagon(i,s),c=(0,ze.getResolution)(a);if(e<0){if(e=c,!this.props.highPrecision)break}else if(e!==c){n=!0;break}if((0,ze.isPentagon)(a)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?(0,ze.getHexagonEdgeLengthAvg)(e,"km"):0,hasMultipleRes:n,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:e,hasPentagon:r,hasMultipleRes:n}=this.state,{viewport:o}=this.context;return Boolean(o?.resolution)||n||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:n,centerHex:o}=this.state;if(r<0)return;let s=this.props.centerHexagon||(0,ze.latLngToCell)(e.latitude,e.longitude,r);if(o===s)return;if(o)try{if((0,ze.gridDistance)(o,s)*n<w_)return}catch{}let{unitsPerMeter:i}=e.distanceScales,a=$a(s),[c,l]=(0,ze.cellToLatLng)(s),[f,u]=e.projectFlat([l,c]);a=a.map(h=>{let p=e.projectFlat(h);return[(p[0]-f)/i[0],(p[1]-u)/i[1]]}),this.setState({centerHex:s,vertices:a})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:n,extruded:o,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:h,getElevation:p,getLineColor:d,getLineWidth:g,transitions:m,updateTriggers:y}=this.props;return{elevationScale:e,extruded:o,coverage:n,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:r,getElevation:p,getFillColor:h,getLineColor:d,getLineWidth:g,transitions:m,updateTriggers:{getFillColor:y.getFillColor,getElevation:y.getElevation,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:n,coverage:o}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",fo.PolygonLayer),i=this._getForwardProps();return i.updateTriggers.getPolygon=L_(n.getHexagon,o),new s(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{let l=r(a,c);return Ms($a(l,o))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:n}=this.props,o=this.getSubLayerClass("hexagon-cell",fo.ColumnLayer),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new o(s,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:$h.bind(null,r)})}};Vt.defaultProps=F_;Vt.layerName="H3HexagonLayer";Vt._checkH3Lib=()=>{};var Xs=Vt;var P_={getHexagons:{type:"accessor",value:t=>t.hexagons}},uo=class extends De{initializeState(){Xs._checkH3Lib()}updateState({props:e,changeFlags:r}){if(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagons){let{data:n,getHexagons:o}=e,s=[],{iterable:i,objectInfo:a}=(0,Hd.createIterable)(n);for(let c of i){a.index++;let l=o(c,a),f=(0,Vd.cellsToMultiPolygon)(l,!0);for(let u of f){for(let h of u)Ts(h);s.push(this.getSubLayerRow({polygon:u},c,a.index))}}this.setState({polygons:s})}}indexToBounds(){let{getElevation:e,getFillColor:r,getLineColor:n,getLineWidth:o}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(r),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(o)}}};uo.layerName="H3ClusterLayer";uo.defaultProps=P_;var zd=uo;var U0=U(jc(),1),qt=U(Xe(),1),D0=U(Ke(),1),G0=U(Ys(),1);var qd="4.4.1";var Qs={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Jd;async function Jc(t){dc(t.modules);let e=mc("basis");return e||(Jd||=N_(t),await Jd)}async function N_(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Qs.TRANSCODER,"textures",t),await Ve(Qs.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await O_(e,r)}function O_(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,initializeBasis:i}=o;i(),n({BasisFile:s})})})}var qc;async function Wc(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(qc=qc||U_(t),await qc)}async function U_(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Qs.ENCODER,"textures",t),await Ve(Qs.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await D_(e,r)}function D_(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,KTX2File:i,initializeBasis:a,BasisEncoder:c}=o;a(),n({BasisFile:s,KTX2File:i,BasisEncoder:c})})})}var G_=["","WEBKIT_","MOZ_"],Wd={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var Zs=null;function Kd(t){if(!Zs){t=t||V_()||void 0,Zs=new Set;for(let e of G_)for(let r in Wd)if(t&&t.getExtension(`${e}${r}`))for(let n of Wd[r])Zs.add(n)}return Zs}function V_(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Ue=[171,75,84,88,32,50,48,187,13,10,26,10];function Xd(t){let e=new Uint8Array(t);return!(e.byteLength<Ue.length||e[0]!==Ue[0]||e[1]!==Ue[1]||e[2]!==Ue[2]||e[3]!==Ue[3]||e[4]!==Ue[4]||e[5]!==Ue[5]||e[6]!==Ue[6]||e[7]!==Ue[7]||e[8]!==Ue[8]||e[9]!==Ue[9]||e[10]!==Ue[10]||e[11]!==Ue[11])}var Yd=Promise.resolve(),$d={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},aV=Object.freeze(Object.keys($d));async function k_(t){let e=Yd,r;Yd=new Promise(n=>{r=n}),await e;try{return await t()}finally{r()}}async function em(t,e={}){let r=kn(e);return await k_(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Xd(t)){let o=await Wc(r);return Qd(o.KTX2File,t,e)}let{BasisFile:n}=await Jc(r);return Kc(n,t,e)}switch(e.basis.module){case"encoder":let n=await Wc(r);switch(e.basis.containerFormat){case"ktx2":return Qd(n.KTX2File,t,e);case"basis":default:return Kc(n.BasisFile,t,e)}case"transcoder":default:let{BasisFile:o}=await Jc(r);return Kc(o,t,e)}})}function Kc(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let o=n.getNumImages(),s=[];for(let i=0;i<o;i++){let a=n.getNumLevels(i),c=[];for(let l=0;l<a;l++)c.push(j_(n,i,l,r));s.push(c)}return s}finally{n.close(),n.delete()}}function j_(t,e,r,n){let o=t.getImageWidth(e,r),s=t.getImageHeight(e,r),i=t.getHasAlpha(),{compressed:a,format:c,basisFormat:l,textureFormat:f}=tm(n,i),u=t.getImageTranscodedSizeInBytes(e,r,l),h=new Uint8Array(u);if(!t.transcodeImage(h,e,r,l,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:s,data:h,compressed:a,...c!==void 0?{format:c}:{},...f!==void 0?{textureFormat:f}:{},hasAlpha:i}}function Qd(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=n.getLevels(),s=[];for(let i=0;i<o;i++)s.push(q_(n,i,r));return[s]}finally{n.close(),n.delete()}}function q_(t,e,r){let{alphaFlag:n,height:o,width:s}=t.getImageLevelInfo(e,0,0),{compressed:i,format:a,basisFormat:c,textureFormat:l}=tm(r,n),f=t.getImageTranscodedSizeInBytes(e,0,0,c),u=new Uint8Array(f);if(!t.transcodeImage(u,e,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:o,data:u,compressed:i,...a!==void 0?{format:a}:{},...l!==void 0?{textureFormat:l}:{},levelSize:f,hasAlpha:n}}function tm(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?Zd(t.basis.supportedTextureFormats):Zd()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let n=r.toLowerCase(),o=$d[n];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function Zd(t=Kd()){let e=new Set(t);return Qr(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":Qr(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:Qr(e,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:Qr(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:Qr(e,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":e.has("etc1-rgb-unorm-webgl")?"etc1":Qr(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function Qr(t,e){return e.some(r=>t.has(r))}var rm={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:qd,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},Xc={...rm,parse:em};var le=U(Yc(),1);var $;(function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST=9728]="NEAREST",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})($||($={}));function sm(t){return{addressModeU:om(t.wrapS),addressModeV:om(t.wrapT),magFilter:J_(t.magFilter),...W_(t.minFilter)}}function om(t){switch(t){case $.CLAMP_TO_EDGE:return"clamp-to-edge";case $.REPEAT:return"repeat";case $.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function J_(t){switch(t){case $.NEAREST:return"nearest";case $.LINEAR:return"linear";default:return}}function W_(t){switch(t){case $.NEAREST:return{minFilter:"nearest"};case $.LINEAR:return{minFilter:"linear"};case $.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case $.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case $.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case $.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var im=[xe("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),xe("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),xe("normal","pbr_normalSampler","normalTexture",["normalTexture"]),xe("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),xe("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),xe("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),xe("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),xe("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),xe("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),xe("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),xe("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),xe("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),xe("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),xe("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),xe("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),xe("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),xe("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"])],K_=new Map(im.map(t=>[t.slot,t]));function xe(t,e,r,n){return{slot:t,binding:e,displayName:r,pathSegments:n,uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function am(){return im}function cm(t){let e=K_.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function lm(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function Qc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function fm(t){let e=new k().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new k().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),n=new k().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(n))}function $c(t,e,r,n){let o={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};o.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:s}=n;return s&&(o.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,o.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,o.bindings.pbr_brdfLUT=s.brdfLutTexture.texture,o.uniforms.IBLenabled=!0,o.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(o.defines.PBR_DEBUG=!0,o.uniforms.scaleDiffBaseMR=[0,0,0,0],o.uniforms.scaleFGDSpec=[0,0,0,0]),r.NORMAL&&(o.defines.HAS_NORMALS=!0),r.TANGENT&&n?.useTangents&&(o.defines.HAS_TANGENTS=!0),r.TEXCOORD_0&&(o.defines.HAS_UV=!0),r.TEXCOORD_1&&(o.defines.HAS_UV_1=!0),r.JOINTS_0&&r.WEIGHTS_0&&(o.defines.HAS_SKIN=!0),r.COLOR_0&&(o.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(o.defines.USE_IBL=!0),n?.lights&&(o.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&X_(e,r),Q_(t,e,o,r,n.gltf)),o}function X_(t,e){let r=um(t,0);r.length>0&&!e.TEXCOORD_0&&le.log.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=um(t,1);if(n.length>0&&!e.TEXCOORD_1&&le.log.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),Boolean(t.unlit||t.extensions?.KHR_materials_unlit)||e.NORMAL)return;let s=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";le.log.warn(`glTF primitive is missing NORMAL while using ${s}; shading will fall back to geometric normals`)()}function um(t,e){let r=[];for(let n of am()){let o=Y_(t,n.pathSegments);o&&Qc(o)===e&&r.push(n.displayName)}return r}function Y_(t,e){let r=t;for(let n of e)if(r=r?.[n],!r)return null;return r}function Q_(t,e,r,n,o){if(r.uniforms.unlit=Boolean(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&eC(t,e.pbrMetallicRoughness,r,n,o),e.normalTexture){ye(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"normal"});let{scale:s=1}=e.normalTexture;r.uniforms.normalScale=s}if(e.occlusionTexture){ye(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"occlusion"});let{strength:s=1}=e.occlusionTexture;r.uniforms.occlusionStrength=s}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&ye(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"emissive"}),tC(t,e.extensions,r,o,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:s=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=s;break}case"BLEND":le.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),Z_(r);break}}function Z_(t){t.parameters.blend=!0,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="src-alpha",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.SRC_ALPHA,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function $_(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="one",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.ONE,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function eC(t,e,r,n,o){e.baseColorTexture&&ye(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&ye(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:s=1,roughnessFactor:i=1}=e;r.uniforms.metallicRoughnessValues=[s,i]}function tC(t,e,r,n,o={}){e&&(rC(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),nC(t,e.KHR_materials_specular,r,n,o),oC(e.KHR_materials_ior,r),sC(t,e.KHR_materials_transmission,r,n,o),iC(t,e.KHR_materials_volume,r,n,o),aC(t,e.KHR_materials_clearcoat,r,n,o),cC(t,e.KHR_materials_sheen,r,n,o),lC(t,e.KHR_materials_iridescence,r,n,o),fC(t,e.KHR_materials_anisotropy,r,n,o),uC(e.KHR_materials_emissive_strength,r))}function rC(t){return Boolean(t.KHR_materials_specular||t.KHR_materials_ior||t.KHR_materials_transmission||t.KHR_materials_volume||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function nC(t,e,r,n,o={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&ye(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularColor"}),e.specularTexture&&ye(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularIntensity"}))}function oC(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function sC(t,e,r,n,o={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&ye(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(le.log.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),$_(r)))}function iC(t,e,r,n,o={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&ye(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function aC(t,e,r,n,o={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&ye(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&ye(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&ye(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:o,textureTransformSlot:"clearcoatNormal"}))}function cC(t,e,r,n,o={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&ye(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&ye(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenRoughness"}))}function lC(t,e,r,n,o={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&ye(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&ye(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"iridescenceThickness"}))}function fC(t,e,r,n,o={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&ye(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"anisotropy"}))}function uC(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function ye(t,e,r,n,o={}){let{featureOptions:s={},gltf:i,attributes:a={},textureTransformSlot:c}=o,{define:l,enabledUniformName:f}=s,u=Qc(e);if(u>1){le.log.warn(`Skipping ${String(r)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(u===1&&!a.TEXCOORD_1){le.log.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let h=hC(e,i),p=h.texture?.source?.image;if(!p){le.log.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let d={wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729,...h?.texture?.sampler},g={id:h.uniformName||h.id,sampler:sm(d)},m;if(p.compressed)m=dC(t,p,g);else{let{width:y,height:b}=t.getExternalImageSize(p);m=t.createTexture({...g,width:y,height:b,data:p})}if(n.bindings[r]=m,l&&(n.defines[l]=!0),f&&(n.uniforms[f]=!0),c){let y=cm(c);n.uniforms[y.uvSetUniform]=u,n.uniforms[y.uvTransformUniform]=fm(lm(e))}n.generatedTextures.push(m)}function hC(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r=e.textures[t.index];return r?"texture"in r&&r.texture?{...r,...t,texture:r.texture}:"source"in r?{...t,texture:r}:t:t}function Zc(t,e){return t.createTexture({...e,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function hm(t){return t.textureFormat}function pC(t,e,r){let{blockWidth:n=1,blockHeight:o=1}=le.textureFormatDecoder.getInfo(r),s=1;for(let i=1;;i++){let a=Math.max(1,t>>i),c=Math.max(1,e>>i);if(a<n||c<o)break;s++}return s}function dC(t,e,r){let n;if(Array.isArray(e.data)&&e.data[0]?.data?n=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?n=e.mipmaps:n=[],n.length===0||!n[0]?.data)return le.log.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),Zc(t,r);let o=n[0],s=o.width??e.width??0,i=o.height??e.height??0;if(s<=0||i<=0)return le.log.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),Zc(t,r);let a=hm(o);if(!a)return le.log.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),Zc(t,r);let c=pC(s,i,a),l=Math.min(n.length,c),f=1;for(let h=1;h<l;h++){let p=n[h];if(!p.data||p.width<=0||p.height<=0){le.log.warn(`createCompressedTexture: mip level ${h} has invalid data/dimensions, truncating`)();break}let d=hm(p);if(d&&d!==a){le.log.warn(`createCompressedTexture: mip level ${h} format '${d}' differs from base '${a}', truncating`)();break}let g=Math.max(1,s>>h),m=Math.max(1,i>>h);if(p.width!==g||p.height!==m){le.log.warn(`createCompressedTexture: mip level ${h} dimensions ${p.width}x${p.height} don't match expected ${g}x${m}, truncating`)();break}f++}let u=t.createTexture({...r,format:a,usage:le.Texture.TEXTURE|le.Texture.COPY_DST,width:s,height:i,mipLevels:f,data:o.data});for(let h=1;h<f;h++)u.writeData(n[h].data,{width:n[h].width,height:n[h].height,mipLevel:h});return u}function pm(t,e=!0){return t??e}function dm(t=[0,0,0],e=!0){return e?t.map(r=>r/255):[...t]}var gm=U(Yc(),1);var el=`precision highp int;
|
|
27
27
|
|
|
28
28
|
// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
|
|
29
29
|
struct AmbientLight {
|
|
@@ -103,7 +103,7 @@ float getSpotLightAttenuation(SpotLight spotLight, vec3 positionWorldspace) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
// #endif
|
|
106
|
-
`;var
|
|
106
|
+
`;var mm=`// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
|
|
107
107
|
const MAX_LIGHTS: i32 = 5;
|
|
108
108
|
|
|
109
109
|
struct AmbientLight {
|
|
@@ -182,7 +182,7 @@ fn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>)
|
|
|
182
182
|
);
|
|
183
183
|
return distanceAttenuation / max(coneFactor, 0.0001);
|
|
184
184
|
}
|
|
185
|
-
`;var dr=5,
|
|
185
|
+
`;var dr=5,mC={color:"vec3<f32>",position:"vec3<f32>",direction:"vec3<f32>",attenuation:"vec3<f32>",coneCos:"vec2<f32>"},Am={props:{},uniforms:{},name:"lighting",defines:{},uniformTypes:{enabled:"i32",directionalLightCount:"i32",pointLightCount:"i32",spotLightCount:"i32",ambientColor:"vec3<f32>",lights:[mC,dr]},defaultUniforms:ei(),bindingLayout:[{name:"lighting",group:2}],firstBindingSlot:0,source:mm,vs:el,fs:el,getUniforms:gC};function gC(t,e={}){if(t=t&&{...t},!t)return ei();t.lights&&(t={...t,...xC(t.lights),lights:void 0});let{useByteColors:r,ambientLight:n,pointLights:o,spotLights:s,directionalLights:i}=t||{};if(!(n||o&&o.length>0||s&&s.length>0||i&&i.length>0))return{...ei(),enabled:0};let c={...ei(),...AC({useByteColors:r,ambientLight:n,pointLights:o,spotLights:s,directionalLights:i})};return t.enabled!==void 0&&(c.enabled=t.enabled?1:0),c}function AC({useByteColors:t,ambientLight:e,pointLights:r=[],spotLights:n=[],directionalLights:o=[]}){let s=xm(),i=0,a=0,c=0,l=0;for(let f of r){if(i>=dr)break;s[i]={...s[i],color:$s(f,t),position:f.position,attenuation:f.attenuation||[1,0,0]},i++,a++}for(let f of n){if(i>=dr)break;s[i]={...s[i],color:$s(f,t),position:f.position,direction:f.direction,attenuation:f.attenuation||[1,0,0],coneCos:bC(f)},i++,c++}for(let f of o){if(i>=dr)break;s[i]={...s[i],color:$s(f,t),direction:f.direction},i++,l++}return r.length+n.length+o.length>dr&&gm.log.warn(`MAX_LIGHTS exceeded, truncating to ${dr}`)(),{ambientColor:$s(e,t),directionalLightCount:l,pointLightCount:a,spotLightCount:c,lights:s}}function xC(t){let e={pointLights:[],spotLights:[],directionalLights:[]};for(let r of t||[])switch(r.type){case"ambient":e.ambientLight=r;break;case"directional":e.directionalLights?.push(r);break;case"point":e.pointLights?.push(r);break;case"spot":e.spotLights?.push(r);break;default:}return e}function $s(t={},e){let{color:r=[0,0,0],intensity:n=1}=t;return dm(r,pm(e,!0)).map(s=>s*n)}function ei(){return{enabled:1,directionalLightCount:0,pointLightCount:0,spotLightCount:0,ambientColor:[.1,.1,.1],lights:xm()}}function xm(){return Array.from({length:dr},()=>yC())}function yC(){return{color:[1,1,1],position:[1,1,2],direction:[1,1,1],attenuation:[1,0,0],coneCos:[1,0]}}function bC(t){let e=t.innerConeAngle??0,r=t.outerConeAngle??Math.PI/4;return[Math.cos(e),Math.cos(r)]}var TC=`#ifdef USE_IBL
|
|
186
186
|
@group(2) @binding(auto) var pbr_diffuseEnvSampler: texture_cube<f32>;
|
|
187
187
|
@group(2) @binding(auto) var pbr_diffuseEnvSamplerSampler: sampler;
|
|
188
188
|
@group(2) @binding(auto) var pbr_specularEnvSampler: texture_cube<f32>;
|
|
@@ -190,12 +190,12 @@ fn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>)
|
|
|
190
190
|
@group(2) @binding(auto) var pbr_brdfLUT: texture_2d<f32>;
|
|
191
191
|
@group(2) @binding(auto) var pbr_brdfLUTSampler: sampler;
|
|
192
192
|
#endif
|
|
193
|
-
`,
|
|
193
|
+
`,ym=`#ifdef USE_IBL
|
|
194
194
|
uniform samplerCube pbr_diffuseEnvSampler;
|
|
195
195
|
uniform samplerCube pbr_specularEnvSampler;
|
|
196
196
|
uniform sampler2D pbr_brdfLUT;
|
|
197
197
|
#endif
|
|
198
|
-
`,
|
|
198
|
+
`,bm={name:"ibl",firstBindingSlot:32,bindingLayout:[{name:"pbr_diffuseEnvSampler",group:2},{name:"pbr_specularEnvSampler",group:2},{name:"pbr_brdfLUT",group:2}],source:TC,vs:ym,fs:ym};var Tm=`out vec3 pbr_vPosition;
|
|
199
199
|
out vec2 pbr_vUV0;
|
|
200
200
|
out vec2 pbr_vUV1;
|
|
201
201
|
|
|
@@ -237,7 +237,7 @@ void pbr_setPositionNormalTangentUV(
|
|
|
237
237
|
|
|
238
238
|
pbr_vUV1 = uv1;
|
|
239
239
|
}
|
|
240
|
-
`,
|
|
240
|
+
`,Mm=`precision highp float;
|
|
241
241
|
|
|
242
242
|
layout(std140) uniform pbrMaterialUniforms {
|
|
243
243
|
// Material is unlit
|
|
@@ -1285,7 +1285,7 @@ vec4 pbr_filterColor(vec4 colorUnused)
|
|
|
1285
1285
|
float alpha = clamp(baseColor.a * (1.0 - transmission), 0.0, 1.0);
|
|
1286
1286
|
return vec4(pow(color,vec3(1.0/2.2)), alpha);
|
|
1287
1287
|
}
|
|
1288
|
-
`;var
|
|
1288
|
+
`;var Sm=`struct PBRFragmentInputs {
|
|
1289
1289
|
pbr_vPosition: vec3f,
|
|
1290
1290
|
pbr_vUV0: vec2f,
|
|
1291
1291
|
pbr_vUV1: vec2f,
|
|
@@ -2473,13 +2473,13 @@ fn pbr_filterColor(colorUnused: vec4<f32>) -> vec4<f32> {
|
|
|
2473
2473
|
let alpha = clamp(baseColor.a * (1.0 - transmission), 0.0, 1.0);
|
|
2474
2474
|
return vec4<f32>(pow(color, vec3<f32>(1.0 / 2.2)), alpha);
|
|
2475
2475
|
}
|
|
2476
|
-
`;var
|
|
2476
|
+
`;var Em=`layout(std140) uniform pbrProjectionUniforms {
|
|
2477
2477
|
mat4 modelViewProjectionMatrix;
|
|
2478
2478
|
mat4 modelMatrix;
|
|
2479
2479
|
mat4 normalMatrix;
|
|
2480
2480
|
vec3 camera;
|
|
2481
2481
|
} pbrProjection;
|
|
2482
|
-
`,
|
|
2482
|
+
`,MC=`struct pbrProjectionUniforms {
|
|
2483
2483
|
modelViewProjectionMatrix: mat4x4<f32>,
|
|
2484
2484
|
modelMatrix: mat4x4<f32>,
|
|
2485
2485
|
normalMatrix: mat4x4<f32>,
|
|
@@ -2487,10 +2487,10 @@ fn pbr_filterColor(colorUnused: vec4<f32>) -> vec4<f32> {
|
|
|
2487
2487
|
};
|
|
2488
2488
|
|
|
2489
2489
|
@group(0) @binding(auto) var<uniform> pbrProjection: pbrProjectionUniforms;
|
|
2490
|
-
`,
|
|
2490
|
+
`,_m={name:"pbrProjection",bindingLayout:[{name:"pbrProjection",group:0}],source:MC,vs:Em,fs:Em,getUniforms:t=>t,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<f32>"}};var tl={props:{},uniforms:{},defaultUniforms:{unlit:!1,baseColorMapEnabled:!1,baseColorFactor:[1,1,1,1],normalMapEnabled:!1,normalScale:1,emissiveMapEnabled:!1,emissiveFactor:[0,0,0],metallicRoughnessValues:[1,1],metallicRoughnessMapEnabled:!1,occlusionMapEnabled:!1,occlusionStrength:1,alphaCutoffEnabled:!1,alphaCutoff:.5,IBLenabled:!1,scaleIBLAmbient:[1,1],scaleDiffBaseMR:[0,0,0,0],scaleFGDSpec:[0,0,0,0],specularColorFactor:[1,1,1],specularIntensityFactor:1,specularColorMapEnabled:!1,specularIntensityMapEnabled:!1,ior:1.5,transmissionFactor:0,transmissionMapEnabled:!1,thicknessFactor:0,attenuationDistance:1e9,attenuationColor:[1,1,1],clearcoatFactor:0,clearcoatRoughnessFactor:0,clearcoatMapEnabled:!1,clearcoatRoughnessMapEnabled:!1,sheenColorFactor:[0,0,0],sheenRoughnessFactor:0,sheenColorMapEnabled:!1,sheenRoughnessMapEnabled:!1,iridescenceFactor:0,iridescenceIor:1.3,iridescenceThicknessRange:[100,400],iridescenceMapEnabled:!1,anisotropyStrength:0,anisotropyRotation:0,anisotropyDirection:[1,0],anisotropyMapEnabled:!1,emissiveStrength:1,baseColorUVSet:0,baseColorUVTransform:[1,0,0,0,1,0,0,0,1],metallicRoughnessUVSet:0,metallicRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],normalUVSet:0,normalUVTransform:[1,0,0,0,1,0,0,0,1],occlusionUVSet:0,occlusionUVTransform:[1,0,0,0,1,0,0,0,1],emissiveUVSet:0,emissiveUVTransform:[1,0,0,0,1,0,0,0,1],specularColorUVSet:0,specularColorUVTransform:[1,0,0,0,1,0,0,0,1],specularIntensityUVSet:0,specularIntensityUVTransform:[1,0,0,0,1,0,0,0,1],transmissionUVSet:0,transmissionUVTransform:[1,0,0,0,1,0,0,0,1],thicknessUVSet:0,thicknessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatUVSet:0,clearcoatUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatRoughnessUVSet:0,clearcoatRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatNormalUVSet:0,clearcoatNormalUVTransform:[1,0,0,0,1,0,0,0,1],sheenColorUVSet:0,sheenColorUVTransform:[1,0,0,0,1,0,0,0,1],sheenRoughnessUVSet:0,sheenRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceUVSet:0,iridescenceUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceThicknessUVSet:0,iridescenceThicknessUVTransform:[1,0,0,0,1,0,0,0,1],anisotropyUVSet:0,anisotropyUVTransform:[1,0,0,0,1,0,0,0,1]},name:"pbrMaterial",firstBindingSlot:0,bindingLayout:[{name:"pbrMaterial",group:3},{name:"pbr_baseColorSampler",group:3},{name:"pbr_normalSampler",group:3},{name:"pbr_emissiveSampler",group:3},{name:"pbr_metallicRoughnessSampler",group:3},{name:"pbr_occlusionSampler",group:3},{name:"pbr_specularColorSampler",group:3},{name:"pbr_specularIntensitySampler",group:3},{name:"pbr_transmissionSampler",group:3},{name:"pbr_thicknessSampler",group:3},{name:"pbr_clearcoatSampler",group:3},{name:"pbr_clearcoatRoughnessSampler",group:3},{name:"pbr_clearcoatNormalSampler",group:3},{name:"pbr_sheenColorSampler",group:3},{name:"pbr_sheenRoughnessSampler",group:3},{name:"pbr_iridescenceSampler",group:3},{name:"pbr_iridescenceThicknessSampler",group:3},{name:"pbr_anisotropySampler",group:3}],dependencies:[Am,bm,_m],source:Sm,vs:Tm,fs:Mm,defines:{LIGHTING_FRAGMENT:!0,HAS_NORMALMAP:!1,HAS_EMISSIVEMAP:!1,HAS_OCCLUSIONMAP:!1,HAS_BASECOLORMAP:!1,HAS_METALROUGHNESSMAP:!1,HAS_SPECULARCOLORMAP:!1,HAS_SPECULARINTENSITYMAP:!1,HAS_TRANSMISSIONMAP:!1,HAS_THICKNESSMAP:!1,HAS_CLEARCOATMAP:!1,HAS_CLEARCOATROUGHNESSMAP:!1,HAS_CLEARCOATNORMALMAP:!1,HAS_SHEENCOLORMAP:!1,HAS_SHEENROUGHNESSMAP:!1,HAS_IRIDESCENCEMAP:!1,HAS_IRIDESCENCETHICKNESSMAP:!1,HAS_ANISOTROPYMAP:!1,USE_MATERIAL_EXTENSIONS:!1,ALPHA_CUTOFF:!1,USE_IBL:!1,PBR_DEBUG:!1},getUniforms:t=>t,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",specularColorFactor:"vec3<f32>",specularIntensityFactor:"f32",specularColorMapEnabled:"i32",specularIntensityMapEnabled:"i32",ior:"f32",transmissionFactor:"f32",transmissionMapEnabled:"i32",thicknessFactor:"f32",attenuationDistance:"f32",attenuationColor:"vec3<f32>",clearcoatFactor:"f32",clearcoatRoughnessFactor:"f32",clearcoatMapEnabled:"i32",clearcoatRoughnessMapEnabled:"i32",sheenColorFactor:"vec3<f32>",sheenRoughnessFactor:"f32",sheenColorMapEnabled:"i32",sheenRoughnessMapEnabled:"i32",iridescenceFactor:"f32",iridescenceIor:"f32",iridescenceThicknessRange:"vec2<f32>",iridescenceMapEnabled:"i32",anisotropyStrength:"f32",anisotropyRotation:"f32",anisotropyDirection:"vec2<f32>",anisotropyMapEnabled:"i32",emissiveStrength:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>",baseColorUVSet:"i32",baseColorUVTransform:"mat3x3<f32>",metallicRoughnessUVSet:"i32",metallicRoughnessUVTransform:"mat3x3<f32>",normalUVSet:"i32",normalUVTransform:"mat3x3<f32>",occlusionUVSet:"i32",occlusionUVTransform:"mat3x3<f32>",emissiveUVSet:"i32",emissiveUVTransform:"mat3x3<f32>",specularColorUVSet:"i32",specularColorUVTransform:"mat3x3<f32>",specularIntensityUVSet:"i32",specularIntensityUVTransform:"mat3x3<f32>",transmissionUVSet:"i32",transmissionUVTransform:"mat3x3<f32>",thicknessUVSet:"i32",thicknessUVTransform:"mat3x3<f32>",clearcoatUVSet:"i32",clearcoatUVTransform:"mat3x3<f32>",clearcoatRoughnessUVSet:"i32",clearcoatRoughnessUVTransform:"mat3x3<f32>",clearcoatNormalUVSet:"i32",clearcoatNormalUVTransform:"mat3x3<f32>",sheenColorUVSet:"i32",sheenColorUVTransform:"mat3x3<f32>",sheenRoughnessUVSet:"i32",sheenRoughnessUVTransform:"mat3x3<f32>",iridescenceUVSet:"i32",iridescenceUVTransform:"mat3x3<f32>",iridescenceThicknessUVSet:"i32",iridescenceThicknessUVTransform:"mat3x3<f32>",anisotropyUVSet:"i32",anisotropyUVTransform:"mat3x3<f32>"}};var Rm=U(jc(),1),wm=U(Ys(),1);var Cm=`layout(std140) uniform meshUniforms {
|
|
2491
2491
|
bool pickFeatureIds;
|
|
2492
2492
|
} mesh;
|
|
2493
|
-
`,
|
|
2493
|
+
`,Bm={name:"mesh",vs:Cm,fs:Cm,uniformTypes:{pickFeatureIds:"f32"}};var Im=`#version 300 es
|
|
2494
2494
|
#define SHADER_NAME simple-mesh-layer-vs
|
|
2495
2495
|
in vec3 positions;
|
|
2496
2496
|
in vec3 normals;
|
|
@@ -2550,7 +2550,7 @@ geometry.uv = pbr_vUV0;
|
|
|
2550
2550
|
#endif
|
|
2551
2551
|
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
2552
2552
|
}
|
|
2553
|
-
`;var
|
|
2553
|
+
`;var vm=`#version 300 es
|
|
2554
2554
|
#define SHADER_NAME simple-mesh-layer-fs
|
|
2555
2555
|
precision highp float;
|
|
2556
2556
|
uniform sampler2D sampler;
|
|
@@ -2579,7 +2579,7 @@ fragColor = vec4(lightColor, color.a * layer.opacity);
|
|
|
2579
2579
|
#endif
|
|
2580
2580
|
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
2581
2581
|
}
|
|
2582
|
-
`;function cC(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var lC={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},co=class extends Em.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(Kc,bm),{...e,vs:ym,fs:Tm}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props,{model:n}=this.state;if(!n)return;let o={pickFeatureIds:Boolean(r)},s={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:o}),super.draw(e)}getModel(e){let{id:r}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});let o=this.getShaders();return cC(e.attributes),new Mm.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...o.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,o=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:o});let{pbr_baseColorSampler:s}=o.bindings,{emptyTexture:i}=this.state,a={sampler:s||i,hasTexture:Boolean(s)},{camera:c,...l}={...o.bindings,...o.uniforms};r.shaderInputs.setProps({simpleMesh:a,pbrMaterial:l})}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return Wc(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){let r=this.props.featureIds,n=new Uint8ClampedArray(r.length*e.size),o=[];for(let s=0;s<r.length;s++)this.encodePickingColor(r[s],o),n[s*3]=o[0],n[s*3+1]=o[1],n[s*3+2]=o[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}};co.layerName="MeshLayer";co.defaultProps=lC;var Sm=co;var L0=U(er(),1);var bt=6356752314245179e-9,fC={radii:[6378137,6378137,bt],radiiSquared:[6378137*6378137,6378137*6378137,bt*bt],oneOverRadii:[1/6378137,1/6378137,1/bt],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(bt*bt)],maximumRadius:Math.max(6378137,6378137,bt),centerToleranceSquared:.1};function Ys(t){return t}var FV=new b;function uC(t,e=[],r=Ys){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function _m(t,e=[]){return uC(t,e,Q._cartographicRadians?Ys:ma)}function hC(t,e,r=Ys){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function Cm(t,e){return hC(t,e,Q._cartographicRadians?Ys:ga)}var Bm=1e-14,pC=new b,Im={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},Yc={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},lo={east:new b,north:new b,up:new b,west:new b,south:new b,down:new b},dC=new b,mC=new b,gC=new b;function Qc(t,e,r,n,o,s){let i=Im[e]&&Im[e][r];he(i&&(!n||n===i));let a,c,l,f=pC.copy(o);if(_e(f.x,0,Bm)&&_e(f.y,0,Bm)){let h=Math.sign(f.z);a=dC.fromArray(Yc[e]),e!=="east"&&e!=="west"&&a.scale(h),c=mC.fromArray(Yc[r]),r!=="east"&&r!=="west"&&c.scale(h),l=gC.fromArray(Yc[n]),n!=="east"&&n!=="west"&&l.scale(h)}else{let{up:h,east:p,north:d}=lo;p.set(-f.y,f.x,0).normalize(),t.geodeticSurfaceNormal(f,h),d.copy(h).cross(p);let{down:A,west:m,south:x}=lo;A.copy(h).scale(-1),m.copy(p).scale(-1),x.copy(d).scale(-1),a=lo[e],c=lo[r],l=lo[n]}return s[0]=a.x,s[1]=a.y,s[2]=a.z,s[3]=0,s[4]=c.x,s[5]=c.y,s[6]=c.z,s[7]=0,s[8]=l.x,s[9]=l.y,s[10]=l.z,s[11]=0,s[12]=f.x,s[13]=f.y,s[14]=f.z,s[15]=1,s}var Kr=new b,AC=new b,xC=new b;function Rm(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:o,centerToleranceSquared:s}=e;Kr.from(t);let i=Kr.x,a=Kr.y,c=Kr.z,l=n.x,f=n.y,u=n.z,h=i*i*l*l,p=a*a*f*f,d=c*c*u*u,A=h+p+d,m=Math.sqrt(1/A);if(!Number.isFinite(m))return;let x=AC;if(x.copy(t).scale(m),A<s)return x.to(r);let T=o.x,M=o.y,E=o.z,_=xC;_.set(x.x*T*2,x.y*M*2,x.z*E*2);let C=(1-m)*Kr.len()/(.5*_.len()),v=0,S,y,g,B;do{C-=v,S=1/(1+C*T),y=1/(1+C*M),g=1/(1+C*E);let L=S*S,F=y*y,w=g*g,D=L*S,W=F*y,z=w*g;B=h*L+p*F+d*w-1;let Y=-2*(h*D*T+p*W*M+d*z*E);v=B/Y}while(Math.abs(B)>Ge.EPSILON12);return Kr.scale([S,y,g]).to(r)}var Qs=new b,vm=new b,TC=new b,et=new b,MC=new b,Zs=new b,G=class{constructor(e=0,r=0,n=0){this.centerToleranceSquared=Ge.EPSILON1,he(e>=0),he(r>=0),he(n>=0),this.radii=new b(e,r,n),this.radiiSquared=new b(e*e,r*r,n*n),this.radiiToTheFourth=new b(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new b(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new b(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=vm,o=TC,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),o.copy(this.radiiSquared).scale(n);let i=Math.sqrt(n.dot(o));return o.scale(1/i),n.scale(s),o.add(n),o.to(r)}cartesianToCartographic(e,r=[0,0,0]){Zs.from(e);let n=this.scaleToGeodeticSurface(Zs,et);if(!n)return;let o=this.geodeticSurfaceNormal(n,vm),s=MC;s.copy(Zs).subtract(n);let i=Math.atan2(o.y,o.x),a=Math.asin(o.z),c=Math.sign($t.dot(s,Zs))*$t.length(s);return Cm([i,a,c],r)}eastNorthUpToFixedFrame(e,r=new N){return Qc(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,o,s=new N){return Qc(this,e,r,n,o,s)}geocentricSurfaceNormal(e,r=[0,0,0]){return Qs.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=_m(e),o=n[0],s=n[1],i=Math.cos(s);return Qs.set(i*Math.cos(o),i*Math.sin(o),Math.sin(s)).normalize(),Qs.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return Qs.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return Rm(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){et.from(e);let n=et.x,o=et.y,s=et.z,i=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*i.x+o*o*i.y+s*s*i.z);return et.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return et.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return et.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){he(_e(this.radii.x,this.radii.y,Ge.EPSILON15)),he(this.radii.z>0),et.from(e);let o=et.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(o)>=this.radii.z-r))return et.set(0,0,o).to(n)}};G.WGS84=new G(6378137,6378137,bt);var $s=class{item;previous;next;constructor(e,r,n){this.item=e,this.previous=r,this.next=n}};var ei=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new $s(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var ti=class{_list;_sentinel;_trimTiles;constructor(){this._list=new ei,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let o=r._cacheNode;o&&(this._list.remove(o),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let o=this._list,s=e.maximumMemoryUsage*1024*1024,i=this._sentinel,a=o.head;for(;a!==i&&(e.gpuMemoryUsageInBytes>s||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function wm(t,e){H(t),H(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:o,boundingVolume:{center:s}}=t,i=new N(o);switch(r&&i.translate(r),n){case"Z":break;case"Y":let h=new N().rotateX(Math.PI/2);i=i.multiplyRight(h);break;case"X":let p=new N().rotateY(-Math.PI/2);i=i.multiplyRight(p);break;default:break}e.isQuantized&&i.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new b(s);e.cartesianModelMatrix=i,e.cartesianOrigin=a;let c=G.WGS84.cartesianToCartographic(a,new b),f=G.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=f.multiplyRight(i),e.cartographicOrigin=c;let u=SC(e);u&&(e.cartesianModelMatrix=new N(i).multiplyRight(u.matrix),e.cartographicModelMatrix.multiplyRight(u.matrix),u.matrix=N.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var EC=1e6**2;function SC(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,o=e.scenes?.[r]?.nodes?.[0];if(!o?.matrix)return null;let s=o.matrix;return s[12]*s[12]+s[13]*s[13]+s[14]*s[14]<=EC?null:o}var Lm=new b,Zc=new b,$c=new ce([new pe,new pe,new pe,new pe,new pe,new pe]);function Pm(t,e){let{cameraDirection:r,cameraUp:n,height:o}=t,{metersPerUnit:s}=t.distanceScales,i=ri(t,t.center),a=G.WGS84.eastNorthUpToFixedFrame(i),c=t.unprojectPosition(t.cameraPosition),l=G.WGS84.cartographicToCartesian(c,new b),f=new b(a.transformAsVector(new b(r).scale(s))).normalize(),u=new b(a.transformAsVector(new b(n).scale(s))).normalize();_C(t);let h=t.constructor,{longitude:p,latitude:d,width:A,bearing:m,zoom:x}=t,T=new h({longitude:p,latitude:d,height:o,width:A,bearing:m,zoom:x,pitch:0});return{camera:{position:l,direction:f,up:u},viewport:t,topDownViewport:T,height:o,cullingVolume:$c,frameNumber:e,sseDenominator:1.15}}function Nm(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:o,latitude:s}=e.viewport;for(let[l,f]of t.entries()){let[u,h]=f.header.mbs,p=Math.abs(o-u),d=Math.abs(s-h),A=Math.sqrt(d*d+p*p);n.push([l,A])}let i=n.sort((l,f)=>l[1]-f[1]),a=[];for(let l=0;l<r;l++)a.push(t[i[l][0]]);let c=[];for(let l=r;l<i.length;l++)c.push(t[i[l][0]]);return[a,c]}function _C(t){let e=t.getFrustumPlanes(),r=Fm(e.near,t.cameraPosition),n=ri(t,r),o=ri(t,t.cameraPosition,Zc),s=0;$c.planes[s++].fromPointNormal(n,Lm.copy(n).subtract(o));for(let i in e){if(i==="near")continue;let a=e[i],c=Fm(a,r,Zc),l=ri(t,c,Zc);$c.planes[s++].fromPointNormal(l,Lm.copy(n).subtract(l))}}function Fm(t,e,r=new b){let n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ri(t,e,r=new b){let n=t.unprojectPosition(e);return G.WGS84.cartographicToCartesian(n,r)}var CC=6378137,BC=6378137,el=6356752314245179e-9,Yr=new b;function Om(t,e){if(t instanceof $e){let{halfAxes:r}=t,n=IC(r);return Math.log2(el/(n+e[2]))}else if(t instanceof He){let{radius:r}=t;return Math.log2(el/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,o=Math.log2(CC/r),s=Math.log2(BC/n);return(o+s)/2}return 1}function tl(t,e,r){G.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Yr);let n=Math.sqrt(Math.pow(Yr[0]-r[0],2)+Math.pow(Yr[1]-r[1],2)+Math.pow(Yr[2]-r[2],2));return Math.log2(el/(n+e[2]))}function Um(t,e,r){let[n,o,s,i]=t;return tl({xmin:n,xmax:s,ymin:o,ymax:i,zmin:0,zmax:0},e,r)}function IC(t){t.getColumn(0,Yr);let e=t.getColumn(1),r=t.getColumn(2);return Yr.add(e).add(r).len()}var eg=U(er(),1);var Be={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Te;(function(t){t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE"})(Te||(Te={}));var ke;(function(t){t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh"})(ke||(ke={}));var de;(function(t){t.I3S="I3S",t.TILES3D="TILES3D"})(de||(de={}));var yt;(function(t){t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(yt||(yt={}));var Dm={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function zm(t){return t!=null}var Me=new b,ni=new b,RC=new b,vC=new b,mr=new b,Gm=new b,Vm=new b,Hm=new b;function oi(t,e,r){if(H(t,"3D Tile: boundingVolume must be defined"),t.box)return qm(t.box,e,r);if(t.region)return LC(t.region);if(t.sphere)return wC(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function km(t,e){if(t.box)return FC(e);if(t.region){let[r,n,o,s,i,a]=t.region;return[[Pe(r),Pe(n),i],[Pe(o),Pe(s),a]]}if(t.sphere)return PC(e);throw new Error("Unkown boundingVolume type")}function qm(t,e,r){let n=new b(t[0],t[1],t[2]);e.transform(n,n);let o=[];if(t.length===10){let l=t.slice(3,6),f=new st;f.fromArray(t,6);let u=new b([1,0,0]),h=new b([0,1,0]),p=new b([0,0,1]);u.transformByQuaternion(f),u.scale(l[0]),h.transformByQuaternion(f),h.scale(l[1]),p.transformByQuaternion(f),p.scale(l[2]),o=[...u.toArray(),...h.toArray(),...p.toArray()]}else o=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let s=e.transformAsVector(o.slice(0,3)),i=e.transformAsVector(o.slice(3,6)),a=e.transformAsVector(o.slice(6,9)),c=new k([s[0],s[1],s[2],i[0],i[1],i[2],a[0],a[1],a[2]]);return zm(r)?(r.center=n,r.halfAxes=c,r):new $e(n,c)}function wC(t,e,r){let n=new b(t[0],t[1],t[2]);e.transform(n,n);let o=e.getScale(ni),s=Math.max(Math.max(o[0],o[1]),o[2]),i=t[3]*s;return zm(r)?(r.center=n,r.radius=i,r):new He(n,i)}function LC(t){let[e,r,n,o,s,i]=t,a=G.WGS84.cartographicToCartesian([Pe(e),Pe(o),s],RC),c=G.WGS84.cartographicToCartesian([Pe(n),Pe(r),i],vC),l=new b().addVectors(a,c).multiplyByScalar(.5);return G.WGS84.cartesianToCartographic(l,mr),G.WGS84.cartographicToCartesian([Pe(n),mr[1],mr[2]],Gm),G.WGS84.cartographicToCartesian([mr[0],Pe(o),mr[2]],Vm),G.WGS84.cartographicToCartesian([mr[0],mr[1],i],Hm),qm([...l,...Gm.subtract(l),...Vm.subtract(l),...Hm.subtract(l)],new N)}function FC(t){let e=jm(),{halfAxes:r}=t,n=new b(r.getColumn(0)),o=new b(r.getColumn(1)),s=new b(r.getColumn(2));for(let i=0;i<2;i++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)Me.copy(t.center),Me.add(n),Me.add(o),Me.add(s),Jm(e,Me),s.negate();o.negate()}n.negate()}return e}function PC(t){let e=jm(),{center:r,radius:n}=t,o=G.WGS84.scaleToGeodeticSurface(r,Me),s;o?s=G.WGS84.geodeticSurfaceNormal(o):s=new b(0,0,1);let i=new b(s[2],-s[1],0);i.len()>0?i.normalize():i=new b(0,1,0);let a=i.clone().cross(s);for(let c of[i,a,s]){ni.copy(c).scale(n);for(let l=0;l<2;l++)Me.copy(r),Me.add(ni),Jm(e,Me),ni.negate()}return e}function jm(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Jm(t,e){G.WGS84.cartesianToCartographic(e,Me),t[0][0]=Math.min(t[0][0],Me[0]),t[0][1]=Math.min(t[0][1],Me[1]),t[0][2]=Math.min(t[0][2],Me[2]),t[1][0]=Math.max(t[1][0],Me[0]),t[1][1]=Math.max(t[1][1],Me[1]),t[1][2]=Math.max(t[1][2],Me[2])}var b4=new b,y4=new b,T4=new N,M4=new b,E4=new b,S4=new b;function NC(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function OC(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return NC(e,r)*n}return 0}function Wm(t,e,r){let n=t.tileset,o=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,s=r?o:t.lodMetricValue;if(s===0)return 0;let i=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,f=s*a*(l||1)/(i*c);return f-=OC(n,i),f}var rl=new b,Xm=new b,Ht=new b,Km=new b,UC=new b,nl=new N,Ym=new N;function Qm(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*ol(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function ol(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],o=t.header.mbs[0],s=t.header.mbs[2],i=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);G.WGS84.cartographicToCartesian(c,rl),Xm.copy(rl).subtract(a).normalize(),G.WGS84.eastNorthUpToFixedFrame(a,nl),Ym.copy(nl).invert(),Ht.copy(rl).transform(Ym);let l=Math.sqrt(Ht[0]*Ht[0]+Ht[1]*Ht[1]),f=l*l/Ht[2];Km.copy([Ht[0],Ht[1],f]);let h=Km.transform(nl).subtract(a).normalize(),d=Xm.cross(h).normalize().scale(i).add(a),A=G.WGS84.cartesianToCartographic(d),m=r.project([o,n,s]),x=r.project(A);return UC.copy(m).subtract(x).magnitude()}function Zm(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var fo=class{_map=new Map;_array;_length;constructor(e=0){this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return H(e<this._array.length),this._array[e]}set(e,r){H(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){H(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){H(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var DC={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ut=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new fo;_emptyTraversalStack=new fo;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...DC,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let s=n.pop(),i=!1;this.canTraverse(s,r)&&(this.updateChildTiles(s,r),i=this.updateAndPushChildren(s,r,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));let a=s.parent,c=Boolean(!a||a._shouldRefine),l=!i;s.hasRenderContent?s.refine===Te.ADD?(this.loadTile(s,r),this.selectTile(s,r)):s.refine===Te.REPLACE&&(this.loadTile(s,r),l&&this.selectTile(s,r)):(this.emptyTiles[s.id]=s,this.loadTile(s,r),l&&this.selectTile(s,r)),this.touchTile(s,r),s._shouldRefine=i&&c}let o=new Date().getTime();(this.traversalFinished(r)||o-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=o,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let o of n)this.updateTile(o,r)}updateAndPushChildren(e,r,n,o){let{loadSiblings:s,skipLevelOfDetail:i}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Te.REPLACE&&e.hasRenderContent&&!i,l=!1,f=!0;for(let u of a)if(u._selectionDepth=o,u.isVisibleAndInRequestVolume?(n.find(u)&&n.delete(u),n.push(u),l=!0):(c||s)&&(this.loadTile(u,r),this.touchTile(u,r)),c){let h;if(u._inRequestVolume?u.hasRenderContent?h=u.contentAvailable:h=this.executeEmptyTraversal(u,r):h=!1,f=f&&h,!f)return!1}return l||(f=!1),f}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,n=!1){let o=e._screenSpaceError;return n&&(o=e.getScreenSpaceError(r,!0)),o>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let o in this.options.viewportTraversersMap)this.options.viewportTraversersMap[o]===r.viewport.id&&n.push(o);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let o of e.children)o.updateVisibility(r),n=n||o.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,o=this._emptyTraversalStack;for(o.push(e);o.length>0;){let s=o.pop(),i=!s.hasRenderContent&&this.canTraverse(s,r),a=!s.hasRenderContent&&s.children.length===0;if(!i&&!s.contentAvailable&&!a&&(n=!1),this.updateTile(s,r),s.isVisibleAndInRequestVolume||(this.loadTile(s,r),this.touchTile(s,r)),i){let c=s.children;for(let l of c)o.push(l)}}return e.hasEmptyContent||n}};var $m=new b;function GC(t){return t!=null}var gr=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Be.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new N;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new ut({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new N;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,n,o=""){this.header=r,this.tileset=e,this.id=o||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===Be.READY||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===Be.UNLOADED}get contentExpired(){return this.contentState===Be.EXPIRED}get contentFailed(){return this.contentState===Be.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=km(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case de.I3S:return ol(this,e);case de.TILES3D:return Wm(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===Te.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Be.UNLOADED)return-1;let o=this.parent,i=o&&(!n||this._screenSpaceError===0||o.hasTilesetContent)?o._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-i,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Be.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Be.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),o=this.tileset.loader,s=this.tileset.loadOptions[o.id]||{},i={...this.tileset.loadOptions,[o.id]:{...s,isTileset:this.type==="json",...this._getLoaderSpecificOptions(o.id)}};return this.content=await(0,eg.load)(n,o,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Be.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=Be.FAILED,n}finally{r.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=Be.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,o=n?n._visibilityPlaneMask:ce.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ce.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:o}=this;return n.computeVisibilityWithPlaneMask(o,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return $m.subVectors(r.center,e.position),e.direction.dot($m)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(GC(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Be.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new N(e.transform):new N;let r=this.parent,n=this.tileset,o=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new N(o).multiplyRight(this.transform);let s=r&&r._initialTransform?r._initialTransform.clone():new N;this._initialTransform=new N(s).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=Be.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ce.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(e){return e||this.parent&&this.parent.refine||Te.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=oi(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=oi(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=oi(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new N){let r=e.clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){case"i3s":return{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return Zm(this.tileset.tileset)}}};var si=class extends ut{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let i=e.children[0];this.updateTileVisibility(i,r),e._visible=i._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let o=e.refine===Te.REPLACE,s=e._optimChildrenWithinParent===Dm.USE_OPTIMIZATION;if(o&&s&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Te.ADD?!1:!this.shouldRefine(e,r,!0)}};var tg=U(er(),1);var ii=class{frameNumberMap=new Map;register(e,r){let n=this.frameNumberMap.get(e)||new Map,o=n.get(r)||0;n.set(r,o+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let o=n.get(r)||1;n.set(r,o-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var sl={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},ai=class{_statusMap;pendingTilesRegister=new ii;constructor(){this._statusMap={}}add(e,r,n,o){if(!this._statusMap[r]){let{frameNumber:s,viewport:{id:i}}=o;this._statusMap[r]={request:e,callback:n,key:r,frameState:o,status:sl.REQUESTED},this.pendingTilesRegister.register(i,s),e().then(a=>{this._statusMap[r].status=sl.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,o)}).catch(a=>{this._statusMap[r].status=sl.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:o}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(o,n);let{frameNumber:s,viewport:{id:i}}=r;this.pendingTilesRegister.register(i,s),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var ci=class extends ut{_tileManager;constructor(e){super(e),this._tileManager=new ai}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=Qm(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],o=e.children,s=e.tileset;for(let i of n){let a=`${i.id}-${r.viewport.id}`,c=o&&o.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(i.id,s);this._tileManager.find(a)?this._tileManager.update(a,r):(s.tileset.nodePages&&(l=()=>s.tileset.nodePagesTile.formTileFromNodePages(i.id)),this._tileManager.add(l,a,u=>this._onTileLoad(u,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,o=r.getTileUrl(`${r.url}/nodes/${e}`),s={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,tg.load)(o,n,s)}_onTileLoad(e,r,n){let o=new gr(r.tileset,e,r,n);r.children.push(o);let s=this._tileManager.find(o.id).frameState;this.updateTile(o,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(o,s)}};var VC={description:"",ellipsoid:G.WGS84,modelMatrix:new N,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},li="Tiles In Tileset(s)",il="Tiles In Memory",rg="Tiles In View",ng="Tiles To Render",og="Tiles Loaded",al="Tiles Loading",sg="Tiles Unloaded",ig="Failed Tile Loads",ag="Points/Vertices",cl="Tile Memory Use",cg="Maximum Screen Space Error",uo=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new ti;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options={...VC,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Pt.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new Lt({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new wt({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let o of r){let s=o.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(let o of r){let s=o.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;let i=Pm(o,this._frameNumber);this._traverser.traverse(this.roots[s],i,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],o=Object.values(this._traverser.selectedTiles),[s,i]=Nm(o,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(let a of i)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){let e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let s in this.frameStateData){let i=this.frameStateData[s];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(s=>s.id)),n=this.selectedTiles.some(s=>!s.tileDrawn),o=0;if(n){for(let s of r)this._heldTiles.add(s);for(let s of this._heldTiles){if(r.has(s))continue;let i=this._tiles[s];i&&i.contentAvailable?(i._selectedFrame=this._frameNumber,this.selectedTiles.push(i),o++):this._heldTiles.delete(s)}}else this._heldTiles=r;o>0&&setTimeout(()=>{this.selectTiles()},0);for(let s of this.selectedTiles)this._tiles[s.id]=s;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(i=>i.id)),o=new Set(r.map(i=>i.id)),s=e.filter(i=>!o.has(i.id)).length>0;return s=s||r.filter(i=>!n.has(i.id)).length>0,s}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(rg).count=this.selectedTiles.length,this.stats.get(ng).count=e,this.stats.get(ag).count=r,this.stats.get(cg).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===de.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===de.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===de.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:o,ymin:s,ymax:i,zmin:a,zmax:c}=e;this.cartographicCenter=new b(n+(o-n)/2,s+(i-s)/2,a+(c-a)/2),this.cartesianCenter=new b,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=tl(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[n,o,s,i]=r;this.cartographicCenter=new b(n+(s-n)/2,o+(i-o)/2,0),this.cartesianCenter=new b,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Um(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new b,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new b,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new b,G.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new b(0,0,-G.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=Om(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(li),this.stats.get(al),this.stats.get(il),this.stats.get(rg),this.stats.get(ng),this.stats.get(og),this.stats.get(sg),this.stats.get(ig),this.stats.get(ag),this.stats.get(cl,"memory"),this.stats.get(cg)}_initializeTileHeaders(e,r){let n=new gr(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===de.TILES3D){let o=[];for(o.push(n);o.length>0;){let s=o.pop();this.stats.get(li).incrementCount();let i=s.header.children||[];for(let a of i){let c=new gr(this,a,s);if(c.contentUrl?.includes("?session=")){let f=new URL(c.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}s.children.push(c),c.depth=s.depth+1,o.push(c)}}}return n}_initializeTraverser(){let e;switch(this.type){case de.TILES3D:e=si;break;case de.I3S:e=ci;break;default:e=ut}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(ig).incrementCount();let n=r.message||r.toString(),o=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,o)}_onTileLoad(e,r){if(r){if(this.type===de.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(li).reset(),this.stats.get(li).addCount(n)}e&&e.content&&wm(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===de.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===de.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(al).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(al).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(og).incrementCount(),this.stats.get(il).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(cl).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(il).decrementCount(),this.stats.get(sg).incrementCount(),this.stats.get(cl).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let o of e.children)n.push(o);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){let e=this.loadOptions.i3s;e&&typeof e=="object"&&"token"in e&&(this._queryParams.token=e.token)}};var fi="4.4.1";var Ar={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},bH=Object.keys(Ar);function ll(t,e,r){H(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),o=new Uint8Array(t,e,r);return n.decode(o)}function lg(t,e=0){let r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var HC="1.5.6",zC="1.4.1",fl=`https://www.gstatic.com/draco/versioned/decoders/${HC}`,me={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},ho={[me.DECODER]:`${fl}/${me.DECODER}`,[me.DECODER_WASM]:`${fl}/${me.DECODER_WASM}`,[me.FALLBACK_DECODER]:`${fl}/${me.FALLBACK_DECODER}`,[me.ENCODER]:`https://raw.githubusercontent.com/google/draco/${zC}/javascript/${me.ENCODER}`},ul;async function ug(t={},e){let r=t.modules||{};return r.draco3d?ul||=r.draco3d.createDecoderModule({}).then(n=>({draco:n})):ul||=kC(t,e),await ul}function fg(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function kC(t,e){let r,n;switch(e){case"js":r=await Ve(ho[me.FALLBACK_DECODER],"draco",t,me.FALLBACK_DECODER);break;case"wasm":default:try{[r,n]=await Promise.all([await Ve(ho[me.DECODER],"draco",t,me.DECODER),await Ve(ho[me.DECODER_WASM],"draco",t,me.DECODER_WASM)])}catch{r=null,n=null}}return r=fg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!dt&&([r,n]=await Promise.all([await Ve(ho[me.DECODER],"draco",{...t,useLocalLibraries:!0},me.DECODER),await Ve(ho[me.DECODER_WASM],"draco",{...t,useLocalLibraries:!0},me.DECODER_WASM)]),r=fg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await qC(r,n)}function qC(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:o=>n({draco:o})})})}var hg="4.4.1";function pg(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function xr(t){let e=1/0,r=1/0,n=1/0,o=-1/0,s=-1/0,i=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let f=a[l],u=a[l+1],h=a[l+2];e=f<e?f:e,r=u<r?u:r,n=h<n?h:n,o=f>o?f:o,s=u>s?u:s,i=h>i?h:i}return[[e,r,n],[o,s,i]]}function hl(t,e,r){let n=pg(e.value),o=r||dg(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:o}}function dg(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function gg(t,e,r){let n=Ag(e.metadata),o=[],s=jC(e.attributes);for(let i in t){let a=t[i],c=mg(i,a,s[i]);o.push(c)}if(r){let i=mg("indices",r);o.push(i)}return{fields:o,metadata:n}}function jC(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function mg(t,e,r){let n=r?Ag(r.metadata):void 0;return hl(t,e,n)}function Ag(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var xg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},JC={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},WC=4,po=class{draco;decoder;metadataQuerier;constructor(e){this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,r={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let o=this.decoder.GetEncodedGeometryType(n),s=o===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let i;switch(o){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!s.ptr){let h=`DRACO decompression failed: ${i.error_msg()}`;throw new Error(h)}let a=this._getDracoLoaderData(s,o,r),c=this._getMeshData(s,a,r),l=xr(c.attributes),f=gg(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:s.num_points(),boundingBox:l},...c,schema:f}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,r,n){let o=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:o,attributes:s}}_getDracoAttributes(e,r){let n={};for(let o=0;o<e.num_attributes();o++){let s=this.decoder.GetAttribute(e,o),i=this._getAttributeMetadata(e,o);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:o,metadata:i};let a=this._getQuantizationTransform(s,r);a&&(n[s.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(s,r);c&&(n[s.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let o=this._getMeshAttributes(r,e,n);if(!o.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:o,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:o,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:o}}_getMeshAttributes(e,r,n){let o={};for(let s of Object.values(e.attributes)){let i=this._deduceAttributeName(s,n);s.name=i;let a=this._getAttributeValues(r,s);if(a){let{value:c,size:l}=a;o[i]={value:c,size:l,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return o}_getTriangleListIndices(e){let n=e.num_faces()*3,o=n*WC,s=this.draco._malloc(o);try{return this.decoder.GetTrianglesUInt32Array(e,o,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),YC(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=JC[r.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let o=r.num_components,i=e.num_points()*o,a=i*n.BYTES_PER_ELEMENT,c=XC(this.draco,n),l,f=this.draco._malloc(a);try{let u=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,u,c,a,f),l=new n(this.draco.HEAPF32.buffer,f,i).slice()}finally{this.draco._free(f)}return{value:l,size:o}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[i,a]of Object.entries(r.extraAttributes||{}))if(a===n)return i;let o=e.attribute_type;for(let i in xg)if(this.draco[i]===o)return xg[i];let s=r.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let o=0;o<n;o++){let s=this.metadataQuerier.GetEntryName(e,o);r[s]=this._getDracoMetadataField(e,s)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let o=KC(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:o}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,o=[...r,...n];for(let s of o)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits(),range:i.range(),min_values:new Float32Array([1,2,3]).map(a=>i.min_value(a))}}finally{this.draco.destroy(i)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits()}}finally{this.draco.destroy(i)}}return null}};function XC(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function KC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function YC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var bg={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:hg,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},mo={...bg,parse:QC};async function QC(t,e){let{draco:r}=await ug(Gn(e),e?.draco?.decoderType||"wasm"),n=new po(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var ZC={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ae={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},O={...ZC,...ae};var pl={[ae.DOUBLE]:Float64Array,[ae.FLOAT]:Float32Array,[ae.UNSIGNED_SHORT]:Uint16Array,[ae.UNSIGNED_INT]:Uint32Array,[ae.UNSIGNED_BYTE]:Uint8Array,[ae.BYTE]:Int8Array,[ae.SHORT]:Int16Array,[ae.INT]:Int32Array},$C={DOUBLE:ae.DOUBLE,FLOAT:ae.FLOAT,UNSIGNED_SHORT:ae.UNSIGNED_SHORT,UNSIGNED_INT:ae.UNSIGNED_INT,UNSIGNED_BYTE:ae.UNSIGNED_BYTE,BYTE:ae.BYTE,SHORT:ae.SHORT,INT:ae.INT},dl="Failed to convert GL type",fe=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in pl)if(pl[r]===e)return r;throw new Error(dl)}static fromName(e){let r=$C[e];if(!r)throw new Error(dl);return r}static getArrayType(e){switch(e){case ae.UNSIGNED_SHORT_5_6_5:case ae.UNSIGNED_SHORT_4_4_4_4:case ae.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=pl[e];if(!r)throw new Error(dl);return r}}static getByteSize(e){return fe.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(fe.getArrayType(e))}static createTypedArray(e,r,n=0,o){o===void 0&&(o=(r.byteLength-n)/fe.getByteSize(e));let s=ArrayBuffer.isView(r)?r.buffer:r,i=fe.getArrayType(e);return new i(s,n,o)}};function yg(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function ml(t,e=[0,0,0]){let r=t>>11&31,n=t>>5&63,o=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=o<<3,e}var e8=1/256;var t8=new Yt,r8=new b,n8=new Yt,o8=new Yt,s8=new Uint8Array(1);function Tg(t,e=255){return ns(t,0,e)/e*2-1}function Mg(t){return t<0?-1:1}function Eg(t,e,r,n){if(yg(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=Tg(t,r),n.y=Tg(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let o=n.x;n.x=(1-Math.abs(n.y))*Mg(o),n.y=(1-Math.abs(o))*Mg(n.y)}return n.normalize()}function gl(t,e,r){return Eg(t,e,255,r)}var Tt=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e,r=O.UNSIGNED_INT,n=1){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,o.byteOffset):o}getPropertyArray(e,r,n){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(r=fe.fromName(o.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,o.byteOffset)):this._getTypedArrayFromArray(e,r,o)}getProperty(e,r,n,o,s){let i=this.json[e];if(!i)return i;let a=this.getPropertyArray(e,r,n);if(n===1)return a[o];for(let c=0;c<n;++c)s[c]=a[n*o+c];return s}_getTypedArrayFromBinary(e,r,n,o,s){let i=this._cachedTypedArrays,a=i[e];return a||(a=fe.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+s,o*n),i[e]=a),a}_getTypedArrayFromArray(e,r,n){let o=this._cachedTypedArrays,s=o[e];if(!s){if(ArrayBuffer.isView(n)){let i=n.byteOffset,c=n.byteLength/fe.getByteSize(r);s=fe.createTypedArray(r,n.buffer,i,c)}else if(n instanceof ArrayBuffer)s=fe.createTypedArray(r,n);else{let i=fe.getArrayType(r);s=new i(n)}o[e]=s}return s}};var eB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},tB={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},rB={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Sg(t,e,r,n){let{componentType:o}=t;H(t.componentType);let s=typeof o=="string"?fe.fromName(o):o,i=eB[t.type],a=tB[t.type],c=rB[t.type];return r+=t.byteOffset,{values:fe.createTypedArray(s,e,r,i*n),type:s,size:i,unpacker:a,packer:c}}var ht=t=>t!==void 0;function _g(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),o=e.HIERARCHY;return o&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=o,n=o),n?nB(n,r):null}function nB(t,e){let r,n,o,s=t.instancesLength,i=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,f=s;ht(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,o=getBinaryAccessor(a),a=o.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,s));let u;if(ht(c))for(ht(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,o=getBinaryAccessor(c),c=o.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,s)),u=new Uint16Array(s),f=0,r=0;r<s;++r)u[r]=f,f+=c[r];ht(l)&&ht(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,o=getBinaryAccessor(l),l=o.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,f));let h=i.length;for(r=0;r<h;++r){let m=i[r].length,x=i[r].instances,T=getBinaryProperties(m,x,e);i[r].instances=combine(T,x)}let p=new Array(h).fill(0),d=new Uint16Array(s);for(r=0;r<s;++r)n=a[r],d[r]=p[n],++p[n];let A={classes:i,classIds:a,classIndexes:d,parentCounts:c,parentIndexes:u,parentIds:l};return iB(A),A}function Qr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?oB(t,e,r):sB(t,e,r)}function oB(t,e,r){let n=t.classIds,o=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,f=scratchStack;for(f.length=0,f.push(e);f.length>0;){if(e=f.pop(),c[e]===l)continue;c[e]=l;let u=r(t,e);if(ht(u))return u;let h=o[e],p=i[e];for(let d=0;d<h;++d){let A=s[p+d];A!==e&&f.push(A)}}return null}function sB(t,e,r){let n=!0;for(;n;){let o=r(t,e);if(ht(o))return o;let s=t.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function iB(t){let e=[],n=t.classIds.length;for(let o=0;o<n;++o)Cg(t,o,stack)}function Cg(t,e,r){let n=t.parentCounts,o=t.parentIds,s=t.parentIndexes,a=t.classIds.length;if(!ht(o))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=ht(n)?n[e]:1,l=ht(n)?s[e]:e;for(let f=0;f<c;++f){let u=o[l+f];u!==e&&Cg(t,u,r)}r.pop(e)}function ve(t){return t!=null}var ui=(t,e)=>t,aB={HIERARCHY:!0,extensions:!0,extras:!0},br=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,n,o={}){H(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let s in this.json)aB[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=_g(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),H(typeof r=="string",r),this._hierarchy){let n=Qr(this._hierarchy,e,(o,s)=>{let i=o.classIds[s];return o.classes[i].name===r});return ve(n)}return!1}isExactClass(e,r){return H(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),H(typeof r=="string",r),ve(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=ve(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),H(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(ve(o))return this._getBinaryProperty(o,e)}let n=this._properties[r];if(ve(n))return ui(n[e],!0);if(this._hierarchy){let o=this._getHierarchyProperty(e,r);if(ve(o))return o}}setProperty(e,r,n){let o=this.featureCount;if(this._checkBatchId(e),H(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(i){this._setBinaryProperty(i,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let s=this._properties[r];ve(s)||(this._properties[r]=new Array(o),s=this._properties[r]),s[e]=ui(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],o=this._initializeBinaryProperty(r,n);o&&(e=e||{},e[r]=o)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;H(this.binary,`Property ${e} requires a batch table binary.`),H(n.type,`Property ${e} requires a type.`);let o=Sg(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:o.values,componentCount:o.size,unpack:o.unpacker,pack:o.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=Qr(this._hierarchy,e,(o,s)=>{let i=o.classIds[s],a=o.classes[i].instances;return ve(a[r])});return ve(n)}_getPropertyNamesInHierarchy(e,r){Qr(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s].instances;for(let a in i)i.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return Qr(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s],a=n.classIndexes[o],c=i.instances[r];return ve(c)?ve(c.typedArray)?this._getBinaryProperty(c,a):ui(c[a],!0):null})}_setHierarchyProperty(e,r,n,o){let s=Qr(this._hierarchy,r,(i,a)=>{let c=i.classIds[a],l=i.classes[c],f=i.classIndexes[a],u=l.instances[n];return ve(u)?(H(a===r,`Inherited property "${n}" is read-only.`),ve(u.typedArray)?this._setBinaryProperty(u,f,o):u[f]=ui(o,!0),!0):!1});return ve(s)}};function zt(t,e,r=0){let n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Zr=4,Bg="b3dm tile in legacy format.";function $r(t,e,r){let n=new DataView(e),o;t.header=t.header||{};let s=n.getUint32(r,!0);r+=Zr;let i=n.getUint32(r,!0);r+=Zr;let a=n.getUint32(r,!0);r+=Zr;let c=n.getUint32(r,!0);return r+=Zr,a>=570425344?(r-=Zr*2,o=s,a=i,c=0,s=0,i=0,console.warn(Bg)):c>=570425344&&(r-=Zr,o=a,a=s,c=i,s=0,i=0,console.warn(Bg)),t.header.featureTableJsonByteLength=s,t.header.featureTableBinaryByteLength=i,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=o,r}function en(t,e,r,n){return r=cB(t,e,r,n),r=lB(t,e,r,n),r}function cB(t,e,r,n){let{featureTableJsonByteLength:o,featureTableBinaryByteLength:s,batchLength:i}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:i||0},o&&o>0){let a=ll(e,r,o);t.featureTableJson=JSON.parse(a)}return r+=o||0,t.featureTableBinary=new Uint8Array(e,r,s),r+=s||0,r}function lB(t,e,r,n){let{batchTableJsonByteLength:o,batchTableBinaryByteLength:s}=t.header||{};if(o&&o>0){let i=ll(e,r,o);t.batchTableJson=JSON.parse(i),r+=o,s&&s>0&&(t.batchTableBinary=new Uint8Array(e,r,s),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=s)}return r}function Al(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:o,pointCount:s=0}=t;if(n&&r){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=n[a],f=r.getProperty(c,"dimensions").map(u=>u*255);i[a*3]=f[0],i[a*3+1]=f[1],i[a*3+2]=f[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}if(e&&o){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=ml(e[a]);i[a*3]=c[0],i[a*3+1]=c[1],i[a*3+2]=c[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}return e&&e.length===s*3?{type:O.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:O.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var Ig=new b;function Rg(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)gl(e[n*2],e[n*2+1],Ig),Ig.toArray(r,n*3);return{type:O.FLOAT,size:2,value:r}}return{type:O.FLOAT,size:2,value:e}}function vg(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,fB(t,e)):{type:O.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function fB(t,e){let r=new b,n=new Float32Array(t.pointCount*3);for(let o=0;o<t.pointCount;o++)r.set(e[o*3],e[o*3+1],e[o*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,o*3);return n}async function wg(t,e,r,n,o){r=zt(t,e,r),r=$r(t,e,r),r=en(t,e,r,n),uB(t);let{featureTable:s,batchTable:i}=hB(t);return await AB(t,s,i,n,o),pB(t,s,n),dB(t,s,i),mB(t,s),r}function uB(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function hB(t){let e=new Tt(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",O.FLOAT,3);let n=gB(t,e);return{featureTable:e,batchTable:n}}function pB(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",O.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=vg(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function dB(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",O.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",O.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",O.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=Al(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",O.UNSIGNED_BYTE,4))}function mB(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",O.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",O.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=Rg(t,r)}}function gB(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",O.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:o,batchTableBinary:s}=t;r=new br(o,s,n)}return r}async function AB(t,e,r,n,o){let s,i,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){i=l.properties;let u=l.byteOffset,h=l.byteLength;if(!i||!Number.isFinite(u)||!h)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(t.featureTableBinary||[]).slice(u,u+h),t.hasPositions=Number.isFinite(i.POSITION),t.hasColors=Number.isFinite(i.RGB)||Number.isFinite(i.RGBA),t.hasNormals=Number.isFinite(i.NORMAL),t.hasBatchIds=Number.isFinite(i.BATCH_ID),t.isTranslucent=Number.isFinite(i.RGBA)}if(!s)return!0;let f={buffer:s,properties:{...i,...a},featureTableProperties:i,batchTableProperties:a,dequantizeInShader:!1};return await xB(t,f,n,o)}async function xB(t,e,r,n){if(!n)return;let o={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete o["3d-tiles"];let s=await Oe(e.buffer,mo,o,n),i=s.attributes.POSITION&&s.attributes.POSITION.value,a=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,c=s.attributes.NORMAL&&s.attributes.NORMAL.value,l=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,f=i&&s.attributes.POSITION.value.quantization,u=c&&s.attributes.NORMAL.value.quantization;if(f){let p=s.POSITION.data.quantization,d=p.range;t.quantizedVolumeScale=new b(d,d,d),t.quantizedVolumeOffset=new b(p.minValues),t.quantizedRange=(1<<p.quantizationBits)-1,t.isQuantizedDraco=!0}u&&(t.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let h={};if(e.batchTableProperties)for(let p of Object.keys(e.batchTableProperties))s.attributes[p]&&s.attributes[p].value&&(h[p.toLowerCase()]=s.attributes[p].value);t.attributes={positions:i,colors:Al(t,a,void 0),normals:c,batchIds:l,...h}}var xl={};ye(xl,{createExtMeshFeatures:()=>NB,decode:()=>vB,encode:()=>wB,name:()=>RB});function ue(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var hi={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},pi={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var bB=1.33,Lg=["SCALAR","VEC2","VEC3","VEC4"],yB=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],TB=new Map(yB),MB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},EB={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SB={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function di(t){return Lg[t-1]||Lg[0]}function kt(t){let e=TB.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function tn(t,e){let r=SB[t.componentType],n=MB[t.type],o=EB[t.componentType],s=t.count*n,i=t.count*n*o;ue(i>=0&&i<=e.byteLength);let a=pi[t.componentType],c=hi[t.type];return{ArrayType:r,length:s,byteLength:i,componentByteSize:a,numberOfComponentsInElement:c}}function go(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(i=>i.bufferView);r=r.filter(i=>!n.includes(i));let o=r.reduce((i,a)=>i+a.byteLength,0),s=e.reduce((i,a)=>{let{width:c,height:l}=a.image;return i+c*l},0);return o+Math.ceil(4*s*bB)}function Fg(t,e,r){let n=t.bufferViews[r];ue(n);let o=n.buffer,s=e[o];ue(s);let i=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,n.byteLength)}function Pg(t,e,r){let n=typeof r=="number"?t.accessors?.[r]:r;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=t.bufferViews?.[n.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:s,byteOffset:i}=e[o.buffer],a=(i||0)+(n.byteOffset||0)+(o.byteOffset||0),{ArrayType:c,length:l,componentByteSize:f,numberOfComponentsInElement:u}=tn(n,o),h=f*u,p=o.byteStride||h;if(typeof o.byteStride>"u"||o.byteStride===h)return new c(s,a,l);let d=new c(l);for(let A=0;A<n.count;A++){let m=new c(s,a+A*p,u);d.set(m,A*u)}return d}function _B(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var q=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||_B(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.getRequiredExtensions().find(o=>o===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];ue(n);let o=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,o,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return Pg(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),o=this.getBuffer(r.buffer).data,s=r.byteOffset||0;return new Uint8Array(o,s,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let o=e.extensions||{};o[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let o=this.json.extensionsRemoved;o.includes(r)||o.push(r)}delete n[r]}addExtension(e,r={}){return ue(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return ue(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let o={mesh:r};return n&&(o.matrix=n),this.json.nodes.push(o),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:o,mode:s=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:s}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(o)&&(a.primitives[0].material=o),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=lr(e),o=r||n?.mimeType,i={bufferView:this.addBufferView(e),mimeType:o};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e,r=0,n=this.byteLength){let o=e.byteLength;ue(Number.isFinite(o)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let s={buffer:r,byteOffset:n,byteLength:o};return this.byteLength+=vt(o,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:di(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,r={size:3}){let n=this.addBufferView(e),o={min:r.min,max:r.max};(!o.min||!o.max)&&(o=this._getAccessorMinMax(e,r.size));let s={size:r.size,componentType:kt(e),count:Math.round(e.length/r.size),min:o.min,max:o.max};return this.addAccessor(n,Object.assign(s,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){let e=this.byteLength,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;for(let s of this.sourceBuffers||[])o=hc(s,n,o);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let n=!0;for(;n;){let o=e.indexOf(r);o>-1?e.splice(o,1):n=!1}}_addAttributes(e={}){let r={};for(let n in e){let o=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(o.value,o);r[s]=i}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let o=e.subarray(0,r);for(let s of o)n.min.push(s),n.max.push(s);for(let s=r;s<e.length;s+=r)for(let i=0;i<r;i++)n.min[0+i]=Math.min(n.min[0+i],e[s+i]),n.max[0+i]=Math.max(n.max[0+i],e[s+i]);return n}};function Ng(t){return(t%1+1)%1}var Og={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},CB={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Ug={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function Ao(t,e){return Ug[e]*Og[t]}function rn(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let o=t.getTypedArrayForBufferView(e),s=nn(o,"SCALAR",r,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function nn(t,e,r,n=1){let o=Og[e],s=CB[r],i=Ug[r],a=n*o,c=a*i,l=t.buffer,f=t.byteOffset;return f%i!==0&&(l=new Uint8Array(l).slice(f,f+c).buffer,f=0),new s(Ft(l),f,a)}function on(t,e,r){let n=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[n],s=t.getTypedArrayForAccessor(o),i=t.gltf.json,a=e.index,c=i.textures?.[a]?.source;if(typeof c<"u"){let l=i.images?.[c]?.mimeType,f=t.gltf.images?.[c];if(f&&typeof f.width<"u"){let u=[];for(let h=0;h<s.length;h+=2){let p=BB(f,l,s,h,e.channels);u.push(p)}return u}}return[]}function mi(t,e,r,n,o){if(!r?.length)return;let s=[];for(let f of r){let u=n.findIndex(h=>h===f);u===-1&&(u=n.push(f)-1),s.push(u)}let i=new Uint32Array(s),a=t.gltf.buffers.push({arrayBuffer:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength})-1,c=t.addBufferView(i,a,0),l=t.addAccessor(c,{size:1,componentType:kt(i),count:i.length});o.attributes[e]=l}function BB(t,e,r,n,o=[0]){let s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},i=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=IB(i,a,t,c),f=0;for(let u of o){let h=typeof u=="number"?Object.values(s)[u]:s[u],p=l+h.offset,d=Wn(t);if(d.data.length<=p)throw new Error(`${d.data.length} <= ${p}`);let A=d.data[p];f|=A<<h.shift}return f}function IB(t,e,r,n=1){let o=r.width,s=Ng(t)*(o-1),i=Math.round(s),a=r.height,c=Ng(e)*(a-1),l=Math.round(c),f=r.components?r.components:n;return(l*o+i)*f}function gi(t,e,r,n,o){let s=[];for(let i=0;i<e;i++){let a=r[i],c=r[i+1]-r[i];if(c+a>n)break;let l=a/o,f=c/o;s.push(t.slice(l,l+f))}return s}function Ai(t,e,r){let n=[];for(let o=0;o<e;o++){let s=o*r;n.push(t.slice(s,s+r))}return n}function xi(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let o=[],s=new TextDecoder("utf8"),i=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+i<=e.length){let l=e.subarray(i,c+i),f=s.decode(l);o.push(f),i+=c}}return o}return[]}var sn="EXT_mesh_features",RB=sn;async function vB(t,e){let r=new q(t);LB(r,e)}function wB(t,e){let r=new q(t);return PB(r,e),r.createBinaryChunk(),r.gltf}function LB(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let o of n.primitives)FB(t,o,e)}function FB(t,e,r){if(!r?.gltf?.loadBuffers)return;let o=e.extensions?.[sn]?.featureIds;if(o)for(let s of o){let i;if(typeof s.attribute<"u"){let a=`_FEATURE_ID_${s.attribute}`,c=e.attributes[a];i=t.getTypedArrayForAccessor(c)}else typeof s.texture<"u"&&r?.gltf?.loadImages?i=on(t,s.texture,e):i=[];s.data=i}}function PB(t,e){let r=t.gltf.json.meshes;if(r)for(let n of r)for(let o of n.primitives)OB(t,o)}function NB(t,e,r,n){e.extensions||(e.extensions={});let o=e.extensions[sn];o||(o={featureIds:[]},e.extensions[sn]=o);let{featureIds:s}=o,i={featureCount:r.length,propertyTable:n,data:r};s.push(i),t.addObjectExtension(e,sn,o)}function OB(t,e){let r=e.extensions?.[sn];if(!r)return;let n=r.featureIds;n.forEach((o,s)=>{if(o.data){let{accessorKey:i,index:a}=UB(e.attributes),c=new Uint32Array(o.data);n[s]={featureCount:c.length,propertyTable:o.propertyTable,attribute:a},t.gltf.buffers.push({arrayBuffer:c.buffer,byteOffset:c.byteOffset,byteLength:c.byteLength});let l=t.addBufferView(c),f=t.addAccessor(l,{size:1,componentType:kt(c),count:c.length});e.attributes[i]=f}})}function UB(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(s=>s.indexOf(e)===0),n=-1;for(let s of r){let i=Number(s.substring(e.length));i>n&&(n=i)}return n++,{accessorKey:`${e}${n}`,index:n}}var Tl={};ye(Tl,{createExtStructuralMetadata:()=>sI,decode:()=>GB,encode:()=>VB,name:()=>DB});var an="EXT_structural_metadata",DB=an;async function GB(t,e){let r=new q(t);HB(r,e)}function VB(t,e){let r=new q(t);return nI(r,e),r.createBinaryChunk(),r.gltf}function HB(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(an);r&&(e.gltf?.loadImages&&zB(t,r),kB(t,r))}function zB(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let o of n.meshes)for(let s of o.primitives)jB(t,r,s,e)}function kB(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.propertyTables;if(n&&o)for(let s in n){let i=qB(o,s);i&&WB(t,r,i)}}function qB(t,e){for(let r of t)if(r.class===e)return r;return null}function jB(t,e,r,n){if(!e)return;let s=r.extensions?.[an]?.propertyTextures;if(s)for(let i of s){let a=e[i];JB(t,a,r,n)}}function JB(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let o=e.class;for(let s in e.properties){let i=`${o}_${s}`,a=e.properties?.[s];if(!a)continue;a.data||(a.data=[]);let c=a.data,l=on(t,a,r);l!==null&&(mi(t,i,l,c,r),a.data=c,n.dataAttributeNames.push(i))}}function WB(t,e,r){let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=XB(t,e,i,o,a);a.data=c}}}function XB(t,e,r,n,o){let s=[],i=o.values,a=t.getTypedArrayForBufferView(i),c=KB(t,r,o,n),l=YB(t,o,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=QB(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{s=xi(n,a,c,l);break}case"ENUM":{s=ZB(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return s}function KB(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?rn(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function YB(t,e,r){return typeof e.stringOffsets<"u"?rn(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function QB(t,e,r,n){let o=t.array,s=t.count,i=Ao(t.type,t.componentType),a=r.byteLength/i,c;return t.componentType?c=nn(r,t.type,t.componentType,a):c=r,o?n?gi(c,e,n,r.length,i):s?Ai(c,e,s):[]:c}function ZB(t,e,r,n,o){let s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let i=t.enums?.[s];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);let a=i.valueType||"UINT16",c=Ao(e.type,a),l=n.byteLength/c,f=nn(n,e.type,a,l);if(f||(f=n),e.array){if(o)return $B({valuesData:f,numberOfElements:r,arrayOffsets:o,valuesDataBytesLength:n.length,elementSize:c,enumEntry:i});let u=e.count;return u?eI(f,r,u,i):[]}return yl(f,0,r,i)}function $B(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:o,elementSize:s,enumEntry:i}=t,a=[];for(let c=0;c<r;c++){let l=n[c],f=n[c+1]-n[c];if(f+l>o)break;let u=l/s,h=f/s,p=yl(e,u,h,i);a.push(p)}return a}function eI(t,e,r,n){let o=[];for(let s=0;s<e;s++){let i=r*s,a=yl(t,i,r,n);o.push(a)}return o}function yl(t,e,r,n){let o=[];for(let s=0;s<r;s++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)o.push("");else{let i=t[e+s],a=tI(n,i);a?o.push(a.name):o.push("")}return o}function tI(t,e){for(let r of t.values)if(r.value===e)return r;return null}var rI="schemaClassId";function nI(t,e){let r=t.getExtension(an);if(r&&r.propertyTables)for(let n of r.propertyTables){let o=n.class,s=r.schema?.classes?.[o];n.properties&&s&&oI(n,s,t)}}function oI(t,e,r){for(let n in t.properties){let o=t.properties[n].data;if(o){let s=e.properties[n];if(s){let i=cI(o,s,r);t.properties[n]=i}}}}function sI(t,e,r=rI){let n=t.getExtension(an);n||(n=t.addExtension(an)),n.schema=iI(e,r,n.schema);let o=aI(e,r,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(o)-1}function iI(t,e,r){let n=r??{id:"schema_id"},o={properties:{}};for(let s of t){let i={type:s.elementType,componentType:s.componentType};o.properties[s.name]=i}return n.classes={},n.classes[e]=o,n}function aI(t,e,r){let n={class:e,count:0},o=0,s=r.classes?.[e];for(let i of t){if(o===0&&(o=i.values.length),o!==i.values.length&&i.values.length)throw new Error("Illegal values in attributes");s?.properties[i.name]&&(n.properties||(n.properties={}),n.properties[i.name]={values:0,data:i.values})}return n.count=o,n}function cI(t,e,r){let n={values:0};if(e.type==="STRING"){let{stringData:o,stringOffsets:s}=uI(t);n.stringOffsets=bl(s,r),n.values=bl(o,r)}else if(e.type==="SCALAR"&&e.componentType){let o=fI(t,e.componentType);n.values=bl(o,r)}return n}var lI={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function fI(t,e){let r=[];for(let o of t)r.push(Number(o));let n=lI[e];if(!n)throw new Error("Illegal component type");return new n(r)}function uI(t){let e=new TextEncoder,r=[],n=0;for(let c of t){let l=e.encode(c);n+=l.length,r.push(l)}let o=new Uint8Array(n),s=[],i=0;for(let c of r)o.set(c,i),s.push(i),i+=c.length;s.push(i);let a=new Uint32Array(s);return{stringData:o,stringOffsets:a}}function bl(t,e){return e.gltf.buffers.push({arrayBuffer:Ft(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var Ml={};ye(Ml,{decode:()=>pI,name:()=>hI});var Dg="EXT_feature_metadata",hI=Dg;async function pI(t,e){let r=new q(t);dI(r,e)}function dI(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(Dg);r&&(e.gltf?.loadImages&&mI(t,r),gI(t,r))}function mI(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:o}=e;if(n&&o)for(let s in n){let i=n[s],a=xI(o,s);a&&yI(t,a,i)}}function gI(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.featureTables;if(n&&o)for(let s in n){let i=AI(o,s);i&&bI(t,r,i)}}function AI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function xI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function bI(t,e,r){if(!r.class)return;let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=TI(t,e,i,o,a);a.data=c}}}function yI(t,e,r){let n=e.class;for(let o in r.properties){let s=e?.properties?.[o];if(s){let i=CI(t,s,n);s.data=i}}}function TI(t,e,r,n,o){let s=[],i=o.bufferView,a=t.getTypedArrayForBufferView(i),c=MI(t,r,o,n),l=EI(t,r,o,n);return r.type==="STRING"||r.componentType==="STRING"?s=xi(n,a,c,l):SI(r)&&(s=_I(r,n,a,c)),s}function MI(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?rn(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function EI(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?rn(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function SI(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function _I(t,e,r,n){let o=t.type==="ARRAY",s=t.componentCount,i="SCALAR",a=t.componentType||t.type,c=Ao(i,a),l=r.byteLength/c,f=nn(r,i,a,l);return o?n?gi(f,e,n,r.length,c):s?Ai(f,e,s):[]:f}function CI(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let o=[];for(let s of n.meshes)for(let i of s.primitives)BI(t,r,e,o,i);return o}function BI(t,e,r,n,o){let s={channels:r.channels,...r.texture},i=on(t,s,o);i&&mi(t,e,i,n,o)}var Gg="4.4.1";var cn=!0,Vg=1735152710,_l=12,bi=8,II=1313821514,RI=5130562,vI=0,wI=0,LI=1;function FI(t,e=0){return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function Hg(t,e=0,r={}){let n=new DataView(t),{magic:o=Vg}=r,s=n.getUint32(e,!1);return s===o||s===Vg}function zg(t,e,r=0,n={}){let o=new DataView(e),s=FI(o,r+0),i=o.getUint32(r+4,cn),a=o.getUint32(r+8,cn);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:s,version:i,json:{},binChunks:[]}),r+=_l,t.version){case 1:return PI(t,o,r);case 2:return NI(t,o,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function PI(t,e,r){H(t.header.byteLength>_l+bi);let n=e.getUint32(r+0,cn),o=e.getUint32(r+4,cn);return r+=bi,H(o===vI),El(t,e,r,n),r+=n,r+=Sl(t,e,r,t.header.byteLength),r}function NI(t,e,r,n){return H(t.header.byteLength>_l+bi),OI(t,e,r,n),r+t.header.byteLength}function OI(t,e,r,n){for(;r+8<=t.header.byteLength;){let o=e.getUint32(r+0,cn),s=e.getUint32(r+4,cn);switch(r+=bi,s){case II:El(t,e,r,o);break;case RI:Sl(t,e,r,o);break;case wI:n.strict||El(t,e,r,o);break;case LI:n.strict||Sl(t,e,r,o);break;default:break}r+=vt(o,4)}return r}function El(t,e,r,n){let o=new Uint8Array(e.buffer,r,n),i=new TextDecoder("utf8").decode(o);return t.json=JSON.parse(i),vt(n,4)}function Sl(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),vt(n,4)}function Cl(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let o=r?.baseUrl||UI(e?.core?.baseUrl);if(!o)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return o.endsWith("/")?`${o}${t}`:`${o}/${t}`}function UI(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var Il={};ye(Il,{decode:()=>KI,name:()=>XI});var DI="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",GI="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",VI=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),HI=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),zI={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},kI={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function kg(t,e,r,n,o,s="NONE"){let i=await qI();WI(i,i.exports[kI[o]],t,e,r,n,i.exports[zI[s||"NONE"]])}var Bl;async function qI(){return Bl||(Bl=jI()),Bl}async function jI(){let t=DI;WebAssembly.validate(VI)&&(t=GI,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(JI(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function JI(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let o=t.charCodeAt(n);e[n]=o>96?o-71:o>64?o-65:o>47?o+4:o>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?HI[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function WI(t,e,r,n,o,s,i){let a=t.exports.sbrk,c=n+3&-4,l=a(c*o),f=a(s.length),u=new Uint8Array(t.exports.memory.buffer);u.set(s,f);let h=e(l,n,o,f,s.length);if(h===0&&i&&i(l,c,o),r.set(u.subarray(l,l+n*o)),a(l-a(0)),h!==0)throw new Error(`Malformed buffer data: ${h}`)}var yi="EXT_meshopt_compression",XI=yi;async function KI(t,e){let r=new q(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let o of t.json.bufferViews||[])n.push(YI(r,o));await Promise.all(n),r.removeExtension(yi)}async function YI(t,e){let r=t.getObjectExtension(e,yi);if(r){let{byteOffset:n=0,byteLength:o=0,byteStride:s,count:i,mode:a,filter:c="NONE",buffer:l}=r,f=t.gltf.buffers[l],u=new Uint8Array(f.arrayBuffer,f.byteOffset+n,o),h=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await kg(h,i,s,u,a,c),t.removeObjectExtension(e,yi)}}var Rl={};ye(Rl,{name:()=>QI,preprocess:()=>ZI});var ln="EXT_texture_webp",QI=ln;function ZI(t,e){let r=new q(t);if(!Sc("image/webp")){if(r.getRequiredExtensions().includes(ln))throw new Error(`gltf: Required extension ${ln} not supported by browser`);return}let{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,ln);s&&(o.source=s.source),r.removeObjectExtension(o,ln)}r.removeExtension(ln)}var vl={};ye(vl,{name:()=>$I,preprocess:()=>e2});var Ti="KHR_texture_basisu",$I=Ti;function e2(t,e){let r=new q(t),{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,Ti);s&&(o.source=s.source,r.removeObjectExtension(o,Ti))}r.removeExtension(Ti)}var Ll={};ye(Ll,{decode:()=>s2,encode:()=>i2,name:()=>n2,preprocess:()=>o2});function qg(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let o=wl(n);e[r]=o}}return e}function wl(t){let{buffer:e,size:r,count:n}=t2(t);return{value:e,size:r,byteOffset:0,count:n,type:di(r),componentType:kt(e)}}function t2(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=r2(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function r2(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var qt="KHR_draco_mesh_compression",n2=qt;function o2(t,e,r){let n=new q(t);for(let o of jg(n))n.getObjectExtension(o,qt)}async function s2(t,e,r){if(!e?.gltf?.decompressMeshes)return;let n=new q(t),o=[];for(let s of jg(n))n.getObjectExtension(s,qt)&&o.push(a2(n,s,e,r));await Promise.all(o),n.removeExtension(qt)}function i2(t,e={}){let r=new q(t);for(let n of r.json.meshes||[])c2(n,e),r.addRequiredExtension(qt)}async function a2(t,e,r,n){let o=t.getObjectExtension(e,qt);if(!o)return;let s=t.getTypedArrayForBufferView(o.bufferView),i=sr(s.buffer,s.byteOffset),a={...r};delete a["3d-tiles"];let c=await Oe(i,mo,a,n),l=qg(c.attributes);for(let[f,u]of Object.entries(l))if(f in e.attributes){let h=e.attributes[f],p=t.getAccessor(h);p?.min&&p?.max&&(u.min=p.min,u.max=p.max)}e.attributes=l,c.indices&&(e.indices=wl(c.indices)),t.removeObjectExtension(e,qt),l2(e)}function c2(t,e,r=4,n,o){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let s=n.DracoWriter.encodeSync({attributes:t}),i=o?.parseSync?.({attributes:t}),a=n._addFauxAttributes(i.attributes),c=n.addBufferView(s);return{primitives:[{attributes:a,mode:r,extensions:{[qt]:{bufferView:c,attributes:a}}}]}}function l2(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*jg(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Fl={};ye(Fl,{decode:()=>p2,name:()=>f2});var Ei="KHR_texture_transform",f2=Ei,Mi=new b,u2=new k,h2=new k;async function p2(t,e){if(!new q(t).hasExtension(Ei)||!e.gltf?.loadBuffers)return;let o=t.json.materials||[];for(let s=0;s<o.length;s++)d2(s,t)}function d2(t,e){let r=e.json.materials?.[t],n=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],o=[];for(let s of n)s&&s?.extensions?.[Ei]&&m2(e,t,s,o)}function m2(t,e,r,n){let o=g2(r,n);if(!o)return;let s=t.json.meshes||[];for(let i of s)for(let a of i.primitives){let c=a.material;Number.isFinite(c)&&e===c&&A2(t,a,o)}}function g2(t,e){let r=t.extensions?.[Ei],{texCoord:n=0}=t,{texCoord:o=n}=r;if(!(e.findIndex(([i,a])=>i===n&&a===o)!==-1)){let i=y2(r);return n!==o&&(t.texCoord=o),e.push([n,o]),{originalTexCoord:n,texCoord:o,matrix:i}}return null}function A2(t,e,r){let{originalTexCoord:n,texCoord:o,matrix:s}=r,i=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(i)){let a=t.json.accessors?.[i];if(a&&a.bufferView!==void 0){let c=t.json.bufferViews?.[a.bufferView];if(c){let{arrayBuffer:l,byteOffset:f}=t.buffers[c.buffer],u=(f||0)+(a.byteOffset||0)+(c.byteOffset||0),{ArrayType:h,length:p}=tn(a,c),d=pi[a.componentType],A=hi[a.type],m=c.byteStride||d*A,x=new Float32Array(p);for(let T=0;T<a.count;T++){let M=new h(l,u+T*m,2);Mi.set(M[0],M[1],1),Mi.transformByMatrix3(s),x.set([Mi[0],Mi[1]],T*A)}n===o?x2(a,t,x,a.bufferView):b2(o,a,e,t,x)}}}}function x2(t,e,r,n){t.componentType=5126,t.byteOffset=0;let i=(e.json.accessors||[]).reduce((l,f)=>f.bufferView===n?l+1:l,0)>1;e.buffers.push({arrayBuffer:Ft(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let a=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],i){e.json.bufferViews.push({buffer:a,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let c=e.json.bufferViews[n];c&&(c.buffer=a,c.byteOffset=0,c.byteLength=r.buffer.byteLength,c.byteStride!==void 0&&delete c.byteStride)}function b2(t,e,r,n,o){n.buffers.push({arrayBuffer:Ft(o.buffer),byteOffset:0,byteLength:o.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let s=n.json.bufferViews;s.push({buffer:n.buffers.length-1,byteLength:o.buffer.byteLength,byteOffset:0});let i=n.json.accessors;i&&(i.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=i.length-1)}function y2(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,o=new k().set(1,0,0,0,1,0,e[0],e[1],1),s=u2.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),i=h2.set(n[0],0,0,0,n[1],0,0,0,1);return o.multiplyRight(s).multiplyRight(i)}var Pl={};ye(Pl,{decode:()=>M2,encode:()=>E2,name:()=>T2});var yr="KHR_lights_punctual",T2=yr;async function M2(t){let e=new q(t),{json:r}=e,n=e.getExtension(yr);n&&(e.json.lights=n.lights,e.removeExtension(yr));for(let o of r.nodes||[]){let s=e.getObjectExtension(o,yr);s&&(o.light=s.light),e.removeObjectExtension(o,yr)}}async function E2(t){let e=new q(t),{json:r}=e;if(r.lights){let n=e.addExtension(yr);ue(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let o=n.node;e.addObjectExtension(o,yr,n)}delete e.json.lights}}var Nl={};ye(Nl,{decode:()=>_2,encode:()=>C2,name:()=>S2});var xo="KHR_materials_unlit",S2=xo;async function _2(t){let e=new q(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,xo);e.removeExtension(xo)}function C2(t){let e=new q(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,xo,{}),e.addExtension(xo))}var Ol={};ye(Ol,{decode:()=>I2,encode:()=>R2,name:()=>B2});var bo="KHR_techniques_webgl",B2=bo;async function I2(t){let e=new q(t),{json:r}=e,n=e.getExtension(bo);if(n){let o=v2(n,e);for(let s of r.materials||[]){let i=e.getObjectExtension(s,bo);i&&(s.technique=Object.assign({},i,o[i.technique]),s.technique.values=w2(s.technique,e)),e.removeObjectExtension(s,bo)}e.removeExtension(bo)}}async function R2(t,e){}function v2(t,e){let{programs:r=[],shaders:n=[],techniques:o=[]}=t,s=new TextDecoder;return n.forEach(i=>{if(Number.isFinite(i.bufferView))i.code=s.decode(e.getTypedArrayForBufferView(i.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(i=>{i.fragmentShader=n[i.fragmentShader],i.vertexShader=n[i.vertexShader]}),o.forEach(i=>{i.program=r[i.program]}),o}function w2(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Jg=[Tl,xl,Il,Rl,vl,Ll,Pl,Nl,Ol,Fl,Ml];function Wg(t,e={},r){let n=Jg.filter(o=>Kg(o.name,e));for(let o of n)o.preprocess?.(t,e,r)}async function Xg(t,e={},r){let n=Jg.filter(o=>Kg(o.name,e));for(let o of n)await o.decode?.(t,e,r)}function Kg(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var Ul="KHR_binary_glTF";function Yg(t){let e=new q(t),{json:r}=e;for(let n of r.images||[]){let o=e.getObjectExtension(n,Ul);o&&Object.assign(n,o),e.removeObjectExtension(n,Ul)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(Ul)}var Qg={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},F2={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},Dl=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Yg(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in Qg)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let o in n){let s=n[o];s.id=s.id||o;let i=e[r].length;e[r].push(s),this.idToIndexMap[r][o]=i}}}_convertObjectIdsToArrayIndices(e){for(let r in Qg)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:o,material:s}=r;for(let i in n)n[i]=this._convertIdToIndex(n[i],"accessor");o&&(r.indices=this._convertIdToIndex(o,"accessor")),s&&(r.material=this._convertIdToIndex(s,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let o in n){let s=n[o],i=this._convertIdToIndex(s,o);n[o]=i}}_convertIdToIndex(e,r){let n=F2[r];if(n in this.idToIndexMap){let o=this.idToIndexMap[n][e];if(!Number.isFinite(o))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return o}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,o=e.textures.findIndex(s=>s.id===n);o!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:o})}}};function Zg(t,e={}){return new Dl().normalize(t,e)}async function $g(t,e,r=0,n,o){return P2(t,e,r,n),Zg(t,{normalize:n?.gltf?.normalize}),Wg(t,n,o),n?.gltf?.loadBuffers&&t.json.buffers&&await N2(t,n,o),n?.gltf?.loadImages&&await O2(t,n,o),await Xg(t,n,o),t}function P2(t,e,r,n){if(n.core?.baseUrl&&(t.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!Hg(e,r,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=uc(e);else if(e instanceof ArrayBuffer){let i={};r=zg(i,e,r,n.glb),ue(i.type==="glTF",`Invalid GLB magic string ${i.type}`),t._glb=i,t.json=i.json}else ue(!1,"GLTF: must be ArrayBuffer or string");let o=t.json.buffers||[];if(t.buffers=new Array(o.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:i}=t._glb;t.buffers[0]={arrayBuffer:i[0].arrayBuffer,byteOffset:i[0].byteOffset,byteLength:i[0].byteLength}}let s=t.json.images||[];t.images=new Array(s.length).fill({})}async function N2(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let s=n[o];if(s.uri){let{fetch:i}=r;ue(i);let a=Cl(s.uri,e,r),l=await(await r?.fetch?.(a))?.arrayBuffer?.();t.buffers[o]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete s.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function O2(t,e,r){let n=U2(t),o=t.json.images||[],s=[];for(let i of n)s.push(D2(t,o[i],i,e,r));return await Promise.all(s)}function U2(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function D2(t,e,r,n,o){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){let l=Cl(e.uri,n,o),{fetch:f}=o;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){let l=Fg(t.json,t.buffers,e.bufferView);s=sr(l.buffer,l.byteOffset,l.byteLength)}ue(s,"glTF image has no data");let i=n,a={...i,core:{...i?.core,mimeType:e.mimeType}},c=await Oe(s,[jr,kc],a,o);c&&c[0]&&(c={compressed:!0,mipmaps:!1,width:c[0].width,height:c[0].height,data:c[0]}),t.images=t.images||[],t.images[r]=c}var Tr={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Gg,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:G2,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function G2(t,e={},r){let n={...Tr.options,...e};n.gltf={...Tr.options.gltf,...n.gltf};let o=e?.glb?.byteOffset||0;return await $g({},t,o,n,r)}var V2={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},H2={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},qe={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},z2={magFilter:qe.TEXTURE_MAG_FILTER,minFilter:qe.TEXTURE_MIN_FILTER,wrapS:qe.TEXTURE_WRAP_S,wrapT:qe.TEXTURE_WRAP_T},k2={[qe.TEXTURE_MAG_FILTER]:qe.LINEAR,[qe.TEXTURE_MIN_FILTER]:qe.NEAREST_MIPMAP_LINEAR,[qe.TEXTURE_WRAP_S]:qe.REPEAT,[qe.TEXTURE_WRAP_T]:qe.REPEAT};function q2(){return{id:"default-sampler",parameters:k2}}function j2(t){return H2[t]}function J2(t){return V2[t]}var Gl=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:n,buffers:o=[],images:s=[]}=e,{baseUri:i=""}=e;return ue(n),this.baseUri=i,this.buffers=o,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((o,s)=>this._resolveBufferView(o,s))),e.images&&(n.images=e.images.map((o,s)=>this._resolveImage(o,s))),e.samplers&&(n.samplers=e.samplers.map((o,s)=>this._resolveSampler(o,s))),e.textures&&(n.textures=e.textures.map((o,s)=>this._resolveTexture(o,s))),e.accessors&&(n.accessors=e.accessors.map((o,s)=>this._resolveAccessor(o,s))),e.materials&&(n.materials=e.materials.map((o,s)=>this._resolveMaterial(o,s))),e.meshes&&(n.meshes=e.meshes.map((o,s)=>this._resolveMesh(o,s))),e.nodes&&(n.nodes=e.nodes.map((o,s)=>this._resolveNode(o,s)),n.nodes=n.nodes.map((o,s)=>this._resolveNodeChildren(o))),e.skins&&(n.skins=e.skins.map((o,s)=>this._resolveSkin(o,s))),e.scenes&&(n.scenes=e.scenes.map((o,s)=>this._resolveScene(o,s))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((o,s)=>{let i=this.getMesh(s);return o.id=i.id,o.primitives=o.primitives.concat(i.primitives),o},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(o=>{let s={...o,attributes:{},indices:void 0,material:void 0},i=o.attributes;for(let a in i)s.attributes[a]=this.getAccessor(i[a]);return o.indices!==void 0&&(s.indices=this.getAccessor(o.indices)),o.material!==void 0&&(s.material=this.getMaterial(o.material)),s})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let o=n.pbrMetallicRoughness;o.baseColorTexture&&(o.baseColorTexture={...o.baseColorTexture},o.baseColorTexture.texture=this.getTexture(o.baseColorTexture.index)),o.metallicRoughnessTexture&&(o.metallicRoughnessTexture={...o.metallicRoughnessTexture},o.metallicRoughnessTexture.texture=this.getTexture(o.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=j2(e.componentType),o=J2(e.type),s=n*o,i={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:o,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(i.bufferView=this.getBufferView(e.bufferView)),i.bufferView){let a=i.bufferView.buffer,{ArrayType:c,byteLength:l}=tn(i,i.bufferView),f=(i.bufferView.byteOffset||0)+(i.byteOffset||0)+a.byteOffset,u=zn(a.arrayBuffer,f,l);i.bufferView.byteStride&&(u=this._getValueFromInterleavedBuffer(a,f,i.bufferView.byteStride,i.bytesPerElement,i.count)),i.value=new c(u)}return i}_getValueFromInterleavedBuffer(e,r,n,o,s){let i=new Uint8Array(s*o);for(let a=0;a<s;a++){let c=r+a*n;i.set(new Uint8Array(e.arrayBuffer.slice(c,c+o)),a*o)}return i.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):q2(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let o in n){let s=this._enumSamplerParameter(o);s!==void 0&&(n.parameters[s]=n[o])}return n}_enumSamplerParameter(e){return z2[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},o=this.images[r];return o&&(n.image=o),n}_resolveBufferView(e,r){let n=e.buffer,o=this.buffers[n].arrayBuffer,s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(o,s,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function yo(t,e){return new Gl().postProcess(t,e)}var Si={URI:0,EMBEDDED:1};function _i(t,e,r,n){t.rotateYtoZ=!0;let o=(t.byteOffset||0)+(t.byteLength||0)-r;if(o===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=sr(e,r,o),t.gltfByteOffset=0,t.gltfByteLength=o,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function Ci(t,e,r,n){let o=r?.["3d-tiles"]||{};if(W2(t,e,r),o.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:s}=n,i=await s(t.gltfUrl,r?.core);t.gltfArrayBuffer=await i.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let s=await Oe(t.gltfArrayBuffer,Tr,r,n);t.gltf=yo(s),t.gpuMemoryUsageInBytes=go(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function W2(t,e,r){switch(e){case Si.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),s=new TextDecoder().decode(n);t.gltfUrl=s.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Si.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function e0(t,e,r,n,o){r=X2(t,e,r,n,o),await Ci(t,Si.EMBEDDED,n,o);let s=t?.gltf?.extensions;return s&&s.CESIUM_RTC&&(t.rtcCenter=s.CESIUM_RTC.center),r}function X2(t,e,r,n,o){r=zt(t,e,r),r=$r(t,e,r),r=en(t,e,r,n),r=_i(t,e,r,n);let s=new Tt(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=s.getGlobalProperty("RTC_CENTER",O.FLOAT,3),r}async function t0(t,e,r,n,o){return r=K2(t,e,r,n,o),await Ci(t,t.gltfFormat||0,n,o),r}function K2(t,e,r,n,o){if(r=zt(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=$r(t,e,r);let s=new DataView(e);if(t.gltfFormat=s.getUint32(r,!0),r+=4,r=en(t,e,r,n),r=_i(t,e,r,n),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let i=new Tt(t.featureTableJson,t.featureTableBinary),a=i.getGlobalProperty("INSTANCES_LENGTH");if(i.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=i.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=i.getGlobalProperty("RTC_CENTER",O.FLOAT,3);let c=new br(t.batchTableJson,t.batchTableBinary,a);return Y2(t,i,c,a),r}function Y2(t,e,r,n){let o=new Array(n),s=new b,i=new b,a=new b,c=new b,l=new k,f=new st,u=new b,h={},p=new N,d=[],A=[],m=[],x=[];for(let T=0;T<n;T++){let M;if(e.hasProperty("POSITION"))M=e.getProperty("POSITION",O.FLOAT,3,T,s);else if(e.hasProperty("POSITION_QUANTIZED")){M=e.getProperty("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3,T,s);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let B=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let L=65535;for(let F=0;F<3;F++)M[F]=M[F]/L*B[F]+g[F]}if(!M)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");s.copy(M),h.translation=s,t.normalUp=e.getProperty("NORMAL_UP",O.FLOAT,3,T,d),t.normalRight=e.getProperty("NORMAL_RIGHT",O.FLOAT,3,T,A);let E=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",O.UNSIGNED_SHORT,2,T,d),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",O.UNSIGNED_SHORT,2,T,A),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(G.WGS84.eastNorthUpToFixedFrame(s,p),p.getRotationMatrix3(l)):l.identity()}E&&(c.copy(i).cross(a).normalize(),l.setColumn(0,i),l.setColumn(1,a),l.setColumn(2,c)),f.fromMatrix3(l),h.rotation=f,u.set(1,1,1);let _=e.getProperty("SCALE",O.FLOAT,1,T,m);Number.isFinite(_)&&u.multiplyByScalar(_);let C=e.getProperty("SCALE_NON_UNIFORM",O.FLOAT,3,T,d);C&&u.scale(C),h.scale=u;let v=e.getProperty("BATCH_ID",O.UNSIGNED_SHORT,1,T,x);v===void 0&&(v=T);let S=new N().fromQuaternion(h.rotation);p.identity(),p.translate(h.translation),p.multiplyRight(S),p.scale(h.scale);let y=p.clone();o[T]={modelMatrix:y,batchId:v}}t.instances=o}async function r0(t,e,r,n,o,s){r=zt(t,e,r);let i=new DataView(e);for(t.tilesLength=i.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await s(e,r,n,o,a)}return r}async function n0(t,e,r,n){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let o=await Oe(e,Tr,r,n);t.gltf=yo(o),t.gpuMemoryUsageInBytes=go(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Vl(t,e=0,r,n,o={shape:"tile3d"}){switch(o.byteOffset=e,o.type=lg(t,e),o.type){case Ar.COMPOSITE:return await r0(o,t,e,r,n,Vl);case Ar.BATCHED_3D_MODEL:return await e0(o,t,e,r,n);case Ar.GLTF:return await n0(o,t,r,n);case Ar.INSTANCED_3D_MODEL:return await t0(o,t,e,r,n);case Ar.POINT_CLOUD:return await wg(o,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${o.type}`)}}async function Hl(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let s=o0(t.slice(8,16)),i=new Uint8Array(t,24,s),c=new TextDecoder("utf8").decode(i),l=JSON.parse(c),f=o0(t.slice(16,24)),u=new ArrayBuffer(0);if(f&&(u=t.slice(24+s)),await Bi(l,l.tileAvailability,u,r),Array.isArray(l.contentAvailability))for(let h of l.contentAvailability)await Bi(l,h,u,r);else await Bi(l,l.contentAvailability,u,r);return await Bi(l,l.childSubtreeAvailability,u,r),l}async function Bi(t,e,r,n){let o=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof o!="number")return;let s=t.bufferViews[o],i=t.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(i.uri){let c=`${n?.baseUrl||""}/${i.uri}`,f=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(f,s.byteOffset,s.byteLength);return}let a=t.buffers.slice(0,s.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+i.byteLength),s.byteOffset,s.byteLength)}function o0(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Ii={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:fi,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Hl,options:{}};var C0=U(er(),1);var M0=U(er(),1);var je=null;try{je=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Z(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Z.prototype.__isLong__;Object.defineProperty(Z.prototype,"__isLong__",{value:!0});function Ee(t){return(t&&t.__isLong__)===!0}function s0(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=Ee;var i0={},a0={};function Mr(t,e){var r,n,o;return e?(t>>>=0,(o=0<=t&&t<256)&&(n=a0[t],n)?n:(r=j(t,0,!0),o&&(a0[t]=r),r)):(t|=0,(o=-128<=t&&t<128)&&(n=i0[t],n)?n:(r=j(t,t<0?-1:0,!1),o&&(i0[t]=r),r))}Z.fromInt=Mr;function Je(t,e){if(isNaN(t))return e?Mt:tt;if(e){if(t<0)return Mt;if(t>=u0)return d0}else{if(t<=-l0)return we;if(t+1>=l0)return p0}return t<0?Je(-t,e).neg():j(t%un|0,t/un|0,e)}Z.fromNumber=Je;function j(t,e,r){return new Z(t,e,r)}Z.fromBits=j;var Ri=Math.pow;function kl(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?Mt:tt;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return kl(t.substring(1),e,r).neg();for(var o=Je(Ri(r,8)),s=tt,i=0;i<t.length;i+=8){var a=Math.min(8,t.length-i),c=parseInt(t.substring(i,i+a),r);if(a<8){var l=Je(Ri(r,a));s=s.mul(l).add(Je(c))}else s=s.mul(o),s=s.add(Je(c))}return s.unsigned=e,s}Z.fromString=kl;function rt(t,e){return typeof t=="number"?Je(t,e):typeof t=="string"?kl(t,e):j(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=rt;var c0=1<<16,Q2=1<<24,un=c0*c0,u0=un*un,l0=u0/2,f0=Mr(Q2),tt=Mr(0);Z.ZERO=tt;var Mt=Mr(0,!0);Z.UZERO=Mt;var fn=Mr(1);Z.ONE=fn;var h0=Mr(1,!0);Z.UONE=h0;var zl=Mr(-1);Z.NEG_ONE=zl;var p0=j(-1,2147483647,!1);Z.MAX_VALUE=p0;var d0=j(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=d0;var we=j(0,-2147483648,!1);Z.MIN_VALUE=we;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*un+(this.low>>>0):this.high*un+(this.low>>>0)};I.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(we)){var r=Je(e),n=this.div(r),o=n.mul(r).sub(this);return n.toString(e)+o.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=Je(Ri(e,6),this.unsigned),i=this,a="";;){var c=i.div(s),l=i.sub(c.mul(s)).toInt()>>>0,f=l.toString(e);if(i=c,i.isZero())return f+a;for(;f.length<6;)f="0"+f;a=""+f+a}};I.getHighBits=function(){return this.high};I.getHighBitsUnsigned=function(){return this.high>>>0};I.getLowBits=function(){return this.low};I.getLowBitsUnsigned=function(){return this.low>>>0};I.getNumBitsAbs=function(){if(this.isNegative())return this.eq(we)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&!(e&1<<r);r--);return this.high!=0?r+33:r+1};I.isZero=function(){return this.high===0&&this.low===0};I.eqz=I.isZero;I.isNegative=function(){return!this.unsigned&&this.high<0};I.isPositive=function(){return this.unsigned||this.high>=0};I.isOdd=function(){return(this.low&1)===1};I.isEven=function(){return(this.low&1)===0};I.equals=function(e){return Ee(e)||(e=rt(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};I.eq=I.equals;I.notEquals=function(e){return!this.eq(e)};I.neq=I.notEquals;I.ne=I.notEquals;I.lessThan=function(e){return this.comp(e)<0};I.lt=I.lessThan;I.lessThanOrEqual=function(e){return this.comp(e)<=0};I.lte=I.lessThanOrEqual;I.le=I.lessThanOrEqual;I.greaterThan=function(e){return this.comp(e)>0};I.gt=I.greaterThan;I.greaterThanOrEqual=function(e){return this.comp(e)>=0};I.gte=I.greaterThanOrEqual;I.ge=I.greaterThanOrEqual;I.compare=function(e){if(Ee(e)||(e=rt(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};I.comp=I.compare;I.negate=function(){return!this.unsigned&&this.eq(we)?we:this.not().add(fn)};I.neg=I.negate;I.add=function(e){Ee(e)||(e=rt(e));var r=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,f=0,u=0,h=0,p=0;return p+=s+l,h+=p>>>16,p&=65535,h+=o+c,u+=h>>>16,h&=65535,u+=n+a,f+=u>>>16,u&=65535,f+=r+i,f&=65535,j(h<<16|p,f<<16|u,this.unsigned)};I.subtract=function(e){return Ee(e)||(e=rt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(Ee(e)||(e=rt(e)),je){var r=je.mul(this.low,this.high,e.low,e.high);return j(r,je.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Mt:tt;if(this.eq(we))return e.isOdd()?we:tt;if(e.eq(we))return this.isOdd()?we:tt;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(f0)&&e.lt(f0))return Je(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,f=e.low&65535,u=0,h=0,p=0,d=0;return d+=i*f,p+=d>>>16,d&=65535,p+=s*f,h+=p>>>16,p&=65535,p+=i*l,h+=p>>>16,p&=65535,h+=o*f,u+=h>>>16,h&=65535,h+=s*l,u+=h>>>16,h&=65535,h+=i*c,u+=h>>>16,h&=65535,u+=n*f+o*l+s*c+i*a,u&=65535,j(p<<16|d,u<<16|h,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(Ee(e)||(e=rt(e)),e.isZero())throw Error("division by zero");if(je){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?je.div_u:je.div_s)(this.low,this.high,e.low,e.high);return j(r,je.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mt:tt;var n,o,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Mt;if(e.gt(this.shru(1)))return h0;s=Mt}else{if(this.eq(we)){if(e.eq(fn)||e.eq(zl))return we;if(e.eq(we))return fn;var i=this.shr(1);return n=i.div(e).shl(1),n.eq(tt)?e.isNegative()?fn:zl:(o=this.sub(e.mul(n)),s=n.add(o.div(e)),s)}else if(e.eq(we))return this.unsigned?Mt:tt;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=tt}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Ri(2,a-48),l=Je(n),f=l.mul(e);f.isNegative()||f.gt(o);)n-=c,l=Je(n,this.unsigned),f=l.mul(e);l.isZero()&&(l=fn),s=s.add(l),o=o.sub(f)}return s};I.div=I.divide;I.modulo=function(e){if(Ee(e)||(e=rt(e)),je){var r=(this.unsigned?je.rem_u:je.rem_s)(this.low,this.high,e.low,e.high);return j(r,je.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return j(~this.low,~this.high,this.unsigned)};I.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};I.clz=I.countLeadingZeros;I.countTrailingZeros=function(){return this.low?s0(this.low):s0(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return Ee(e)||(e=rt(e)),j(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return Ee(e)||(e=rt(e)),j(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return Ee(e)||(e=rt(e)),j(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return Ee(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?j(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):j(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return Ee(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?j(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):j(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return Ee(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?j(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?j(this.high,0,this.unsigned):j(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return Ee(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?j(this.high,this.low,this.unsigned):e<32?(r=32-e,j(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,j(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};I.rotl=I.rotateLeft;I.rotateRight=function(e){var r;return Ee(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?j(this.high,this.low,this.unsigned):e<32?(r=32-e,j(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,j(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?j(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:j(this.low,this.high,!0)};I.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};I.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};I.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Z.fromBytes=function(e,r,n){return n?Z.fromBytesLE(e,r):Z.fromBytesBE(e,r)};Z.fromBytesLE=function(e,r){return new Z(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Z.fromBytesBE=function(e,r){return new Z(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var hn=Z;var Z2=16;function To(t){t==="X"&&(t="");let e=t.padEnd(Z2,"0");return hn.fromString(e,!0,16)}function ql(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let s=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function jl(t,e){let r=$2(t).shiftRightUnsigned(2);return t.add(hn.fromNumber(2*e+1-4).multiply(r))}function $2(t){return t.and(t.not().add(1))}var e3=3,t3=30,r3=2*t3+1,m0=180/Math.PI;function A0(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=0,i=[0,0];for(let a=o-1;a>=0;a--){s=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,s-1);n3(u,i,l,f),i[0]+=u*l,i[1]+=u*f}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:s}}function x0(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<e3+r3;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=hn.fromString(n,!0,2).toString(10),a="";if(s!==0)for(a=hn.fromString(o,!0,2).toString(4);a.length<s;)a="0"+a;return`${i}/${a}`}function Jl(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function g0(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Wl(t){return[g0(t[0]),g0(t[1])]}function Xl(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Kl([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*m0,n*m0]}function n3(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function b0(t){let e=Jl(t.ij,t.level,[.5,.5]),r=Wl(e),n=Xl(t.face,r);return Kl(n)}var o3=100;function Yl(t){let{face:e,ij:r,level:n}=t,o=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(o3*Math.pow(2,-n))),i=new Float64Array(4*s*2+2),a=0,c=0;for(let l=0;l<4;l++){let f=o[l].slice(0),u=o[l+1],h=(u[0]-f[0])/s,p=(u[1]-f[1])/s;for(let d=0;d<s;d++){f[0]+=h,f[1]+=p;let A=Jl(r,n,f),m=Wl(A),x=Xl(e,m),T=Kl(x);Math.abs(T[1])>89.999&&(T[0]=c);let M=T[0]-c;T[0]+=M>180?-360:M<-180?360:0,i[a++]=T[0],i[a++]=T[1],c=T[0]}}return i[a++]=i[0],i[a++]=i[1],i}function pn(t){let e=s3(t);return A0(e)}function s3(t){if(t.indexOf("/")>0)return t;let e=To(t);return x0(e)}function Ql(t){let e=pn(t);return b0(e)}function T0(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let o=0;o<4;o++){let s=`${t.face}/${o}`,i=pn(s),a=Yl(i);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=y0(r)}else{let r=Yl(t);e=y0(r)}return e}function y0(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,o)=>n-o),r.sort((n,o)=>n-o),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Zl(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,o=pn(t),s=T0(o),i=s.west,a=s.south,c=s.east,l=s.north,f=[];return f.push(new b(i,l,r)),f.push(new b(c,l,r)),f.push(new b(c,a,r)),f.push(new b(i,a,r)),f.push(new b(i,l,n)),f.push(new b(c,l,n)),f.push(new b(c,a,n)),f.push(new b(i,a,n)),f}function vi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Zl(e,r),o=Ql(e),s=o[0],i=o[1],a=G.WGS84.cartographicToCartesian([s,i,r.maximumHeight]),c=new b(a[0],a[1],a[2]);n.push(c);let l=to(n);return[...l.center,...l.halfAxes]}var i3=4,a3=8,c3={QUADTREE:i3,OCTREE:a3};function l3(t,e,r){if(t?.box){let n=To(t.s2VolumeInfo.token),o=jl(n,e),s=ql(o),i={...t.s2VolumeInfo};switch(i.token=s,r){case"OCTREE":let l=t.s2VolumeInfo,f=l.maximumHeight-l.minimumHeight,u=f/2,h=l.minimumHeight+f/2;l.minimumHeight=h-u,l.maximumHeight=h+u;break;default:break}return{box:vi(i),s2VolumeInfo:i}}}async function ef(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:o=0,implicitOptions:s,loaderOptions:i,s2VolumeBox:a}=t,{subdivisionScheme:c,subtreeLevels:l,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:p}=s,d={children:[],lodMetricValue:0,contentUrl:""};if(!f)return sc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),d;let A=n.localLevel+1,m=r.level+A;if(m>f)return d;let x=c3[c],T=Math.log2(x),M=o&1,E=o>>1&1,_=o>>2&1,C=Er(n.localX,M,1),v=Er(n.localY,E,1),S=Er(n.localZ,_,1),y=Er(r.x,C,A),g=Er(r.y,v,A),B=Er(r.z,S,A),L=Er(n.mortonIndex,o,T),F=A===l&&$l(e.childSubtreeAvailability,L),w,D,W,z;if(F){let K=`${p}/${h}`,ee=wi(K,m,y,g,B);w=await(0,M0.load)(ee,Ii,i),z=0,D={level:m,x:y,y:g,z:B},W={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else w=e,z=(x**A-1)/(x-1)+L,D=r,W={mortonIndex:L,localLevel:A,localX:C,localY:v,localZ:S};if(!$l(w.tileAvailability,z))return d;$l(w.contentAvailability,z)&&(d.contentUrl=wi(u,m,y,g,B));for(let K=0;K<x;K++){let ee=l3(a,K,c),Ie=await ef({subtree:w,subtreeData:D,parentData:W,childIndex:K,implicitOptions:s,loaderOptions:i,s2VolumeBox:ee});(Ie.contentUrl||Ie.children.length)&&d.children.push(Ie)}return d.contentUrl||d.children.length?f3(d,{level:m,x:y,y:g,z:B},s,a):d}function $l(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&sc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?p3(e,r.explicitBitstream):!1}function f3(t,e,r,n){let{basePath:o,refine:s,getRefine:i,lodMetricType:a,getTileType:c,rootLodMetricValue:l,rootBoundingVolume:f}=r,u=t.contentUrl&&t.contentUrl.replace(`${o}/`,""),h=l/2**e.level,p=n?.box?{box:n.box}:f,d=u3(p,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:i(s),type:c(t),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:t.transform,boundingVolume:d}}function u3(t,e,r){if(t.region){let{level:n,x:o,y:s,z:i}=e,[a,c,l,f,u,h]=t.region,p=2**n,d=(l-a)/p,[A,m]=[a+d*o,a+d*(o+1)],x=(f-c)/p,[T,M]=[c+x*s,c+x*(s+1)],E,_;if(r==="OCTREE"){let C=(h-u)/p;[E,_]=[u+C*i,u+C*(i+1)]}else[E,_]=[u,h];return{region:[A,T,m,M,E,_]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function Er(t,e,r){return(t<<r)+e}function wi(t,e,r,n,o){let s=h3({level:e,x:r,y:n,z:o});return t.replace(/{level}|{x}|{y}|{z}/gi,i=>s[i])}function h3(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function p3(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function rf(t,e=""){if(!e)return ke.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return ke.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return ke.SCENEGRAPH;default:return n||ke.EMPTY}}function nf(t){switch(t){case"REPLACE":case"replace":return Te.REPLACE;case"ADD":case"add":return Te.ADD;default:return t}}function tf(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Pt.resolve(e,t)}function E0(t,e){if(!t)return null;let r;if(t.content){let o=t.content.uri||t.content?.url;typeof o<"u"&&(r=tf(o,e))}return{...t,id:r,contentUrl:r,lodMetricType:yt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:rf(t,r),refine:nf(t.refine)}}async function B0(t,e,r){let n=null,o=_0(t.root);o&&t.root?n=await S0(t.root,t,e,o,r):n=E0(t.root,e);let s=[];for(s.push(n);s.length>0;){let i=s.pop()||{},a=i.children||[],c=[];for(let l of a){let f=_0(l),u;f?u=await S0(l,t,e,f,r):u=E0(l,e),u&&(c.push(u),s.push(u))}i.children=c}return n}async function S0(t,e,r,n,o){let{subdivisionScheme:s,maximumLevel:i,availableLevels:a,subtreeLevels:c,subtrees:{uri:l}}=n,f=wi(l,0,0,0,0),u=tf(f,r),h=await(0,C0.load)(u,Ii,o),p=t.content?.uri,d=p?tf(p,r):"",A=e?.root?.refine,m=t.geometricError,x=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(x){let _={box:vi(x),s2VolumeInfo:x};t.boundingVolume=_}let T=t.boundingVolume,M={contentUrlTemplate:d,subtreesUriTemplate:l,subdivisionScheme:s,subtreeLevels:c,maximumLevel:Number.isFinite(a)?a-1:i,refine:A,basePath:r,lodMetricType:yt.GEOMETRIC_ERROR,rootLodMetricValue:m,rootBoundingVolume:T,getTileType:rf,getRefine:nf};return await d3(t,r,h,M,o)}async function d3(t,e,r,n,o){if(!t)return null;let{children:s,contentUrl:i}=await ef({subtree:r,implicitOptions:n,loaderOptions:o}),a,c=null;return i&&(a=i,c={uri:i.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:yt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:rf(t,a),refine:nf(t.refine),content:c||t.content,children:s}}function _0(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var Li={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:fi,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:m3,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function m3(t,e={},r){let n=e["3d-tiles"]||{},o;return n.isTileset==="auto"?o=r?.url&&r.url.indexOf(".json")!==-1:o=n.isTileset,o?g3(t,e,r):A3(t,e,r)}async function g3(t,e,r){let n=JSON.parse(new TextDecoder().decode(t)),o=r?.url||"",s=x3(o),i=await B0(n,s,e||{});return{...n,shape:"tileset3d",loader:Li,url:o,queryString:r?.queryString||"",basePath:s,root:i||n.root,type:de.TILES3D,lodMetricType:yt.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function A3(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Vl(t,0,e,r,n.content),n.content}function x3(t){return Pt.dirname(t)}var I0=[0],b3={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Li,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Mo=class extends jt.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&jt.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:o}=this.state;Object.keys(o).length&&(this._updateTileset(o),this.state.lastUpdatedViewports=o,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:o}=this.state;for(let s in o)o[s].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let o=n?.[e.id];(!o||!e.equals(o))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r,cullRect:n,isPicking:o}){let{tile:s}=e.props,{id:i}=r;if(!s.selected||!s.viewportIds.includes(i))return!1;if(o&&n&&s.content?.cartographicOrigin){let[a,c]=r.project(s.content.cartographicOrigin),l=n.x+n.width/2,f=n.y+n.height/2,u=Math.max(r.width,r.height)/4,h=a-l,p=c-f;if(h*h+p*p>u*u)return!1}return!0}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let r=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,o=Array.isArray(n)?n[0]:n,{tileset:s,...i}=r,a={loadOptions:{...i},...s},c=e;if("preload"in o&&typeof o.preload=="function"){let u=await o.preload(e,r);u.url&&(c=u.url),u.headers&&(a.loadOptions.core={...a.loadOptions.core,fetch:{...a.loadOptions.core?.fetch,headers:u.headers}}),Object.assign(a,u)}let l=await(0,L0.load)(c,o,a.loadOptions),f=new uo(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...a});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;e.tileDrawn=!1,this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,o=Object.keys(e).length;!n||!o||!r||r.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case ke.POINTCLOUD:return this._makePointCloudLayer(e,r);case ke.SCENEGRAPH:return this._make3DModelLayer(e);case ke.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:o,constantRGBA:s,cartographicOrigin:i,modelMatrix:a}=e.content,{positions:c,normals:l,colors:f}=n;if(!c)return null;let u=r&&r.props.data||{header:{vertexCount:o},attributes:{POSITION:c,NORMAL:l,COLOR_0:f}},{pointSize:h,getPointColor:p}=this.props,d=this.getSubLayerClass("pointcloud",v0.PointCloudLayer);return new d({pointSize:h},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:u,coordinateSystem:jt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:i,modelMatrix:a,getColor:s||p,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:o,modelMatrix:s}=e.content,i=this.getSubLayerClass("scenegraph",w0.ScenegraphLayer);return new i({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||I0,scenegraph:r,coordinateSystem:jt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:o,indices:s,modelMatrix:i,cartographicOrigin:a,coordinateSystem:c=jt.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:f}=n,{_getMeshColor:u}=this.props,h=r&&r.props.mesh||new R0.Geometry({topology:"triangle-list",attributes:y3(o),indices:s}),p=this.getSubLayerClass("mesh",Sm);return new p(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:h,data:I0,getColor:u(e),pbrMaterial:l,modelMatrix:i,coordinateOrigin:a,coordinateSystem:c,featureIds:f,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let o=r[n.id]=r[n.id]||{tile:n},{layer:s}=o;return n.selected&&(s?o.needsUpdate&&(s=this._getSubLayer(n,s),o.needsUpdate=!1):s=this._getSubLayer(n)),o.layer=s,s}).filter(Boolean):null}};Mo.defaultProps=b3;Mo.layerName="Tile3DLayer";var F0=Mo;function y3(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var Ui=U(Ke(),1),lf=U(js(),1),V0=U(Ke(),1);var T3=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function of(t){return t>>1^-(t&1)}function M3(t){let e=0,r={};for(let[n,o]of T3){let s=o===8?t.getFloat64:t.getFloat32;r[n]=s.call(t,e,!0),e+=o}return{header:r,headerEndPosition:e}}function E3(t,e){let r=e,n=3,o=t.getUint32(r,!0),s=new Uint16Array(o*n);r+=Uint32Array.BYTES_PER_ELEMENT;let i=Uint16Array.BYTES_PER_ELEMENT,a=o*i,c=r,l=c+a,f=l+a,u=0,h=0,p=0;for(let d=0;d<o;d++)u+=of(t.getUint16(c+i*d,!0)),h+=of(t.getUint16(l+i*d,!0)),p+=of(t.getUint16(f+i*d,!0)),s[d]=u,s[d+o]=h,s[d+o*2]=p;return r+=a*3,{vertexData:s,vertexDataEndPosition:r}}function Eo(t,e,r,n,o=!0){let s;if(n===2?s=new Uint16Array(t,e,r):s=new Uint32Array(t,e,r),!o)return s;let i=0;for(let a=0;a<s.length;++a){let c=s[a];s[a]=i-c,c===0&&++i}return s}function S3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%i!==0&&(n+=i-n%i);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Eo(t.buffer,n,c,i);return n+=c*i,{triangleIndicesEndPosition:n,triangleIndices:l}}function _3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Eo(t.buffer,n,a,i,!1);n+=a*i;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let f=Eo(t.buffer,n,l,i,!1);n+=l*i;let u=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Eo(t.buffer,n,u,i,!1);n+=u*i;let p=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let d=Eo(t.buffer,n,p,i,!1);return n+=p*i,{edgeIndicesEndPosition:n,westIndices:c,southIndices:f,eastIndices:h,northIndices:d}}function C3(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function B3(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function I3(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let o=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let s=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let i=new DataView(t.buffer,n,s);switch(o){case 1:{r.vertexNormals=C3(i);break}case 2:{r.waterMask=B3(i);break}default:}n+=s}return{extensions:r,extensionsEndPosition:n}}var Sr={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},R3={maxDecodingStep:Sr.extensions};function sf(t,e){let r=Object.assign({},R3,e),n=new DataView(t),{header:o,headerEndPosition:s}=M3(n);if(r.maxDecodingStep<Sr.vertices)return{header:o};let{vertexData:i,vertexDataEndPosition:a}=E3(n,s);if(r.maxDecodingStep<Sr.triangleIndices)return{header:o,vertexData:i};let{triangleIndices:c,triangleIndicesEndPosition:l}=S3(n,i,a);if(r.maxDecodingStep<Sr.edgeIndices)return{header:o,vertexData:i,triangleIndices:c};let{westIndices:f,southIndices:u,eastIndices:h,northIndices:p,edgeIndicesEndPosition:d}=_3(n,i,l);if(r.maxDecodingStep<Sr.extensions)return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u};let{extensions:A}=I3(n,d);return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u,extensions:A}}function Fi(t,e,r,n){let o=n?w3(n,t.POSITION.value):v3(e),s=new t.POSITION.value.constructor(o.length*6),i=new t.TEXCOORD_0.value.constructor(o.length*4),a=new e.constructor(o.length*6);for(let l=0;l<o.length;l++){let f=o[l];L3({edge:f,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:s,newTexcoord0:i,newTriangles:a})}t.POSITION.value=Vn(t.POSITION.value,s),t.TEXCOORD_0.value=Vn(t.TEXCOORD_0.value,i);let c=e instanceof Array?e.concat(a):Vn(e,a);return{attributes:t,triangles:c}}function v3(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,s)=>Math.min(...o)-Math.min(...s)||Math.max(...o)-Math.max(...s));let r=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(r.push(e[n]),n++);return r}function w3(t,e){t.westIndices.sort((n,o)=>e[3*n+1]-e[3*o+1]),t.eastIndices.sort((n,o)=>e[3*o+1]-e[3*n+1]),t.southIndices.sort((n,o)=>e[3*o]-e[3*n]),t.northIndices.sort((n,o)=>e[3*n]-e[3*o]);let r=[];for(let n in t){let o=t[n];for(let s=0;s<o.length-1;s++)r.push([o[s],o[s+1]])}return r}function L3({edge:t,edgeIndex:e,attributes:r,skirtHeight:n,newPosition:o,newTexcoord0:s,newTriangles:i}){let a=r.POSITION.value.length,c=e*2,l=e*2+1;o.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),c*3),o[c*3+2]=o[c*3+2]-n,o.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),l*3),o[l*3+2]=o[l*3+2]-n,s.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),c*2),s.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),l*2);let f=e*2*3;i[f]=t[0],i[f+1]=a/3+l,i[f+2]=t[1],i[f+3]=a/3+l,i[f+4]=t[0],i[f+5]=a/3+c}function af(t,e={}){let{bounds:r}=e,{header:n,vertexData:o,triangleIndices:s,westIndices:i,northIndices:a,eastIndices:c,southIndices:l}=sf(t,Sr.triangleIndices),f=s,u=F3(o,n,r),h=xr(u);if(e?.skirtHeight){let{attributes:p,triangles:d}=Fi(u,f,e.skirtHeight,{westIndices:i,northIndices:a,eastIndices:c,southIndices:l});u=p,f=d}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:h},schema:void 0,topology:"triangle-list",mode:4,indices:{value:f,size:1},attributes:u}}function F3(t,e,r){let{minHeight:n,maxHeight:o}=e,[s,i,a,c]=r||[0,0,1,1],l=a-s,f=c-i,u=o-n,h=t.length/3,p=new Float32Array(h*3),d=new Float32Array(h*2);for(let A=0;A<h;A++){let m=t[A]/32767,x=t[A+h]/32767,T=t[A+h*2]/32767;p[3*A+0]=m*l+s,p[3*A+1]=x*f+i,p[3*A+2]=T*u+n,d[2*A+0]=m,d[2*A+1]=x}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:d,size:2}}}var So=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let o=n+2,s=0,i=0,a=0,c=0,l=0,f=0;for(o&1?a=c=l=r:s=i=f=r;(o>>=1)>1;){let h=s+a>>1,p=i+c>>1;o&1?(a=s,c=i,s=l,i=f):(s=a,i=c,a=l,c=f),l=h,f=p}let u=n*4;this.coords[u+0]=s,this.coords[u+1]=i,this.coords[u+2]=a,this.coords[u+3]=c}}createTile(e){return new cf(e,this)}},cf=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:o}=this.martini,{terrain:s,errors:i}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],f=n[c+1],u=n[c+2],h=n[c+3],p=l+u>>1,d=f+h>>1,A=p+d-f,m=d+l-p,x=(s[f*o+l]+s[h*o+u])/2,T=d*o+p,M=Math.abs(x-s[T]);if(i[T]=Math.max(i[T],M),a<r){let E=(f+m>>1)*o+(l+A>>1),_=(h+m>>1)*o+(u+A>>1);i[T]=Math.max(i[T],i[E],i[_])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:o}=this,s=0,i=0,a=r-1;n.fill(0);function c(p,d,A,m,x,T){let M=p+A>>1,E=d+m>>1;Math.abs(p-x)+Math.abs(d-T)>1&&o[E*r+M]>e?(c(x,T,p,d,M,E),c(A,m,x,T,M,E)):(n[d*r+p]=n[d*r+p]||++s,n[m*r+A]=n[m*r+A]||++s,n[T*r+x]=n[T*r+x]||++s,i++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(s*2),f=new Uint32Array(i*3),u=0;function h(p,d,A,m,x,T){let M=p+A>>1,E=d+m>>1;if(Math.abs(p-x)+Math.abs(d-T)>1&&o[E*r+M]>e)h(x,T,p,d,M,E),h(A,m,x,T,M,E);else{let _=n[d*r+p]-1,C=n[m*r+A]-1,v=n[T*r+x]-1;l[2*_]=p,l[2*_+1]=d,l[2*C]=A,l[2*C+1]=m,l[2*v]=x,l[2*v+1]=T,f[u++]=_,f[u++]=C,f[u++]=v}}return h(0,0,a,a,a,0),h(a,a,0,0,0,a),{vertices:l,triangles:f}}};var _o=class{constructor(e,r,n=r){this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let o=r-1,s=n-1,i=this._addPoint(0,0),a=this._addPoint(o,0),c=this._addPoint(0,s),l=this._addPoint(o,s),f=this._addTriangle(l,i,c,-1,-1,-1);this._addTriangle(i,l,a,f,-1,-1),this._flush()}run(e=1){for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],o=2*this.triangles[n*3+0],s=2*this.triangles[n*3+1],i=2*this.triangles[n*3+2];this._findCandidate(e[o],e[o+1],e[s],e[s+1],e[i],e[i+1],n)}this._pendingLen=0}_findCandidate(e,r,n,o,s,i,a){let c=Math.min(e,n,s),l=Math.min(r,o,i),f=Math.max(e,n,s),u=Math.max(r,o,i),h=_r(n,o,s,i,c,l),p=_r(s,i,e,r,c,l),d=_r(e,r,n,o,c,l),A=o-r,m=e-n,x=i-o,T=n-s,M=r-i,E=s-e,_=_r(e,r,n,o,s,i),C=this.heightAt(e,r)/_,v=this.heightAt(n,o)/_,S=this.heightAt(s,i)/_,y=0,g=0,B=0,L=0;for(let F=l;F<=u;F++){let w=0;h<0&&x!==0&&(w=Math.max(w,Math.floor(-h/x))),p<0&&M!==0&&(w=Math.max(w,Math.floor(-p/M))),d<0&&A!==0&&(w=Math.max(w,Math.floor(-d/A)));let D=h+x*w,W=p+M*w,z=d+A*w,re=!1;for(let Y=c+w;Y<=f;Y++){if(D>=0&&W>=0&&z>=0){re=!0;let K=C*D+v*W+S*z,ee=Math.abs(K-this.heightAt(Y,F));L+=ee*ee,ee>y&&(y=ee,g=Y,B=F)}else if(re)break;D+=x,W+=M,z+=A}h+=T,p+=E,d+=m}(g===e&&B===r||g===n&&B===o||g===s&&B===i)&&(y=0),this._candidates[2*a]=g,this._candidates[2*a+1]=B,this._rms[a]=L,this._queuePush(a,y,L)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,o=e*3+2,s=this.triangles[r],i=this.triangles[n],a=this.triangles[o],c=this.coords[2*s],l=this.coords[2*s+1],f=this.coords[2*i],u=this.coords[2*i+1],h=this.coords[2*a],p=this.coords[2*a+1],d=this._candidates[2*e],A=this._candidates[2*e+1],m=this._addPoint(d,A);if(_r(c,l,f,u,d,A)===0)this._handleCollinear(m,r);else if(_r(f,u,h,p,d,A)===0)this._handleCollinear(m,n);else if(_r(h,p,c,l,d,A)===0)this._handleCollinear(m,o);else{let x=this._halfedges[r],T=this._halfedges[n],M=this._halfedges[o],E=this._addTriangle(s,i,m,x,-1,-1,r),_=this._addTriangle(i,a,m,T,-1,E+1),C=this._addTriangle(a,s,m,M,E+2,_+1);this._legalize(E),this._legalize(_),this._legalize(C)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,o,s,i,a=this.triangles.length){let c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=o,this._halfedges[a+1]=s,this._halfedges[a+2]=i,o>=0&&(this._halfedges[o]=a+0),s>=0&&(this._halfedges[s]=a+1),i>=0&&(this._halfedges[i]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,o=r-r%3,s=n+(e+1)%3,i=n+(e+2)%3,a=o+(r+2)%3,c=o+(r+1)%3,l=this.triangles[i],f=this.triangles[e],u=this.triangles[s],h=this.triangles[a],p=this.coords;if(!P3(p[2*l],p[2*l+1],p[2*f],p[2*f+1],p[2*u],p[2*u+1],p[2*h],p[2*h+1]))return;let d=this._halfedges[s],A=this._halfedges[i],m=this._halfedges[a],x=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(o/3);let T=this._addTriangle(l,h,u,-1,m,d,n),M=this._addTriangle(h,l,f,T,A,x,o);this._legalize(T+1),this._legalize(M+2)}_handleCollinear(e,r){let n=r-r%3,o=n+(r+1)%3,s=n+(r+2)%3,i=this.triangles[s],a=this.triangles[r],c=this.triangles[o],l=this._halfedges[o],f=this._halfedges[s],u=this._halfedges[r];if(u<0){let C=this._addTriangle(e,i,a,-1,f,-1,n),v=this._addTriangle(i,e,c,C,-1,l);this._legalize(C+1),this._legalize(v+2);return}let h=u-u%3,p=h+(u+2)%3,d=h+(u+1)%3,A=this.triangles[p],m=this._halfedges[p],x=this._halfedges[d];this._queueRemove(h/3);let T=this._addTriangle(i,a,e,f,-1,-1,n),M=this._addTriangle(a,A,e,x,-1,T+1,h),E=this._addTriangle(A,c,e,m,-1,M+1),_=this._addTriangle(c,i,e,l,T+2,E+1);this._legalize(T),this._legalize(M),this._legalize(E),this._legalize(_)}_queuePush(e,r,n){let o=this._queue.length;this._queueIndices[e]=o,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(o)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let o=this._pending.indexOf(e);if(o!==-1)this._pending[o]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],o=this._queue[r];this._queue[e]=o,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[o]=e;let s=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=s}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let o=2*n+1;if(o>=r||o<0)break;let s=o+1,i=o;if(s<r&&this._queueLess(s,o)&&(i=s),!this._queueLess(i,n))break;this._queueSwap(n,i),n=i}return n>e}};function _r(t,e,r,n,o,s){return(r-o)*(e-s)-(n-s)*(t-o)}function P3(t,e,r,n,o,s,i,a){let c=t-i,l=e-a,f=r-i,u=n-a,h=o-i,p=s-a,d=c*c+l*l,A=f*f+u*u,m=h*h+p*p;return c*(u*m-A*p)-l*(f*m-A*h)+d*(f*p-u*h)<0}function O0(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:o}=e,{data:s,width:i,height:a}=t,c,l;switch(e.tesselator){case"martini":c=Pi(s,i,a,o,e.tesselator),l=P0(r,i,c);break;case"delatin":c=Pi(s,i,a,o,e.tesselator),l=N0(r,i,a,c);break;default:i===a&&!(a&i-1)?(c=Pi(s,i,a,o,"martini"),l=P0(r,i,c)):(c=Pi(s,i,a,o,"delatin"),l=N0(r,i,a,c));break}let{vertices:f}=l,{triangles:u}=l,h=N3(f,c,i,a,n),p=xr(h);if(e.skirtHeight){let{attributes:d,triangles:A}=Fi(h,u,e.skirtHeight);h=d,u=A}return{loaderData:{header:{}},header:{vertexCount:u.length,boundingBox:p},mode:4,indices:{value:Uint32Array.from(u),size:1},attributes:h}}function P0(t,e,r){let n=e+1,s=new So(n).createTile(r),{vertices:i,triangles:a}=s.getMesh(t);return{vertices:i,triangles:a}}function N0(t,e,r,n){let o=new _o(n,e+1,r+1);o.run(t);let{coords:s,triangles:i}=o;return{vertices:s,triangles:i}}function Pi(t,e,r,n,o){let{rScaler:s,bScaler:i,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let f=0,u=0;u<r;u++)for(let h=0;h<e;h++,f++){let p=f*4,d=t[p+0],A=t[p+1],m=t[p+2];l[f+u]=d*s+A*a+m*i+c}if(o==="martini"){for(let f=(e+1)*e,u=0;u<e;u++,f++)l[f]=l[f-e-1];for(let f=r,u=0;u<r+1;u++,f+=r+1)l[f]=l[f-1]}return l}function N3(t,e,r,n,o){let s=r+1,i=t.length/2,a=new Float32Array(i*3),c=new Float32Array(i*2),[l,f,u,h]=o||[0,0,r,n],p=(u-l)/r,d=(h-f)/n;for(let A=0;A<i;A++){let m=t[A*2],x=t[A*2+1],T=x*s+m;a[3*A+0]=m*p+l,a[3*A+1]=-x*d+h,a[3*A+2]=e[T],c[2*A+0]=m/r,c[2*A+1]=x/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Ni="4.4.1";var Oi={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:Ni,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var U0={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Ni,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var O3={...Oi,parse:U3};async function U3(t,e,r){let n={...e,core:{...e?.core,mimeType:"application/x.image"},image:{...e?.image,type:"data"}},o=await Oe(t,[],n,r),s={...O3.options.terrain,...e?.terrain};return O0(o,s)}var Rk={...U0,parseSync:(t,e)=>af(t,e?.["quantized-mesh"]),parse:async(t,e)=>af(t,e?.["quantized-mesh"])};var D0=[1],D3={...pr.defaultProps,elevationData:Gt,texture:{...Gt,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Oi]};function G0(t){return Array.isArray(t)?t.join(";"):t||""}var Co=class extends Ui.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:s}=e,i=s&&(Array.isArray(s)||G3(s));this.setState({isTiled:i})}let o=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&o){let s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&Ui.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:o,signal:s}){if(!e)return null;let i=this.getLoadOptions();i={...i,terrain:{skirtHeight:this.state.isTiled?o*2:0,...i?.terrain,bounds:r,meshMaxError:o,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:i,signal:s})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:o,elevationDecoder:s,meshMaxError:i}=this.props,{viewport:a}=this.context,c=ft(r,e),l=o&&ft(o,e),{signal:f}=e,u=[0,0],h=[0,0];if(a.isGeospatial){let m=e.bbox;u=a.projectFlat([m.west,m.south]),h=a.projectFlat([m.east,m.north])}else{let m=e.bbox;u=[m.left,m.bottom],h=[m.right,m.top]}let p=[u[0],u[1],h[0],h[1]],d=this.loadTerrain({elevationData:c,bounds:p,elevationDecoder:s,meshMaxError:i,signal:f}),A=l?n(l,{propName:"texture",layer:this,loaders:[],signal:f}).catch(m=>null):Promise.resolve(null);return Promise.all([d,A])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",lf.SimpleMeshLayer),{color:n,wireframe:o,material:s}=this.props,{data:i}=e;if(!i)return null;let[a,c]=i;return new r(e,{data:D0,mesh:a,texture:c,_instanced:!1,coordinateSystem:V0.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:o,material:s})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(i=>i.content).filter(Boolean).map(i=>i[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let o=Math.min(...n.map(i=>i[0])),s=Math.max(...n.map(i=>i[1]));(!r||o<r[0]||s>r[1])&&this.setState({zRange:[o,s]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:o,wireframe:s,meshMaxError:i,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:A,maxCacheSize:m,maxCacheByteSize:x,refinementStrategy:T}=this.props;if(this.state.isTiled)return new pr(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:G0(n),texture:G0(o),meshMaxError:i,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:A,maxCacheSize:m,maxCacheByteSize:x,refinementStrategy:T});if(!n)return null;let M=this.getSubLayerClass("mesh",lf.SimpleMeshLayer);return new M(this.getSubLayerProps({id:"mesh"}),{data:D0,mesh:this.state.terrain,texture:o,_instanced:!1,getPosition:E=>[0,0,0],getColor:e,material:r,wireframe:s})}};Co.defaultProps=D3;Co.layerName="TerrainLayer";var H0=Co,G3=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var Xi=U(Ke(),1),Cf=U(Xe(),1),T1=U(k0(),1);function q0(t,e,r){switch(t.type){case"Point":return H3(t,e,r);case"LineString":return V3(t,e,r);case"Polygon":return j0(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function j0(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.polygonIndices.value.filter(c=>c>=e&&c<=r),s=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(o.length>2)){let c=[];for(let l=0;l<s.length-1;l++){let f=s[l],u=s[l+1],h=Di(n,f,u);c.push(h)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<o.length-1;c++){let l=o[c],f=o[c+1],u=j0(t,l,f).coordinates;a.push(u)}return{type:"MultiPolygon",coordinates:a}}function V3(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(o.length>2))return{type:"LineString",coordinates:Di(n,o[0],o[1])};let i=[];for(let a=0;a<o.length-1;a++){let c=Di(n,o[a],o[a+1]);i.push(c)}return{type:"MultiLineString",coordinates:i}}function H3(t,e,r){let{positions:n}=t,o=Di(n,e,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function Di(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let o=e;o<r;o++){let s=Array();for(let i=o*t.size;i<(o+1)*t.size;i++)s.push(Number(t.value[i]));n.push(s)}return n}var Bo={x:0,y:1,z:2};function Cr(t,e={}){let{start:r=0,end:n=t.length,plane:o="xy"}=e,s=e.size||2,i=0,a=Bo[o[0]],c=Bo[o[1]];for(let l=r,f=n-s;l<n;l+=s)i+=(t[l+a]-t[f+a])*(t[l+c]+t[f+c]),f=l;return i/2}function uf(t,e,r=2,n,o="xy"){let s=e&&e.length,i=s?e[0]*r:t.length,a=W0(t,0,i,r,!0,n&&n[0],o),c=[];if(!a||a.next===a.prev)return c;let l,f,u,h,p,d,A;if(s&&(a=X3(t,e,a,r,n,o)),t.length>80*r){h=f=t[0],p=u=t[1];for(let m=r;m<i;m+=r)d=t[m],A=t[m+1],d<h&&(h=d),A<p&&(p=A),d>f&&(f=d),A>u&&(u=A);l=Math.max(f-h,u-p),l=l!==0?32767/l:0}return Io(a,c,r,h,p,l,0),c}function W0(t,e,r,n,o,s,i){let a,c;s===void 0&&(s=Cr(t,{start:e,end:r,size:n,plane:i}));let l=Bo[i[0]],f=Bo[i[1]];if(o===s<0)for(a=e;a<r;a+=n)c=J0(a,t[a+l],t[a+f],c);else for(a=r-n;a>=e;a-=n)c=J0(a,t[a+l],t[a+f],c);return c&&Hi(c,c.next)&&(vo(c),c=c.next),c}function Br(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Hi(r,r.next)||ne(r.prev,r,r.next)===0)){if(vo(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function Io(t,e,r,n,o,s,i){if(!t)return;!i&&s&&$3(t,n,o,s);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?j3(t,n,o,s):q3(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),vo(t),t=l.next,a=l.next;continue}if(t=l,t===a){i?i===1?(t=J3(Br(t),e,r),Io(t,e,r,n,o,s,2)):i===2&&W3(t,e,r,n,o,s):Io(Br(t),e,r,n,o,s,1);break}}}function q3(t){let e=t.prev,r=t,n=t.next;if(ne(e,r,n)>=0)return!1;let o=e.x,s=r.x,i=n.x,a=e.y,c=r.y,l=n.y,f=o<s?o<i?o:i:s<i?s:i,u=a<c?a<l?a:l:c<l?c:l,h=o>s?o>i?o:i:s>i?s:i,p=a>c?a>l?a:l:c>l?c:l,d=n.next;for(;d!==e;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&dn(o,a,s,c,i,l,d.x,d.y)&&ne(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function j3(t,e,r,n){let o=t.prev,s=t,i=t.next;if(ne(o,s,i)>=0)return!1;let a=o.x,c=s.x,l=i.x,f=o.y,u=s.y,h=i.y,p=a<c?a<l?a:l:c<l?c:l,d=f<u?f<h?f:h:u<h?u:h,A=a>c?a>l?a:l:c>l?c:l,m=f>u?f>h?f:h:u>h?u:h,x=ff(p,d,e,r,n),T=ff(A,m,e,r,n),M=t.prevZ,E=t.nextZ;for(;M&&M.z>=x&&E&&E.z<=T;){if(M.x>=p&&M.x<=A&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&dn(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0||(M=M.prevZ,E.x>=p&&E.x<=A&&E.y>=d&&E.y<=m&&E!==o&&E!==i&&dn(a,f,c,u,l,h,E.x,E.y)&&ne(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;M&&M.z>=x;){if(M.x>=p&&M.x<=A&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&dn(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0)return!1;M=M.prevZ}for(;E&&E.z<=T;){if(E.x>=p&&E.x<=A&&E.y>=d&&E.y<=m&&E!==o&&E!==i&&dn(a,f,c,u,l,h,E.x,E.y)&&ne(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function J3(t,e,r){let n=t;do{let o=n.prev,s=n.next.next;!Hi(o,s)&&X0(o,n,n.next,s)&&Ro(o,s)&&Ro(s,o)&&(e.push(o.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),vo(n),vo(n.next),n=t=s),n=n.next}while(n!==t);return Br(n)}function W3(t,e,r,n,o,s){let i=t;do{let a=i.next.next;for(;a!==i.prev;){if(i.i!==a.i&&rR(i,a)){let c=K0(i,a);i=Br(i,i.next),c=Br(c,c.next),Io(i,e,r,n,o,s,0),Io(c,e,r,n,o,s,0);return}a=a.next}i=i.next}while(i!==t)}function X3(t,e,r,n,o,s){let i=[],a,c,l,f,u;for(a=0,c=e.length;a<c;a++)l=e[a]*n,f=a<c-1?e[a+1]*n:t.length,u=W0(t,l,f,n,!1,o&&o[a+1],s),u===u.next&&(u.steiner=!0),i.push(tR(u));for(i.sort(K3),a=0;a<i.length;a++)r=Y3(i[a],r);return r}function K3(t,e){return t.x-e.x}function Y3(t,e){let r=Q3(t,e);if(!r)return e;let n=K0(r,t);return Br(n,n.next),Br(r,r.next)}function Q3(t,e){let r=e,n=t.x,o=t.y,s=-1/0,i;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>s&&(s=h,i=r.x<r.next.x?r:r.next,h===n))return i}r=r.next}while(r!==e);if(!i)return null;let a=i,c=i.x,l=i.y,f=1/0,u;r=i;do n>=r.x&&r.x>=c&&n!==r.x&&dn(o<l?n:s,o,c,l,o<l?s:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),Ro(r,t)&&(u<f||u===f&&(r.x>i.x||r.x===i.x&&Z3(i,r)))&&(i=r,f=u)),r=r.next;while(r!==a);return i}function Z3(t,e){return ne(t.prev,t,e.prev)<0&&ne(e.next,t,t.next)<0}function $3(t,e,r,n){let o=t;do o.z===0&&(o.z=ff(o.x,o.y,e,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,eR(o)}function eR(t){let e,r,n=1,o,s,i,a,c,l;do{for(s=t,t=null,l=null,o=0;s;){for(o++,a=s,i=0,r=0;r<n&&(i++,a=a.nextZ,!!a);r++);for(c=n;i>0||c>0&&a;)i!==0&&(c===0||!a||s.z<=a.z)?(e=s,s=s.nextZ,i--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=a}l.nextZ=null,n*=2}while(o>1);return t}function ff(t,e,r,n,o){return t=(t-r)*o|0,e=(e-n)*o|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function tR(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function dn(t,e,r,n,o,s,i,a){return(o-i)*(e-a)>=(t-i)*(s-a)&&(t-i)*(n-a)>=(r-i)*(e-a)&&(r-i)*(s-a)>=(o-i)*(n-a)}function rR(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!nR(t,e)&&(Ro(t,e)&&Ro(e,t)&&oR(t,e)&&(ne(t.prev,t,e.prev)||ne(t,e.prev,e))||Hi(t,e)&&ne(t.prev,t,t.next)>0&&ne(e.prev,e,e.next)>0)}function ne(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Hi(t,e){return t.x===e.x&&t.y===e.y}function X0(t,e,r,n){let o=Vi(ne(t,e,r)),s=Vi(ne(t,e,n)),i=Vi(ne(r,n,t)),a=Vi(ne(r,n,e));return!!(o!==s&&i!==a||o===0&&Gi(t,r,e)||s===0&&Gi(t,n,e)||i===0&&Gi(r,t,n)||a===0&&Gi(r,e,n))}function Gi(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function Vi(t){return t>0?1:t<0?-1:0}function nR(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&X0(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Ro(t,e){return ne(t.prev,t,t.next)<0?ne(t,e,t.next)>=0&&ne(t,t.prev,e)>=0:ne(t,e,t.prev)<0||ne(t,t.next,e)<0}function oR(t,e){let r=t,n=!1,o=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&o<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function K0(t,e){let r=new wo(t.i,t.x,t.y),n=new wo(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=o,o.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function J0(t,e,r,n){let o=new wo(t,e,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function vo(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var wo=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function zi(t,e,r){let n=lR(t),o=Object.keys(n).filter(s=>n[s]!==Array);return fR(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function lR(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let o=r.properties[n];e[n]=gR(o,e[n])}return e}function fR(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:s,linePathsCount:i,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=e,{numericPropKeys:d=[],PositionDataType:A=Float32Array,triangulate:m=!0}=r,x=t[0]&&"id"in t[0],T=t.length>65535?Uint32Array:Uint16Array,M={type:"Point",positions:new A(n*p),globalFeatureIds:new T(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},E={type:"LineString",pathIndices:s>65535?new Uint32Array(i+1):new Uint16Array(i+1),positions:new A(s*p),globalFeatureIds:new T(s),featureIds:a>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},_={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new A(c*p),globalFeatureIds:new T(c),featureIds:u>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};m&&(_.triangles=[]);for(let v of[M,E,_])for(let S of d){let y=h[S];v.numericProps[S]=new y(v.positions.length/p)}E.pathIndices[i]=s,_.polygonIndices[l]=c,_.primitivePolygonIndices[f]=c;let C={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let v of t){let S=v.geometry,y=v.properties||{};switch(S.type){case"Point":uR(S,M,C,p,y),M.properties.push(pf(y,d)),x&&M.fields.push({id:v.id}),C.pointFeature++;break;case"LineString":hR(S,E,C,p,y),E.properties.push(pf(y,d)),x&&E.fields.push({id:v.id}),C.lineFeature++;break;case"Polygon":pR(S,_,C,p,y),_.properties.push(pf(y,d)),x&&_.fields.push({id:v.id}),C.polygonFeature++;break;default:throw new Error("Invalid geometry type")}C.feature++}return mR(M,E,_,p)}function uR(t,e,r,n,o){e.positions.set(t.data,r.pointPosition*n);let s=t.data.length/n;df(e,o,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function hR(t,e,r,n,o){e.positions.set(t.data,r.linePosition*n);let s=t.data.length/n;df(e,o,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=t.indices[i],l=i===a-1?t.data.length:t.indices[i+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function pR(t,e,r,n,o){e.positions.set(t.data,r.polygonPosition*n);let s=t.data.length/n;df(e,o,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[i],f=t.indices[i],u=t.indices[i+1];for(let p=0,d=f.length;p<d;++p){let A=f[p],m=p===d-1?u===void 0?t.data.length:u[0]:f[p+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(m-A)/n}let h=r.polygonPosition;dR(e,l,f,{startPosition:c,endPosition:h,coordLength:n})}}function dR(t,e,r,{startPosition:n,endPosition:o,coordLength:s}){if(!t.triangles)return;let i=n*s,a=o*s,c=t.positions.subarray(i,a),l=r[0],f=r.slice(1).map(h=>(h-l)/s),u=uf(c,f,s,e);for(let h=0,p=u.length;h<p;++h)t.triangles.push(n+u[h])}function hf(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function mR(t,e,r,n){let o={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:hf(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:hf(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:hf(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function df(t,e,r,n){for(let o in t.numericProps)if(o in e){let s=e[o];t.numericProps[o].fill(s,r,r+n)}}function pf(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function gR(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Lo(t,e){let r=e?.globalFeatureId;return r!==void 0?AR(t,r):xR(t,e?.type)}function AR(t,e){let r=Z0(t);for(let n of r){let o=0,s=n.featureIds.value[0];for(let i=0;i<n.featureIds.value.length;i++){let a=n.featureIds.value[i];if(a!==s){if(e===n.globalFeatureIds.value[o])return ki(n,o,i);o=i,s=a}}if(e===n.globalFeatureIds.value[o])return ki(n,o,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function xR(t,e){let r=Z0(t,e);return bR(r)}function Z0(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function bR(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,o=r.featureIds.value[0];for(let s=0;s<r.featureIds.value.length;s++){let i=r.featureIds.value[s];i!==o&&(e.push(ki(r,n,s)),n=s,o=i)}e.push(ki(r,n,r.featureIds.value.length))}return e}function ki(t,e,r){let n=q0(t,e,r),o=TR(t,e,r),s=yR(t,e,r);return{type:"Feature",geometry:n,properties:o,...s}}function yR(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function TR(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let o in t.numericProps)n[o]=t.numericProps[o].value[e];return n}var yf=U(s1(),1);function GR(t){let e=0;for(let r=0,n=t.length-1,o,s;r<t.length;n=r++)o=t[r],s=t[n],e+=(s[0]-o[0])*(o[1]+s[1]);return e}function Af(t,e){if(Array.isArray(t[0])){for(let n of t)Af(n,e);return}let r=t;r[0]/=e,r[1]/=e}function i1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function xf(t,e,r){if(typeof t[0][0]!="number"){for(let i of t)xf(i,e,r);return}let n=r*Math.pow(2,e.z),o=r*e.x,s=r*e.y;for(let i=0;i<t.length;i++){let a=t[i];a[0]=(a[0]+o)*360/n-180;let c=180-(a[1]+s)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(c*Math.PI/180))-90}}function a1(t,e,r){let{x:n,y:o,z:s}=e,i=r*Math.pow(2,s),a=r*n,c=r*o;for(let l=0,f=t.length;l<f;l+=2){t[l]=(t[l]+a)*360/i-180;let u=180-(t[l+1]+c)*360/i;t[l+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function c1(t){let e=t.length;if(e<=1)return[t];let r=[],n,o;for(let s=0;s<e;s++){let i=GR(t[s]);i!==0&&(o===void 0&&(o=i<0),o===i<0?(n&&r.push(n),n=[t[s]]):n&&n.push(t[s]))}return n&&r.push(n),r}function l1(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[Cr(t.data)]],indices:[t.indices]};let n=[],o=[],s=[],i=[],a,c=0;for(let l,f=0,u;f<e;f++){u=t.indices[f]-c,l=t.indices[f+1]-c||t.data.length;let h=t.data.slice(u,l),p=Cr(h);if(p===0){let d=t.data.slice(0,u),A=t.data.slice(l);t.data=d.concat(A),c+=l-u;continue}a===void 0&&(a=p<0),a===p<0?(i.length&&(n.push(s),o.push(i)),i=[u],s=[p]):(s.push(p),i.push(u))}return s&&n.push(s),i.length&&o.push(i),{type:r,areas:n,indices:o,data:t.data}}var Ir=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(e,r,n,o,s,i){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=o,this._values=s,this._geometryInfo=i,e.readFields(VR,this,r)}toGeoJSONFeature(e,r){let n=this.loadGeometry();switch(e){case"wgs84":return f1(this,n,o=>xf(o,r,this.extent));default:return f1(this,n,Af)}}toBinaryFeature(e,r){let n=this.loadFlatGeometry();switch(e){case"wgs84":return this._toBinaryCoordinates(n,o=>a1(o,r,this.extent));default:return this._toBinaryCoordinates(n,i1)}}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=1/0,c=-1/0,l=1/0,f=-1/0;for(;e.pos<r;){if(o<=0){let u=e.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)s+=e.readSVarint(),i+=e.readSVarint(),s<a&&(a=s),s>c&&(c=s),i<l&&(l=i),i>f&&(f=i);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,f]}_toBinaryCoordinates(e,r){let n;r(e.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=e.indices.length,n={type:"Point",...e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=e.indices.length,this._geometryInfo.linePositionsCount+=e.data.length/o,n={type:"LineString",...e};break;case 3:n=l1(e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let i of n.indices)this._geometryInfo.polygonRingsCount+=i.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let s={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(s.id=this.id),s}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=[],c;for(;e.pos<r;){if(o<=0){let l=e.readVarint();n=l&7,o=l>>3}switch(o--,n){case 1:case 2:s+=e.readSVarint(),i+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([s,i]);break;case 7:c&&c.push(c[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return c&&a.push(c),a}loadFlatGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o,s=0,i=0,a=0,c=0,l=[],f=[];for(;e.pos<r;)if(s<=0&&(o=e.readVarint(),n=o&7,s=o>>3),s--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),n===1&&l.push(c),f.push(i,a),c+=2;else if(n===7){if(c>0){let u=l[l.length-1];f.push(f[u],f[u+1]),c+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:l}}};Jt(Ir,"types",["Unknown","Point","LineString","Polygon"]);function f1(t,e,r){let n=Ir.types[t.type],o,s,i;switch(t.type){case 1:let c=[];for(o=0;o<e.length;o++)c[o]=e[o][0];i=c,r(i,t.extent);break;case 2:for(i=e,o=0;o<i.length;o++)r(i[o],t.extent);break;case 3:for(i=c1(e),o=0;o<i.length;o++)for(s=0;s<i[o].length;s++)r(i[o][s],t.extent);break;default:throw new Error("illegal vector tile type")}i.length===1?i=i[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:i},properties:t.properties};return t.id!==null&&(a.properties||={},a.properties.id=t.id),a}function VR(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?HR(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function HR(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],o=e._values[t.readVarint()];e.properties[n]=o}}var Ji=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(zR,this,r),this.length=this._features.length}getGeoJSONFeature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new Ir(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new Ir(this._pbf,n,this.extent,this._keys,this._values,r)}};function zR(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(kR(r)))}function kR(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var Fo=class{layers;constructor(e,r){this.layers=e.readFields(qR,{},r)}};function qR(t,e,r){if(t===3&&r){let n=new Ji(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Tf(t,e){let r=JR(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:bf(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:u1(t,r)};case"geojson":return u1(t,r);case"binary-geometry":return bf(t,r);case"binary":return bf(t,r);default:throw new Error(n||"undefined shape")}}function bf(t,e){let[r,n]=jR(t,e),o=zi(r,n);return o.byteLength=t.byteLength,o}function jR(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let o=new Fo(new yf.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(o.layers)).forEach(i=>{let a=o.layers[i];if(a)for(let c=0;c<a.length;c++){let l=a.getBinaryFeature(c,n),f=XR(l,e,i);r.push(f)}}),[r,n]}function u1(t,e){if(t.byteLength<=0)return[];let r=[],n=new Fo(new yf.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(s=>{let i=n.layers[s];if(i)for(let a=0;a<i.length;a++){let c=i.getGeoJSONFeature(a),l=WR(c,e,s);r.push(l)}}),r}function JR(t){if(!t?.mvt)throw new Error("mvt options required");if(t.mvt?.coordinates==="wgs84"&&!t.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.gis&&ac.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function WR(t,e,r){let n=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=r),n}function XR(t,e,r){let n=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}var h1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var KR="4.4.1",Wi={...h1,dataType:null,batchType:null,version:KR,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},YR={...Wi,parse:async(t,e)=>Tf(t,e),parseSync:Tf,binary:!0};var QR={Point:p1,MultiPoint:ZR,LineString:d1,MultiLineString:$R,Polygon:m1,MultiPolygon:ev};function p1([t,e],[r,n],o){let s=Ct(r[0],n[0],t),i=Ct(r[1],n[1],e);return o.unprojectFlat([s,i])}function Mf(t,e,r){return t.map(n=>p1(n,e,r))}function ZR(t,e,r){return Mf(t,e,r)}function d1(t,e,r){return Mf(t,e,r)}function $R(t,e,r){return t.map(n=>d1(n,e,r))}function m1(t,e,r){return t.map(n=>Mf(n,e,r))}function ev(t,e,r){return t.map(n=>m1(n,e,r))}function g1(t,e,r){let n=r.projectFlat([e.west,e.north]),o=r.projectFlat([e.east,e.south]),s=[n,o];return{...t,coordinates:QR[t.type](t.coordinates,s,r)}}var tv=["points","lines","polygons"];function Ef(t,e,r,n){for(let o of tv){let s=t[o]&&rv(t[o],e,r,n);if(s>=0)return s}return-1}function rv(t,e,r,n){let o=t.featureIds.value;if(!o.length)return-1;let s=0,i=o[o.length-1]+1;if(n){let c=nv(t,n);if(c)s=c[0],i=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,f)=>l===r&&o[f]>=s&&o[f]<i);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=A1(t.properties,c=>c[e]===r,s,i):t.fields&&(a=A1(t.fields,c=>c.id===r,s,i));return a>=0?ov(t,a):-1}function nv(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let o=0;o<n.length;o++){let{layerName:s}=n[o];s&&(r[s]?r[s][1]=o:r[s]=[o,o])}t.__layers=r}return t.__layers[e]}function ov(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,o=t.globalFeatureIds.value;for(let s=0;s<n.length;s++)r[n[s]]=o[s];t.__ids=r}return t.__ids[e]}function A1(t,e,r,n){for(let o=r;o<n;o++)if(e(t[o],o))return o;return-1}var Sf=512,sv={...Cf.GeoJsonLayer.defaultProps,data:Gt,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Wi],binary:!0},Po=class extends pr{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:o}){o.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=e;s!==r.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Nc(e)){let{onDataLoad:n,fetch:o}=this.props;this.setState({data:null,tileJSON:null});try{r=await o(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:o}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(o)||r.maxzoom<o)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:o,signal:s}=e,i=ft(r,e);if(!i)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,core:{...a?.core,mimeType:"application/x-protobuf"},mvt:{...a?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:o}},c(i,{propName:"data",layer:this,loadOptions:a,signal:s})}renderSubLayers(e){let{x:r,y:n,z:o}=e.tile.index,s=Math.pow(2,o),i=Sf/s,a=-i,c=Sf*r/s,l=Sf*(1-n/s),f=new N().scale([i,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[c,l,0],e.coordinateSystem=Xi.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new T1.ClipExtension]);let u=super.renderSubLayers(e);return this.state.binary&&!(u instanceof Cf.GeoJsonLayer)&&Xi.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),u}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:o}=this.state,s=e.object,i=null,a=null;s&&(i=_f(s,r),a=x1(s));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==i||o!==a)&&this.setState({highlightColor:c,hoveredFeatureId:i,hoveredFeatureLayerName:a})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=Lo(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=y1(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:o}=this.state,{uniqueIdProperty:s,highlightedFeatureId:i}=this.props,a=e.content,c=b1(i);if(!(b1(r)||c))return-1;let f=c?i:r;return Array.isArray(a)?a.findIndex(u=>{let h=_f(u,s)===f,p=c||x1(u)===n;return h&&p}):a&&o?Ef(a,s,f,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,o=n.width,s=n.height,i=n.x,a=n.y,c=[this.id];return r.pickObjects({x:i,y:a,width:o,height:s,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,o=[];for(let s of r){let i=_f(s.object,this.props.uniqueIdProperty);i===void 0?o.push(s.object):n.has(i)||(n.add(i),o.push(s.object))}return o}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:o}=n;if(n._contentWGS84===void 0&&Oc(o)){let s=this.state.binary?Lo(n.content):n.content;n._contentWGS84=s.map(i=>y1(i,o,this.context.viewport))}return n._contentWGS84}})})}};Po.layerName="MVTLayer";Po.defaultProps=sv;var M1=Po;function _f(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function x1(t){return t.properties?.layerName||null}function b1(t){return t!=null&&t!==""}function y1(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>g1(t.geometry,e,r).coordinates}),n}var E1="0123456789bcdefghjkmnpqrstuvwxyz",S1={};for(let t=0;t<E1.length;t++)S1[E1.charAt(t)]=t;var iv=-90,av=90,cv=-180,lv=180;function fv(t){let e=!0,r=av,n=iv,o=lv,s=cv,i,a=0;for(let c=0,l=t.length;c<l;c++){let f=t[c].toLowerCase();a=S1[f];for(let u=4;u>=0;u--){let h=a>>u&1;e?(i=(o+s)/2,h===1?s=i:o=i):(i=(r+n)/2,h===1?n=i:r=i),e=!e}}return[n,s,r,o]}function _1(t){let[e,r,n,o]=fv(t);return[o,n,o,e,r,e,r,n,o,n]}var uv={getGeohash:{type:"accessor",value:t=>t.geohash}},No=class extends De{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>_1(r(n,o))}}};No.layerName="GeohashLayer";No.defaultProps=uv;var C1=No;return F1(Oo);})();
|
|
2582
|
+
`;function SC(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var EC={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},ho=class extends wm.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(tl,Bm),{...e,vs:Im,fs:vm}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props,{model:n}=this.state;if(!n)return;let o={pickFeatureIds:Boolean(r)},s={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:o}),super.draw(e)}getModel(e){let{id:r}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});let o=this.getShaders();return SC(e.attributes),new Rm.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...o.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,o=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:o});let{pbr_baseColorSampler:s}=o.bindings,{emptyTexture:i}=this.state,a={sampler:s||i,hasTexture:Boolean(s)},{camera:c,...l}={...o.bindings,...o.uniforms};r.shaderInputs.setProps({simpleMesh:a,pbrMaterial:l})}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return $c(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){let r=this.props.featureIds,n=new Uint8ClampedArray(r.length*e.size),o=[];for(let s=0;s<r.length;s++)this.encodePickingColor(r[s],o),n[s*3]=o[0],n[s*3+1]=o[1],n[s*3+2]=o[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}};ho.layerName="MeshLayer";ho.defaultProps=EC;var Lm=ho;var V0=U(er(),1);var yt=6356752314245179e-9,_C={radii:[6378137,6378137,yt],radiiSquared:[6378137*6378137,6378137*6378137,yt*yt],oneOverRadii:[1/6378137,1/6378137,1/yt],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(yt*yt)],maximumRadius:Math.max(6378137,6378137,yt),centerToleranceSquared:.1};function ti(t){return t}var o4=new x;function CC(t,e=[],r=ti){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function Fm(t,e=[]){return CC(t,e,Q._cartographicRadians?ti:ba)}function BC(t,e,r=ti){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function Pm(t,e){return BC(t,e,Q._cartographicRadians?ti:Ta)}var Nm=1e-14,IC=new x,Om={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},rl={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},po={east:new x,north:new x,up:new x,west:new x,south:new x,down:new x},vC=new x,RC=new x,wC=new x;function nl(t,e,r,n,o,s){let i=Om[e]&&Om[e][r];he(i&&(!n||n===i));let a,c,l,f=IC.copy(o);if(_e(f.x,0,Nm)&&_e(f.y,0,Nm)){let h=Math.sign(f.z);a=vC.fromArray(rl[e]),e!=="east"&&e!=="west"&&a.scale(h),c=RC.fromArray(rl[r]),r!=="east"&&r!=="west"&&c.scale(h),l=wC.fromArray(rl[n]),n!=="east"&&n!=="west"&&l.scale(h)}else{let{up:h,east:p,north:d}=po;p.set(-f.y,f.x,0).normalize(),t.geodeticSurfaceNormal(f,h),d.copy(h).cross(p);let{down:g,west:m,south:y}=po;g.copy(h).scale(-1),m.copy(p).scale(-1),y.copy(d).scale(-1),a=po[e],c=po[r],l=po[n]}return s[0]=a.x,s[1]=a.y,s[2]=a.z,s[3]=0,s[4]=c.x,s[5]=c.y,s[6]=c.z,s[7]=0,s[8]=l.x,s[9]=l.y,s[10]=l.z,s[11]=0,s[12]=f.x,s[13]=f.y,s[14]=f.z,s[15]=1,s}var Zr=new x,LC=new x,FC=new x;function Um(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:o,centerToleranceSquared:s}=e;Zr.from(t);let i=Zr.x,a=Zr.y,c=Zr.z,l=n.x,f=n.y,u=n.z,h=i*i*l*l,p=a*a*f*f,d=c*c*u*u,g=h+p+d,m=Math.sqrt(1/g);if(!Number.isFinite(m))return;let y=LC;if(y.copy(t).scale(m),g<s)return y.to(r);let b=o.x,M=o.y,S=o.z,C=FC;C.set(y.x*b*2,y.y*M*2,y.z*S*2);let _=(1-m)*Zr.len()/(.5*C.len()),v=0,E,T,A,B;do{_-=v,E=1/(1+_*b),T=1/(1+_*M),A=1/(1+_*S);let L=E*E,F=T*T,w=A*A,D=L*E,W=F*T,z=w*A;B=h*L+p*F+d*w-1;let Y=-2*(h*D*b+p*W*M+d*z*S);v=B/Y}while(Math.abs(B)>Ge.EPSILON12);return Zr.scale([E,T,A]).to(r)}var ri=new x,Dm=new x,OC=new x,et=new x,UC=new x,ni=new x,G=class{constructor(e=0,r=0,n=0){this.centerToleranceSquared=Ge.EPSILON1,he(e>=0),he(r>=0),he(n>=0),this.radii=new x(e,r,n),this.radiiSquared=new x(e*e,r*r,n*n),this.radiiToTheFourth=new x(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new x(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new x(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=Dm,o=OC,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),o.copy(this.radiiSquared).scale(n);let i=Math.sqrt(n.dot(o));return o.scale(1/i),n.scale(s),o.add(n),o.to(r)}cartesianToCartographic(e,r=[0,0,0]){ni.from(e);let n=this.scaleToGeodeticSurface(ni,et);if(!n)return;let o=this.geodeticSurfaceNormal(n,Dm),s=UC;s.copy(ni).subtract(n);let i=Math.atan2(o.y,o.x),a=Math.asin(o.z),c=Math.sign($t.dot(s,ni))*$t.length(s);return Pm([i,a,c],r)}eastNorthUpToFixedFrame(e,r=new N){return nl(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,o,s=new N){return nl(this,e,r,n,o,s)}geocentricSurfaceNormal(e,r=[0,0,0]){return ri.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=Fm(e),o=n[0],s=n[1],i=Math.cos(s);return ri.set(i*Math.cos(o),i*Math.sin(o),Math.sin(s)).normalize(),ri.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ri.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return Um(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){et.from(e);let n=et.x,o=et.y,s=et.z,i=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*i.x+o*o*i.y+s*s*i.z);return et.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return et.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return et.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){he(_e(this.radii.x,this.radii.y,Ge.EPSILON15)),he(this.radii.z>0),et.from(e);let o=et.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(o)>=this.radii.z-r))return et.set(0,0,o).to(n)}};G.WGS84=new G(6378137,6378137,yt);var oi=class{item;previous;next;constructor(e,r,n){this.item=e,this.previous=r,this.next=n}};var si=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new oi(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var ii=class{_list;_sentinel;_trimTiles;constructor(){this._list=new si,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let o=r._cacheNode;o&&(this._list.remove(o),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let o=this._list,s=e.maximumMemoryUsage*1024*1024,i=this._sentinel,a=o.head;for(;a!==i&&(e.gpuMemoryUsageInBytes>s||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function Gm(t,e){H(t),H(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:o,boundingVolume:{center:s}}=t,i=new N(o);switch(r&&i.translate(r),n){case"Z":break;case"Y":let h=new N().rotateX(Math.PI/2);i=i.multiplyRight(h);break;case"X":let p=new N().rotateY(-Math.PI/2);i=i.multiplyRight(p);break;default:break}e.isQuantized&&i.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new x(s);e.cartesianModelMatrix=i,e.cartesianOrigin=a;let c=G.WGS84.cartesianToCartographic(a,new x),f=G.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=f.multiplyRight(i),e.cartographicOrigin=c;let u=GC(e);u&&(e.cartesianModelMatrix=new N(i).multiplyRight(u.matrix),e.cartographicModelMatrix.multiplyRight(u.matrix),u.matrix=N.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var DC=1e6**2;function GC(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,o=e.scenes?.[r]?.nodes?.[0];if(!o?.matrix)return null;let s=o.matrix;return s[12]*s[12]+s[13]*s[13]+s[14]*s[14]<=DC?null:o}var Vm=new x,ol=new x,sl=new ce([new pe,new pe,new pe,new pe,new pe,new pe]);function zm(t,e){let{cameraDirection:r,cameraUp:n,height:o}=t,{metersPerUnit:s}=t.distanceScales,i=ai(t,t.center),a=G.WGS84.eastNorthUpToFixedFrame(i),c=t.unprojectPosition(t.cameraPosition),l=G.WGS84.cartographicToCartesian(c,new x),f=new x(a.transformAsVector(new x(r).scale(s))).normalize(),u=new x(a.transformAsVector(new x(n).scale(s))).normalize();VC(t);let h=t.constructor,{longitude:p,latitude:d,width:g,bearing:m,zoom:y}=t,b=new h({longitude:p,latitude:d,height:o,width:g,bearing:m,zoom:y,pitch:0});return{camera:{position:l,direction:f,up:u},viewport:t,topDownViewport:b,height:o,cullingVolume:sl,frameNumber:e,sseDenominator:1.15}}function km(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:o,latitude:s}=e.viewport;for(let[l,f]of t.entries()){let[u,h]=f.header.mbs,p=Math.abs(o-u),d=Math.abs(s-h),g=Math.sqrt(d*d+p*p);n.push([l,g])}let i=n.sort((l,f)=>l[1]-f[1]),a=[];for(let l=0;l<r;l++)a.push(t[i[l][0]]);let c=[];for(let l=r;l<i.length;l++)c.push(t[i[l][0]]);return[a,c]}function VC(t){let e=t.getFrustumPlanes(),r=Hm(e.near,t.cameraPosition),n=ai(t,r),o=ai(t,t.cameraPosition,ol),s=0;sl.planes[s++].fromPointNormal(n,Vm.copy(n).subtract(o));for(let i in e){if(i==="near")continue;let a=e[i],c=Hm(a,r,ol),l=ai(t,c,ol);sl.planes[s++].fromPointNormal(l,Vm.copy(n).subtract(l))}}function Hm(t,e,r=new x){let n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ai(t,e,r=new x){let n=t.unprojectPosition(e);return G.WGS84.cartographicToCartesian(n,r)}var HC=6378137,zC=6378137,il=6356752314245179e-9,$r=new x;function jm(t,e){if(t instanceof $e){let{halfAxes:r}=t,n=kC(r);return Math.log2(il/(n+e[2]))}else if(t instanceof He){let{radius:r}=t;return Math.log2(il/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,o=Math.log2(HC/r),s=Math.log2(zC/n);return(o+s)/2}return 1}function al(t,e,r){G.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],$r);let n=Math.sqrt(Math.pow($r[0]-r[0],2)+Math.pow($r[1]-r[1],2)+Math.pow($r[2]-r[2],2));return Math.log2(il/(n+e[2]))}function qm(t,e,r){let[n,o,s,i]=t;return al({xmin:n,xmax:s,ymin:o,ymax:i,zmin:0,zmax:0},e,r)}function kC(t){t.getColumn(0,$r);let e=t.getColumn(1),r=t.getColumn(2);return $r.add(e).add(r).len()}var cg=U(er(),1);var Be={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Te;(function(t){t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE"})(Te||(Te={}));var ke;(function(t){t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh"})(ke||(ke={}));var de;(function(t){t.I3S="I3S",t.TILES3D="TILES3D"})(de||(de={}));var bt;(function(t){t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(bt||(bt={}));var Jm={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Ym(t){return t!=null}var Me=new x,ci=new x,jC=new x,qC=new x,mr=new x,Wm=new x,Km=new x,Xm=new x;function li(t,e,r){if(H(t,"3D Tile: boundingVolume must be defined"),t.box)return Zm(t.box,e,r);if(t.region)return WC(t.region);if(t.sphere)return JC(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function Qm(t,e){if(t.box)return KC(e);if(t.region){let[r,n,o,s,i,a]=t.region;return[[Ne(r),Ne(n),i],[Ne(o),Ne(s),a]]}if(t.sphere)return XC(e);throw new Error("Unkown boundingVolume type")}function Zm(t,e,r){let n=new x(t[0],t[1],t[2]);e.transform(n,n);let o=[];if(t.length===10){let l=t.slice(3,6),f=new st;f.fromArray(t,6);let u=new x([1,0,0]),h=new x([0,1,0]),p=new x([0,0,1]);u.transformByQuaternion(f),u.scale(l[0]),h.transformByQuaternion(f),h.scale(l[1]),p.transformByQuaternion(f),p.scale(l[2]),o=[...u.toArray(),...h.toArray(),...p.toArray()]}else o=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let s=e.transformAsVector(o.slice(0,3)),i=e.transformAsVector(o.slice(3,6)),a=e.transformAsVector(o.slice(6,9)),c=new k([s[0],s[1],s[2],i[0],i[1],i[2],a[0],a[1],a[2]]);return Ym(r)?(r.center=n,r.halfAxes=c,r):new $e(n,c)}function JC(t,e,r){let n=new x(t[0],t[1],t[2]);e.transform(n,n);let o=e.getScale(ci),s=Math.max(Math.max(o[0],o[1]),o[2]),i=t[3]*s;return Ym(r)?(r.center=n,r.radius=i,r):new He(n,i)}function WC(t){let[e,r,n,o,s,i]=t,a=G.WGS84.cartographicToCartesian([Ne(e),Ne(o),s],jC),c=G.WGS84.cartographicToCartesian([Ne(n),Ne(r),i],qC),l=new x().addVectors(a,c).multiplyByScalar(.5);return G.WGS84.cartesianToCartographic(l,mr),G.WGS84.cartographicToCartesian([Ne(n),mr[1],mr[2]],Wm),G.WGS84.cartographicToCartesian([mr[0],Ne(o),mr[2]],Km),G.WGS84.cartographicToCartesian([mr[0],mr[1],i],Xm),Zm([...l,...Wm.subtract(l),...Km.subtract(l),...Xm.subtract(l)],new N)}function KC(t){let e=$m(),{halfAxes:r}=t,n=new x(r.getColumn(0)),o=new x(r.getColumn(1)),s=new x(r.getColumn(2));for(let i=0;i<2;i++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)Me.copy(t.center),Me.add(n),Me.add(o),Me.add(s),eg(e,Me),s.negate();o.negate()}n.negate()}return e}function XC(t){let e=$m(),{center:r,radius:n}=t,o=G.WGS84.scaleToGeodeticSurface(r,Me),s;o?s=G.WGS84.geodeticSurfaceNormal(o):s=new x(0,0,1);let i=new x(s[2],-s[1],0);i.len()>0?i.normalize():i=new x(0,1,0);let a=i.clone().cross(s);for(let c of[i,a,s]){ci.copy(c).scale(n);for(let l=0;l<2;l++)Me.copy(r),Me.add(ci),eg(e,Me),ci.negate()}return e}function $m(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function eg(t,e){G.WGS84.cartesianToCartographic(e,Me),t[0][0]=Math.min(t[0][0],Me[0]),t[0][1]=Math.min(t[0][1],Me[1]),t[0][2]=Math.min(t[0][2],Me[2]),t[1][0]=Math.max(t[1][0],Me[0]),t[1][1]=Math.max(t[1][1],Me[1]),t[1][2]=Math.max(t[1][2],Me[2])}var j4=new x,q4=new x,J4=new N,W4=new x,K4=new x,X4=new x;function YC(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function QC(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return YC(e,r)*n}return 0}function tg(t,e,r){let n=t.tileset,o=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,s=r?o:t.lodMetricValue;if(s===0)return 0;let i=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,f=s*a*(l||1)/(i*c);return f-=QC(n,i),f}var cl=new x,rg=new x,Ht=new x,ng=new x,ZC=new x,ll=new N,og=new N;function sg(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*fl(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function fl(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],o=t.header.mbs[0],s=t.header.mbs[2],i=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);G.WGS84.cartographicToCartesian(c,cl),rg.copy(cl).subtract(a).normalize(),G.WGS84.eastNorthUpToFixedFrame(a,ll),og.copy(ll).invert(),Ht.copy(cl).transform(og);let l=Math.sqrt(Ht[0]*Ht[0]+Ht[1]*Ht[1]),f=l*l/Ht[2];ng.copy([Ht[0],Ht[1],f]);let h=ng.transform(ll).subtract(a).normalize(),d=rg.cross(h).normalize().scale(i).add(a),g=G.WGS84.cartesianToCartographic(d),m=r.project([o,n,s]),y=r.project(g);return ZC.copy(m).subtract(y).magnitude()}function ig(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var mo=class{_map=new Map;_array;_length;constructor(e=0){this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return H(e<this._array.length),this._array[e]}set(e,r){H(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){H(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){H(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var $C={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ut=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new mo;_emptyTraversalStack=new mo;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...$C,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let s=n.pop(),i=!1;this.canTraverse(s,r)&&(this.updateChildTiles(s,r),i=this.updateAndPushChildren(s,r,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));let a=s.parent,c=Boolean(!a||a._shouldRefine),l=!i;s.hasRenderContent?s.refine===Te.ADD?(this.loadTile(s,r),this.selectTile(s,r)):s.refine===Te.REPLACE&&(this.loadTile(s,r),l&&this.selectTile(s,r)):(this.emptyTiles[s.id]=s,this.loadTile(s,r),l&&this.selectTile(s,r)),this.touchTile(s,r),s._shouldRefine=i&&c}let o=new Date().getTime();(this.traversalFinished(r)||o-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=o,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let o of n)this.updateTile(o,r)}updateAndPushChildren(e,r,n,o){let{loadSiblings:s,skipLevelOfDetail:i}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Te.REPLACE&&e.hasRenderContent&&!i,l=!1,f=!0;for(let u of a)if(u._selectionDepth=o,u.isVisibleAndInRequestVolume?(n.find(u)&&n.delete(u),n.push(u),l=!0):(c||s)&&(this.loadTile(u,r),this.touchTile(u,r)),c){let h;if(u._inRequestVolume?u.hasRenderContent?h=u.contentAvailable:h=this.executeEmptyTraversal(u,r):h=!1,f=f&&h,!f)return!1}return l||(f=!1),f}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,n=!1){let o=e._screenSpaceError;return n&&(o=e.getScreenSpaceError(r,!0)),o>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let o in this.options.viewportTraversersMap)this.options.viewportTraversersMap[o]===r.viewport.id&&n.push(o);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let o of e.children)o.updateVisibility(r),n=n||o.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,o=this._emptyTraversalStack;for(o.push(e);o.length>0;){let s=o.pop(),i=!s.hasRenderContent&&this.canTraverse(s,r),a=!s.hasRenderContent&&s.children.length===0;if(!i&&!s.contentAvailable&&!a&&(n=!1),this.updateTile(s,r),s.isVisibleAndInRequestVolume||(this.loadTile(s,r),this.touchTile(s,r)),i){let c=s.children;for(let l of c)o.push(l)}}return e.hasEmptyContent||n}};var ag=new x;function eB(t){return t!=null}var gr=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Be.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new N;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new ut({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new N;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,n,o=""){this.header=r,this.tileset=e,this.id=o||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===Be.READY||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===Be.UNLOADED}get contentExpired(){return this.contentState===Be.EXPIRED}get contentFailed(){return this.contentState===Be.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=Qm(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case de.I3S:return fl(this,e);case de.TILES3D:return tg(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===Te.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Be.UNLOADED)return-1;let o=this.parent,i=o&&(!n||this._screenSpaceError===0||o.hasTilesetContent)?o._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-i,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Be.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Be.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),o=this.tileset.loader,s=this.tileset.loadOptions[o.id]||{},i={...this.tileset.loadOptions,[o.id]:{...s,isTileset:this.type==="json",...this._getLoaderSpecificOptions(o.id)}};return this.content=await(0,cg.load)(n,o,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Be.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=Be.FAILED,n}finally{r.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=Be.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,o=n?n._visibilityPlaneMask:ce.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ce.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:o}=this;return n.computeVisibilityWithPlaneMask(o,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return ag.subVectors(r.center,e.position),e.direction.dot(ag)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(eB(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Be.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new N(e.transform):new N;let r=this.parent,n=this.tileset,o=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new N(o).multiplyRight(this.transform);let s=r&&r._initialTransform?r._initialTransform.clone():new N;this._initialTransform=new N(s).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=Be.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ce.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(e){return e||this.parent&&this.parent.refine||Te.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=li(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=li(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=li(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new N){let r=e.clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){case"i3s":return{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return ig(this.tileset.tileset)}}};var fi=class extends ut{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let i=e.children[0];this.updateTileVisibility(i,r),e._visible=i._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let o=e.refine===Te.REPLACE,s=e._optimChildrenWithinParent===Jm.USE_OPTIMIZATION;if(o&&s&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Te.ADD?!1:!this.shouldRefine(e,r,!0)}};var lg=U(er(),1);var ui=class{frameNumberMap=new Map;register(e,r){let n=this.frameNumberMap.get(e)||new Map,o=n.get(r)||0;n.set(r,o+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let o=n.get(r)||1;n.set(r,o-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var ul={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},hi=class{_statusMap;pendingTilesRegister=new ui;constructor(){this._statusMap={}}add(e,r,n,o){if(!this._statusMap[r]){let{frameNumber:s,viewport:{id:i}}=o;this._statusMap[r]={request:e,callback:n,key:r,frameState:o,status:ul.REQUESTED},this.pendingTilesRegister.register(i,s),e().then(a=>{this._statusMap[r].status=ul.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,o)}).catch(a=>{this._statusMap[r].status=ul.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:o}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(o,n);let{frameNumber:s,viewport:{id:i}}=r;this.pendingTilesRegister.register(i,s),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var pi=class extends ut{_tileManager;constructor(e){super(e),this._tileManager=new hi}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=sg(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],o=e.children,s=e.tileset;for(let i of n){let a=`${i.id}-${r.viewport.id}`,c=o&&o.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(i.id,s);this._tileManager.find(a)?this._tileManager.update(a,r):(s.tileset.nodePages&&(l=()=>s.tileset.nodePagesTile.formTileFromNodePages(i.id)),this._tileManager.add(l,a,u=>this._onTileLoad(u,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,o=r.getTileUrl(`${r.url}/nodes/${e}`),s={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,lg.load)(o,n,s)}_onTileLoad(e,r,n){let o=new gr(r.tileset,e,r,n);r.children.push(o);let s=this._tileManager.find(o.id).frameState;this.updateTile(o,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(o,s)}};var tB={description:"",ellipsoid:G.WGS84,modelMatrix:new N,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},di="Tiles In Tileset(s)",hl="Tiles In Memory",fg="Tiles In View",ug="Tiles To Render",hg="Tiles Loaded",pl="Tiles Loading",pg="Tiles Unloaded",dg="Failed Tile Loads",mg="Points/Vertices",dl="Tile Memory Use",gg="Maximum Screen Space Error",go=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new ii;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options={...tB,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Pt.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new Lt({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new wt({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let o of r){let s=o.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(let o of r){let s=o.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;let i=zm(o,this._frameNumber);this._traverser.traverse(this.roots[s],i,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],o=Object.values(this._traverser.selectedTiles),[s,i]=km(o,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(let a of i)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){let e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let s in this.frameStateData){let i=this.frameStateData[s];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(s=>s.id)),n=this.selectedTiles.some(s=>!s.tileDrawn),o=0;if(n){for(let s of r)this._heldTiles.add(s);for(let s of this._heldTiles){if(r.has(s))continue;let i=this._tiles[s];i&&i.contentAvailable?(i._selectedFrame=this._frameNumber,this.selectedTiles.push(i),o++):this._heldTiles.delete(s)}}else this._heldTiles=r;o>0&&setTimeout(()=>{this.selectTiles()},0);for(let s of this.selectedTiles)this._tiles[s.id]=s;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(i=>i.id)),o=new Set(r.map(i=>i.id)),s=e.filter(i=>!o.has(i.id)).length>0;return s=s||r.filter(i=>!n.has(i.id)).length>0,s}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(fg).count=this.selectedTiles.length,this.stats.get(ug).count=e,this.stats.get(mg).count=r,this.stats.get(gg).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===de.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===de.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===de.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:o,ymin:s,ymax:i,zmin:a,zmax:c}=e;this.cartographicCenter=new x(n+(o-n)/2,s+(i-s)/2,a+(c-a)/2),this.cartesianCenter=new x,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=al(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[n,o,s,i]=r;this.cartographicCenter=new x(n+(s-n)/2,o+(i-o)/2,0),this.cartesianCenter=new x,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=qm(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new x,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new x,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new x,G.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new x(0,0,-G.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=jm(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(di),this.stats.get(pl),this.stats.get(hl),this.stats.get(fg),this.stats.get(ug),this.stats.get(hg),this.stats.get(pg),this.stats.get(dg),this.stats.get(mg),this.stats.get(dl,"memory"),this.stats.get(gg)}_initializeTileHeaders(e,r){let n=new gr(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===de.TILES3D){let o=[];for(o.push(n);o.length>0;){let s=o.pop();this.stats.get(di).incrementCount();let i=s.header.children||[];for(let a of i){let c=new gr(this,a,s);if(c.contentUrl?.includes("?session=")){let f=new URL(c.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}s.children.push(c),c.depth=s.depth+1,o.push(c)}}}return n}_initializeTraverser(){let e;switch(this.type){case de.TILES3D:e=fi;break;case de.I3S:e=pi;break;default:e=ut}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(dg).incrementCount();let n=r.message||r.toString(),o=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,o)}_onTileLoad(e,r){if(r){if(this.type===de.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(di).reset(),this.stats.get(di).addCount(n)}e&&e.content&&Gm(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===de.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===de.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(pl).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(pl).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(hg).incrementCount(),this.stats.get(hl).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(dl).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(hl).decrementCount(),this.stats.get(pg).incrementCount(),this.stats.get(dl).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let o of e.children)n.push(o);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){let e=this.loadOptions.i3s;e&&typeof e=="object"&&"token"in e&&(this._queryParams.token=e.token)}};var mi="4.4.1";var Ar={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},jH=Object.keys(Ar);function ml(t,e,r){H(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),o=new Uint8Array(t,e,r);return n.decode(o)}function Ag(t,e=0){let r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var rB="1.5.6",nB="1.4.1",gl=`https://www.gstatic.com/draco/versioned/decoders/${rB}`,me={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},Ao={[me.DECODER]:`${gl}/${me.DECODER}`,[me.DECODER_WASM]:`${gl}/${me.DECODER_WASM}`,[me.FALLBACK_DECODER]:`${gl}/${me.FALLBACK_DECODER}`,[me.ENCODER]:`https://raw.githubusercontent.com/google/draco/${nB}/javascript/${me.ENCODER}`},Al;async function yg(t={},e){let r=t.modules||{};return r.draco3d?Al||=r.draco3d.createDecoderModule({}).then(n=>({draco:n})):Al||=oB(t,e),await Al}function xg(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function oB(t,e){let r,n;switch(e){case"js":r=await Ve(Ao[me.FALLBACK_DECODER],"draco",t,me.FALLBACK_DECODER);break;case"wasm":default:try{[r,n]=await Promise.all([await Ve(Ao[me.DECODER],"draco",t,me.DECODER),await Ve(Ao[me.DECODER_WASM],"draco",t,me.DECODER_WASM)])}catch{r=null,n=null}}return r=xg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!dt&&([r,n]=await Promise.all([await Ve(Ao[me.DECODER],"draco",{...t,useLocalLibraries:!0},me.DECODER),await Ve(Ao[me.DECODER_WASM],"draco",{...t,useLocalLibraries:!0},me.DECODER_WASM)]),r=xg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await sB(r,n)}function sB(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:o=>n({draco:o})})})}var bg="4.4.1";function Tg(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function xr(t){let e=1/0,r=1/0,n=1/0,o=-1/0,s=-1/0,i=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let f=a[l],u=a[l+1],h=a[l+2];e=f<e?f:e,r=u<r?u:r,n=h<n?h:n,o=f>o?f:o,s=u>s?u:s,i=h>i?h:i}return[[e,r,n],[o,s,i]]}function xl(t,e,r){let n=Tg(e.value),o=r||Mg(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:o}}function Mg(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function Eg(t,e,r){let n=_g(e.metadata),o=[],s=iB(e.attributes);for(let i in t){let a=t[i],c=Sg(i,a,s[i]);o.push(c)}if(r){let i=Sg("indices",r);o.push(i)}return{fields:o,metadata:n}}function iB(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function Sg(t,e,r){let n=r?_g(r.metadata):void 0;return xl(t,e,n)}function _g(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Cg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},aB={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},cB=4,xo=class{draco;decoder;metadataQuerier;constructor(e){this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,r={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let o=this.decoder.GetEncodedGeometryType(n),s=o===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let i;switch(o){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!s.ptr){let h=`DRACO decompression failed: ${i.error_msg()}`;throw new Error(h)}let a=this._getDracoLoaderData(s,o,r),c=this._getMeshData(s,a,r),l=xr(c.attributes),f=Eg(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:s.num_points(),boundingBox:l},...c,schema:f}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,r,n){let o=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:o,attributes:s}}_getDracoAttributes(e,r){let n={};for(let o=0;o<e.num_attributes();o++){let s=this.decoder.GetAttribute(e,o),i=this._getAttributeMetadata(e,o);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:o,metadata:i};let a=this._getQuantizationTransform(s,r);a&&(n[s.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(s,r);c&&(n[s.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let o=this._getMeshAttributes(r,e,n);if(!o.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:o,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:o,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:o}}_getMeshAttributes(e,r,n){let o={};for(let s of Object.values(e.attributes)){let i=this._deduceAttributeName(s,n);s.name=i;let a=this._getAttributeValues(r,s);if(a){let{value:c,size:l}=a;o[i]={value:c,size:l,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return o}_getTriangleListIndices(e){let n=e.num_faces()*3,o=n*cB,s=this.draco._malloc(o);try{return this.decoder.GetTrianglesUInt32Array(e,o,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),uB(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=aB[r.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let o=r.num_components,i=e.num_points()*o,a=i*n.BYTES_PER_ELEMENT,c=lB(this.draco,n),l,f=this.draco._malloc(a);try{let u=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,u,c,a,f),l=new n(this.draco.HEAPF32.buffer,f,i).slice()}finally{this.draco._free(f)}return{value:l,size:o}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[i,a]of Object.entries(r.extraAttributes||{}))if(a===n)return i;let o=e.attribute_type;for(let i in Cg)if(this.draco[i]===o)return Cg[i];let s=r.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let o=0;o<n;o++){let s=this.metadataQuerier.GetEntryName(e,o);r[s]=this._getDracoMetadataField(e,s)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let o=fB(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:o}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,o=[...r,...n];for(let s of o)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits(),range:i.range(),min_values:new Float32Array([1,2,3]).map(a=>i.min_value(a))}}finally{this.draco.destroy(i)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits()}}finally{this.draco.destroy(i)}}return null}};function lB(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function fB(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function uB(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var Bg={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:bg,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},yo={...Bg,parse:hB};async function hB(t,e){let{draco:r}=await yg(kn(e),e?.draco?.decoderType||"wasm"),n=new xo(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var pB={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ae={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},O={...pB,...ae};var yl={[ae.DOUBLE]:Float64Array,[ae.FLOAT]:Float32Array,[ae.UNSIGNED_SHORT]:Uint16Array,[ae.UNSIGNED_INT]:Uint32Array,[ae.UNSIGNED_BYTE]:Uint8Array,[ae.BYTE]:Int8Array,[ae.SHORT]:Int16Array,[ae.INT]:Int32Array},dB={DOUBLE:ae.DOUBLE,FLOAT:ae.FLOAT,UNSIGNED_SHORT:ae.UNSIGNED_SHORT,UNSIGNED_INT:ae.UNSIGNED_INT,UNSIGNED_BYTE:ae.UNSIGNED_BYTE,BYTE:ae.BYTE,SHORT:ae.SHORT,INT:ae.INT},bl="Failed to convert GL type",fe=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in yl)if(yl[r]===e)return r;throw new Error(bl)}static fromName(e){let r=dB[e];if(!r)throw new Error(bl);return r}static getArrayType(e){switch(e){case ae.UNSIGNED_SHORT_5_6_5:case ae.UNSIGNED_SHORT_4_4_4_4:case ae.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=yl[e];if(!r)throw new Error(bl);return r}}static getByteSize(e){return fe.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(fe.getArrayType(e))}static createTypedArray(e,r,n=0,o){o===void 0&&(o=(r.byteLength-n)/fe.getByteSize(e));let s=ArrayBuffer.isView(r)?r.buffer:r,i=fe.getArrayType(e);return new i(s,n,o)}};function Ig(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function Tl(t,e=[0,0,0]){let r=t>>11&31,n=t>>5&63,o=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=o<<3,e}var _8=1/256;var C8=new Yt,B8=new x,I8=new Yt,v8=new Yt,R8=new Uint8Array(1);function vg(t,e=255){return as(t,0,e)/e*2-1}function Rg(t){return t<0?-1:1}function wg(t,e,r,n){if(Ig(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=vg(t,r),n.y=vg(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let o=n.x;n.x=(1-Math.abs(n.y))*Rg(o),n.y=(1-Math.abs(o))*Rg(n.y)}return n.normalize()}function Ml(t,e,r){return wg(t,e,255,r)}var Tt=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e,r=O.UNSIGNED_INT,n=1){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,o.byteOffset):o}getPropertyArray(e,r,n){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(r=fe.fromName(o.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,o.byteOffset)):this._getTypedArrayFromArray(e,r,o)}getProperty(e,r,n,o,s){let i=this.json[e];if(!i)return i;let a=this.getPropertyArray(e,r,n);if(n===1)return a[o];for(let c=0;c<n;++c)s[c]=a[n*o+c];return s}_getTypedArrayFromBinary(e,r,n,o,s){let i=this._cachedTypedArrays,a=i[e];return a||(a=fe.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+s,o*n),i[e]=a),a}_getTypedArrayFromArray(e,r,n){let o=this._cachedTypedArrays,s=o[e];if(!s){if(ArrayBuffer.isView(n)){let i=n.byteOffset,c=n.byteLength/fe.getByteSize(r);s=fe.createTypedArray(r,n.buffer,i,c)}else if(n instanceof ArrayBuffer)s=fe.createTypedArray(r,n);else{let i=fe.getArrayType(r);s=new i(n)}o[e]=s}return s}};var mB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},gB={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},AB={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Lg(t,e,r,n){let{componentType:o}=t;H(t.componentType);let s=typeof o=="string"?fe.fromName(o):o,i=mB[t.type],a=gB[t.type],c=AB[t.type];return r+=t.byteOffset,{values:fe.createTypedArray(s,e,r,i*n),type:s,size:i,unpacker:a,packer:c}}var ht=t=>t!==void 0;function Fg(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),o=e.HIERARCHY;return o&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=o,n=o),n?xB(n,r):null}function xB(t,e){let r,n,o,s=t.instancesLength,i=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,f=s;ht(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,o=getBinaryAccessor(a),a=o.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,s));let u;if(ht(c))for(ht(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,o=getBinaryAccessor(c),c=o.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,s)),u=new Uint16Array(s),f=0,r=0;r<s;++r)u[r]=f,f+=c[r];ht(l)&&ht(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,o=getBinaryAccessor(l),l=o.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,f));let h=i.length;for(r=0;r<h;++r){let m=i[r].length,y=i[r].instances,b=getBinaryProperties(m,y,e);i[r].instances=combine(b,y)}let p=new Array(h).fill(0),d=new Uint16Array(s);for(r=0;r<s;++r)n=a[r],d[r]=p[n],++p[n];let g={classes:i,classIds:a,classIndexes:d,parentCounts:c,parentIndexes:u,parentIds:l};return TB(g),g}function en(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?yB(t,e,r):bB(t,e,r)}function yB(t,e,r){let n=t.classIds,o=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,f=scratchStack;for(f.length=0,f.push(e);f.length>0;){if(e=f.pop(),c[e]===l)continue;c[e]=l;let u=r(t,e);if(ht(u))return u;let h=o[e],p=i[e];for(let d=0;d<h;++d){let g=s[p+d];g!==e&&f.push(g)}}return null}function bB(t,e,r){let n=!0;for(;n;){let o=r(t,e);if(ht(o))return o;let s=t.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function TB(t){let e=[],n=t.classIds.length;for(let o=0;o<n;++o)Pg(t,o,stack)}function Pg(t,e,r){let n=t.parentCounts,o=t.parentIds,s=t.parentIndexes,a=t.classIds.length;if(!ht(o))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=ht(n)?n[e]:1,l=ht(n)?s[e]:e;for(let f=0;f<c;++f){let u=o[l+f];u!==e&&Pg(t,u,r)}r.pop(e)}function we(t){return t!=null}var gi=(t,e)=>t,MB={HIERARCHY:!0,extensions:!0,extras:!0},yr=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,n,o={}){H(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let s in this.json)MB[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Fg(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),H(typeof r=="string",r),this._hierarchy){let n=en(this._hierarchy,e,(o,s)=>{let i=o.classIds[s];return o.classes[i].name===r});return we(n)}return!1}isExactClass(e,r){return H(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),H(typeof r=="string",r),we(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=we(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),H(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(we(o))return this._getBinaryProperty(o,e)}let n=this._properties[r];if(we(n))return gi(n[e],!0);if(this._hierarchy){let o=this._getHierarchyProperty(e,r);if(we(o))return o}}setProperty(e,r,n){let o=this.featureCount;if(this._checkBatchId(e),H(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(i){this._setBinaryProperty(i,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let s=this._properties[r];we(s)||(this._properties[r]=new Array(o),s=this._properties[r]),s[e]=gi(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],o=this._initializeBinaryProperty(r,n);o&&(e=e||{},e[r]=o)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;H(this.binary,`Property ${e} requires a batch table binary.`),H(n.type,`Property ${e} requires a type.`);let o=Lg(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:o.values,componentCount:o.size,unpack:o.unpacker,pack:o.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=en(this._hierarchy,e,(o,s)=>{let i=o.classIds[s],a=o.classes[i].instances;return we(a[r])});return we(n)}_getPropertyNamesInHierarchy(e,r){en(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s].instances;for(let a in i)i.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return en(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s],a=n.classIndexes[o],c=i.instances[r];return we(c)?we(c.typedArray)?this._getBinaryProperty(c,a):gi(c[a],!0):null})}_setHierarchyProperty(e,r,n,o){let s=en(this._hierarchy,r,(i,a)=>{let c=i.classIds[a],l=i.classes[c],f=i.classIndexes[a],u=l.instances[n];return we(u)?(H(a===r,`Inherited property "${n}" is read-only.`),we(u.typedArray)?this._setBinaryProperty(u,f,o):u[f]=gi(o,!0),!0):!1});return we(s)}};function zt(t,e,r=0){let n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var tn=4,Ng="b3dm tile in legacy format.";function rn(t,e,r){let n=new DataView(e),o;t.header=t.header||{};let s=n.getUint32(r,!0);r+=tn;let i=n.getUint32(r,!0);r+=tn;let a=n.getUint32(r,!0);r+=tn;let c=n.getUint32(r,!0);return r+=tn,a>=570425344?(r-=tn*2,o=s,a=i,c=0,s=0,i=0,console.warn(Ng)):c>=570425344&&(r-=tn,o=a,a=s,c=i,s=0,i=0,console.warn(Ng)),t.header.featureTableJsonByteLength=s,t.header.featureTableBinaryByteLength=i,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=o,r}function nn(t,e,r,n){return r=SB(t,e,r,n),r=EB(t,e,r,n),r}function SB(t,e,r,n){let{featureTableJsonByteLength:o,featureTableBinaryByteLength:s,batchLength:i}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:i||0},o&&o>0){let a=ml(e,r,o);t.featureTableJson=JSON.parse(a)}return r+=o||0,t.featureTableBinary=new Uint8Array(e,r,s),r+=s||0,r}function EB(t,e,r,n){let{batchTableJsonByteLength:o,batchTableBinaryByteLength:s}=t.header||{};if(o&&o>0){let i=ml(e,r,o);t.batchTableJson=JSON.parse(i),r+=o,s&&s>0&&(t.batchTableBinary=new Uint8Array(e,r,s),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=s)}return r}function Sl(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:o,pointCount:s=0}=t;if(n&&r){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=n[a],f=r.getProperty(c,"dimensions").map(u=>u*255);i[a*3]=f[0],i[a*3+1]=f[1],i[a*3+2]=f[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}if(e&&o){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=Tl(e[a]);i[a*3]=c[0],i[a*3+1]=c[1],i[a*3+2]=c[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}return e&&e.length===s*3?{type:O.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:O.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var Og=new x;function Ug(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)Ml(e[n*2],e[n*2+1],Og),Og.toArray(r,n*3);return{type:O.FLOAT,size:2,value:r}}return{type:O.FLOAT,size:2,value:e}}function Dg(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,_B(t,e)):{type:O.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function _B(t,e){let r=new x,n=new Float32Array(t.pointCount*3);for(let o=0;o<t.pointCount;o++)r.set(e[o*3],e[o*3+1],e[o*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,o*3);return n}async function Gg(t,e,r,n,o){r=zt(t,e,r),r=rn(t,e,r),r=nn(t,e,r,n),CB(t);let{featureTable:s,batchTable:i}=BB(t);return await LB(t,s,i,n,o),IB(t,s,n),vB(t,s,i),RB(t,s),r}function CB(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function BB(t){let e=new Tt(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",O.FLOAT,3);let n=wB(t,e);return{featureTable:e,batchTable:n}}function IB(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",O.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=Dg(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function vB(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",O.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",O.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",O.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=Sl(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",O.UNSIGNED_BYTE,4))}function RB(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",O.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",O.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=Ug(t,r)}}function wB(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",O.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:o,batchTableBinary:s}=t;r=new yr(o,s,n)}return r}async function LB(t,e,r,n,o){let s,i,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){i=l.properties;let u=l.byteOffset,h=l.byteLength;if(!i||!Number.isFinite(u)||!h)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(t.featureTableBinary||[]).slice(u,u+h),t.hasPositions=Number.isFinite(i.POSITION),t.hasColors=Number.isFinite(i.RGB)||Number.isFinite(i.RGBA),t.hasNormals=Number.isFinite(i.NORMAL),t.hasBatchIds=Number.isFinite(i.BATCH_ID),t.isTranslucent=Number.isFinite(i.RGBA)}if(!s)return!0;let f={buffer:s,properties:{...i,...a},featureTableProperties:i,batchTableProperties:a,dequantizeInShader:!1};return await FB(t,f,n,o)}async function FB(t,e,r,n){if(!n)return;let o={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete o["3d-tiles"];let s=await Oe(e.buffer,yo,o,n),i=s.attributes.POSITION&&s.attributes.POSITION.value,a=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,c=s.attributes.NORMAL&&s.attributes.NORMAL.value,l=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,f=i&&s.attributes.POSITION.value.quantization,u=c&&s.attributes.NORMAL.value.quantization;if(f){let p=s.POSITION.data.quantization,d=p.range;t.quantizedVolumeScale=new x(d,d,d),t.quantizedVolumeOffset=new x(p.minValues),t.quantizedRange=(1<<p.quantizationBits)-1,t.isQuantizedDraco=!0}u&&(t.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let h={};if(e.batchTableProperties)for(let p of Object.keys(e.batchTableProperties))s.attributes[p]&&s.attributes[p].value&&(h[p.toLowerCase()]=s.attributes[p].value);t.attributes={positions:i,colors:Sl(t,a,void 0),normals:c,batchIds:l,...h}}var El={};be(El,{createExtMeshFeatures:()=>YB,decode:()=>qB,encode:()=>JB,name:()=>jB});function ue(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var Ai={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xi={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var PB=1.33,Vg=["SCALAR","VEC2","VEC3","VEC4"],NB=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],OB=new Map(NB),UB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},DB={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},GB={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function yi(t){return Vg[t-1]||Vg[0]}function kt(t){let e=OB.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function on(t,e){let r=GB[t.componentType],n=UB[t.type],o=DB[t.componentType],s=t.count*n,i=t.count*n*o;ue(i>=0&&i<=e.byteLength);let a=xi[t.componentType],c=Ai[t.type];return{ArrayType:r,length:s,byteLength:i,componentByteSize:a,numberOfComponentsInElement:c}}function bo(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(i=>i.bufferView);r=r.filter(i=>!n.includes(i));let o=r.reduce((i,a)=>i+a.byteLength,0),s=e.reduce((i,a)=>{let{width:c,height:l}=a.image;return i+c*l},0);return o+Math.ceil(4*s*PB)}function Hg(t,e,r){let n=t.bufferViews[r];ue(n);let o=n.buffer,s=e[o];ue(s);let i=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,n.byteLength)}function zg(t,e,r){let n=typeof r=="number"?t.accessors?.[r]:r;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=t.bufferViews?.[n.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:s,byteOffset:i}=e[o.buffer],a=(i||0)+(n.byteOffset||0)+(o.byteOffset||0),{ArrayType:c,length:l,componentByteSize:f,numberOfComponentsInElement:u}=on(n,o),h=f*u,p=o.byteStride||h;if(typeof o.byteStride>"u"||o.byteStride===h)return new c(s,a,l);let d=new c(l);for(let g=0;g<n.count;g++){let m=new c(s,a+g*p,u);d.set(m,g*u)}return d}function VB(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var j=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||VB(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.getRequiredExtensions().find(o=>o===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];ue(n);let o=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,o,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return zg(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),o=this.getBuffer(r.buffer).data,s=r.byteOffset||0;return new Uint8Array(o,s,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let o=e.extensions||{};o[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let o=this.json.extensionsRemoved;o.includes(r)||o.push(r)}delete n[r]}addExtension(e,r={}){return ue(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return ue(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let o={mesh:r};return n&&(o.matrix=n),this.json.nodes.push(o),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:o,mode:s=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:s}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(o)&&(a.primitives[0].material=o),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=lr(e),o=r||n?.mimeType,i={bufferView:this.addBufferView(e),mimeType:o};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e,r=0,n=this.byteLength){let o=e.byteLength;ue(Number.isFinite(o)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let s={buffer:r,byteOffset:n,byteLength:o};return this.byteLength+=Rt(o,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:yi(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,r={size:3}){let n=this.addBufferView(e),o={min:r.min,max:r.max};(!o.min||!o.max)&&(o=this._getAccessorMinMax(e,r.size));let s={size:r.size,componentType:kt(e),count:Math.round(e.length/r.size),min:o.min,max:o.max};return this.addAccessor(n,Object.assign(s,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){let e=this.byteLength,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;for(let s of this.sourceBuffers||[])o=xc(s,n,o);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let n=!0;for(;n;){let o=e.indexOf(r);o>-1?e.splice(o,1):n=!1}}_addAttributes(e={}){let r={};for(let n in e){let o=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(o.value,o);r[s]=i}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let o=e.subarray(0,r);for(let s of o)n.min.push(s),n.max.push(s);for(let s=r;s<e.length;s+=r)for(let i=0;i<r;i++)n.min[0+i]=Math.min(n.min[0+i],e[s+i]),n.max[0+i]=Math.max(n.max[0+i],e[s+i]);return n}};function kg(t){return(t%1+1)%1}var jg={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},HB={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},qg={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function To(t,e){return qg[e]*jg[t]}function sn(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let o=t.getTypedArrayForBufferView(e),s=an(o,"SCALAR",r,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function an(t,e,r,n=1){let o=jg[e],s=HB[r],i=qg[r],a=n*o,c=a*i,l=t.buffer,f=t.byteOffset;return f%i!==0&&(l=new Uint8Array(l).slice(f,f+c).buffer,f=0),new s(Ft(l),f,a)}function cn(t,e,r){let n=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[n],s=t.getTypedArrayForAccessor(o),i=t.gltf.json,a=e.index,c=i.textures?.[a]?.source;if(typeof c<"u"){let l=i.images?.[c]?.mimeType,f=t.gltf.images?.[c];if(f&&typeof f.width<"u"){let u=[];for(let h=0;h<s.length;h+=2){let p=zB(f,l,s,h,e.channels);u.push(p)}return u}}return[]}function bi(t,e,r,n,o){if(!r?.length)return;let s=[];for(let f of r){let u=n.findIndex(h=>h===f);u===-1&&(u=n.push(f)-1),s.push(u)}let i=new Uint32Array(s),a=t.gltf.buffers.push({arrayBuffer:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength})-1,c=t.addBufferView(i,a,0),l=t.addAccessor(c,{size:1,componentType:kt(i),count:i.length});o.attributes[e]=l}function zB(t,e,r,n,o=[0]){let s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},i=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=kB(i,a,t,c),f=0;for(let u of o){let h=typeof u=="number"?Object.values(s)[u]:s[u],p=l+h.offset,d=Qn(t);if(d.data.length<=p)throw new Error(`${d.data.length} <= ${p}`);let g=d.data[p];f|=g<<h.shift}return f}function kB(t,e,r,n=1){let o=r.width,s=kg(t)*(o-1),i=Math.round(s),a=r.height,c=kg(e)*(a-1),l=Math.round(c),f=r.components?r.components:n;return(l*o+i)*f}function Ti(t,e,r,n,o){let s=[];for(let i=0;i<e;i++){let a=r[i],c=r[i+1]-r[i];if(c+a>n)break;let l=a/o,f=c/o;s.push(t.slice(l,l+f))}return s}function Mi(t,e,r){let n=[];for(let o=0;o<e;o++){let s=o*r;n.push(t.slice(s,s+r))}return n}function Si(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let o=[],s=new TextDecoder("utf8"),i=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+i<=e.length){let l=e.subarray(i,c+i),f=s.decode(l);o.push(f),i+=c}}return o}return[]}var ln="EXT_mesh_features",jB=ln;async function qB(t,e){let r=new j(t);WB(r,e)}function JB(t,e){let r=new j(t);return XB(r,e),r.createBinaryChunk(),r.gltf}function WB(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let o of n.primitives)KB(t,o,e)}function KB(t,e,r){if(!r?.gltf?.loadBuffers)return;let o=e.extensions?.[ln]?.featureIds;if(o)for(let s of o){let i;if(typeof s.attribute<"u"){let a=`_FEATURE_ID_${s.attribute}`,c=e.attributes[a];i=t.getTypedArrayForAccessor(c)}else typeof s.texture<"u"&&r?.gltf?.loadImages?i=cn(t,s.texture,e):i=[];s.data=i}}function XB(t,e){let r=t.gltf.json.meshes;if(r)for(let n of r)for(let o of n.primitives)QB(t,o)}function YB(t,e,r,n){e.extensions||(e.extensions={});let o=e.extensions[ln];o||(o={featureIds:[]},e.extensions[ln]=o);let{featureIds:s}=o,i={featureCount:r.length,propertyTable:n,data:r};s.push(i),t.addObjectExtension(e,ln,o)}function QB(t,e){let r=e.extensions?.[ln];if(!r)return;let n=r.featureIds;n.forEach((o,s)=>{if(o.data){let{accessorKey:i,index:a}=ZB(e.attributes),c=new Uint32Array(o.data);n[s]={featureCount:c.length,propertyTable:o.propertyTable,attribute:a},t.gltf.buffers.push({arrayBuffer:c.buffer,byteOffset:c.byteOffset,byteLength:c.byteLength});let l=t.addBufferView(c),f=t.addAccessor(l,{size:1,componentType:kt(c),count:c.length});e.attributes[i]=f}})}function ZB(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(s=>s.indexOf(e)===0),n=-1;for(let s of r){let i=Number(s.substring(e.length));i>n&&(n=i)}return n++,{accessorKey:`${e}${n}`,index:n}}var Bl={};be(Bl,{createExtStructuralMetadata:()=>bI,decode:()=>eI,encode:()=>tI,name:()=>$B});var fn="EXT_structural_metadata",$B=fn;async function eI(t,e){let r=new j(t);rI(r,e)}function tI(t,e){let r=new j(t);return xI(r,e),r.createBinaryChunk(),r.gltf}function rI(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(fn);r&&(e.gltf?.loadImages&&nI(t,r),oI(t,r))}function nI(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let o of n.meshes)for(let s of o.primitives)iI(t,r,s,e)}function oI(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.propertyTables;if(n&&o)for(let s in n){let i=sI(o,s);i&&cI(t,r,i)}}function sI(t,e){for(let r of t)if(r.class===e)return r;return null}function iI(t,e,r,n){if(!e)return;let s=r.extensions?.[fn]?.propertyTextures;if(s)for(let i of s){let a=e[i];aI(t,a,r,n)}}function aI(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let o=e.class;for(let s in e.properties){let i=`${o}_${s}`,a=e.properties?.[s];if(!a)continue;a.data||(a.data=[]);let c=a.data,l=cn(t,a,r);l!==null&&(bi(t,i,l,c,r),a.data=c,n.dataAttributeNames.push(i))}}function cI(t,e,r){let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=lI(t,e,i,o,a);a.data=c}}}function lI(t,e,r,n,o){let s=[],i=o.values,a=t.getTypedArrayForBufferView(i),c=fI(t,r,o,n),l=uI(t,o,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=hI(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{s=Si(n,a,c,l);break}case"ENUM":{s=pI(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return s}function fI(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?sn(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function uI(t,e,r){return typeof e.stringOffsets<"u"?sn(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function hI(t,e,r,n){let o=t.array,s=t.count,i=To(t.type,t.componentType),a=r.byteLength/i,c;return t.componentType?c=an(r,t.type,t.componentType,a):c=r,o?n?Ti(c,e,n,r.length,i):s?Mi(c,e,s):[]:c}function pI(t,e,r,n,o){let s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let i=t.enums?.[s];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);let a=i.valueType||"UINT16",c=To(e.type,a),l=n.byteLength/c,f=an(n,e.type,a,l);if(f||(f=n),e.array){if(o)return dI({valuesData:f,numberOfElements:r,arrayOffsets:o,valuesDataBytesLength:n.length,elementSize:c,enumEntry:i});let u=e.count;return u?mI(f,r,u,i):[]}return Cl(f,0,r,i)}function dI(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:o,elementSize:s,enumEntry:i}=t,a=[];for(let c=0;c<r;c++){let l=n[c],f=n[c+1]-n[c];if(f+l>o)break;let u=l/s,h=f/s,p=Cl(e,u,h,i);a.push(p)}return a}function mI(t,e,r,n){let o=[];for(let s=0;s<e;s++){let i=r*s,a=Cl(t,i,r,n);o.push(a)}return o}function Cl(t,e,r,n){let o=[];for(let s=0;s<r;s++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)o.push("");else{let i=t[e+s],a=gI(n,i);a?o.push(a.name):o.push("")}return o}function gI(t,e){for(let r of t.values)if(r.value===e)return r;return null}var AI="schemaClassId";function xI(t,e){let r=t.getExtension(fn);if(r&&r.propertyTables)for(let n of r.propertyTables){let o=n.class,s=r.schema?.classes?.[o];n.properties&&s&&yI(n,s,t)}}function yI(t,e,r){for(let n in t.properties){let o=t.properties[n].data;if(o){let s=e.properties[n];if(s){let i=SI(o,s,r);t.properties[n]=i}}}}function bI(t,e,r=AI){let n=t.getExtension(fn);n||(n=t.addExtension(fn)),n.schema=TI(e,r,n.schema);let o=MI(e,r,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(o)-1}function TI(t,e,r){let n=r??{id:"schema_id"},o={properties:{}};for(let s of t){let i={type:s.elementType,componentType:s.componentType};o.properties[s.name]=i}return n.classes={},n.classes[e]=o,n}function MI(t,e,r){let n={class:e,count:0},o=0,s=r.classes?.[e];for(let i of t){if(o===0&&(o=i.values.length),o!==i.values.length&&i.values.length)throw new Error("Illegal values in attributes");s?.properties[i.name]&&(n.properties||(n.properties={}),n.properties[i.name]={values:0,data:i.values})}return n.count=o,n}function SI(t,e,r){let n={values:0};if(e.type==="STRING"){let{stringData:o,stringOffsets:s}=CI(t);n.stringOffsets=_l(s,r),n.values=_l(o,r)}else if(e.type==="SCALAR"&&e.componentType){let o=_I(t,e.componentType);n.values=_l(o,r)}return n}var EI={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function _I(t,e){let r=[];for(let o of t)r.push(Number(o));let n=EI[e];if(!n)throw new Error("Illegal component type");return new n(r)}function CI(t){let e=new TextEncoder,r=[],n=0;for(let c of t){let l=e.encode(c);n+=l.length,r.push(l)}let o=new Uint8Array(n),s=[],i=0;for(let c of r)o.set(c,i),s.push(i),i+=c.length;s.push(i);let a=new Uint32Array(s);return{stringData:o,stringOffsets:a}}function _l(t,e){return e.gltf.buffers.push({arrayBuffer:Ft(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var Il={};be(Il,{decode:()=>II,name:()=>BI});var Jg="EXT_feature_metadata",BI=Jg;async function II(t,e){let r=new j(t);vI(r,e)}function vI(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(Jg);r&&(e.gltf?.loadImages&&RI(t,r),wI(t,r))}function RI(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:o}=e;if(n&&o)for(let s in n){let i=n[s],a=FI(o,s);a&&NI(t,a,i)}}function wI(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.featureTables;if(n&&o)for(let s in n){let i=LI(o,s);i&&PI(t,r,i)}}function LI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function FI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function PI(t,e,r){if(!r.class)return;let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=OI(t,e,i,o,a);a.data=c}}}function NI(t,e,r){let n=e.class;for(let o in r.properties){let s=e?.properties?.[o];if(s){let i=HI(t,s,n);s.data=i}}}function OI(t,e,r,n,o){let s=[],i=o.bufferView,a=t.getTypedArrayForBufferView(i),c=UI(t,r,o,n),l=DI(t,r,o,n);return r.type==="STRING"||r.componentType==="STRING"?s=Si(n,a,c,l):GI(r)&&(s=VI(r,n,a,c)),s}function UI(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?sn(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function DI(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?sn(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function GI(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function VI(t,e,r,n){let o=t.type==="ARRAY",s=t.componentCount,i="SCALAR",a=t.componentType||t.type,c=To(i,a),l=r.byteLength/c,f=an(r,i,a,l);return o?n?Ti(f,e,n,r.length,c):s?Mi(f,e,s):[]:f}function HI(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let o=[];for(let s of n.meshes)for(let i of s.primitives)zI(t,r,e,o,i);return o}function zI(t,e,r,n,o){let s={channels:r.channels,...r.texture},i=cn(t,s,o);i&&bi(t,e,i,n,o)}var Wg="4.4.1";var un=!0,Kg=1735152710,wl=12,Ei=8,kI=1313821514,jI=5130562,qI=0,JI=0,WI=1;function KI(t,e=0){return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function Xg(t,e=0,r={}){let n=new DataView(t),{magic:o=Kg}=r,s=n.getUint32(e,!1);return s===o||s===Kg}function Yg(t,e,r=0,n={}){let o=new DataView(e),s=KI(o,r+0),i=o.getUint32(r+4,un),a=o.getUint32(r+8,un);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:s,version:i,json:{},binChunks:[]}),r+=wl,t.version){case 1:return XI(t,o,r);case 2:return YI(t,o,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function XI(t,e,r){H(t.header.byteLength>wl+Ei);let n=e.getUint32(r+0,un),o=e.getUint32(r+4,un);return r+=Ei,H(o===qI),vl(t,e,r,n),r+=n,r+=Rl(t,e,r,t.header.byteLength),r}function YI(t,e,r,n){return H(t.header.byteLength>wl+Ei),QI(t,e,r,n),r+t.header.byteLength}function QI(t,e,r,n){for(;r+8<=t.header.byteLength;){let o=e.getUint32(r+0,un),s=e.getUint32(r+4,un);switch(r+=Ei,s){case kI:vl(t,e,r,o);break;case jI:Rl(t,e,r,o);break;case JI:n.strict||vl(t,e,r,o);break;case WI:n.strict||Rl(t,e,r,o);break;default:break}r+=Rt(o,4)}return r}function vl(t,e,r,n){let o=new Uint8Array(e.buffer,r,n),i=new TextDecoder("utf8").decode(o);return t.json=JSON.parse(i),Rt(n,4)}function Rl(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Rt(n,4)}function Ll(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let o=r?.baseUrl||ZI(e?.core?.baseUrl);if(!o)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return o.endsWith("/")?`${o}${t}`:`${o}/${t}`}function ZI(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var Pl={};be(Pl,{decode:()=>f2,name:()=>l2});var $I="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",e2="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",t2=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r2=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),n2={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},o2={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Qg(t,e,r,n,o,s="NONE"){let i=await s2();c2(i,i.exports[o2[o]],t,e,r,n,i.exports[n2[s||"NONE"]])}var Fl;async function s2(){return Fl||(Fl=i2()),Fl}async function i2(){let t=$I;WebAssembly.validate(t2)&&(t=e2,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(a2(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function a2(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let o=t.charCodeAt(n);e[n]=o>96?o-71:o>64?o-65:o>47?o+4:o>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?r2[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function c2(t,e,r,n,o,s,i){let a=t.exports.sbrk,c=n+3&-4,l=a(c*o),f=a(s.length),u=new Uint8Array(t.exports.memory.buffer);u.set(s,f);let h=e(l,n,o,f,s.length);if(h===0&&i&&i(l,c,o),r.set(u.subarray(l,l+n*o)),a(l-a(0)),h!==0)throw new Error(`Malformed buffer data: ${h}`)}var _i="EXT_meshopt_compression",l2=_i;async function f2(t,e){let r=new j(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let o of t.json.bufferViews||[])n.push(u2(r,o));await Promise.all(n),r.removeExtension(_i)}async function u2(t,e){let r=t.getObjectExtension(e,_i);if(r){let{byteOffset:n=0,byteLength:o=0,byteStride:s,count:i,mode:a,filter:c="NONE",buffer:l}=r,f=t.gltf.buffers[l],u=new Uint8Array(f.arrayBuffer,f.byteOffset+n,o),h=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Qg(h,i,s,u,a,c),t.removeObjectExtension(e,_i)}}var Nl={};be(Nl,{name:()=>h2,preprocess:()=>p2});var hn="EXT_texture_webp",h2=hn;function p2(t,e){let r=new j(t);if(!Rc("image/webp")){if(r.getRequiredExtensions().includes(hn))throw new Error(`gltf: Required extension ${hn} not supported by browser`);return}let{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,hn);s&&(o.source=s.source),r.removeObjectExtension(o,hn)}r.removeExtension(hn)}var Ol={};be(Ol,{name:()=>d2,preprocess:()=>m2});var Ci="KHR_texture_basisu",d2=Ci;function m2(t,e){let r=new j(t),{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,Ci);s&&(o.source=s.source,r.removeObjectExtension(o,Ci))}r.removeExtension(Ci)}var Dl={};be(Dl,{decode:()=>b2,encode:()=>T2,name:()=>x2,preprocess:()=>y2});function Zg(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let o=Ul(n);e[r]=o}}return e}function Ul(t){let{buffer:e,size:r,count:n}=g2(t);return{value:e,size:r,byteOffset:0,count:n,type:yi(r),componentType:kt(e)}}function g2(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=A2(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function A2(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var jt="KHR_draco_mesh_compression",x2=jt;function y2(t,e,r){let n=new j(t);for(let o of $g(n))n.getObjectExtension(o,jt)}async function b2(t,e,r){if(!e?.gltf?.decompressMeshes)return;let n=new j(t),o=[];for(let s of $g(n))n.getObjectExtension(s,jt)&&o.push(M2(n,s,e,r));await Promise.all(o),n.removeExtension(jt)}function T2(t,e={}){let r=new j(t);for(let n of r.json.meshes||[])S2(n,e),r.addRequiredExtension(jt)}async function M2(t,e,r,n){let o=t.getObjectExtension(e,jt);if(!o)return;let s=t.getTypedArrayForBufferView(o.bufferView),i=sr(s.buffer,s.byteOffset),a={...r};delete a["3d-tiles"];let c=await Oe(i,yo,a,n),l=Zg(c.attributes);for(let[f,u]of Object.entries(l))if(f in e.attributes){let h=e.attributes[f],p=t.getAccessor(h);p?.min&&p?.max&&(u.min=p.min,u.max=p.max)}e.attributes=l,c.indices&&(e.indices=Ul(c.indices)),t.removeObjectExtension(e,jt),E2(e)}function S2(t,e,r=4,n,o){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let s=n.DracoWriter.encodeSync({attributes:t}),i=o?.parseSync?.({attributes:t}),a=n._addFauxAttributes(i.attributes),c=n.addBufferView(s);return{primitives:[{attributes:a,mode:r,extensions:{[jt]:{bufferView:c,attributes:a}}}]}}function E2(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*$g(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Gl={};be(Gl,{decode:()=>I2,name:()=>_2});var Ii="KHR_texture_transform",_2=Ii,Bi=new x,C2=new k,B2=new k;async function I2(t,e){if(!new j(t).hasExtension(Ii)||!e.gltf?.loadBuffers)return;let o=t.json.materials||[];for(let s=0;s<o.length;s++)v2(s,t)}function v2(t,e){let r=e.json.materials?.[t],n=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],o=[];for(let s of n)s&&s?.extensions?.[Ii]&&R2(e,t,s,o)}function R2(t,e,r,n){let o=w2(r,n);if(!o)return;let s=t.json.meshes||[];for(let i of s)for(let a of i.primitives){let c=a.material;Number.isFinite(c)&&e===c&&L2(t,a,o)}}function w2(t,e){let r=t.extensions?.[Ii],{texCoord:n=0}=t,{texCoord:o=n}=r;if(!(e.findIndex(([i,a])=>i===n&&a===o)!==-1)){let i=N2(r);return n!==o&&(t.texCoord=o),e.push([n,o]),{originalTexCoord:n,texCoord:o,matrix:i}}return null}function L2(t,e,r){let{originalTexCoord:n,texCoord:o,matrix:s}=r,i=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(i)){let a=t.json.accessors?.[i];if(a&&a.bufferView!==void 0){let c=t.json.bufferViews?.[a.bufferView];if(c){let{arrayBuffer:l,byteOffset:f}=t.buffers[c.buffer],u=(f||0)+(a.byteOffset||0)+(c.byteOffset||0),{ArrayType:h,length:p}=on(a,c),d=xi[a.componentType],g=Ai[a.type],m=c.byteStride||d*g,y=new Float32Array(p);for(let b=0;b<a.count;b++){let M=new h(l,u+b*m,2);Bi.set(M[0],M[1],1),Bi.transformByMatrix3(s),y.set([Bi[0],Bi[1]],b*g)}n===o?F2(a,t,y,a.bufferView):P2(o,a,e,t,y)}}}}function F2(t,e,r,n){t.componentType=5126,t.byteOffset=0;let i=(e.json.accessors||[]).reduce((l,f)=>f.bufferView===n?l+1:l,0)>1;e.buffers.push({arrayBuffer:Ft(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let a=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],i){e.json.bufferViews.push({buffer:a,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let c=e.json.bufferViews[n];c&&(c.buffer=a,c.byteOffset=0,c.byteLength=r.buffer.byteLength,c.byteStride!==void 0&&delete c.byteStride)}function P2(t,e,r,n,o){n.buffers.push({arrayBuffer:Ft(o.buffer),byteOffset:0,byteLength:o.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let s=n.json.bufferViews;s.push({buffer:n.buffers.length-1,byteLength:o.buffer.byteLength,byteOffset:0});let i=n.json.accessors;i&&(i.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=i.length-1)}function N2(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,o=new k().set(1,0,0,0,1,0,e[0],e[1],1),s=C2.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),i=B2.set(n[0],0,0,0,n[1],0,0,0,1);return o.multiplyRight(s).multiplyRight(i)}var Vl={};be(Vl,{decode:()=>U2,encode:()=>D2,name:()=>O2});var br="KHR_lights_punctual",O2=br;async function U2(t){let e=new j(t),{json:r}=e,n=e.getExtension(br);n&&(e.json.lights=n.lights,e.removeExtension(br));for(let o of r.nodes||[]){let s=e.getObjectExtension(o,br);s&&(o.light=s.light),e.removeObjectExtension(o,br)}}async function D2(t){let e=new j(t),{json:r}=e;if(r.lights){let n=e.addExtension(br);ue(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let o=n.node;e.addObjectExtension(o,br,n)}delete e.json.lights}}var Hl={};be(Hl,{decode:()=>V2,encode:()=>H2,name:()=>G2});var Mo="KHR_materials_unlit",G2=Mo;async function V2(t){let e=new j(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Mo);e.removeExtension(Mo)}function H2(t){let e=new j(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Mo,{}),e.addExtension(Mo))}var zl={};be(zl,{decode:()=>k2,encode:()=>j2,name:()=>z2});var So="KHR_techniques_webgl",z2=So;async function k2(t){let e=new j(t),{json:r}=e,n=e.getExtension(So);if(n){let o=q2(n,e);for(let s of r.materials||[]){let i=e.getObjectExtension(s,So);i&&(s.technique=Object.assign({},i,o[i.technique]),s.technique.values=J2(s.technique,e)),e.removeObjectExtension(s,So)}e.removeExtension(So)}}async function j2(t,e){}function q2(t,e){let{programs:r=[],shaders:n=[],techniques:o=[]}=t,s=new TextDecoder;return n.forEach(i=>{if(Number.isFinite(i.bufferView))i.code=s.decode(e.getTypedArrayForBufferView(i.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(i=>{i.fragmentShader=n[i.fragmentShader],i.vertexShader=n[i.vertexShader]}),o.forEach(i=>{i.program=r[i.program]}),o}function J2(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var e0=[Bl,El,Pl,Nl,Ol,Dl,Vl,Hl,zl,Gl,Il];function t0(t,e={},r){let n=e0.filter(o=>n0(o.name,e));for(let o of n)o.preprocess?.(t,e,r)}async function r0(t,e={},r){let n=e0.filter(o=>n0(o.name,e));for(let o of n)await o.decode?.(t,e,r)}function n0(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var kl="KHR_binary_glTF";function o0(t){let e=new j(t),{json:r}=e;for(let n of r.images||[]){let o=e.getObjectExtension(n,kl);o&&Object.assign(n,o),e.removeObjectExtension(n,kl)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(kl)}var s0={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},K2={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},jl=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),o0(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in s0)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let o in n){let s=n[o];s.id=s.id||o;let i=e[r].length;e[r].push(s),this.idToIndexMap[r][o]=i}}}_convertObjectIdsToArrayIndices(e){for(let r in s0)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:o,material:s}=r;for(let i in n)n[i]=this._convertIdToIndex(n[i],"accessor");o&&(r.indices=this._convertIdToIndex(o,"accessor")),s&&(r.material=this._convertIdToIndex(s,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let o in n){let s=n[o],i=this._convertIdToIndex(s,o);n[o]=i}}_convertIdToIndex(e,r){let n=K2[r];if(n in this.idToIndexMap){let o=this.idToIndexMap[n][e];if(!Number.isFinite(o))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return o}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,o=e.textures.findIndex(s=>s.id===n);o!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:o})}}};function i0(t,e={}){return new jl().normalize(t,e)}async function a0(t,e,r=0,n,o){return X2(t,e,r,n),i0(t,{normalize:n?.gltf?.normalize}),t0(t,n,o),n?.gltf?.loadBuffers&&t.json.buffers&&await Y2(t,n,o),n?.gltf?.loadImages&&await Q2(t,n,o),await r0(t,n,o),t}function X2(t,e,r,n){if(n.core?.baseUrl&&(t.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!Xg(e,r,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=Ac(e);else if(e instanceof ArrayBuffer){let i={};r=Yg(i,e,r,n.glb),ue(i.type==="glTF",`Invalid GLB magic string ${i.type}`),t._glb=i,t.json=i.json}else ue(!1,"GLTF: must be ArrayBuffer or string");let o=t.json.buffers||[];if(t.buffers=new Array(o.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:i}=t._glb;t.buffers[0]={arrayBuffer:i[0].arrayBuffer,byteOffset:i[0].byteOffset,byteLength:i[0].byteLength}}let s=t.json.images||[];t.images=new Array(s.length).fill({})}async function Y2(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let s=n[o];if(s.uri){let{fetch:i}=r;ue(i);let a=Ll(s.uri,e,r),l=await(await r?.fetch?.(a))?.arrayBuffer?.();t.buffers[o]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete s.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function Q2(t,e,r){let n=Z2(t),o=t.json.images||[],s=[];for(let i of n)s.push($2(t,o[i],i,e,r));return await Promise.all(s)}function Z2(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function $2(t,e,r,n,o){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){let l=Ll(e.uri,n,o),{fetch:f}=o;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){let l=Hg(t.json,t.buffers,e.bufferView);s=sr(l.buffer,l.byteOffset,l.byteLength)}ue(s,"glTF image has no data");let i=n,a={...i,core:{...i?.core,mimeType:e.mimeType}},c=await Oe(s,[Kr,Xc],a,o);c&&c[0]&&(c={compressed:!0,mipmaps:!1,width:c[0].width,height:c[0].height,data:c[0]}),t.images=t.images||[],t.images[r]=c}var Tr={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Wg,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:e3,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function e3(t,e={},r){let n={...Tr.options,...e};n.gltf={...Tr.options.gltf,...n.gltf};let o=e?.glb?.byteOffset||0;return await a0({},t,o,n,r)}var t3={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},r3={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},je={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},n3={magFilter:je.TEXTURE_MAG_FILTER,minFilter:je.TEXTURE_MIN_FILTER,wrapS:je.TEXTURE_WRAP_S,wrapT:je.TEXTURE_WRAP_T},o3={[je.TEXTURE_MAG_FILTER]:je.LINEAR,[je.TEXTURE_MIN_FILTER]:je.NEAREST_MIPMAP_LINEAR,[je.TEXTURE_WRAP_S]:je.REPEAT,[je.TEXTURE_WRAP_T]:je.REPEAT};function s3(){return{id:"default-sampler",parameters:o3}}function i3(t){return r3[t]}function a3(t){return t3[t]}var ql=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:n,buffers:o=[],images:s=[]}=e,{baseUri:i=""}=e;return ue(n),this.baseUri=i,this.buffers=o,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((o,s)=>this._resolveBufferView(o,s))),e.images&&(n.images=e.images.map((o,s)=>this._resolveImage(o,s))),e.samplers&&(n.samplers=e.samplers.map((o,s)=>this._resolveSampler(o,s))),e.textures&&(n.textures=e.textures.map((o,s)=>this._resolveTexture(o,s))),e.accessors&&(n.accessors=e.accessors.map((o,s)=>this._resolveAccessor(o,s))),e.materials&&(n.materials=e.materials.map((o,s)=>this._resolveMaterial(o,s))),e.meshes&&(n.meshes=e.meshes.map((o,s)=>this._resolveMesh(o,s))),e.nodes&&(n.nodes=e.nodes.map((o,s)=>this._resolveNode(o,s)),n.nodes=n.nodes.map((o,s)=>this._resolveNodeChildren(o))),e.skins&&(n.skins=e.skins.map((o,s)=>this._resolveSkin(o,s))),e.scenes&&(n.scenes=e.scenes.map((o,s)=>this._resolveScene(o,s))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((o,s)=>{let i=this.getMesh(s);return o.id=i.id,o.primitives=o.primitives.concat(i.primitives),o},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(o=>{let s={...o,attributes:{},indices:void 0,material:void 0},i=o.attributes;for(let a in i)s.attributes[a]=this.getAccessor(i[a]);return o.indices!==void 0&&(s.indices=this.getAccessor(o.indices)),o.material!==void 0&&(s.material=this.getMaterial(o.material)),s})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let o=n.pbrMetallicRoughness;o.baseColorTexture&&(o.baseColorTexture={...o.baseColorTexture},o.baseColorTexture.texture=this.getTexture(o.baseColorTexture.index)),o.metallicRoughnessTexture&&(o.metallicRoughnessTexture={...o.metallicRoughnessTexture},o.metallicRoughnessTexture.texture=this.getTexture(o.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=i3(e.componentType),o=a3(e.type),s=n*o,i={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:o,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(i.bufferView=this.getBufferView(e.bufferView)),i.bufferView){let a=i.bufferView.buffer,{ArrayType:c,byteLength:l}=on(i,i.bufferView),f=(i.bufferView.byteOffset||0)+(i.byteOffset||0)+a.byteOffset,u=Jn(a.arrayBuffer,f,l);i.bufferView.byteStride&&(u=this._getValueFromInterleavedBuffer(a,f,i.bufferView.byteStride,i.bytesPerElement,i.count)),i.value=new c(u)}return i}_getValueFromInterleavedBuffer(e,r,n,o,s){let i=new Uint8Array(s*o);for(let a=0;a<s;a++){let c=r+a*n;i.set(new Uint8Array(e.arrayBuffer.slice(c,c+o)),a*o)}return i.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):s3(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let o in n){let s=this._enumSamplerParameter(o);s!==void 0&&(n.parameters[s]=n[o])}return n}_enumSamplerParameter(e){return n3[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},o=this.images[r];return o&&(n.image=o),n}_resolveBufferView(e,r){let n=e.buffer,o=this.buffers[n].arrayBuffer,s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(o,s,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function Eo(t,e){return new ql().postProcess(t,e)}var vi={URI:0,EMBEDDED:1};function Ri(t,e,r,n){t.rotateYtoZ=!0;let o=(t.byteOffset||0)+(t.byteLength||0)-r;if(o===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=sr(e,r,o),t.gltfByteOffset=0,t.gltfByteLength=o,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function wi(t,e,r,n){let o=r?.["3d-tiles"]||{};if(c3(t,e,r),o.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:s}=n,i=await s(t.gltfUrl,r?.core);t.gltfArrayBuffer=await i.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let s=await Oe(t.gltfArrayBuffer,Tr,r,n);t.gltf=Eo(s),t.gpuMemoryUsageInBytes=bo(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function c3(t,e,r){switch(e){case vi.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),s=new TextDecoder().decode(n);t.gltfUrl=s.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case vi.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function c0(t,e,r,n,o){r=l3(t,e,r,n,o),await wi(t,vi.EMBEDDED,n,o);let s=t?.gltf?.extensions;return s&&s.CESIUM_RTC&&(t.rtcCenter=s.CESIUM_RTC.center),r}function l3(t,e,r,n,o){r=zt(t,e,r),r=rn(t,e,r),r=nn(t,e,r,n),r=Ri(t,e,r,n);let s=new Tt(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=s.getGlobalProperty("RTC_CENTER",O.FLOAT,3),r}async function l0(t,e,r,n,o){return r=f3(t,e,r,n,o),await wi(t,t.gltfFormat||0,n,o),r}function f3(t,e,r,n,o){if(r=zt(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=rn(t,e,r);let s=new DataView(e);if(t.gltfFormat=s.getUint32(r,!0),r+=4,r=nn(t,e,r,n),r=Ri(t,e,r,n),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let i=new Tt(t.featureTableJson,t.featureTableBinary),a=i.getGlobalProperty("INSTANCES_LENGTH");if(i.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=i.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=i.getGlobalProperty("RTC_CENTER",O.FLOAT,3);let c=new yr(t.batchTableJson,t.batchTableBinary,a);return u3(t,i,c,a),r}function u3(t,e,r,n){let o=new Array(n),s=new x,i=new x,a=new x,c=new x,l=new k,f=new st,u=new x,h={},p=new N,d=[],g=[],m=[],y=[];for(let b=0;b<n;b++){let M;if(e.hasProperty("POSITION"))M=e.getProperty("POSITION",O.FLOAT,3,b,s);else if(e.hasProperty("POSITION_QUANTIZED")){M=e.getProperty("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3,b,s);let A=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3);if(!A)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let B=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let L=65535;for(let F=0;F<3;F++)M[F]=M[F]/L*B[F]+A[F]}if(!M)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");s.copy(M),h.translation=s,t.normalUp=e.getProperty("NORMAL_UP",O.FLOAT,3,b,d),t.normalRight=e.getProperty("NORMAL_RIGHT",O.FLOAT,3,b,g);let S=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",O.UNSIGNED_SHORT,2,b,d),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",O.UNSIGNED_SHORT,2,b,g),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(G.WGS84.eastNorthUpToFixedFrame(s,p),p.getRotationMatrix3(l)):l.identity()}S&&(c.copy(i).cross(a).normalize(),l.setColumn(0,i),l.setColumn(1,a),l.setColumn(2,c)),f.fromMatrix3(l),h.rotation=f,u.set(1,1,1);let C=e.getProperty("SCALE",O.FLOAT,1,b,m);Number.isFinite(C)&&u.multiplyByScalar(C);let _=e.getProperty("SCALE_NON_UNIFORM",O.FLOAT,3,b,d);_&&u.scale(_),h.scale=u;let v=e.getProperty("BATCH_ID",O.UNSIGNED_SHORT,1,b,y);v===void 0&&(v=b);let E=new N().fromQuaternion(h.rotation);p.identity(),p.translate(h.translation),p.multiplyRight(E),p.scale(h.scale);let T=p.clone();o[b]={modelMatrix:T,batchId:v}}t.instances=o}async function f0(t,e,r,n,o,s){r=zt(t,e,r);let i=new DataView(e);for(t.tilesLength=i.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await s(e,r,n,o,a)}return r}async function u0(t,e,r,n){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let o=await Oe(e,Tr,r,n);t.gltf=Eo(o),t.gpuMemoryUsageInBytes=bo(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Jl(t,e=0,r,n,o={shape:"tile3d"}){switch(o.byteOffset=e,o.type=Ag(t,e),o.type){case Ar.COMPOSITE:return await f0(o,t,e,r,n,Jl);case Ar.BATCHED_3D_MODEL:return await c0(o,t,e,r,n);case Ar.GLTF:return await u0(o,t,r,n);case Ar.INSTANCED_3D_MODEL:return await l0(o,t,e,r,n);case Ar.POINT_CLOUD:return await Gg(o,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${o.type}`)}}async function Wl(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let s=h0(t.slice(8,16)),i=new Uint8Array(t,24,s),c=new TextDecoder("utf8").decode(i),l=JSON.parse(c),f=h0(t.slice(16,24)),u=new ArrayBuffer(0);if(f&&(u=t.slice(24+s)),await Li(l,l.tileAvailability,u,r),Array.isArray(l.contentAvailability))for(let h of l.contentAvailability)await Li(l,h,u,r);else await Li(l,l.contentAvailability,u,r);return await Li(l,l.childSubtreeAvailability,u,r),l}async function Li(t,e,r,n){let o=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof o!="number")return;let s=t.bufferViews[o],i=t.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(i.uri){let c=`${n?.baseUrl||""}/${i.uri}`,f=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(f,s.byteOffset,s.byteLength);return}let a=t.buffers.slice(0,s.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+i.byteLength),s.byteOffset,s.byteLength)}function h0(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Fi={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:mi,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Wl,options:{}};var P0=U(er(),1);var R0=U(er(),1);var qe=null;try{qe=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Z(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Z.prototype.__isLong__;Object.defineProperty(Z.prototype,"__isLong__",{value:!0});function Se(t){return(t&&t.__isLong__)===!0}function p0(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=Se;var d0={},m0={};function Mr(t,e){var r,n,o;return e?(t>>>=0,(o=0<=t&&t<256)&&(n=m0[t],n)?n:(r=q(t,0,!0),o&&(m0[t]=r),r)):(t|=0,(o=-128<=t&&t<128)&&(n=d0[t],n)?n:(r=q(t,t<0?-1:0,!1),o&&(d0[t]=r),r))}Z.fromInt=Mr;function Je(t,e){if(isNaN(t))return e?Mt:tt;if(e){if(t<0)return Mt;if(t>=y0)return M0}else{if(t<=-A0)return Le;if(t+1>=A0)return T0}return t<0?Je(-t,e).neg():q(t%dn|0,t/dn|0,e)}Z.fromNumber=Je;function q(t,e,r){return new Z(t,e,r)}Z.fromBits=q;var Pi=Math.pow;function Xl(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?Mt:tt;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Xl(t.substring(1),e,r).neg();for(var o=Je(Pi(r,8)),s=tt,i=0;i<t.length;i+=8){var a=Math.min(8,t.length-i),c=parseInt(t.substring(i,i+a),r);if(a<8){var l=Je(Pi(r,a));s=s.mul(l).add(Je(c))}else s=s.mul(o),s=s.add(Je(c))}return s.unsigned=e,s}Z.fromString=Xl;function rt(t,e){return typeof t=="number"?Je(t,e):typeof t=="string"?Xl(t,e):q(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=rt;var g0=1<<16,h3=1<<24,dn=g0*g0,y0=dn*dn,A0=y0/2,x0=Mr(h3),tt=Mr(0);Z.ZERO=tt;var Mt=Mr(0,!0);Z.UZERO=Mt;var pn=Mr(1);Z.ONE=pn;var b0=Mr(1,!0);Z.UONE=b0;var Kl=Mr(-1);Z.NEG_ONE=Kl;var T0=q(-1,2147483647,!1);Z.MAX_VALUE=T0;var M0=q(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=M0;var Le=q(0,-2147483648,!1);Z.MIN_VALUE=Le;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*dn+(this.low>>>0):this.high*dn+(this.low>>>0)};I.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Le)){var r=Je(e),n=this.div(r),o=n.mul(r).sub(this);return n.toString(e)+o.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=Je(Pi(e,6),this.unsigned),i=this,a="";;){var c=i.div(s),l=i.sub(c.mul(s)).toInt()>>>0,f=l.toString(e);if(i=c,i.isZero())return f+a;for(;f.length<6;)f="0"+f;a=""+f+a}};I.getHighBits=function(){return this.high};I.getHighBitsUnsigned=function(){return this.high>>>0};I.getLowBits=function(){return this.low};I.getLowBitsUnsigned=function(){return this.low>>>0};I.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Le)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&!(e&1<<r);r--);return this.high!=0?r+33:r+1};I.isZero=function(){return this.high===0&&this.low===0};I.eqz=I.isZero;I.isNegative=function(){return!this.unsigned&&this.high<0};I.isPositive=function(){return this.unsigned||this.high>=0};I.isOdd=function(){return(this.low&1)===1};I.isEven=function(){return(this.low&1)===0};I.equals=function(e){return Se(e)||(e=rt(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};I.eq=I.equals;I.notEquals=function(e){return!this.eq(e)};I.neq=I.notEquals;I.ne=I.notEquals;I.lessThan=function(e){return this.comp(e)<0};I.lt=I.lessThan;I.lessThanOrEqual=function(e){return this.comp(e)<=0};I.lte=I.lessThanOrEqual;I.le=I.lessThanOrEqual;I.greaterThan=function(e){return this.comp(e)>0};I.gt=I.greaterThan;I.greaterThanOrEqual=function(e){return this.comp(e)>=0};I.gte=I.greaterThanOrEqual;I.ge=I.greaterThanOrEqual;I.compare=function(e){if(Se(e)||(e=rt(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};I.comp=I.compare;I.negate=function(){return!this.unsigned&&this.eq(Le)?Le:this.not().add(pn)};I.neg=I.negate;I.add=function(e){Se(e)||(e=rt(e));var r=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,f=0,u=0,h=0,p=0;return p+=s+l,h+=p>>>16,p&=65535,h+=o+c,u+=h>>>16,h&=65535,u+=n+a,f+=u>>>16,u&=65535,f+=r+i,f&=65535,q(h<<16|p,f<<16|u,this.unsigned)};I.subtract=function(e){return Se(e)||(e=rt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(Se(e)||(e=rt(e)),qe){var r=qe.mul(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Mt:tt;if(this.eq(Le))return e.isOdd()?Le:tt;if(e.eq(Le))return this.isOdd()?Le:tt;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(x0)&&e.lt(x0))return Je(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,f=e.low&65535,u=0,h=0,p=0,d=0;return d+=i*f,p+=d>>>16,d&=65535,p+=s*f,h+=p>>>16,p&=65535,p+=i*l,h+=p>>>16,p&=65535,h+=o*f,u+=h>>>16,h&=65535,h+=s*l,u+=h>>>16,h&=65535,h+=i*c,u+=h>>>16,h&=65535,u+=n*f+o*l+s*c+i*a,u&=65535,q(p<<16|d,u<<16|h,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(Se(e)||(e=rt(e)),e.isZero())throw Error("division by zero");if(qe){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?qe.div_u:qe.div_s)(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mt:tt;var n,o,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Mt;if(e.gt(this.shru(1)))return b0;s=Mt}else{if(this.eq(Le)){if(e.eq(pn)||e.eq(Kl))return Le;if(e.eq(Le))return pn;var i=this.shr(1);return n=i.div(e).shl(1),n.eq(tt)?e.isNegative()?pn:Kl:(o=this.sub(e.mul(n)),s=n.add(o.div(e)),s)}else if(e.eq(Le))return this.unsigned?Mt:tt;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=tt}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Pi(2,a-48),l=Je(n),f=l.mul(e);f.isNegative()||f.gt(o);)n-=c,l=Je(n,this.unsigned),f=l.mul(e);l.isZero()&&(l=pn),s=s.add(l),o=o.sub(f)}return s};I.div=I.divide;I.modulo=function(e){if(Se(e)||(e=rt(e)),qe){var r=(this.unsigned?qe.rem_u:qe.rem_s)(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return q(~this.low,~this.high,this.unsigned)};I.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};I.clz=I.countLeadingZeros;I.countTrailingZeros=function(){return this.low?p0(this.low):p0(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return Se(e)||(e=rt(e)),q(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return Se(e)||(e=rt(e)),q(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return Se(e)||(e=rt(e)),q(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):q(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):q(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?q(this.high,0,this.unsigned):q(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?q(this.high,this.low,this.unsigned):e<32?(r=32-e,q(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,q(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};I.rotl=I.rotateLeft;I.rotateRight=function(e){var r;return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?q(this.high,this.low,this.unsigned):e<32?(r=32-e,q(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,q(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?q(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:q(this.low,this.high,!0)};I.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};I.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};I.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Z.fromBytes=function(e,r,n){return n?Z.fromBytesLE(e,r):Z.fromBytesBE(e,r)};Z.fromBytesLE=function(e,r){return new Z(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Z.fromBytesBE=function(e,r){return new Z(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var mn=Z;var p3=16;function _o(t){t==="X"&&(t="");let e=t.padEnd(p3,"0");return mn.fromString(e,!0,16)}function Yl(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let s=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function Ql(t,e){let r=d3(t).shiftRightUnsigned(2);return t.add(mn.fromNumber(2*e+1-4).multiply(r))}function d3(t){return t.and(t.not().add(1))}var m3=3,g3=30,A3=2*g3+1,S0=180/Math.PI;function _0(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=0,i=[0,0];for(let a=o-1;a>=0;a--){s=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,s-1);x3(u,i,l,f),i[0]+=u*l,i[1]+=u*f}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:s}}function C0(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<m3+A3;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=mn.fromString(n,!0,2).toString(10),a="";if(s!==0)for(a=mn.fromString(o,!0,2).toString(4);a.length<s;)a="0"+a;return`${i}/${a}`}function Zl(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function E0(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function $l(t){return[E0(t[0]),E0(t[1])]}function ef(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function tf([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*S0,n*S0]}function x3(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function B0(t){let e=Zl(t.ij,t.level,[.5,.5]),r=$l(e),n=ef(t.face,r);return tf(n)}var y3=100;function rf(t){let{face:e,ij:r,level:n}=t,o=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(y3*Math.pow(2,-n))),i=new Float64Array(4*s*2+2),a=0,c=0;for(let l=0;l<4;l++){let f=o[l].slice(0),u=o[l+1],h=(u[0]-f[0])/s,p=(u[1]-f[1])/s;for(let d=0;d<s;d++){f[0]+=h,f[1]+=p;let g=Zl(r,n,f),m=$l(g),y=ef(e,m),b=tf(y);Math.abs(b[1])>89.999&&(b[0]=c);let M=b[0]-c;b[0]+=M>180?-360:M<-180?360:0,i[a++]=b[0],i[a++]=b[1],c=b[0]}}return i[a++]=i[0],i[a++]=i[1],i}function gn(t){let e=b3(t);return _0(e)}function b3(t){if(t.indexOf("/")>0)return t;let e=_o(t);return C0(e)}function nf(t){let e=gn(t);return B0(e)}function v0(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let o=0;o<4;o++){let s=`${t.face}/${o}`,i=gn(s),a=rf(i);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=I0(r)}else{let r=rf(t);e=I0(r)}return e}function I0(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,o)=>n-o),r.sort((n,o)=>n-o),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function of(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,o=gn(t),s=v0(o),i=s.west,a=s.south,c=s.east,l=s.north,f=[];return f.push(new x(i,l,r)),f.push(new x(c,l,r)),f.push(new x(c,a,r)),f.push(new x(i,a,r)),f.push(new x(i,l,n)),f.push(new x(c,l,n)),f.push(new x(c,a,n)),f.push(new x(i,a,n)),f}function Ni(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=of(e,r),o=nf(e),s=o[0],i=o[1],a=G.WGS84.cartographicToCartesian([s,i,r.maximumHeight]),c=new x(a[0],a[1],a[2]);n.push(c);let l=so(n);return[...l.center,...l.halfAxes]}var T3=4,M3=8,S3={QUADTREE:T3,OCTREE:M3};function E3(t,e,r){if(t?.box){let n=_o(t.s2VolumeInfo.token),o=Ql(n,e),s=Yl(o),i={...t.s2VolumeInfo};switch(i.token=s,r){case"OCTREE":let l=t.s2VolumeInfo,f=l.maximumHeight-l.minimumHeight,u=f/2,h=l.minimumHeight+f/2;l.minimumHeight=h-u,l.maximumHeight=h+u;break;default:break}return{box:Ni(i),s2VolumeInfo:i}}}async function af(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:o=0,implicitOptions:s,loaderOptions:i,s2VolumeBox:a}=t,{subdivisionScheme:c,subtreeLevels:l,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:p}=s,d={children:[],lodMetricValue:0,contentUrl:""};if(!f)return uc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),d;let g=n.localLevel+1,m=r.level+g;if(m>f)return d;let y=S3[c],b=Math.log2(y),M=o&1,S=o>>1&1,C=o>>2&1,_=Sr(n.localX,M,1),v=Sr(n.localY,S,1),E=Sr(n.localZ,C,1),T=Sr(r.x,_,g),A=Sr(r.y,v,g),B=Sr(r.z,E,g),L=Sr(n.mortonIndex,o,b),F=g===l&&sf(e.childSubtreeAvailability,L),w,D,W,z;if(F){let X=`${p}/${h}`,ee=Oi(X,m,T,A,B);w=await(0,R0.load)(ee,Fi,i),z=0,D={level:m,x:T,y:A,z:B},W={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else w=e,z=(y**g-1)/(y-1)+L,D=r,W={mortonIndex:L,localLevel:g,localX:_,localY:v,localZ:E};if(!sf(w.tileAvailability,z))return d;sf(w.contentAvailability,z)&&(d.contentUrl=Oi(u,m,T,A,B));for(let X=0;X<y;X++){let ee=E3(a,X,c),Ie=await af({subtree:w,subtreeData:D,parentData:W,childIndex:X,implicitOptions:s,loaderOptions:i,s2VolumeBox:ee});(Ie.contentUrl||Ie.children.length)&&d.children.push(Ie)}return d.contentUrl||d.children.length?_3(d,{level:m,x:T,y:A,z:B},s,a):d}function sf(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&uc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?I3(e,r.explicitBitstream):!1}function _3(t,e,r,n){let{basePath:o,refine:s,getRefine:i,lodMetricType:a,getTileType:c,rootLodMetricValue:l,rootBoundingVolume:f}=r,u=t.contentUrl&&t.contentUrl.replace(`${o}/`,""),h=l/2**e.level,p=n?.box?{box:n.box}:f,d=C3(p,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:i(s),type:c(t),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:t.transform,boundingVolume:d}}function C3(t,e,r){if(t.region){let{level:n,x:o,y:s,z:i}=e,[a,c,l,f,u,h]=t.region,p=2**n,d=(l-a)/p,[g,m]=[a+d*o,a+d*(o+1)],y=(f-c)/p,[b,M]=[c+y*s,c+y*(s+1)],S,C;if(r==="OCTREE"){let _=(h-u)/p;[S,C]=[u+_*i,u+_*(i+1)]}else[S,C]=[u,h];return{region:[g,b,m,M,S,C]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function Sr(t,e,r){return(t<<r)+e}function Oi(t,e,r,n,o){let s=B3({level:e,x:r,y:n,z:o});return t.replace(/{level}|{x}|{y}|{z}/gi,i=>s[i])}function B3(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function I3(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function lf(t,e=""){if(!e)return ke.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return ke.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return ke.SCENEGRAPH;default:return n||ke.EMPTY}}function ff(t){switch(t){case"REPLACE":case"replace":return Te.REPLACE;case"ADD":case"add":return Te.ADD;default:return t}}function cf(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Pt.resolve(e,t)}function w0(t,e){if(!t)return null;let r;if(t.content){let o=t.content.uri||t.content?.url;typeof o<"u"&&(r=cf(o,e))}return{...t,id:r,contentUrl:r,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:lf(t,r),refine:ff(t.refine)}}async function N0(t,e,r){let n=null,o=F0(t.root);o&&t.root?n=await L0(t.root,t,e,o,r):n=w0(t.root,e);let s=[];for(s.push(n);s.length>0;){let i=s.pop()||{},a=i.children||[],c=[];for(let l of a){let f=F0(l),u;f?u=await L0(l,t,e,f,r):u=w0(l,e),u&&(c.push(u),s.push(u))}i.children=c}return n}async function L0(t,e,r,n,o){let{subdivisionScheme:s,maximumLevel:i,availableLevels:a,subtreeLevels:c,subtrees:{uri:l}}=n,f=Oi(l,0,0,0,0),u=cf(f,r),h=await(0,P0.load)(u,Fi,o),p=t.content?.uri,d=p?cf(p,r):"",g=e?.root?.refine,m=t.geometricError,y=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(y){let C={box:Ni(y),s2VolumeInfo:y};t.boundingVolume=C}let b=t.boundingVolume,M={contentUrlTemplate:d,subtreesUriTemplate:l,subdivisionScheme:s,subtreeLevels:c,maximumLevel:Number.isFinite(a)?a-1:i,refine:g,basePath:r,lodMetricType:bt.GEOMETRIC_ERROR,rootLodMetricValue:m,rootBoundingVolume:b,getTileType:lf,getRefine:ff};return await v3(t,r,h,M,o)}async function v3(t,e,r,n,o){if(!t)return null;let{children:s,contentUrl:i}=await af({subtree:r,implicitOptions:n,loaderOptions:o}),a,c=null;return i&&(a=i,c={uri:i.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:lf(t,a),refine:ff(t.refine),content:c||t.content,children:s}}function F0(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var Ui={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:mi,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:R3,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function R3(t,e={},r){let n=e["3d-tiles"]||{},o;return n.isTileset==="auto"?o=r?.url&&r.url.indexOf(".json")!==-1:o=n.isTileset,o?w3(t,e,r):L3(t,e,r)}async function w3(t,e,r){let n=JSON.parse(new TextDecoder().decode(t)),o=r?.url||"",s=F3(o),i=await N0(n,s,e||{});return{...n,shape:"tileset3d",loader:Ui,url:o,queryString:r?.queryString||"",basePath:s,root:i||n.root,type:de.TILES3D,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function L3(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Jl(t,0,e,r,n.content),n.content}function F3(t){return Pt.dirname(t)}var O0=[0],P3={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Ui,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Co=class extends qt.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&qt.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:o}=this.state;Object.keys(o).length&&(this._updateTileset(o),this.state.lastUpdatedViewports=o,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:o}=this.state;for(let s in o)o[s].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let o=n?.[e.id];(!o||!e.equals(o))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r,cullRect:n,isPicking:o}){let{tile:s}=e.props,{id:i}=r;if(!s.selected||!s.viewportIds.includes(i))return!1;if(o&&n&&s.content?.cartographicOrigin){let[a,c]=r.project(s.content.cartographicOrigin),l=n.x+n.width/2,f=n.y+n.height/2,u=Math.max(r.width,r.height)/4,h=a-l,p=c-f;if(h*h+p*p>u*u)return!1}return!0}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let r=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,o=Array.isArray(n)?n[0]:n,{tileset:s,...i}=r,a={loadOptions:{...i},...s},c=e;if("preload"in o&&typeof o.preload=="function"){let u=await o.preload(e,r);u.url&&(c=u.url),u.headers&&(a.loadOptions.core={...a.loadOptions.core,fetch:{...a.loadOptions.core?.fetch,headers:u.headers}}),Object.assign(a,u)}let l=await(0,V0.load)(c,o,a.loadOptions),f=new go(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...a});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;e.tileDrawn=!1,this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,o=Object.keys(e).length;!n||!o||!r||r.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case ke.POINTCLOUD:return this._makePointCloudLayer(e,r);case ke.SCENEGRAPH:return this._make3DModelLayer(e);case ke.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:o,constantRGBA:s,cartographicOrigin:i,modelMatrix:a}=e.content,{positions:c,normals:l,colors:f}=n;if(!c)return null;let u=r&&r.props.data||{header:{vertexCount:o},attributes:{POSITION:c,NORMAL:l,COLOR_0:f}},{pointSize:h,getPointColor:p}=this.props,d=this.getSubLayerClass("pointcloud",D0.PointCloudLayer);return new d({pointSize:h},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:u,coordinateSystem:qt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:i,modelMatrix:a,getColor:s||p,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:o,modelMatrix:s}=e.content,i=this.getSubLayerClass("scenegraph",G0.ScenegraphLayer);return new i({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||O0,scenegraph:r,coordinateSystem:qt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:o,indices:s,modelMatrix:i,cartographicOrigin:a,coordinateSystem:c=qt.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:f}=n,{_getMeshColor:u}=this.props,h=r&&r.props.mesh||new U0.Geometry({topology:"triangle-list",attributes:N3(o),indices:s}),p=this.getSubLayerClass("mesh",Lm);return new p(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:h,data:O0,getColor:u(e),pbrMaterial:l,modelMatrix:i,coordinateOrigin:a,coordinateSystem:c,featureIds:f,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let o=r[n.id]=r[n.id]||{tile:n},{layer:s}=o;return n.selected&&(s?o.needsUpdate&&(s=this._getSubLayer(n,s),o.needsUpdate=!1):s=this._getSubLayer(n)),o.layer=s,s}).filter(Boolean):null}};Co.defaultProps=P3;Co.layerName="Tile3DLayer";var H0=Co;function N3(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var zi=U(Xe(),1),mf=U(Ys(),1),K0=U(Xe(),1);var O3=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function uf(t){return t>>1^-(t&1)}function U3(t){let e=0,r={};for(let[n,o]of O3){let s=o===8?t.getFloat64:t.getFloat32;r[n]=s.call(t,e,!0),e+=o}return{header:r,headerEndPosition:e}}function D3(t,e){let r=e,n=3,o=t.getUint32(r,!0),s=new Uint16Array(o*n);r+=Uint32Array.BYTES_PER_ELEMENT;let i=Uint16Array.BYTES_PER_ELEMENT,a=o*i,c=r,l=c+a,f=l+a,u=0,h=0,p=0;for(let d=0;d<o;d++)u+=uf(t.getUint16(c+i*d,!0)),h+=uf(t.getUint16(l+i*d,!0)),p+=uf(t.getUint16(f+i*d,!0)),s[d]=u,s[d+o]=h,s[d+o*2]=p;return r+=a*3,{vertexData:s,vertexDataEndPosition:r}}function Bo(t,e,r,n,o=!0){let s;if(n===2?s=new Uint16Array(t,e,r):s=new Uint32Array(t,e,r),!o)return s;let i=0;for(let a=0;a<s.length;++a){let c=s[a];s[a]=i-c,c===0&&++i}return s}function G3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%i!==0&&(n+=i-n%i);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Bo(t.buffer,n,c,i);return n+=c*i,{triangleIndicesEndPosition:n,triangleIndices:l}}function V3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Bo(t.buffer,n,a,i,!1);n+=a*i;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let f=Bo(t.buffer,n,l,i,!1);n+=l*i;let u=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Bo(t.buffer,n,u,i,!1);n+=u*i;let p=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let d=Bo(t.buffer,n,p,i,!1);return n+=p*i,{edgeIndicesEndPosition:n,westIndices:c,southIndices:f,eastIndices:h,northIndices:d}}function H3(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function z3(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function k3(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let o=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let s=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let i=new DataView(t.buffer,n,s);switch(o){case 1:{r.vertexNormals=H3(i);break}case 2:{r.waterMask=z3(i);break}default:}n+=s}return{extensions:r,extensionsEndPosition:n}}var Er={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},j3={maxDecodingStep:Er.extensions};function hf(t,e){let r=Object.assign({},j3,e),n=new DataView(t),{header:o,headerEndPosition:s}=U3(n);if(r.maxDecodingStep<Er.vertices)return{header:o};let{vertexData:i,vertexDataEndPosition:a}=D3(n,s);if(r.maxDecodingStep<Er.triangleIndices)return{header:o,vertexData:i};let{triangleIndices:c,triangleIndicesEndPosition:l}=G3(n,i,a);if(r.maxDecodingStep<Er.edgeIndices)return{header:o,vertexData:i,triangleIndices:c};let{westIndices:f,southIndices:u,eastIndices:h,northIndices:p,edgeIndicesEndPosition:d}=V3(n,i,l);if(r.maxDecodingStep<Er.extensions)return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u};let{extensions:g}=k3(n,d);return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u,extensions:g}}function Di(t,e,r,n){let o=n?J3(n,t.POSITION.value):q3(e),s=new t.POSITION.value.constructor(o.length*6),i=new t.TEXCOORD_0.value.constructor(o.length*4),a=new e.constructor(o.length*6);for(let l=0;l<o.length;l++){let f=o[l];W3({edge:f,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:s,newTexcoord0:i,newTriangles:a})}t.POSITION.value=jn(t.POSITION.value,s),t.TEXCOORD_0.value=jn(t.TEXCOORD_0.value,i);let c=e instanceof Array?e.concat(a):jn(e,a);return{attributes:t,triangles:c}}function q3(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,s)=>Math.min(...o)-Math.min(...s)||Math.max(...o)-Math.max(...s));let r=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(r.push(e[n]),n++);return r}function J3(t,e){t.westIndices.sort((n,o)=>e[3*n+1]-e[3*o+1]),t.eastIndices.sort((n,o)=>e[3*o+1]-e[3*n+1]),t.southIndices.sort((n,o)=>e[3*o]-e[3*n]),t.northIndices.sort((n,o)=>e[3*n]-e[3*o]);let r=[];for(let n in t){let o=t[n];for(let s=0;s<o.length-1;s++)r.push([o[s],o[s+1]])}return r}function W3({edge:t,edgeIndex:e,attributes:r,skirtHeight:n,newPosition:o,newTexcoord0:s,newTriangles:i}){let a=r.POSITION.value.length,c=e*2,l=e*2+1;o.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),c*3),o[c*3+2]=o[c*3+2]-n,o.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),l*3),o[l*3+2]=o[l*3+2]-n,s.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),c*2),s.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),l*2);let f=e*2*3;i[f]=t[0],i[f+1]=a/3+l,i[f+2]=t[1],i[f+3]=a/3+l,i[f+4]=t[0],i[f+5]=a/3+c}function pf(t,e={}){let{bounds:r}=e,{header:n,vertexData:o,triangleIndices:s,westIndices:i,northIndices:a,eastIndices:c,southIndices:l}=hf(t,Er.triangleIndices),f=s,u=K3(o,n,r),h=xr(u);if(e?.skirtHeight){let{attributes:p,triangles:d}=Di(u,f,e.skirtHeight,{westIndices:i,northIndices:a,eastIndices:c,southIndices:l});u=p,f=d}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:h},schema:void 0,topology:"triangle-list",mode:4,indices:{value:f,size:1},attributes:u}}function K3(t,e,r){let{minHeight:n,maxHeight:o}=e,[s,i,a,c]=r||[0,0,1,1],l=a-s,f=c-i,u=o-n,h=t.length/3,p=new Float32Array(h*3),d=new Float32Array(h*2);for(let g=0;g<h;g++){let m=t[g]/32767,y=t[g+h]/32767,b=t[g+h*2]/32767;p[3*g+0]=m*l+s,p[3*g+1]=y*f+i,p[3*g+2]=b*u+n,d[2*g+0]=m,d[2*g+1]=y}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:d,size:2}}}var Io=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let o=n+2,s=0,i=0,a=0,c=0,l=0,f=0;for(o&1?a=c=l=r:s=i=f=r;(o>>=1)>1;){let h=s+a>>1,p=i+c>>1;o&1?(a=s,c=i,s=l,i=f):(s=a,i=c,a=l,c=f),l=h,f=p}let u=n*4;this.coords[u+0]=s,this.coords[u+1]=i,this.coords[u+2]=a,this.coords[u+3]=c}}createTile(e){return new df(e,this)}},df=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:o}=this.martini,{terrain:s,errors:i}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],f=n[c+1],u=n[c+2],h=n[c+3],p=l+u>>1,d=f+h>>1,g=p+d-f,m=d+l-p,y=(s[f*o+l]+s[h*o+u])/2,b=d*o+p,M=Math.abs(y-s[b]);if(i[b]=Math.max(i[b],M),a<r){let S=(f+m>>1)*o+(l+g>>1),C=(h+m>>1)*o+(u+g>>1);i[b]=Math.max(i[b],i[S],i[C])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:o}=this,s=0,i=0,a=r-1;n.fill(0);function c(p,d,g,m,y,b){let M=p+g>>1,S=d+m>>1;Math.abs(p-y)+Math.abs(d-b)>1&&o[S*r+M]>e?(c(y,b,p,d,M,S),c(g,m,y,b,M,S)):(n[d*r+p]=n[d*r+p]||++s,n[m*r+g]=n[m*r+g]||++s,n[b*r+y]=n[b*r+y]||++s,i++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(s*2),f=new Uint32Array(i*3),u=0;function h(p,d,g,m,y,b){let M=p+g>>1,S=d+m>>1;if(Math.abs(p-y)+Math.abs(d-b)>1&&o[S*r+M]>e)h(y,b,p,d,M,S),h(g,m,y,b,M,S);else{let C=n[d*r+p]-1,_=n[m*r+g]-1,v=n[b*r+y]-1;l[2*C]=p,l[2*C+1]=d,l[2*_]=g,l[2*_+1]=m,l[2*v]=y,l[2*v+1]=b,f[u++]=C,f[u++]=_,f[u++]=v}}return h(0,0,a,a,a,0),h(a,a,0,0,0,a),{vertices:l,triangles:f}}};var vo=class{constructor(e,r,n=r){this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let o=r-1,s=n-1,i=this._addPoint(0,0),a=this._addPoint(o,0),c=this._addPoint(0,s),l=this._addPoint(o,s),f=this._addTriangle(l,i,c,-1,-1,-1);this._addTriangle(i,l,a,f,-1,-1),this._flush()}run(e=1){for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],o=2*this.triangles[n*3+0],s=2*this.triangles[n*3+1],i=2*this.triangles[n*3+2];this._findCandidate(e[o],e[o+1],e[s],e[s+1],e[i],e[i+1],n)}this._pendingLen=0}_findCandidate(e,r,n,o,s,i,a){let c=Math.min(e,n,s),l=Math.min(r,o,i),f=Math.max(e,n,s),u=Math.max(r,o,i),h=_r(n,o,s,i,c,l),p=_r(s,i,e,r,c,l),d=_r(e,r,n,o,c,l),g=o-r,m=e-n,y=i-o,b=n-s,M=r-i,S=s-e,C=_r(e,r,n,o,s,i),_=this.heightAt(e,r)/C,v=this.heightAt(n,o)/C,E=this.heightAt(s,i)/C,T=0,A=0,B=0,L=0;for(let F=l;F<=u;F++){let w=0;h<0&&y!==0&&(w=Math.max(w,Math.floor(-h/y))),p<0&&M!==0&&(w=Math.max(w,Math.floor(-p/M))),d<0&&g!==0&&(w=Math.max(w,Math.floor(-d/g)));let D=h+y*w,W=p+M*w,z=d+g*w,re=!1;for(let Y=c+w;Y<=f;Y++){if(D>=0&&W>=0&&z>=0){re=!0;let X=_*D+v*W+E*z,ee=Math.abs(X-this.heightAt(Y,F));L+=ee*ee,ee>T&&(T=ee,A=Y,B=F)}else if(re)break;D+=y,W+=M,z+=g}h+=b,p+=S,d+=m}(A===e&&B===r||A===n&&B===o||A===s&&B===i)&&(T=0),this._candidates[2*a]=A,this._candidates[2*a+1]=B,this._rms[a]=L,this._queuePush(a,T,L)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,o=e*3+2,s=this.triangles[r],i=this.triangles[n],a=this.triangles[o],c=this.coords[2*s],l=this.coords[2*s+1],f=this.coords[2*i],u=this.coords[2*i+1],h=this.coords[2*a],p=this.coords[2*a+1],d=this._candidates[2*e],g=this._candidates[2*e+1],m=this._addPoint(d,g);if(_r(c,l,f,u,d,g)===0)this._handleCollinear(m,r);else if(_r(f,u,h,p,d,g)===0)this._handleCollinear(m,n);else if(_r(h,p,c,l,d,g)===0)this._handleCollinear(m,o);else{let y=this._halfedges[r],b=this._halfedges[n],M=this._halfedges[o],S=this._addTriangle(s,i,m,y,-1,-1,r),C=this._addTriangle(i,a,m,b,-1,S+1),_=this._addTriangle(a,s,m,M,S+2,C+1);this._legalize(S),this._legalize(C),this._legalize(_)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,o,s,i,a=this.triangles.length){let c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=o,this._halfedges[a+1]=s,this._halfedges[a+2]=i,o>=0&&(this._halfedges[o]=a+0),s>=0&&(this._halfedges[s]=a+1),i>=0&&(this._halfedges[i]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,o=r-r%3,s=n+(e+1)%3,i=n+(e+2)%3,a=o+(r+2)%3,c=o+(r+1)%3,l=this.triangles[i],f=this.triangles[e],u=this.triangles[s],h=this.triangles[a],p=this.coords;if(!X3(p[2*l],p[2*l+1],p[2*f],p[2*f+1],p[2*u],p[2*u+1],p[2*h],p[2*h+1]))return;let d=this._halfedges[s],g=this._halfedges[i],m=this._halfedges[a],y=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(o/3);let b=this._addTriangle(l,h,u,-1,m,d,n),M=this._addTriangle(h,l,f,b,g,y,o);this._legalize(b+1),this._legalize(M+2)}_handleCollinear(e,r){let n=r-r%3,o=n+(r+1)%3,s=n+(r+2)%3,i=this.triangles[s],a=this.triangles[r],c=this.triangles[o],l=this._halfedges[o],f=this._halfedges[s],u=this._halfedges[r];if(u<0){let _=this._addTriangle(e,i,a,-1,f,-1,n),v=this._addTriangle(i,e,c,_,-1,l);this._legalize(_+1),this._legalize(v+2);return}let h=u-u%3,p=h+(u+2)%3,d=h+(u+1)%3,g=this.triangles[p],m=this._halfedges[p],y=this._halfedges[d];this._queueRemove(h/3);let b=this._addTriangle(i,a,e,f,-1,-1,n),M=this._addTriangle(a,g,e,y,-1,b+1,h),S=this._addTriangle(g,c,e,m,-1,M+1),C=this._addTriangle(c,i,e,l,b+2,S+1);this._legalize(b),this._legalize(M),this._legalize(S),this._legalize(C)}_queuePush(e,r,n){let o=this._queue.length;this._queueIndices[e]=o,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(o)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let o=this._pending.indexOf(e);if(o!==-1)this._pending[o]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],o=this._queue[r];this._queue[e]=o,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[o]=e;let s=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=s}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let o=2*n+1;if(o>=r||o<0)break;let s=o+1,i=o;if(s<r&&this._queueLess(s,o)&&(i=s),!this._queueLess(i,n))break;this._queueSwap(n,i),n=i}return n>e}};function _r(t,e,r,n,o,s){return(r-o)*(e-s)-(n-s)*(t-o)}function X3(t,e,r,n,o,s,i,a){let c=t-i,l=e-a,f=r-i,u=n-a,h=o-i,p=s-a,d=c*c+l*l,g=f*f+u*u,m=h*h+p*p;return c*(u*m-g*p)-l*(f*m-g*h)+d*(f*p-u*h)<0}function j0(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:o}=e,{data:s,width:i,height:a}=t,c,l;switch(e.tesselator){case"martini":c=Gi(s,i,a,o,e.tesselator),l=z0(r,i,c);break;case"delatin":c=Gi(s,i,a,o,e.tesselator),l=k0(r,i,a,c);break;default:i===a&&!(a&i-1)?(c=Gi(s,i,a,o,"martini"),l=z0(r,i,c)):(c=Gi(s,i,a,o,"delatin"),l=k0(r,i,a,c));break}let{vertices:f}=l,{triangles:u}=l,h=Y3(f,c,i,a,n),p=xr(h);if(e.skirtHeight){let{attributes:d,triangles:g}=Di(h,u,e.skirtHeight);h=d,u=g}return{loaderData:{header:{}},header:{vertexCount:u.length,boundingBox:p},mode:4,indices:{value:Uint32Array.from(u),size:1},attributes:h}}function z0(t,e,r){let n=e+1,s=new Io(n).createTile(r),{vertices:i,triangles:a}=s.getMesh(t);return{vertices:i,triangles:a}}function k0(t,e,r,n){let o=new vo(n,e+1,r+1);o.run(t);let{coords:s,triangles:i}=o;return{vertices:s,triangles:i}}function Gi(t,e,r,n,o){let{rScaler:s,bScaler:i,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let f=0,u=0;u<r;u++)for(let h=0;h<e;h++,f++){let p=f*4,d=t[p+0],g=t[p+1],m=t[p+2];l[f+u]=d*s+g*a+m*i+c}if(o==="martini"){for(let f=(e+1)*e,u=0;u<e;u++,f++)l[f]=l[f-e-1];for(let f=r,u=0;u<r+1;u++,f+=r+1)l[f]=l[f-1]}return l}function Y3(t,e,r,n,o){let s=r+1,i=t.length/2,a=new Float32Array(i*3),c=new Float32Array(i*2),[l,f,u,h]=o||[0,0,r,n],p=(u-l)/r,d=(h-f)/n;for(let g=0;g<i;g++){let m=t[g*2],y=t[g*2+1],b=y*s+m;a[3*g+0]=m*p+l,a[3*g+1]=-y*d+h,a[3*g+2]=e[b],c[2*g+0]=m/r,c[2*g+1]=y/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Vi="4.4.1";var Hi={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:Vi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var q0={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Vi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var Q3={...Hi,parse:Z3};async function Z3(t,e,r){let n={...e,core:{...e?.core,mimeType:"application/x.image"},image:{...e?.image,type:"data"}},o=await Oe(t,[],n,r),s={...Q3.options.terrain,...e?.terrain};return j0(o,s)}var e5={...q0,parseSync:(t,e)=>pf(t,e?.["quantized-mesh"]),parse:async(t,e)=>pf(t,e?.["quantized-mesh"])};var J0=[1],$3={...pr.defaultProps,elevationData:Gt,texture:{...Gt,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Hi]};function W0(t){return Array.isArray(t)?t.join(";"):t||""}var Ro=class extends zi.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:s}=e,i=s&&(Array.isArray(s)||ev(s));this.setState({isTiled:i})}let o=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&o){let s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&zi.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:o,signal:s}){if(!e)return null;let i=this.getLoadOptions();i={...i,terrain:{skirtHeight:this.state.isTiled?o*2:0,...i?.terrain,bounds:r,meshMaxError:o,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:i,signal:s})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:o,elevationDecoder:s,meshMaxError:i}=this.props,{viewport:a}=this.context,c=ft(r,e),l=o&&ft(o,e),{signal:f}=e,u=[0,0],h=[0,0];if(a.isGeospatial){let m=e.bbox;u=a.projectFlat([m.west,m.south]),h=a.projectFlat([m.east,m.north])}else{let m=e.bbox;u=[m.left,m.bottom],h=[m.right,m.top]}let p=[u[0],u[1],h[0],h[1]],d=this.loadTerrain({elevationData:c,bounds:p,elevationDecoder:s,meshMaxError:i,signal:f}),g=l?n(l,{propName:"texture",layer:this,loaders:[],signal:f}).catch(m=>null):Promise.resolve(null);return Promise.all([d,g])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",mf.SimpleMeshLayer),{color:n,wireframe:o,material:s}=this.props,{data:i}=e;if(!i)return null;let[a,c]=i;return new r(e,{data:J0,mesh:a,texture:c,_instanced:!1,coordinateSystem:K0.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:o,material:s})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(i=>i.content).filter(Boolean).map(i=>i[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let o=Math.min(...n.map(i=>i[0])),s=Math.max(...n.map(i=>i[1]));(!r||o<r[0]||s>r[1])&&this.setState({zRange:[o,s]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:o,wireframe:s,meshMaxError:i,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:g,maxCacheSize:m,maxCacheByteSize:y,refinementStrategy:b}=this.props;if(this.state.isTiled)return new pr(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:W0(n),texture:W0(o),meshMaxError:i,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:g,maxCacheSize:m,maxCacheByteSize:y,refinementStrategy:b});if(!n)return null;let M=this.getSubLayerClass("mesh",mf.SimpleMeshLayer);return new M(this.getSubLayerProps({id:"mesh"}),{data:J0,mesh:this.state.terrain,texture:o,_instanced:!1,getPosition:S=>[0,0,0],getColor:e,material:r,wireframe:s})}};Ro.defaultProps=$3;Ro.layerName="TerrainLayer";var X0=Ro,ev=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var $i=U(Xe(),1),Lf=U(Ke(),1),v1=U(Q0(),1);function Z0(t,e,r){switch(t.type){case"Point":return rv(t,e,r);case"LineString":return tv(t,e,r);case"Polygon":return $0(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function $0(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.polygonIndices.value.filter(c=>c>=e&&c<=r),s=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(o.length>2)){let c=[];for(let l=0;l<s.length-1;l++){let f=s[l],u=s[l+1],h=ki(n,f,u);c.push(h)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<o.length-1;c++){let l=o[c],f=o[c+1],u=$0(t,l,f).coordinates;a.push(u)}return{type:"MultiPolygon",coordinates:a}}function tv(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(o.length>2))return{type:"LineString",coordinates:ki(n,o[0],o[1])};let i=[];for(let a=0;a<o.length-1;a++){let c=ki(n,o[a],o[a+1]);i.push(c)}return{type:"MultiLineString",coordinates:i}}function rv(t,e,r){let{positions:n}=t,o=ki(n,e,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function ki(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let o=e;o<r;o++){let s=Array();for(let i=o*t.size;i<(o+1)*t.size;i++)s.push(Number(t.value[i]));n.push(s)}return n}var wo={x:0,y:1,z:2};function Cr(t,e={}){let{start:r=0,end:n=t.length,plane:o="xy"}=e,s=e.size||2,i=0,a=wo[o[0]],c=wo[o[1]];for(let l=r,f=n-s;l<n;l+=s)i+=(t[l+a]-t[f+a])*(t[l+c]+t[f+c]),f=l;return i/2}function Af(t,e,r=2,n,o="xy"){let s=e&&e.length,i=s?e[0]*r:t.length,a=t1(t,0,i,r,!0,n&&n[0],o),c=[];if(!a||a.next===a.prev)return c;let l,f,u,h,p,d,g;if(s&&(a=lv(t,e,a,r,n,o)),t.length>80*r){h=f=t[0],p=u=t[1];for(let m=r;m<i;m+=r)d=t[m],g=t[m+1],d<h&&(h=d),g<p&&(p=g),d>f&&(f=d),g>u&&(u=g);l=Math.max(f-h,u-p),l=l!==0?32767/l:0}return Lo(a,c,r,h,p,l,0),c}function t1(t,e,r,n,o,s,i){let a,c;s===void 0&&(s=Cr(t,{start:e,end:r,size:n,plane:i}));let l=wo[i[0]],f=wo[i[1]];if(o===s<0)for(a=e;a<r;a+=n)c=e1(a,t[a+l],t[a+f],c);else for(a=r-n;a>=e;a-=n)c=e1(a,t[a+l],t[a+f],c);return c&&Ji(c,c.next)&&(Po(c),c=c.next),c}function Br(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Ji(r,r.next)||ne(r.prev,r,r.next)===0)){if(Po(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function Lo(t,e,r,n,o,s,i){if(!t)return;!i&&s&&dv(t,n,o,s);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?iv(t,n,o,s):sv(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Po(t),t=l.next,a=l.next;continue}if(t=l,t===a){i?i===1?(t=av(Br(t),e,r),Lo(t,e,r,n,o,s,2)):i===2&&cv(t,e,r,n,o,s):Lo(Br(t),e,r,n,o,s,1);break}}}function sv(t){let e=t.prev,r=t,n=t.next;if(ne(e,r,n)>=0)return!1;let o=e.x,s=r.x,i=n.x,a=e.y,c=r.y,l=n.y,f=o<s?o<i?o:i:s<i?s:i,u=a<c?a<l?a:l:c<l?c:l,h=o>s?o>i?o:i:s>i?s:i,p=a>c?a>l?a:l:c>l?c:l,d=n.next;for(;d!==e;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&An(o,a,s,c,i,l,d.x,d.y)&&ne(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function iv(t,e,r,n){let o=t.prev,s=t,i=t.next;if(ne(o,s,i)>=0)return!1;let a=o.x,c=s.x,l=i.x,f=o.y,u=s.y,h=i.y,p=a<c?a<l?a:l:c<l?c:l,d=f<u?f<h?f:h:u<h?u:h,g=a>c?a>l?a:l:c>l?c:l,m=f>u?f>h?f:h:u>h?u:h,y=gf(p,d,e,r,n),b=gf(g,m,e,r,n),M=t.prevZ,S=t.nextZ;for(;M&&M.z>=y&&S&&S.z<=b;){if(M.x>=p&&M.x<=g&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&An(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0||(M=M.prevZ,S.x>=p&&S.x<=g&&S.y>=d&&S.y<=m&&S!==o&&S!==i&&An(a,f,c,u,l,h,S.x,S.y)&&ne(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;M&&M.z>=y;){if(M.x>=p&&M.x<=g&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&An(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0)return!1;M=M.prevZ}for(;S&&S.z<=b;){if(S.x>=p&&S.x<=g&&S.y>=d&&S.y<=m&&S!==o&&S!==i&&An(a,f,c,u,l,h,S.x,S.y)&&ne(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function av(t,e,r){let n=t;do{let o=n.prev,s=n.next.next;!Ji(o,s)&&r1(o,n,n.next,s)&&Fo(o,s)&&Fo(s,o)&&(e.push(o.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),Po(n),Po(n.next),n=t=s),n=n.next}while(n!==t);return Br(n)}function cv(t,e,r,n,o,s){let i=t;do{let a=i.next.next;for(;a!==i.prev;){if(i.i!==a.i&&Av(i,a)){let c=n1(i,a);i=Br(i,i.next),c=Br(c,c.next),Lo(i,e,r,n,o,s,0),Lo(c,e,r,n,o,s,0);return}a=a.next}i=i.next}while(i!==t)}function lv(t,e,r,n,o,s){let i=[],a,c,l,f,u;for(a=0,c=e.length;a<c;a++)l=e[a]*n,f=a<c-1?e[a+1]*n:t.length,u=t1(t,l,f,n,!1,o&&o[a+1],s),u===u.next&&(u.steiner=!0),i.push(gv(u));for(i.sort(fv),a=0;a<i.length;a++)r=uv(i[a],r);return r}function fv(t,e){return t.x-e.x}function uv(t,e){let r=hv(t,e);if(!r)return e;let n=n1(r,t);return Br(n,n.next),Br(r,r.next)}function hv(t,e){let r=e,n=t.x,o=t.y,s=-1/0,i;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>s&&(s=h,i=r.x<r.next.x?r:r.next,h===n))return i}r=r.next}while(r!==e);if(!i)return null;let a=i,c=i.x,l=i.y,f=1/0,u;r=i;do n>=r.x&&r.x>=c&&n!==r.x&&An(o<l?n:s,o,c,l,o<l?s:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),Fo(r,t)&&(u<f||u===f&&(r.x>i.x||r.x===i.x&&pv(i,r)))&&(i=r,f=u)),r=r.next;while(r!==a);return i}function pv(t,e){return ne(t.prev,t,e.prev)<0&&ne(e.next,t,t.next)<0}function dv(t,e,r,n){let o=t;do o.z===0&&(o.z=gf(o.x,o.y,e,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,mv(o)}function mv(t){let e,r,n=1,o,s,i,a,c,l;do{for(s=t,t=null,l=null,o=0;s;){for(o++,a=s,i=0,r=0;r<n&&(i++,a=a.nextZ,!!a);r++);for(c=n;i>0||c>0&&a;)i!==0&&(c===0||!a||s.z<=a.z)?(e=s,s=s.nextZ,i--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=a}l.nextZ=null,n*=2}while(o>1);return t}function gf(t,e,r,n,o){return t=(t-r)*o|0,e=(e-n)*o|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function gv(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function An(t,e,r,n,o,s,i,a){return(o-i)*(e-a)>=(t-i)*(s-a)&&(t-i)*(n-a)>=(r-i)*(e-a)&&(r-i)*(s-a)>=(o-i)*(n-a)}function Av(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!xv(t,e)&&(Fo(t,e)&&Fo(e,t)&&yv(t,e)&&(ne(t.prev,t,e.prev)||ne(t,e.prev,e))||Ji(t,e)&&ne(t.prev,t,t.next)>0&&ne(e.prev,e,e.next)>0)}function ne(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Ji(t,e){return t.x===e.x&&t.y===e.y}function r1(t,e,r,n){let o=qi(ne(t,e,r)),s=qi(ne(t,e,n)),i=qi(ne(r,n,t)),a=qi(ne(r,n,e));return!!(o!==s&&i!==a||o===0&&ji(t,r,e)||s===0&&ji(t,n,e)||i===0&&ji(r,t,n)||a===0&&ji(r,e,n))}function ji(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function qi(t){return t>0?1:t<0?-1:0}function xv(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&r1(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Fo(t,e){return ne(t.prev,t,t.next)<0?ne(t,e,t.next)>=0&&ne(t,t.prev,e)>=0:ne(t,e,t.prev)<0||ne(t,t.next,e)<0}function yv(t,e){let r=t,n=!1,o=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&o<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function n1(t,e){let r=new No(t.i,t.x,t.y),n=new No(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=o,o.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function e1(t,e,r,n){let o=new No(t,e,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function Po(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var No=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Wi(t,e,r){let n=Ev(t),o=Object.keys(n).filter(s=>n[s]!==Array);return _v(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function Ev(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let o=r.properties[n];e[n]=wv(o,e[n])}return e}function _v(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:s,linePathsCount:i,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=e,{numericPropKeys:d=[],PositionDataType:g=Float32Array,triangulate:m=!0}=r,y=t[0]&&"id"in t[0],b=t.length>65535?Uint32Array:Uint16Array,M={type:"Point",positions:new g(n*p),globalFeatureIds:new b(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:s>65535?new Uint32Array(i+1):new Uint16Array(i+1),positions:new g(s*p),globalFeatureIds:new b(s),featureIds:a>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},C={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new g(c*p),globalFeatureIds:new b(c),featureIds:u>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};m&&(C.triangles=[]);for(let v of[M,S,C])for(let E of d){let T=h[E];v.numericProps[E]=new T(v.positions.length/p)}S.pathIndices[i]=s,C.polygonIndices[l]=c,C.primitivePolygonIndices[f]=c;let _={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let v of t){let E=v.geometry,T=v.properties||{};switch(E.type){case"Point":Cv(E,M,_,p,T),M.properties.push(yf(T,d)),y&&M.fields.push({id:v.id}),_.pointFeature++;break;case"LineString":Bv(E,S,_,p,T),S.properties.push(yf(T,d)),y&&S.fields.push({id:v.id}),_.lineFeature++;break;case"Polygon":Iv(E,C,_,p,T),C.properties.push(yf(T,d)),y&&C.fields.push({id:v.id}),_.polygonFeature++;break;default:throw new Error("Invalid geometry type")}_.feature++}return Rv(M,S,C,p)}function Cv(t,e,r,n,o){e.positions.set(t.data,r.pointPosition*n);let s=t.data.length/n;bf(e,o,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function Bv(t,e,r,n,o){e.positions.set(t.data,r.linePosition*n);let s=t.data.length/n;bf(e,o,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=t.indices[i],l=i===a-1?t.data.length:t.indices[i+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function Iv(t,e,r,n,o){e.positions.set(t.data,r.polygonPosition*n);let s=t.data.length/n;bf(e,o,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[i],f=t.indices[i],u=t.indices[i+1];for(let p=0,d=f.length;p<d;++p){let g=f[p],m=p===d-1?u===void 0?t.data.length:u[0]:f[p+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(m-g)/n}let h=r.polygonPosition;vv(e,l,f,{startPosition:c,endPosition:h,coordLength:n})}}function vv(t,e,r,{startPosition:n,endPosition:o,coordLength:s}){if(!t.triangles)return;let i=n*s,a=o*s,c=t.positions.subarray(i,a),l=r[0],f=r.slice(1).map(h=>(h-l)/s),u=Af(c,f,s,e);for(let h=0,p=u.length;h<p;++h)t.triangles.push(n+u[h])}function xf(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function Rv(t,e,r,n){let o={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:xf(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:xf(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:xf(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function bf(t,e,r,n){for(let o in t.numericProps)if(o in e){let s=e[o];t.numericProps[o].fill(s,r,r+n)}}function yf(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function wv(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Oo(t,e){let r=e?.globalFeatureId;return r!==void 0?Lv(t,r):Fv(t,e?.type)}function Lv(t,e){let r=i1(t);for(let n of r){let o=0,s=n.featureIds.value[0];for(let i=0;i<n.featureIds.value.length;i++){let a=n.featureIds.value[i];if(a!==s){if(e===n.globalFeatureIds.value[o])return Ki(n,o,i);o=i,s=a}}if(e===n.globalFeatureIds.value[o])return Ki(n,o,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function Fv(t,e){let r=i1(t,e);return Pv(r)}function i1(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function Pv(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,o=r.featureIds.value[0];for(let s=0;s<r.featureIds.value.length;s++){let i=r.featureIds.value[s];i!==o&&(e.push(Ki(r,n,s)),n=s,o=i)}e.push(Ki(r,n,r.featureIds.value.length))}return e}function Ki(t,e,r){let n=Z0(t,e,r),o=Ov(t,e,r),s=Nv(t,e,r);return{type:"Feature",geometry:n,properties:o,...s}}function Nv(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function Ov(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let o in t.numericProps)n[o]=t.numericProps[o].value[e];return n}var Cf=U(p1(),1);function eR(t){let e=0;for(let r=0,n=t.length-1,o,s;r<t.length;n=r++)o=t[r],s=t[n],e+=(s[0]-o[0])*(o[1]+s[1]);return e}function Sf(t,e){if(Array.isArray(t[0])){for(let n of t)Sf(n,e);return}let r=t;r[0]/=e,r[1]/=e}function d1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function Ef(t,e,r){if(typeof t[0][0]!="number"){for(let i of t)Ef(i,e,r);return}let n=r*Math.pow(2,e.z),o=r*e.x,s=r*e.y;for(let i=0;i<t.length;i++){let a=t[i];a[0]=(a[0]+o)*360/n-180;let c=180-(a[1]+s)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(c*Math.PI/180))-90}}function m1(t,e,r){let{x:n,y:o,z:s}=e,i=r*Math.pow(2,s),a=r*n,c=r*o;for(let l=0,f=t.length;l<f;l+=2){t[l]=(t[l]+a)*360/i-180;let u=180-(t[l+1]+c)*360/i;t[l+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function g1(t){let e=t.length;if(e<=1)return[t];let r=[],n,o;for(let s=0;s<e;s++){let i=eR(t[s]);i!==0&&(o===void 0&&(o=i<0),o===i<0?(n&&r.push(n),n=[t[s]]):n&&n.push(t[s]))}return n&&r.push(n),r}function A1(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[Cr(t.data)]],indices:[t.indices]};let n=[],o=[],s=[],i=[],a,c=0;for(let l,f=0,u;f<e;f++){u=t.indices[f]-c,l=t.indices[f+1]-c||t.data.length;let h=t.data.slice(u,l),p=Cr(h);if(p===0){let d=t.data.slice(0,u),g=t.data.slice(l);t.data=d.concat(g),c+=l-u;continue}a===void 0&&(a=p<0),a===p<0?(i.length&&(n.push(s),o.push(i)),i=[u],s=[p]):(s.push(p),i.push(u))}return s&&n.push(s),i.length&&o.push(i),{type:r,areas:n,indices:o,data:t.data}}var Ir=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(e,r,n,o,s,i){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=o,this._values=s,this._geometryInfo=i,e.readFields(tR,this,r)}toGeoJSONFeature(e,r){let n=this.loadGeometry();switch(e){case"wgs84":return x1(this,n,o=>Ef(o,r,this.extent));default:return x1(this,n,Sf)}}toBinaryFeature(e,r){let n=this.loadFlatGeometry();switch(e){case"wgs84":return this._toBinaryCoordinates(n,o=>m1(o,r,this.extent));default:return this._toBinaryCoordinates(n,d1)}}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=1/0,c=-1/0,l=1/0,f=-1/0;for(;e.pos<r;){if(o<=0){let u=e.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)s+=e.readSVarint(),i+=e.readSVarint(),s<a&&(a=s),s>c&&(c=s),i<l&&(l=i),i>f&&(f=i);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,f]}_toBinaryCoordinates(e,r){let n;r(e.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=e.indices.length,n={type:"Point",...e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=e.indices.length,this._geometryInfo.linePositionsCount+=e.data.length/o,n={type:"LineString",...e};break;case 3:n=A1(e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let i of n.indices)this._geometryInfo.polygonRingsCount+=i.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let s={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(s.id=this.id),s}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=[],c;for(;e.pos<r;){if(o<=0){let l=e.readVarint();n=l&7,o=l>>3}switch(o--,n){case 1:case 2:s+=e.readSVarint(),i+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([s,i]);break;case 7:c&&c.push(c[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return c&&a.push(c),a}loadFlatGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o,s=0,i=0,a=0,c=0,l=[],f=[];for(;e.pos<r;)if(s<=0&&(o=e.readVarint(),n=o&7,s=o>>3),s--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),n===1&&l.push(c),f.push(i,a),c+=2;else if(n===7){if(c>0){let u=l[l.length-1];f.push(f[u],f[u+1]),c+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:l}}};Jt(Ir,"types",["Unknown","Point","LineString","Polygon"]);function x1(t,e,r){let n=Ir.types[t.type],o,s,i;switch(t.type){case 1:let c=[];for(o=0;o<e.length;o++)c[o]=e[o][0];i=c,r(i,t.extent);break;case 2:for(i=e,o=0;o<i.length;o++)r(i[o],t.extent);break;case 3:for(i=g1(e),o=0;o<i.length;o++)for(s=0;s<i[o].length;s++)r(i[o][s],t.extent);break;default:throw new Error("illegal vector tile type")}i.length===1?i=i[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:i},properties:t.properties};return t.id!==null&&(a.properties||={},a.properties.id=t.id),a}function tR(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?rR(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function rR(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],o=e._values[t.readVarint()];e.properties[n]=o}}var Qi=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(nR,this,r),this.length=this._features.length}getGeoJSONFeature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new Ir(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new Ir(this._pbf,n,this.extent,this._keys,this._values,r)}};function nR(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(oR(r)))}function oR(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var Uo=class{layers;constructor(e,r){this.layers=e.readFields(sR,{},r)}};function sR(t,e,r){if(t===3&&r){let n=new Qi(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Bf(t,e){let r=aR(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:_f(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:y1(t,r)};case"geojson":return y1(t,r);case"binary-geometry":return _f(t,r);case"binary":return _f(t,r);default:throw new Error(n||"undefined shape")}}function _f(t,e){let[r,n]=iR(t,e),o=Wi(r,n);return o.byteLength=t.byteLength,o}function iR(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let o=new Uo(new Cf.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(o.layers)).forEach(i=>{let a=o.layers[i];if(a)for(let c=0;c<a.length;c++){let l=a.getBinaryFeature(c,n),f=lR(l,e,i);r.push(f)}}),[r,n]}function y1(t,e){if(t.byteLength<=0)return[];let r=[],n=new Uo(new Cf.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(s=>{let i=n.layers[s];if(i)for(let a=0;a<i.length;a++){let c=i.getGeoJSONFeature(a),l=cR(c,e,s);r.push(l)}}),r}function aR(t){if(!t?.mvt)throw new Error("mvt options required");if(t.mvt?.coordinates==="wgs84"&&!t.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.gis&&pc.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function cR(t,e,r){let n=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=r),n}function lR(t,e,r){let n=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}var b1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var fR="4.4.1",Zi={...b1,dataType:null,batchType:null,version:fR,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},uR={...Zi,parse:async(t,e)=>Bf(t,e),parseSync:Bf,binary:!0};var hR={Point:T1,MultiPoint:pR,LineString:M1,MultiLineString:dR,Polygon:S1,MultiPolygon:mR};function T1([t,e],[r,n],o){let s=Ct(r[0],n[0],t),i=Ct(r[1],n[1],e);return o.unprojectFlat([s,i])}function If(t,e,r){return t.map(n=>T1(n,e,r))}function pR(t,e,r){return If(t,e,r)}function M1(t,e,r){return If(t,e,r)}function dR(t,e,r){return t.map(n=>M1(n,e,r))}function S1(t,e,r){return t.map(n=>If(n,e,r))}function mR(t,e,r){return t.map(n=>S1(n,e,r))}function E1(t,e,r){let n=r.projectFlat([e.west,e.north]),o=r.projectFlat([e.east,e.south]),s=[n,o];return{...t,coordinates:hR[t.type](t.coordinates,s,r)}}var gR=["points","lines","polygons"];function vf(t,e,r,n){for(let o of gR){let s=t[o]&&AR(t[o],e,r,n);if(s>=0)return s}return-1}function AR(t,e,r,n){let o=t.featureIds.value;if(!o.length)return-1;let s=0,i=o[o.length-1]+1;if(n){let c=xR(t,n);if(c)s=c[0],i=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,f)=>l===r&&o[f]>=s&&o[f]<i);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=_1(t.properties,c=>c[e]===r,s,i):t.fields&&(a=_1(t.fields,c=>c.id===r,s,i));return a>=0?yR(t,a):-1}function xR(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let o=0;o<n.length;o++){let{layerName:s}=n[o];s&&(r[s]?r[s][1]=o:r[s]=[o,o])}t.__layers=r}return t.__layers[e]}function yR(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,o=t.globalFeatureIds.value;for(let s=0;s<n.length;s++)r[n[s]]=o[s];t.__ids=r}return t.__ids[e]}function _1(t,e,r,n){for(let o=r;o<n;o++)if(e(t[o],o))return o;return-1}var Rf=512,bR={...Lf.GeoJsonLayer.defaultProps,data:Gt,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Zi],binary:!0},Do=class extends pr{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:o}){o.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=e;s!==r.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Hc(e)){let{onDataLoad:n,fetch:o}=this.props;this.setState({data:null,tileJSON:null});try{r=await o(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:o}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(o)||r.maxzoom<o)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:o,signal:s}=e,i=ft(r,e);if(!i)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,core:{...a?.core,mimeType:"application/x-protobuf"},mvt:{...a?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:o}},c(i,{propName:"data",layer:this,loadOptions:a,signal:s})}renderSubLayers(e){let{x:r,y:n,z:o}=e.tile.index,s=Math.pow(2,o),i=Rf/s,a=-i,c=Rf*r/s,l=Rf*(1-n/s),f=new N().scale([i,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[c,l,0],e.coordinateSystem=$i.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new v1.ClipExtension]);let u=super.renderSubLayers(e);return this.state.binary&&!(u instanceof Lf.GeoJsonLayer)&&$i.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),u}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:o}=this.state,s=e.object,i=null,a=null;s&&(i=wf(s,r),a=C1(s));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==i||o!==a)&&this.setState({highlightColor:c,hoveredFeatureId:i,hoveredFeatureLayerName:a})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=Oo(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=I1(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:o}=this.state,{uniqueIdProperty:s,highlightedFeatureId:i}=this.props,a=e.content,c=B1(i);if(!(B1(r)||c))return-1;let f=c?i:r;return Array.isArray(a)?a.findIndex(u=>{let h=wf(u,s)===f,p=c||C1(u)===n;return h&&p}):a&&o?vf(a,s,f,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,o=n.width,s=n.height,i=n.x,a=n.y,c=[this.id];return r.pickObjects({x:i,y:a,width:o,height:s,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,o=[];for(let s of r){let i=wf(s.object,this.props.uniqueIdProperty);i===void 0?o.push(s.object):n.has(i)||(n.add(i),o.push(s.object))}return o}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:o}=n;if(n._contentWGS84===void 0&&zc(o)){let s=this.state.binary?Oo(n.content):n.content;n._contentWGS84=s.map(i=>I1(i,o,this.context.viewport))}return n._contentWGS84}})})}};Do.layerName="MVTLayer";Do.defaultProps=bR;var R1=Do;function wf(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function C1(t){return t.properties?.layerName||null}function B1(t){return t!=null&&t!==""}function I1(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>E1(t.geometry,e,r).coordinates}),n}var w1="0123456789bcdefghjkmnpqrstuvwxyz",L1={};for(let t=0;t<w1.length;t++)L1[w1.charAt(t)]=t;var TR=-90,MR=90,SR=-180,ER=180;function _R(t){let e=!0,r=MR,n=TR,o=ER,s=SR,i,a=0;for(let c=0,l=t.length;c<l;c++){let f=t[c].toLowerCase();a=L1[f];for(let u=4;u>=0;u--){let h=a>>u&1;e?(i=(o+s)/2,h===1?s=i:o=i):(i=(r+n)/2,h===1?n=i:r=i),e=!e}}return[n,s,r,o]}function F1(t){let[e,r,n,o]=_R(t);return[o,n,o,e,r,e,r,n,o,n]}var CR={getGeohash:{type:"accessor",value:t=>t.geohash}},Go=class extends De{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>F1(r(n,o))}}};Go.layerName="GeohashLayer";Go.defaultProps=CR;var P1=Go;return H1(Vo);})();
|
|
2583
2583
|
/*! Bundled license information:
|
|
2584
2584
|
|
|
2585
2585
|
long/dist/long.js:
|