@mapvx/web-components-ssr 1.4.1 → 1.5.0-dev.1
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/browser/chunk-Bjk3HkK2.js +2 -0
- package/dist/browser/chunk-CCaUxYwr.js +2 -0
- package/dist/browser/chunk-CP_etSVX.js +4343 -0
- package/dist/browser/chunk-CTFjnL_B.js +1 -0
- package/dist/browser/chunk-CdqAsQa0.js +2047 -0
- package/dist/browser/chunk-Dkhxm9pV.js +1 -0
- package/dist/browser/chunk-Dm8HBhbB.js +1 -0
- package/dist/browser/chunk-DsKCGfdq.js +1 -0
- package/dist/browser/chunk-LltjhLJU.js +4115 -0
- package/dist/browser/chunk-UfDdP4s_.js +1 -0
- package/dist/browser/chunk-VDwq1GVr.js +511 -0
- package/dist/browser/main.js +65 -64
- package/package.json +3 -3
- package/dist/browser/chunk-BDMQUEs2.js +0 -4343
- package/dist/browser/chunk-C12DvVrC.js +0 -4113
- package/dist/browser/chunk-CEnPvr71.js +0 -2047
- package/dist/browser/chunk-CIopM6sW.js +0 -508
- package/dist/browser/chunk-DQUK2GdN.js +0 -2
- package/dist/browser/chunk-VKMNXWI5.js +0 -2
- package/dist/browser/chunk-ZOhCrUx8.js +0 -2
- package/dist/browser/chunk-y8EsCUPj.js +0 -1
|
@@ -1,508 +0,0 @@
|
|
|
1
|
-
import {K as Ks$1,B as Bo$1,_ as _s$1,d as dt$1,a as dn$1,y as ye$1,H as Ho$1,m as mn$1,f as fe}from'./chunk-CEnPvr71.js';import {a as Mo$1,D,b as De,f as fi$1,c as Dv$1,p as pa$1,C,N as Nt$1,Z as Zr$1,M as Mt,d as q,e as zp$1,J as Jd$1,n as ne,U as Ue,A as Ae,g as H,r as ri,h as At,u as ue$1,x as xd$1,i as nc$1,k as ur$1,l as ht,W as Wv$1,m as mc$1,o as Jh$1,s as rn$1,t as nu$1,v as N,K as Kt$1,O as Of,w as ji$1,y as re,B as ge,E as nt,F as Da,G as Fa,L as mb$1,P as W,Q as sm$1,R as om$1,T as Tr$1,V as Vs$1,S as Z,X as Ml$1,Y as jp$1,_ as Mi$1,$ as Jr,a0 as d,a1 as ld$1,a2 as Xi,a3 as hd$1,a4 as ka,a5 as y,a6 as xe$1,a7 as re$1,a8 as xe$2,a9 as ub$1,aa as Wc$1,ab as ci,ac as ud$1,ad as rd$1,ae as I,af as Y,ag as id$1,ah as J,ai as mr,aj as Mx$1,ak as Os$1,al as Oc$1,am as Kp$1,an as rc$1,ao as fd$1,ap as Eo$1}from'./chunk-BDMQUEs2.js';import {r as r$1,s as s$1,u,x,v,t,w}from'./main.js';var ec=v((Ap,Ii)=>{"use strict";(function(t$1,e){typeof define=="function"&&define.amd?define([],e):typeof t=="function"&&typeof Ii=="object"&&Ii&&Ii.exports?Ii.exports=e():(t$1.dcodeIO=t$1.dcodeIO||{}).Long=e();})(Ap,function(){"use strict";function t(Y,k,ge){this.low=Y|0,this.high=k|0,this.unsigned=!!ge;}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={},A={};function i(Y,k){var ge,Me,Se;return k?(Y>>>=0,(Se=0<=Y&&Y<256)&&(Me=A[Y],Me)?Me:(ge=d(Y,(Y|0)<0?-1:0,!0),Se&&(A[Y]=ge),ge)):(Y|=0,(Se=-128<=Y&&Y<128)&&(Me=r[Y],Me)?Me:(ge=d(Y,Y<0?-1:0,!1),Se&&(r[Y]=ge),ge))}t.fromInt=i;function c(Y,k){if(isNaN(Y)||!isFinite(Y))return k?X:q;if(k){if(Y<0)return X;if(Y>=F)return Te}else {if(Y<=-N)return Ee;if(Y+1>=N)return be}return Y<0?c(-Y,k).neg():d(Y%v|0,Y/v|0,k)}t.fromNumber=c;function d(Y,k,ge){return new t(Y,k,ge)}t.fromBits=d;var m=Math.pow;function y(Y,k,ge){if(Y.length===0)throw Error("empty string");if(Y==="NaN"||Y==="Infinity"||Y==="+Infinity"||Y==="-Infinity")return q;if(typeof k=="number"?(ge=k,k=!1):k=!!k,ge=ge||10,ge<2||36<ge)throw RangeError("radix");var Me;if((Me=Y.indexOf("-"))>0)throw Error("interior hyphen");if(Me===0)return y(Y.substring(1),k,ge).neg();for(var Se=c(m(ge,8)),ve=q,ke=0;ke<Y.length;ke+=8){var rt=Math.min(8,Y.length-ke),qe=parseInt(Y.substring(ke,ke+rt),ge);if(rt<8){var $e=c(m(ge,rt));ve=ve.mul($e).add(c(qe));}else ve=ve.mul(Se),ve=ve.add(c(qe));}return ve.unsigned=k,ve}t.fromString=y;function _(Y){return Y instanceof t?Y:typeof Y=="number"?c(Y):typeof Y=="string"?y(Y):d(Y.low,Y.high,Y.unsigned)}t.fromValue=_;var E=65536,x=1<<24,v=E*E,F=v*v,N=F/2,U=i(x),q=i(0);t.ZERO=q;var X=i(0,!0);t.UZERO=X;var W=i(1);t.ONE=W;var he=i(1,!0);t.UONE=he;var _e=i(-1);t.NEG_ONE=_e;var be=d(-1,2147483647,!1);t.MAX_VALUE=be;var Te=d(-1,-1,!0);t.MAX_UNSIGNED_VALUE=Te;var Ee=d(0,-2147483648,!1);t.MIN_VALUE=Ee;var se=t.prototype;return se.toInt=function(){return this.unsigned?this.low>>>0:this.low},se.toNumber=function(){return this.unsigned?(this.high>>>0)*v+(this.low>>>0):this.high*v+(this.low>>>0)},se.toString=function(k){if(k=k||10,k<2||36<k)throw RangeError("radix");if(this.isZero())return "0";if(this.isNegative())if(this.eq(Ee)){var ge=c(k),Me=this.div(ge),Se=Me.mul(ge).sub(this);return Me.toString(k)+Se.toInt().toString(k)}else return "-"+this.neg().toString(k);for(var ve=c(m(k,6),this.unsigned),ke=this,rt="";;){var qe=ke.div(ve),$e=ke.sub(qe.mul(ve)).toInt()>>>0,at=$e.toString(k);if(ke=qe,ke.isZero())return at+rt;for(;at.length<6;)at="0"+at;rt=""+at+rt;}},se.getHighBits=function(){return this.high},se.getHighBitsUnsigned=function(){return this.high>>>0},se.getLowBits=function(){return this.low},se.getLowBitsUnsigned=function(){return this.low>>>0},se.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ee)?64:this.neg().getNumBitsAbs();for(var k=this.high!=0?this.high:this.low,ge=31;ge>0&&(k&1<<ge)==0;ge--);return this.high!=0?ge+33:ge+1},se.isZero=function(){return this.high===0&&this.low===0},se.isNegative=function(){return !this.unsigned&&this.high<0},se.isPositive=function(){return this.unsigned||this.high>=0},se.isOdd=function(){return (this.low&1)===1},se.isEven=function(){return (this.low&1)===0},se.equals=function(k){return e(k)||(k=_(k)),this.unsigned!==k.unsigned&&this.high>>>31===1&&k.high>>>31===1?!1:this.high===k.high&&this.low===k.low},se.eq=se.equals,se.notEquals=function(k){return !this.eq(k)},se.neq=se.notEquals,se.lessThan=function(k){return this.comp(k)<0},se.lt=se.lessThan,se.lessThanOrEqual=function(k){return this.comp(k)<=0},se.lte=se.lessThanOrEqual,se.greaterThan=function(k){return this.comp(k)>0},se.gt=se.greaterThan,se.greaterThanOrEqual=function(k){return this.comp(k)>=0},se.gte=se.greaterThanOrEqual,se.compare=function(k){if(e(k)||(k=_(k)),this.eq(k))return 0;var ge=this.isNegative(),Me=k.isNegative();return ge&&!Me?-1:!ge&&Me?1:this.unsigned?k.high>>>0>this.high>>>0||k.high===this.high&&k.low>>>0>this.low>>>0?-1:1:this.sub(k).isNegative()?-1:1},se.comp=se.compare,se.negate=function(){return !this.unsigned&&this.eq(Ee)?Ee:this.not().add(W)},se.neg=se.negate,se.add=function(k){e(k)||(k=_(k));var ge=this.high>>>16,Me=this.high&65535,Se=this.low>>>16,ve=this.low&65535,ke=k.high>>>16,rt=k.high&65535,qe=k.low>>>16,$e=k.low&65535,at=0,Ve=0,nt=0,Rt=0;return Rt+=ve+$e,nt+=Rt>>>16,Rt&=65535,nt+=Se+qe,Ve+=nt>>>16,nt&=65535,Ve+=Me+rt,at+=Ve>>>16,Ve&=65535,at+=ge+ke,at&=65535,d(nt<<16|Rt,at<<16|Ve,this.unsigned)},se.subtract=function(k){return e(k)||(k=_(k)),this.add(k.neg())},se.sub=se.subtract,se.multiply=function(k){if(this.isZero()||(e(k)||(k=_(k)),k.isZero()))return q;if(this.eq(Ee))return k.isOdd()?Ee:q;if(k.eq(Ee))return this.isOdd()?Ee:q;if(this.isNegative())return k.isNegative()?this.neg().mul(k.neg()):this.neg().mul(k).neg();if(k.isNegative())return this.mul(k.neg()).neg();if(this.lt(U)&&k.lt(U))return c(this.toNumber()*k.toNumber(),this.unsigned);var ge=this.high>>>16,Me=this.high&65535,Se=this.low>>>16,ve=this.low&65535,ke=k.high>>>16,rt=k.high&65535,qe=k.low>>>16,$e=k.low&65535,at=0,Ve=0,nt=0,Rt=0;return Rt+=ve*$e,nt+=Rt>>>16,Rt&=65535,nt+=Se*$e,Ve+=nt>>>16,nt&=65535,nt+=ve*qe,Ve+=nt>>>16,nt&=65535,Ve+=Me*$e,at+=Ve>>>16,Ve&=65535,Ve+=Se*qe,at+=Ve>>>16,Ve&=65535,Ve+=ve*rt,at+=Ve>>>16,Ve&=65535,at+=ge*$e+Me*qe+Se*rt+ve*ke,at&=65535,d(nt<<16|Rt,at<<16|Ve,this.unsigned)},se.mul=se.multiply,se.divide=function(k){if(e(k)||(k=_(k)),k.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?X:q;var ge,Me,Se;if(this.unsigned){if(k.unsigned||(k=k.toUnsigned()),k.gt(this))return X;if(k.gt(this.shru(1)))return he;Se=X;}else {if(this.eq(Ee)){if(k.eq(W)||k.eq(_e))return Ee;if(k.eq(Ee))return W;var ve=this.shr(1);return ge=ve.div(k).shl(1),ge.eq(q)?k.isNegative()?W:_e:(Me=this.sub(k.mul(ge)),Se=ge.add(Me.div(k)),Se)}else if(k.eq(Ee))return this.unsigned?X:q;if(this.isNegative())return k.isNegative()?this.neg().div(k.neg()):this.neg().div(k).neg();if(k.isNegative())return this.div(k.neg()).neg();Se=q;}for(Me=this;Me.gte(k);){ge=Math.max(1,Math.floor(Me.toNumber()/k.toNumber()));for(var ke=Math.ceil(Math.log(ge)/Math.LN2),rt=ke<=48?1:m(2,ke-48),qe=c(ge),$e=qe.mul(k);$e.isNegative()||$e.gt(Me);)ge-=rt,qe=c(ge,this.unsigned),$e=qe.mul(k);qe.isZero()&&(qe=W),Se=Se.add(qe),Me=Me.sub($e);}return Se},se.div=se.divide,se.modulo=function(k){return e(k)||(k=_(k)),this.sub(this.div(k).mul(k))},se.mod=se.modulo,se.not=function(){return d(~this.low,~this.high,this.unsigned)},se.and=function(k){return e(k)||(k=_(k)),d(this.low&k.low,this.high&k.high,this.unsigned)},se.or=function(k){return e(k)||(k=_(k)),d(this.low|k.low,this.high|k.high,this.unsigned)},se.xor=function(k){return e(k)||(k=_(k)),d(this.low^k.low,this.high^k.high,this.unsigned)},se.shiftLeft=function(k){return e(k)&&(k=k.toInt()),(k&=63)===0?this:k<32?d(this.low<<k,this.high<<k|this.low>>>32-k,this.unsigned):d(0,this.low<<k-32,this.unsigned)},se.shl=se.shiftLeft,se.shiftRight=function(k){return e(k)&&(k=k.toInt()),(k&=63)===0?this:k<32?d(this.low>>>k|this.high<<32-k,this.high>>k,this.unsigned):d(this.high>>k-32,this.high>=0?0:-1,this.unsigned)},se.shr=se.shiftRight,se.shiftRightUnsigned=function(k){if(e(k)&&(k=k.toInt()),k&=63,k===0)return this;var ge=this.high;if(k<32){var Me=this.low;return d(Me>>>k|ge<<32-k,ge>>>k,this.unsigned)}else return k===32?d(ge,0,this.unsigned):d(ge>>>k-32,0,this.unsigned)},se.shru=se.shiftRightUnsigned,se.toSigned=function(){return this.unsigned?d(this.low,this.high,!1):this},se.toUnsigned=function(){return this.unsigned?this:d(this.low,this.high,!0)},se.toBytes=function(Y){return Y?this.toBytesLE():this.toBytesBE()},se.toBytesLE=function(){var Y=this.high,k=this.low;return [k&255,k>>>8&255,k>>>16&255,k>>>24&255,Y&255,Y>>>8&255,Y>>>16&255,Y>>>24&255]},se.toBytesBE=function(){var Y=this.high,k=this.low;return [Y>>>24&255,Y>>>16&255,Y>>>8&255,Y&255,k>>>24&255,k>>>16&255,k>>>8&255,k&255]},t});});var U1=v(ql=>{"use strict";ql.read=function(t,e,r,A,i){var c,d,m=i*8-A-1,y=(1<<m)-1,_=y>>1,E=-7,x=r?i-1:0,v=r?-1:1,F=t[e+x];for(x+=v,c=F&(1<<-E)-1,F>>=-E,E+=m;E>0;c=c*256+t[e+x],x+=v,E-=8);for(d=c&(1<<-E)-1,c>>=-E,E+=A;E>0;d=d*256+t[e+x],x+=v,E-=8);if(c===0)c=1-_;else {if(c===y)return d?NaN:(F?-1:1)*(1/0);d=d+Math.pow(2,A),c=c-_;}return (F?-1:1)*d*Math.pow(2,c-A)};ql.write=function(t,e,r,A,i,c){var d,m,y,_=c*8-i-1,E=(1<<_)-1,x=E>>1,v=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,F=A?0:c-1,N=A?1:-1,U=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(m=isNaN(e)?1:0,d=E):(d=Math.floor(Math.log(e)/Math.LN2),e*(y=Math.pow(2,-d))<1&&(d--,y*=2),d+x>=1?e+=v/y:e+=v*Math.pow(2,1-x),e*y>=2&&(d++,y/=2),d+x>=E?(m=0,d=E):d+x>=1?(m=(e*y-1)*Math.pow(2,i),d=d+x):(m=e*Math.pow(2,x-1)*Math.pow(2,i),d=0));i>=8;t[r+F]=m&255,F+=N,m/=256,i-=8);for(d=d<<i|m,_+=i;_>0;t[r+F]=d&255,F+=N,d/=256,_-=8);t[r+F-N]|=U*128;};});var J1=v((YQ,z1)=>{"use strict";z1.exports=Ye;var ha=U1();function Ye(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}Ye.Varint=0;Ye.Fixed64=1;Ye.Bytes=2;Ye.Fixed32=5;var Kl=65536*65536,H1=1/Kl,cF=12,Q1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");Ye.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var A=this.readVarint(),i=A>>3,c=this.pos;this.type=A&7,t(i,e,this),this.pos===c&&this.skip(A);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=da(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=j1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=da(this.buf,this.pos)+da(this.buf,this.pos+4)*Kl;return this.pos+=8,t},readSFixed64:function(){var t=da(this.buf,this.pos)+j1(this.buf,this.pos+4)*Kl;return this.pos+=8,t},readFloat:function(){var t=ha.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ha.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,A;return A=e[this.pos++],r=A&127,A<128||(A=e[this.pos++],r|=(A&127)<<7,A<128)||(A=e[this.pos++],r|=(A&127)<<14,A<128)||(A=e[this.pos++],r|=(A&127)<<21,A<128)?r:(A=e[this.pos],r|=(A&15)<<28,lF(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 !!this.readVarint()},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=cF&&Q1?CF(this.buf,e,t):xF(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!==Ye.Bytes)return t.push(this.readVarint(e));var r=nn(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==Ye.Bytes)return t.push(this.readSVarint());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==Ye.Bytes)return t.push(this.readBoolean());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==Ye.Bytes)return t.push(this.readFloat());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==Ye.Bytes)return t.push(this.readDouble());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==Ye.Bytes)return t.push(this.readFixed32());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==Ye.Bytes)return t.push(this.readSFixed32());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==Ye.Bytes)return t.push(this.readFixed64());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==Ye.Bytes)return t.push(this.readSFixed64());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===Ye.Varint)for(;this.buf[this.pos++]>127;);else if(e===Ye.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Ye.Fixed32)this.pos+=4;else if(e===Ye.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),YA(this.buf,t,this.pos),this.pos+=4;},writeSFixed32:function(t){this.realloc(4),YA(this.buf,t,this.pos),this.pos+=4;},writeFixed64:function(t){this.realloc(8),YA(this.buf,t&-1,this.pos),YA(this.buf,Math.floor(t*H1),this.pos+4),this.pos+=8;},writeSFixed64:function(t){this.realloc(8),YA(this.buf,t&-1,this.pos),YA(this.buf,Math.floor(t*H1),this.pos+4),this.pos+=8;},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){uF(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(!!t);},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=wF(this.buf,t,this.pos);var r=this.pos-e;r>=128&&V1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),ha.write(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),ha.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 A=this.pos-r;A>=128&&V1(r,A,this),this.pos=r-1,this.writeVarint(A),this.pos+=A;},writeMessage:function(t,e,r){this.writeTag(t,Ye.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,dF,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,pF,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,yF,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,mF,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,gF,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,TF,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,_F,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,bF,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,EF,e);},writeBytesField:function(t,e){this.writeTag(t,Ye.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,Ye.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,Ye.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,Ye.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,Ye.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,Ye.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,Ye.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,Ye.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,Ye.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,Ye.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,!!e);}};function lF(t,e,r){var A=r.buf,i,c;if(c=A[r.pos++],i=(c&112)>>4,c<128||(c=A[r.pos++],i|=(c&127)<<3,c<128)||(c=A[r.pos++],i|=(c&127)<<10,c<128)||(c=A[r.pos++],i|=(c&127)<<17,c<128)||(c=A[r.pos++],i|=(c&127)<<24,c<128)||(c=A[r.pos++],i|=(c&1)<<31,c<128))return XA(t,i,e);throw new Error("Expected varint not more than 10 bytes")}function nn(t){return t.type===Ye.Bytes?t.readVarint()+t.pos:t.pos+1}function XA(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function uF(t,e){var r,A;if(t>=0?(r=t%4294967296|0,A=t/4294967296|0):(r=~(-t%4294967296),A=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,A=A+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),fF(r,A,e),hF(A,e);}function fF(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 hF(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 V1(t,e,r){var A=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(A);for(var i=r.pos-1;i>=t;i--)r.buf[i+A]=r.buf[i];}function dF(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r]);}function pF(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r]);}function mF(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r]);}function gF(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r]);}function yF(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r]);}function TF(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r]);}function _F(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r]);}function bF(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r]);}function EF(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r]);}function da(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function YA(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function j1(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function xF(t,e,r){for(var A="",i=e;i<r;){var c=t[i],d=null,m=c>239?4:c>223?3:c>191?2:1;if(i+m>r)break;var y,_,E;m===1?c<128&&(d=c):m===2?(y=t[i+1],(y&192)===128&&(d=(c&31)<<6|y&63,d<=127&&(d=null))):m===3?(y=t[i+1],_=t[i+2],(y&192)===128&&(_&192)===128&&(d=(c&15)<<12|(y&63)<<6|_&63,(d<=2047||d>=55296&&d<=57343)&&(d=null))):m===4&&(y=t[i+1],_=t[i+2],E=t[i+3],(y&192)===128&&(_&192)===128&&(E&192)===128&&(d=(c&15)<<18|(y&63)<<12|(_&63)<<6|E&63,(d<=65535||d>=1114112)&&(d=null))),d===null?(d=65533,m=1):d>65535&&(d-=65536,A+=String.fromCharCode(d>>>10&1023|55296),d=56320|d&1023),A+=String.fromCharCode(d),i+=m;}return A}function CF(t,e,r){return Q1.decode(t.subarray(e,r))}function wF(t,e,r){for(var A=0,i,c;A<e.length;A++){if(i=e.charCodeAt(A),i>55295&&i<57344)if(c)if(i<56320){t[r++]=239,t[r++]=191,t[r++]=189,c=i;continue}else i=c-55296<<10|i-56320|65536,c=null;else {i>56319||A+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):c=i;continue}else c&&(t[r++]=239,t[r++]=191,t[r++]=189,c=null);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:(i<65536?t[r++]=i>>12|224:(t[r++]=i>>18|240,t[r++]=i>>12&63|128),t[r++]=i>>6&63|128),t[r++]=i&63|128);}return r}});function Vf(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 In(t){let e=1/0,r=1/0,A=1/0,i=-1/0,c=-1/0,d=-1/0,m=t.POSITION?t.POSITION.value:[],y=m&&m.length;for(let _=0;_<y;_+=3){let E=m[_],x=m[_+1],v=m[_+2];e=E<e?E:e,r=x<r?x:r,A=v<A?v:A,i=E>i?E:i,c=x>c?x:c,d=v>d?v:d;}return [[e,r,A],[i,c,d]]}function s0(t,e,r){let A=Vf(e.value),i=r||jf(e);return {name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:A}]},nullable:false,metadata:i}}function jf(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}var wT=r$1({},_s$1.defaultProps),BT=(()=>{class t extends Dv$1{indexToBounds(){return null}renderLayers(){let{elevationScale:r,extruded:A,wireframe:i,filled:c,stroked:d,lineWidthUnits:m,lineWidthScale:y,lineWidthMinPixels:_,lineWidthMaxPixels:E,lineJointRounded:x,lineMiterLimit:v,lineDashJustified:F,getElevation:N,getFillColor:U,getLineColor:q,getLineWidth:X}=this.props,{updateTriggers:W,material:he,transitions:_e}=this.props,be=this.getSubLayerClass("cell",_s$1),se=this.indexToBounds()||{},{updateTriggers:Te}=se,Ee=u(se,["updateTriggers"]);return new be({filled:c,wireframe:i,extruded:A,elevationScale:r,stroked:d,lineWidthUnits:m,lineWidthScale:y,lineWidthMinPixels:_,lineWidthMaxPixels:E,lineJointRounded:x,lineMiterLimit:v,lineDashJustified:F,material:he,transitions:_e,getElevation:N,getFillColor:U,getLineColor:q,getLineWidth:X},this.getSubLayerProps({id:"cell",updateTriggers:W&&s$1(r$1({},Te),{getElevation:W.getElevation,getFillColor:W.getFillColor,getLineColor:W.getLineColor,getLineWidth:W.getLineWidth})}),Ee)}}return t.layerName="GeoCellLayer",t.defaultProps=wT,t})(),Sr=BT;var vT=Object.defineProperty,pi=(t,e)=>{for(var r in e)vT(t,r,{get:e[r],enumerable:true});},Ot={};pi(Ot,{ARRAY_TYPE:()=>dt,EPSILON:()=>Nt,RANDOM:()=>Fn,equals:()=>FT,setMatrixArrayType:()=>MT,toRadian:()=>IT});var Nt=1e-6,dt=typeof Float32Array<"u"?Float32Array:Array,Fn=Math.random;function MT(t){dt=t;}var ST=Math.PI/180;function IT(t){return t*ST}function FT(t,e){return Math.abs(t-e)<=Nt*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 Ln={};pi(Ln,{LDU:()=>KT,add:()=>XT,adjoint:()=>UT,clone:()=>RT,copy:()=>PT,create:()=>LT,determinant:()=>HT,equals:()=>WT,exactEquals:()=>YT,frob:()=>qT,fromRotation:()=>QT,fromScaling:()=>zT,fromValues:()=>NT,identity:()=>DT,invert:()=>kT,mul:()=>e_,multiply:()=>uh,multiplyScalar:()=>ZT,multiplyScalarAndAdd:()=>$T,rotate:()=>VT,scale:()=>jT,set:()=>OT,str:()=>JT,sub:()=>t_,subtract:()=>fh,transpose:()=>GT});function LT(){var t=new dt(4);return dt!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}function RT(t){var e=new dt(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function PT(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function DT(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function NT(t,e,r,A){var i=new dt(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=A,i}function OT(t,e,r,A,i){return t[0]=e,t[1]=r,t[2]=A,t[3]=i,t}function GT(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 kT(t,e){var r=e[0],A=e[1],i=e[2],c=e[3],d=r*c-i*A;return d?(d=1/d,t[0]=c*d,t[1]=-A*d,t[2]=-i*d,t[3]=r*d,t):null}function UT(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t}function HT(t){return t[0]*t[3]-t[2]*t[1]}function uh(t,e,r){var A=e[0],i=e[1],c=e[2],d=e[3],m=r[0],y=r[1],_=r[2],E=r[3];return t[0]=A*m+c*y,t[1]=i*m+d*y,t[2]=A*_+c*E,t[3]=i*_+d*E,t}function VT(t,e,r){var A=e[0],i=e[1],c=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y+c*m,t[1]=i*y+d*m,t[2]=A*-m+c*y,t[3]=i*-m+d*y,t}function jT(t,e,r){var A=e[0],i=e[1],c=e[2],d=e[3],m=r[0],y=r[1];return t[0]=A*m,t[1]=i*m,t[2]=c*y,t[3]=d*y,t}function QT(t,e){var r=Math.sin(e),A=Math.cos(e);return t[0]=A,t[1]=r,t[2]=-r,t[3]=A,t}function zT(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t}function JT(t){return "mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function qT(t){return Math.hypot(t[0],t[1],t[2],t[3])}function KT(t,e,r,A){return t[2]=A[2]/A[0],r[0]=A[0],r[1]=A[1],r[3]=A[3]-t[2]*r[1],[t,e,r]}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}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[3]=e[3]-r[3],t}function YT(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function WT(t,e){var r=t[0],A=t[1],i=t[2],c=t[3],d=e[0],m=e[1],y=e[2],_=e[3];return Math.abs(r-d)<=Nt*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(A-m)<=Nt*Math.max(1,Math.abs(A),Math.abs(m))&&Math.abs(i-y)<=Nt*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(c-_)<=Nt*Math.max(1,Math.abs(c),Math.abs(_))}function ZT(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 $T(t,e,r,A){return t[0]=e[0]+r[0]*A,t[1]=e[1]+r[1]*A,t[2]=e[2]+r[2]*A,t[3]=e[3]+r[3]*A,t}var e_=uh,t_=fh;function r_(){var t=new dt(9);return dt!=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 l0={};pi(l0,{add:()=>pb,calculateW:()=>Ab,clone:()=>ub,conjugate:()=>ab,copy:()=>hb,create:()=>f0,dot:()=>Mh,equals:()=>bb,exactEquals:()=>_b,exp:()=>Ch,fromEuler:()=>cb,fromMat3:()=>Bh,fromValues:()=>fb,getAngle:()=>eb,getAxisAngle:()=>$_,identity:()=>Z_,invert:()=>ob,len:()=>yb,length:()=>Sh,lerp:()=>gb,ln:()=>wh,mul:()=>mb,multiply:()=>xh,normalize:()=>E0,pow:()=>ib,random:()=>sb,rotateX:()=>tb,rotateY:()=>rb,rotateZ:()=>nb,rotationTo:()=>Eb,scale:()=>vh,set:()=>db,setAxes:()=>Cb,setAxisAngle:()=>Eh,slerp:()=>vs,sqlerp:()=>xb,sqrLen:()=>Tb,squaredLength:()=>Ih,str:()=>lb});var de={};pi(de,{add:()=>s_,angle:()=>B_,bezier:()=>y_,ceil:()=>o_,clone:()=>n_,copy:()=>A_,create:()=>_0,cross:()=>Bs,dist:()=>P_,distance:()=>gh,div:()=>R_,divide:()=>mh,dot:()=>b0,equals:()=>I_,exactEquals:()=>S_,floor:()=>a_,forEach:()=>O_,fromValues:()=>u0,hermite:()=>g_,inverse:()=>p_,len:()=>bh,length:()=>hh,lerp:()=>m_,max:()=>l_,min:()=>c_,mul:()=>L_,multiply:()=>ph,negate:()=>d_,normalize:()=>_h,random:()=>T_,rotateX:()=>x_,rotateY:()=>C_,rotateZ:()=>w_,round:()=>u_,scale:()=>f_,scaleAndAdd:()=>h_,set:()=>i_,sqrDist:()=>D_,sqrLen:()=>N_,squaredDistance:()=>yh,squaredLength:()=>Th,str:()=>M_,sub:()=>F_,subtract:()=>dh,transformMat3:()=>b_,transformMat4:()=>__,transformQuat:()=>E_,zero:()=>v_});function _0(){var t=new dt(3);return dt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function n_(t){var e=new dt(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function hh(t){var e=t[0],r=t[1],A=t[2];return Math.hypot(e,r,A)}function u0(t,e,r){var A=new dt(3);return A[0]=t,A[1]=e,A[2]=r,A}function A_(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function i_(t,e,r,A){return t[0]=e,t[1]=r,t[2]=A,t}function s_(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function dh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function ph(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function mh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function o_(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function a_(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function c_(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 l_(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 u_(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function f_(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function h_(t,e,r,A){return t[0]=e[0]+r[0]*A,t[1]=e[1]+r[1]*A,t[2]=e[2]+r[2]*A,t}function gh(t,e){var r=e[0]-t[0],A=e[1]-t[1],i=e[2]-t[2];return Math.hypot(r,A,i)}function yh(t,e){var r=e[0]-t[0],A=e[1]-t[1],i=e[2]-t[2];return r*r+A*A+i*i}function Th(t){var e=t[0],r=t[1],A=t[2];return e*e+r*r+A*A}function d_(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function p_(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function _h(t,e){var r=e[0],A=e[1],i=e[2],c=r*r+A*A+i*i;return c>0&&(c=1/Math.sqrt(c)),t[0]=e[0]*c,t[1]=e[1]*c,t[2]=e[2]*c,t}function b0(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Bs(t,e,r){var A=e[0],i=e[1],c=e[2],d=r[0],m=r[1],y=r[2];return t[0]=i*y-c*m,t[1]=c*d-A*y,t[2]=A*m-i*d,t}function m_(t,e,r,A){var i=e[0],c=e[1],d=e[2];return t[0]=i+A*(r[0]-i),t[1]=c+A*(r[1]-c),t[2]=d+A*(r[2]-d),t}function g_(t,e,r,A,i,c){var d=c*c,m=d*(2*c-3)+1,y=d*(c-2)+c,_=d*(c-1),E=d*(3-2*c);return t[0]=e[0]*m+r[0]*y+A[0]*_+i[0]*E,t[1]=e[1]*m+r[1]*y+A[1]*_+i[1]*E,t[2]=e[2]*m+r[2]*y+A[2]*_+i[2]*E,t}function y_(t,e,r,A,i,c){var d=1-c,m=d*d,y=c*c,_=m*d,E=3*c*m,x=3*y*d,v=y*c;return t[0]=e[0]*_+r[0]*E+A[0]*x+i[0]*v,t[1]=e[1]*_+r[1]*E+A[1]*x+i[1]*v,t[2]=e[2]*_+r[2]*E+A[2]*x+i[2]*v,t}function T_(t,e){e=e||1;var r=Fn()*2*Math.PI,A=Fn()*2-1,i=Math.sqrt(1-A*A)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=A*e,t}function __(t,e,r){var A=e[0],i=e[1],c=e[2],d=r[3]*A+r[7]*i+r[11]*c+r[15];return d=d||1,t[0]=(r[0]*A+r[4]*i+r[8]*c+r[12])/d,t[1]=(r[1]*A+r[5]*i+r[9]*c+r[13])/d,t[2]=(r[2]*A+r[6]*i+r[10]*c+r[14])/d,t}function b_(t,e,r){var A=e[0],i=e[1],c=e[2];return t[0]=A*r[0]+i*r[3]+c*r[6],t[1]=A*r[1]+i*r[4]+c*r[7],t[2]=A*r[2]+i*r[5]+c*r[8],t}function E_(t,e,r){var A=r[0],i=r[1],c=r[2],d=r[3],m=e[0],y=e[1],_=e[2],E=i*_-c*y,x=c*m-A*_,v=A*y-i*m,F=i*v-c*x,N=c*E-A*v,U=A*x-i*E,q=d*2;return E*=q,x*=q,v*=q,F*=2,N*=2,U*=2,t[0]=m+E+F,t[1]=y+x+N,t[2]=_+v+U,t}function x_(t,e,r,A){var i=[],c=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],c[0]=i[0],c[1]=i[1]*Math.cos(A)-i[2]*Math.sin(A),c[2]=i[1]*Math.sin(A)+i[2]*Math.cos(A),t[0]=c[0]+r[0],t[1]=c[1]+r[1],t[2]=c[2]+r[2],t}function C_(t,e,r,A){var i=[],c=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],c[0]=i[2]*Math.sin(A)+i[0]*Math.cos(A),c[1]=i[1],c[2]=i[2]*Math.cos(A)-i[0]*Math.sin(A),t[0]=c[0]+r[0],t[1]=c[1]+r[1],t[2]=c[2]+r[2],t}function w_(t,e,r,A){var i=[],c=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],c[0]=i[0]*Math.cos(A)-i[1]*Math.sin(A),c[1]=i[0]*Math.sin(A)+i[1]*Math.cos(A),c[2]=i[2],t[0]=c[0]+r[0],t[1]=c[1]+r[1],t[2]=c[2]+r[2],t}function B_(t,e){var r=t[0],A=t[1],i=t[2],c=e[0],d=e[1],m=e[2],y=Math.sqrt(r*r+A*A+i*i),_=Math.sqrt(c*c+d*d+m*m),E=y*_,x=E&&b0(t,e)/E;return Math.acos(Math.min(Math.max(x,-1),1))}function v_(t){return t[0]=0,t[1]=0,t[2]=0,t}function M_(t){return "vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function S_(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function I_(t,e){var r=t[0],A=t[1],i=t[2],c=e[0],d=e[1],m=e[2];return Math.abs(r-c)<=Nt*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(A-d)<=Nt*Math.max(1,Math.abs(A),Math.abs(d))&&Math.abs(i-m)<=Nt*Math.max(1,Math.abs(i),Math.abs(m))}var F_=dh,L_=ph,R_=mh,P_=gh,D_=yh,bh=hh,N_=Th,O_=(function(){var t=_0();return function(e,r,A,i,c,d){var m,y;for(r||(r=3),A||(A=0),i?y=Math.min(i*r+A,e.length):y=e.length,m=A;m<y;m+=r)t[0]=e[m],t[1]=e[m+1],t[2]=e[m+2],c(t,t,d),e[m]=t[0],e[m+1]=t[1],e[m+2]=t[2];return e}})();function G_(){var t=new dt(4);return dt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function k_(t){var e=new dt(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function U_(t,e,r,A){var i=new dt(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=A,i}function H_(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function V_(t,e,r,A,i){return t[0]=e,t[1]=r,t[2]=A,t[3]=i,t}function j_(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 Q_(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 z_(t){var e=t[0],r=t[1],A=t[2],i=t[3];return Math.hypot(e,r,A,i)}function J_(t){var e=t[0],r=t[1],A=t[2],i=t[3];return e*e+r*r+A*A+i*i}function q_(t,e){var r=e[0],A=e[1],i=e[2],c=e[3],d=r*r+A*A+i*i+c*c;return d>0&&(d=1/Math.sqrt(d)),t[0]=r*d,t[1]=A*d,t[2]=i*d,t[3]=c*d,t}function K_(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function X_(t,e,r,A){var i=e[0],c=e[1],d=e[2],m=e[3];return t[0]=i+A*(r[0]-i),t[1]=c+A*(r[1]-c),t[2]=d+A*(r[2]-d),t[3]=m+A*(r[3]-m),t}function Y_(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function W_(t,e){var r=t[0],A=t[1],i=t[2],c=t[3],d=e[0],m=e[1],y=e[2],_=e[3];return Math.abs(r-d)<=Nt*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(A-m)<=Nt*Math.max(1,Math.abs(A),Math.abs(m))&&Math.abs(i-y)<=Nt*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(c-_)<=Nt*Math.max(1,Math.abs(c),Math.abs(_))}((function(){var t=G_();return function(e,r,A,i,c,d){var m,y;for(r||(r=4),A||(A=0),i?y=Math.min(i*r+A,e.length):y=e.length,m=A;m<y;m+=r)t[0]=e[m],t[1]=e[m+1],t[2]=e[m+2],t[3]=e[m+3],c(t,t,d),e[m]=t[0],e[m+1]=t[1],e[m+2]=t[2],e[m+3]=t[3];return e}}))();function f0(){var t=new dt(4);return dt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Z_(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Eh(t,e,r){r=r*.5;var A=Math.sin(r);return t[0]=A*e[0],t[1]=A*e[1],t[2]=A*e[2],t[3]=Math.cos(r),t}function $_(t,e){var r=Math.acos(e[3])*2,A=Math.sin(r/2);return A>Nt?(t[0]=e[0]/A,t[1]=e[1]/A,t[2]=e[2]/A):(t[0]=1,t[1]=0,t[2]=0),r}function eb(t,e){var r=Mh(t,e);return Math.acos(2*r*r-1)}function xh(t,e,r){var A=e[0],i=e[1],c=e[2],d=e[3],m=r[0],y=r[1],_=r[2],E=r[3];return t[0]=A*E+d*m+i*_-c*y,t[1]=i*E+d*y+c*m-A*_,t[2]=c*E+d*_+A*y-i*m,t[3]=d*E-A*m-i*y-c*_,t}function tb(t,e,r){r*=.5;var A=e[0],i=e[1],c=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y+d*m,t[1]=i*y+c*m,t[2]=c*y-i*m,t[3]=d*y-A*m,t}function rb(t,e,r){r*=.5;var A=e[0],i=e[1],c=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y-c*m,t[1]=i*y+d*m,t[2]=c*y+A*m,t[3]=d*y-i*m,t}function nb(t,e,r){r*=.5;var A=e[0],i=e[1],c=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y+i*m,t[1]=i*y-A*m,t[2]=c*y+d*m,t[3]=d*y-c*m,t}function Ab(t,e){var r=e[0],A=e[1],i=e[2];return t[0]=r,t[1]=A,t[2]=i,t[3]=Math.sqrt(Math.abs(1-r*r-A*A-i*i)),t}function Ch(t,e){var r=e[0],A=e[1],i=e[2],c=e[3],d=Math.sqrt(r*r+A*A+i*i),m=Math.exp(c),y=d>0?m*Math.sin(d)/d:0;return t[0]=r*y,t[1]=A*y,t[2]=i*y,t[3]=m*Math.cos(d),t}function wh(t,e){var r=e[0],A=e[1],i=e[2],c=e[3],d=Math.sqrt(r*r+A*A+i*i),m=d>0?Math.atan2(d,c)/d:0;return t[0]=r*m,t[1]=A*m,t[2]=i*m,t[3]=.5*Math.log(r*r+A*A+i*i+c*c),t}function ib(t,e,r){return wh(t,e),vh(t,t,r),Ch(t,t),t}function vs(t,e,r,A){var i=e[0],c=e[1],d=e[2],m=e[3],y=r[0],_=r[1],E=r[2],x=r[3],v,F,N,U,q;return F=i*y+c*_+d*E+m*x,F<0&&(F=-F,y=-y,_=-_,E=-E,x=-x),1-F>Nt?(v=Math.acos(F),N=Math.sin(v),U=Math.sin((1-A)*v)/N,q=Math.sin(A*v)/N):(U=1-A,q=A),t[0]=U*i+q*y,t[1]=U*c+q*_,t[2]=U*d+q*E,t[3]=U*m+q*x,t}function sb(t){var e=Fn(),r=Fn(),A=Fn(),i=Math.sqrt(1-e),c=Math.sqrt(e);return t[0]=i*Math.sin(2*Math.PI*r),t[1]=i*Math.cos(2*Math.PI*r),t[2]=c*Math.sin(2*Math.PI*A),t[3]=c*Math.cos(2*Math.PI*A),t}function ob(t,e){var r=e[0],A=e[1],i=e[2],c=e[3],d=r*r+A*A+i*i+c*c,m=d?1/d:0;return t[0]=-r*m,t[1]=-A*m,t[2]=-i*m,t[3]=c*m,t}function ab(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Bh(t,e){var r=e[0]+e[4]+e[8],A;if(r>0)A=Math.sqrt(r+1),t[3]=.5*A,A=.5/A,t[0]=(e[5]-e[7])*A,t[1]=(e[6]-e[2])*A,t[2]=(e[1]-e[3])*A;else {var i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);var c=(i+1)%3,d=(i+2)%3;A=Math.sqrt(e[i*3+i]-e[c*3+c]-e[d*3+d]+1),t[i]=.5*A,A=.5/A,t[3]=(e[c*3+d]-e[d*3+c])*A,t[c]=(e[c*3+i]+e[i*3+c])*A,t[d]=(e[d*3+i]+e[i*3+d])*A;}return t}function cb(t,e,r,A){var i=.5*Math.PI/180;e*=i,r*=i,A*=i;var c=Math.sin(e),d=Math.cos(e),m=Math.sin(r),y=Math.cos(r),_=Math.sin(A),E=Math.cos(A);return t[0]=c*y*E-d*m*_,t[1]=d*m*E+c*y*_,t[2]=d*y*_-c*m*E,t[3]=d*y*E+c*m*_,t}function lb(t){return "quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}var ub=k_,fb=U_,hb=H_,db=V_,pb=j_,mb=xh,vh=Q_,Mh=K_,gb=X_,Sh=z_,yb=Sh,Ih=J_,Tb=Ih,E0=q_,_b=Y_,bb=W_,Eb=(function(){var t=_0(),e=u0(1,0,0),r=u0(0,1,0);return function(A,i,c){var d=b0(i,c);return d<-0.999999?(Bs(t,e,i),bh(t)<1e-6&&Bs(t,r,i),_h(t,t),Eh(A,t,Math.PI),A):d>.999999?(A[0]=0,A[1]=0,A[2]=0,A[3]=1,A):(Bs(t,i,c),A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=1+d,E0(A,A))}})(),xb=(function(){var t=f0(),e=f0();return function(r,A,i,c,d,m){return vs(t,A,d,m),vs(e,i,c,m),vs(r,t,e,2*m*(1-m)),r}})(),Cb=(function(){var t=r_();return function(e,r,A,i){return t[0]=A[0],t[3]=A[1],t[6]=A[2],t[1]=i[0],t[4]=i[1],t[7]=i[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],E0(e,Bh(e,t))}})(),Le={};pi(Le,{add:()=>Sb,angle:()=>Xb,ceil:()=>Ib,clone:()=>wb,copy:()=>vb,create:()=>Fh,cross:()=>Hb,dist:()=>AE,distance:()=>Dh,div:()=>nE,divide:()=>Ph,dot:()=>Ub,equals:()=>$b,exactEquals:()=>Zb,floor:()=>Fb,forEach:()=>oE,fromValues:()=>Bb,inverse:()=>Gb,len:()=>eE,length:()=>Oh,lerp:()=>Vb,max:()=>Rb,min:()=>Lb,mul:()=>rE,multiply:()=>Rh,negate:()=>Ob,normalize:()=>kb,random:()=>jb,rotate:()=>Kb,round:()=>Pb,scale:()=>Db,scaleAndAdd:()=>Nb,set:()=>Mb,sqrDist:()=>iE,sqrLen:()=>sE,squaredDistance:()=>Nh,squaredLength:()=>Gh,str:()=>Wb,sub:()=>tE,subtract:()=>Lh,transformMat2:()=>Qb,transformMat2d:()=>zb,transformMat3:()=>Jb,transformMat4:()=>qb,zero:()=>Yb});function Fh(){var t=new dt(2);return dt!=Float32Array&&(t[0]=0,t[1]=0),t}function wb(t){var e=new dt(2);return e[0]=t[0],e[1]=t[1],e}function Bb(t,e){var r=new dt(2);return r[0]=t,r[1]=e,r}function vb(t,e){return t[0]=e[0],t[1]=e[1],t}function Mb(t,e,r){return t[0]=e,t[1]=r,t}function Sb(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Lh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Rh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Ph(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function Ib(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Fb(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function Lb(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Rb(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function Pb(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function Db(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Nb(t,e,r,A){return t[0]=e[0]+r[0]*A,t[1]=e[1]+r[1]*A,t}function Dh(t,e){var r=e[0]-t[0],A=e[1]-t[1];return Math.hypot(r,A)}function Nh(t,e){var r=e[0]-t[0],A=e[1]-t[1];return r*r+A*A}function Oh(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function Gh(t){var e=t[0],r=t[1];return e*e+r*r}function Ob(t,e){return t[0]=-e[0],t[1]=-e[1],t}function Gb(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function kb(t,e){var r=e[0],A=e[1],i=r*r+A*A;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t}function Ub(t,e){return t[0]*e[0]+t[1]*e[1]}function Hb(t,e,r){var A=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=A,t}function Vb(t,e,r,A){var i=e[0],c=e[1];return t[0]=i+A*(r[0]-i),t[1]=c+A*(r[1]-c),t}function jb(t,e){e=e||1;var r=Fn()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function Qb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[2]*i,t[1]=r[1]*A+r[3]*i,t}function zb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[2]*i+r[4],t[1]=r[1]*A+r[3]*i+r[5],t}function Jb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[3]*i+r[6],t[1]=r[1]*A+r[4]*i+r[7],t}function qb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[4]*i+r[12],t[1]=r[1]*A+r[5]*i+r[13],t}function Kb(t,e,r,A){var i=e[0]-r[0],c=e[1]-r[1],d=Math.sin(A),m=Math.cos(A);return t[0]=i*m-c*d+r[0],t[1]=i*d+c*m+r[1],t}function Xb(t,e){var r=t[0],A=t[1],i=e[0],c=e[1],d=Math.sqrt(r*r+A*A)*Math.sqrt(i*i+c*c),m=d&&(r*i+A*c)/d;return Math.acos(Math.min(Math.max(m,-1),1))}function Yb(t){return t[0]=0,t[1]=0,t}function Wb(t){return "vec2("+t[0]+", "+t[1]+")"}function Zb(t,e){return t[0]===e[0]&&t[1]===e[1]}function $b(t,e){var r=t[0],A=t[1],i=e[0],c=e[1];return Math.abs(r-i)<=Nt*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(A-c)<=Nt*Math.max(1,Math.abs(A),Math.abs(c))}var eE=Oh,tE=Lh,rE=Rh,nE=Ph,AE=Dh,iE=Nh,sE=Gh,oE=(function(){var t=Fh();return function(e,r,A,i,c,d){var m,y;for(r||(r=2),A||(A=0),i?y=Math.min(i*r+A,e.length):y=e.length,m=A;m<y;m+=r)t[0]=e[m],t[1]=e[m+1],c(t,t,d),e[m]=t[0],e[m+1]=t[1];return e}})(),Ls=(1+Math.sqrt(5))/2,Ms=2*Math.PI/5,Gr=Math.PI/5,Qf=Math.PI/10,aE=2*Math.atan(Ls),h0=Math.PI-aE,Rs=(Math.sqrt(5)-1)/2,cE=3-Math.sqrt(5),Ss=63710072e-1;Ot.setMatrixArrayType(Float64Array);var x0=class d0{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse();}getArea(){let e=0,r=this.vertices.length;for(let A=0;A<r;A++){let i=(A+1)%r;e+=(this.vertices[i][0]-this.vertices[A][0])*(this.vertices[i][1]+this.vertices[A][1]);}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)Le.scale(r,r,e);return this}rotate180(){for(let e of this.vertices)Le.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)Le.add(r,r,e);return this}transform(e){for(let r of this.vertices)Le.transformMat2(r,r,e);return this}transform2d(e){for(let r of this.vertices)Le.transformMat2d(r,r,e);return this}clone(){return new d0(this.vertices.map(r=>Le.clone(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((A,i)=>[A[0]+i[0]/e,A[1]+i[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,A=1;for(let i=0;i<r;i++){let c=this.vertices[i],d=this.vertices[(i+1)%r],m=c[0]-d[0],y=c[1]-d[1],_=e[0]-c[0],E=e[1]-c[1],x=m*E-y*_;if(x<0){let v=Math.sqrt(_*_+E*E);A=Math.min(A,x/v);}}return A}splitEdges(e){if(e<=1)return this;let r=[],A=this.vertices.length;for(let i=0;i<A;i++){let c=this.vertices[i],d=this.vertices[(i+1)%A];r.push(Le.clone(c));for(let m=1;m<e;m++){let y=m/e,_=Le.create();Le.lerp(_,c,d,y),r.push(_);}}return new d0(r)}};Ot.setMatrixArrayType(Float64Array);var kh=[0,0],Uh=[0,1],Rn=[.7885966681787006,1.6149108024237764],Hh=[1.6171013659387945,1.054928690397459],Vh=[Math.cos(Qf),Math.sin(Qf)],uE=2*Le.length(Rn)*Math.cos(Gr),fE=Gr-Math.atan2(Rn[1],Rn[0]),hE=2*Rs/uE;[kh,Uh,Rn,Hh,Vh].forEach(t=>{Le.scale(t,t,hE),Le.rotate(t,t,[0,0],fE);});var dE=new x0([kh,Uh,Rn,Hh,Vh]),jh=Math.atan2(Rn[1],Rn[0])-Gr,pE=[0,0],Is=Rs/Math.cos(Gr),zf=jh+Gr,Fs=[Is*Math.cos(zf),Is*Math.sin(zf)],Jf=jh-Gr,di=[Is*Math.cos(Jf),Is*Math.sin(Jf)],Qh=new x0([pE,Fs,di]),zh=Ln.fromValues(Fs[0],Fs[1],di[0],di[1]);Ln.invert(Ln.create(),zh);var mE=new Float64Array([-0.0022392098386786394,21308606513250217e-22,-2.559257686421274e-9,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),gE=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),yE=class{applyCoefficients(t,e){let r=Math.sin(t),A=Math.cos(t),i=2*(A-r)*(A+r),c,d;return c=i*e[5]+e[4],d=i*c+e[3],c=i*d-c+e[2],d=i*c-d+e[1],c=i*d-c+e[0],t+2*r*A*c}forward(t){return this.applyCoefficients(t,mE)}inverse(t){return this.applyCoefficients(t,gE)}};Ot.setMatrixArrayType(Float64Array);var Jh=new yE;function qf(t){return t*(Math.PI/180)}function Kf(t){return t*(180/Math.PI)}function Xf(t){let e=Le.length(t),r=Math.atan2(t[1],t[0]);return [e,r]}function TE([t,e]){let r=t*Math.cos(e),A=t*Math.sin(e);return [r,A]}function _E(t,[e,r,A]){let i=[e[0]-A[0],e[1]-A[1]],c=[A[0]-r[0],A[1]-r[1]],d=[t[0]-A[0],t[1]-A[1]],m=c[0]*i[1]-c[1]*i[0],y=(c[0]*d[1]-c[1]*d[0])/m,_=(i[0]*d[1]-i[1]*d[0])/m,E=1-(y+_);return [y,_,E]}function bE(t,[e,r,A]){return [t[0]*e[0]+t[1]*r[0]+t[2]*A[0],t[0]*e[1]+t[1]*r[1]+t[2]*A[1]]}function p0(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),A=Math.acos(t[2]/r);return [e,A]}function uA([t,e]){let r=Math.sin(e),A=r*Math.cos(t),i=r*Math.sin(t),c=Math.cos(e);return [A,i,c]}var qh=93;function EE([t,e]){let r=qf(t+qh),A=qf(e),i=Jh.forward(A),c=Math.PI/2-i;return [r,c]}function Kh(t){return ((t+180)%360+360)%360-180}function Xh([t,e]){let r=Kh(Kf(t)-qh),A=Math.PI/2-e,i=Jh.inverse(A),c=Kf(i);return [r,c]}function xE(t){let e=t.map(c=>uA(EE(c))),r=de.create();for(let c of e)de.add(r,r,c);de.normalize(r,r);let[A,i]=Xh(p0(r));return (i>89.99||i<-89.99)&&(A=t[0][0]),A=Kh(A),t.map(c=>{let[d,m]=c;for(;d-A>180;)d=d-360;for(;d-A<-180;)d=d+360;return [d,m]})}Ot.setMatrixArrayType(Float64Array);var Ps=Math.sqrt(5),Ds=Math.sqrt(.2),Yh=Math.sqrt((1-Ds)/2),Wh=Math.sqrt((1+Ds)/2),ys=.5,Yf=Math.sqrt((2.5-Ps)/10),Wf=Math.sqrt((2.5+Ps)/10),Zf=Math.sqrt((1+Ds)/8),$f=Math.sqrt((1-Ds)/8),eh=Math.sqrt((3-Ps)/8),th=Math.sqrt((3+Ps)/8),CE=[[0,0],[Yh,0],[Yf,ys],[-Zf,eh],[-Zf,-eh],[Yf,-ys],[-Wh,0],[-$f,-th],[Wf,-ys],[Wf,ys],[-$f,th],[0,0]],wE=CE.map(([t,e])=>[-e,t]),Ts=wE.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?Wh:Yh]);Ot.setMatrixArrayType(Float64Array);var Zh=["vu","uw","vw","vw","vw"],fi=["wu","uw","vw","vu","uw"],o0=["wu","uv","wv","wu","uw"],_s=["vu","uv","wv","wu","uw"],BE=[Zh,_s,o0,fi,o0,_s,o0,fi,fi,fi,_s,_s],vE=[4,2,3,2,0,4,3,2,2,0,3,0],rh=[0,1,2,4,3,5,7,8,6,11,10,9],Ir=[];function ME(){bs([0,0],0,Ts[0]);for(let t=0;t<5;t++){let e=t*Ms,r=e+Gr;bs([e,h0],Gr,Ts[t+1]),bs([r,Math.PI-h0],Gr,Ts[(t+3)%5+6]);}bs([0,Math.PI],0,Ts[11]);}var aA=0;function bs(t,e,r){if(aA>11)throw new Error(`Too many origins: ${aA}`);let A=l0.create();l0.conjugate(A,r);let i={id:aA,axis:t,quat:r,inverseQuat:A,angle:e,orientation:BE[aA],firstQuintant:vE[aA]};Ir.push(i),aA++;}ME();Ir.sort((t,e)=>rh.indexOf(t.id)-rh.indexOf(e.id));Ir.forEach((t,e)=>t.id=e);function SE(t,e){let r=e.orientation,A=r===Zh||r===fi?-1:1,i=(t-e.firstQuintant+5)%5,c=r[i];return {quintant:(e.firstQuintant+A*i+5)%5,orientation:c}}var IE=class{forward([t,e]){return [Math.tan(e),t]}inverse([t,e]){return [e,Math.atan(t)]}},cA=de.create(),hi=de.create(),nh=de.create(),Ah=de.create();function a0(t,e){de.lerp(cA,t,e,.5),de.normalize(cA,cA),de.cross(cA,t,cA);let r=de.length(cA);if(r<1e-8){let A=de.subtract(de.create(),t,e);return .5*de.length(A)}return r}function FE(t,e,r){return de.cross(hi,e,r),de.dot(t,hi)}function LE(t,e,r,A,i){de.cross(hi,A,i);let c=de.dot(e,hi),d=de.dot(r,hi);return de.scale(nh,e,d),de.scale(Ah,r,c),de.sub(t,Ah,nh)}function m0(t,e,r,A){let i=de.angle(e,r);if(i<1e-12)return de.lerp(t,e,r,A);let c=Math.sin((1-A)*i)/Math.sin(i),d=Math.sin(A*i)/Math.sin(i),m=de.scale(de.create(),e,c),y=de.scale(de.create(),r,d);return de.add(t,m,y)}Ot.setMatrixArrayType(Float64Array);var Es=de.create(),xs=de.create(),Cs=de.create(),lA=de.create(),RE=class{constructor(t){this._area=null,this.vertices=t,Object.freeze(this.vertices);}getBoundary(t=1,e=true){let r=[],A=this.vertices.length;for(let i=0;i<A*t;i++){let c=i/t;r.push(this.slerp(c));}return e&&r.push(r[0]),r}slerp(t){let e=this.vertices.length,r=t%1,A=Math.floor(t%e),i=(A+1)%e;return m0(de.create(),this.vertices[A],this.vertices[i],r)}getTransformedVertices(t){let e=this.vertices.length,r=Math.floor(t%e),A=(r+1)%e,i=(r+e-1)%e,c=de.clone(this.vertices[r]),d=de.clone(this.vertices[A]),m=de.clone(this.vertices[i]);return de.sub(d,d,c),de.sub(m,m,c),[c,d,m]}containsPoint(t){let e=this.vertices.length,r=1/0;for(let A=0;A<e;A++){let[i,c,d]=this.getTransformedVertices(A),m=de.sub(de.create(),t,i);de.normalize(m,m),de.normalize(c,c),de.normalize(d,d);let y=de.cross(de.create(),c,m),_=de.cross(de.create(),m,d),E=de.dot(i,y),x=de.dot(i,_);r=Math.min(r,E,x);}return r}getTriangleArea(t,e,r){de.lerp(Es,e,r,.5),de.lerp(xs,r,t,.5),de.lerp(Cs,t,e,.5),de.normalize(Es,Es),de.normalize(xs,xs),de.normalize(Cs,Cs);let A=FE(Es,xs,Cs),i=Math.max(-1,Math.min(1,A));return Math.abs(i)<1e-8?2*i:Math.asin(i)*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;de.set(lA,0,0,0);for(let e of this.vertices)de.add(lA,lA,e);de.normalize(lA,lA);let t=0;for(let e=0;e<this.vertices.length;e++){let r=this.vertices[e],A=this.vertices[(e+1)%this.vertices.length],i=this.getTriangleArea(lA,r,A);isNaN(i)||(t+=i);}return this._area=t,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ot.setMatrixArrayType(Float64Array);var ws=class extends RE{constructor(t){if(t.length!==3)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(t);}};Ot.setMatrixArrayType(Float64Array);var PE=class{forward(t,e,r){let[A,i,c]=e,d=new ws([A,i,c]),m=de.subtract(de.create(),t,A);de.normalize(m,m);let y=LE(de.create(),A,m,i,c);de.normalize(y,y);let _=a0(A,t)/a0(A,y),E=d.getArea(),x=_/E,v=[1-_,x*new ws([A,y,c]).getArea(),x*new ws([A,i,y]).getArea()];return bE(v,r)}inverse(t,e,r){let[A,i,c]=r,d=new ws([A,i,c]),m=_E(t,e),y=1-1e-14;if(m[0]>y)return A;if(m[1]>y)return i;if(m[2]>y)return c;let _=de.create();de.cross(_,i,c);let E=d.getArea(),x=1-m[0],F=m[2]/x*E,N=Math.sin(F),U=Math.sin(F/2),q=2*U*U,X=de.dot(A,i),W=de.dot(i,c),he=de.dot(c,A),_e=de.length(_),be=de.dot(A,_),Te=N*be+q*(X*W-he),Ee=q*_e*(1+X),se=2/Math.acos(W)*Math.atan2(Ee,Te),Y=m0(de.create(),i,c,se),k=a0(A,Y),ge=this.safeAcos(x*k)/this.safeAcos(k);return m0([0,0,0],A,Y,ge)}safeAcos(t){return t<.001?2*t+t*t*t/3:Math.acos(1-2*t*t)}},or=-1,qt=1;Ot.setMatrixArrayType(Float64Array);var DE=([t,e])=>Le.fromValues(t-e,e);Ot.setMatrixArrayType(Float64Array);var g0=Le.fromValues(1,0),y0=Le.fromValues(0,1),ih=Le.negate(Le.create(),g0),sh=Le.negate(Le.create(),y0),c0=Le.fromValues(0,0),NE=(t,[e,r])=>{let A=c0,i=c0;switch(e===qt&&r===qt?(A=g0,i=y0):e===or&&r===qt?(A=sh,i=ih):e===qt&&r===or?(A=y0,i=g0):e===or&&r===or&&(A=ih,i=sh),t){case 0:return c0;case 1:return A;case 2:return Le.add(Le.create(),i,A);case 3:return Le.scaleAndAdd(Le.create(),i,A,2);default:throw new Error(`Invalid Quaternary value: ${t}`)}},oh=t=>[[qt,qt],[qt,or],[qt,qt],[or,qt]][t];function $h(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var ed=[0,1,3,4,5,6,7,2],td=[0,1,2,7,3,4,5,6];$h(ed);$h(td);var OE=(t,e,r,A,i)=>{if(e<=0)return;let c=t[e]||0,d=t[e-1],m=r[0]+r[1],y=true,_=true;if(A!==(m===0)?(y=c===1||c===2,_=c===1):(y=c<2,_=c===0),!y)return;let E=_?d:d+4,x=i[E];t[e-1]=x%4,t[e]=(c+4+Math.floor(x/4)-Math.floor(E/4))%4;};Ot.setMatrixArrayType(Float64Array);var ah=Le.fromValues(-1,1),rd=true,GE=(t,e,r,A=rd)=>{let i=BigInt(t),c=r==="vu"||r==="wu"||r==="vw",d=r==="wv"||r==="vw",m=r==="wu"||r==="uw";c&&(i=(1n<<BigInt(2*e))-i-1n);let y=kE(i,e,d,m,A);if(m){let{offset:[_,E],flips:[x,v]}=y;y.offset=[E,_],x===or&&Le.add(y.offset,y.offset,ah),v===or&&Le.subtract(y.offset,y.offset,ah);}if(d){let{offset:[_,E],flips:x}=y,v=(1<<e)-(_+E);x[0]=-x[0],y.offset[1]=v,y.flips=x;}return y},kE=(t,e,r,A,i=rd)=>{let c=Le.create(),d=[qt,qt],m=BigInt(t),y=[];for(;m>0n||y.length<e;)y.push(Number(m%4n)),m=m>>2n;let _=A?td:ed;for(let x=y.length-1;x>=0;x--)i&&OE(y,x,d,r,_),Le.multiply(d,d,oh(y[x]));d[0]=qt,d[1]=qt;for(let x=y.length-1;x>=0;x--){Le.scale(c,c,2);let v=NE(y[x],d);Le.add(c,c,v),Le.multiply(d,d,oh(y[x]));}return {q:y[0]||0,offset:DE(c),flips:d}};Ot.setMatrixArrayType(Float64Array);var HE=Le.clone(di),VE=Le.negate(Le.create(),di),C0=[0,1,2,3,4].map(t=>{let e=Ln.create();return Ln.fromRotation(e,Ms*t),e}),ch=Le.create();function jE(t,e,r){let A=(dE).clone();Le.transformMat2(ch,r.offset,zh),r.flips[0]===qt&&r.flips[1]===or&&A.rotate180();let{q:i}=r,c=r.flips[0]+r.flips[1];return ((c===-2||c===2)&&i>1||c===0&&(i===0||i===3))&&A.reflectY(),r.flips[0]===or&&r.flips[1]===or?A.rotate180():r.flips[0]===or?A.translate(VE):r.flips[1]===or&&A.translate(HE),A.translate(ch),A.scale(1/2**t),A.transform(C0[e]),A}function nd(t){let e=Qh.clone();return e.transform(C0[t]),e}function QE(){let t=[];for(let e of C0)t.push(Le.transformMat2(Le.create(),Fs,e));return t.reverse(),new x0(t)}Ot.setMatrixArrayType(Float64Array);var zE=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(de.distance(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Ir.forEach(t=>this.add(uA(t.axis)));}addVertices(){let t=Math.atan(cE);for(let e of Ir)for(let r=0;r<5;r++){let A=(2*r+1)*Math.PI/5,i=uA([A+e.angle,t]);de.transformQuat(i,i,e.quat),this.add(i);}}addMidpoints(){let t=Math.atan(Rs);for(let e of Ir)for(let r=0;r<5;r++){let A=2*r*Math.PI/5,i=uA([A+e.angle,t]);de.transformQuat(i,i,e.quat),this.add(i);}}add(t){let e=de.normalize(de.create(),t);return this.vertices.find(A=>de.distance(e,A)<1e-5)?false:(this.vertices.push(e),true)}};Ot.setMatrixArrayType(Float64Array);var JE=new zE,qE=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new PE,this.gnomonic=new IE;}forward(t,e){let r=Ir[e],A=uA(t),i=de.create();de.transformQuat(i,A,r.inverseQuat);let c=p0(i),d=this.gnomonic.forward(c);d[1]=d[1]-r.angle;let m=this.getFaceTriangleIndex(d),y=this.shouldReflect(d),_=this.getFaceTriangle(m,y,false),E=this.getSphericalTriangle(m,e,y);return this.polyhedral.forward(A,E,_)}inverse(t,e){let r=Xf(t),A=this.getFaceTriangleIndex(r),i=this.shouldReflect(r),c=this.getFaceTriangle(A,i,false),d=this.getSphericalTriangle(A,e,i),m=this.polyhedral.inverse(t,c,d);return p0(m)}shouldReflect(t){let[e,r]=t;return TE([e,this.normalizeGamma(r)])[0]>Rs}getFaceTriangleIndex([t,e]){return (Math.floor(e/Gr)+10)%10}getFaceTriangle(t,e=false,r=false){let A=t;return e&&(A+=r?20:10),this.faceTriangles[A]?this.faceTriangles[A]:(this.faceTriangles[A]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[A]),this.faceTriangles[A])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,A,i]=nd(e).getVertices(),c=Le.create();return Le.lerp(c,A,i,.5),t%2===0?[r,c,A]:[r,i,c]}_getReflectedFaceTriangle(t,e=false){let[r,A,i]=this._getFaceTriangle(t).map(m=>Le.clone(m)),c=t%2===0;Le.negate(r,r);let d=c?A:i;return Le.scaleAndAdd(r,r,d,e?1+1/Math.cos(h0):2),[r,i,A]}getSphericalTriangle(t,e,r=false){let A=10*e+t;return r&&(A+=120),this.sphericalTriangles[A]?this.sphericalTriangles[A]:(this.sphericalTriangles[A]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[A]),this.sphericalTriangles[A])}_getSphericalTriangle(t,e,r=false){let A=Ir[e];return this.getFaceTriangle(t,r,true).map(d=>{let[m,y]=Xf(d),_=[m,y+A.angle],E=uA(this.gnomonic.inverse(_));return de.transformQuat(E,E,A.quat),JE.getVertex(E)})}normalizeGamma(t){let e=t/Ms,r=Math.round(e);return (e-r)*Ms}},fA=2,T0=30,lh=58n,KE=0n;function XE(t){if(t===0n)return -1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return T0;let e=T0-1,r=t>>1n;if(r===0n)return -1;let A=Number(r&0xFFFFFFFFn),i;for(A===0?(r>>=32n,e-=16,i=Number(r)):i=A,(i&65535)===0&&(i>>=16,e-=8),e>=6&&(i&255)===0&&(i>>=8,e-=4),e>=4&&(i&15)===0&&(i>>=4,e-=2);e>-1&&(i&1)===0;)e-=1,i=i>>(e<fA?1:2);return e}function YE(t){let e=XE(t);if(e===-1)return {origin:Ir[0],segment:0,S:0n,resolution:e};let r=lh,A=0;if(e===T0){let x=t&1n?1n:t&0b100n?3n:5n;r=lh+x,A=x===1n?0:x===3n?32:40;}let i=Number(t>>r)+A,c,d;if(e===0)c=Ir[i],d=0;else {let x=Math.floor(i/5);c=Ir[x],d=(i+c.firstQuintant)%5;}if(!c)throw new Error(`Could not parse origin: ${i}`);if(e<fA)return {origin:c,segment:d,S:0n,resolution:e};let m=e-fA+1,y=BigInt(2*m),_=(1n<<r)-1n,E=(t&_)>>r-y;return {origin:c,segment:d,S:E,resolution:e}}Ot.setMatrixArrayType(Float64Array);Ln.create();var WE=new qE;function ZE({S:t,segment:e,origin:r,resolution:A}){let{quintant:i,orientation:c}=SE(e,r);if(A===fA-1)return nd(i);if(A===fA-2)return QE();let d=A-fA+1,m=GE(t,d,c);return jE(d,i,m)}function Ad(t,{closedRing:e=true,segments:r="auto"}={closedRing:true,segments:"auto"}){if(t===KE)return [];let{S:A,segment:i,origin:c,resolution:d}=YE(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-d)));let x=ZE({S:A,segment:i,origin:c,resolution:d}).splitEdges(r).getVertices().map(F=>WE.inverse(F,c.id)).map(F=>Xh(F)),v=xE(x);return e&&v.push(v[0]),v.reverse(),v}function id(t){return BigInt(`0x${t}`)}var sd=2;var $E=sd*Ss/Math.sqrt(15),od=new Array(31);od[0]=sd*Ss/Math.sqrt(3);for(let t=1;t<=30;t++)od[t]=$E/(1<<t-1);Ot.setMatrixArrayType(Float64Array);var ze=(function(t){t=t||{};var e=typeof t<"u"?t:{},r={},A;for(A in e)e.hasOwnProperty(A)&&(r[A]=e[A]);var c="";function d(J){return e.locateFile?e.locateFile(J,c):c+J}var m;typeof document<"u"&&document.currentScript&&(c=document.currentScript.src),c.indexOf("blob:")!==0?c=c.substr(0,c.lastIndexOf("/")+1):c="",m=function(re,pe,Z){var n=new XMLHttpRequest;n.open("GET",re,true),n.responseType="arraybuffer",n.onload=function(){if(n.status==200||n.status==0&&n.response){pe(n.response);return}var Ke=ba(re);if(Ke){pe(Ke.buffer);return}Z();},n.onerror=Z,n.send(null);};var y=e.print||console.log.bind(console),_=e.printErr||console.warn.bind(console);for(A in r)r.hasOwnProperty(A)&&(e[A]=r[A]);r=null,e.arguments&&(e.arguments);var E=0,x=function(J){E=J;},v=function(){return E},F=8;function N(J,re,pe,Z){switch(pe=pe||"i8",pe.charAt(pe.length-1)==="*"&&(pe="i32"),pe){case "i1":ve[J>>0]=re;break;case "i8":ve[J>>0]=re;break;case "i16":rt[J>>1]=re;break;case "i32":$e[J>>2]=re;break;case "i64":_a=[re>>>0,(Xn=re,+_g(Xn)>=1?Xn>0?(xg(+Eg(Xn/4294967296),4294967295)|0)>>>0:~~+bg((Xn-+(~~Xn>>>0))/4294967296)>>>0:0)],$e[J>>2]=_a[0],$e[J+4>>2]=_a[1];break;case "float":Ve[J>>2]=re;break;case "double":nt[J>>3]=re;break;default:Cn("invalid type for setValue: "+pe);}}function U(J,re,pe){switch(re=re||"i8",re.charAt(re.length-1)==="*"&&(re="i32"),re){case "i1":return ve[J>>0];case "i8":return ve[J>>0];case "i16":return rt[J>>1];case "i32":return $e[J>>2];case "i64":return $e[J>>2];case "float":return Ve[J>>2];case "double":return nt[J>>3];default:Cn("invalid type for getValue: "+re);}return null}var q=false;function X(J,re){J||Cn("Assertion failed: "+re);}function W(J){var re=e["_"+J];return X(re,"Cannot call unknown function "+J+", make sure it is exported"),re}function he(J,re,pe,Z,n){var At={string:function(De){var We=0;if(De!=null&&De!==0){var Wi=(De.length<<2)+1;We=hu(Wi),Y(De,We,Wi);}return We},array:function(De){var We=hu(De.length);return ge(De,We),We}};function Ke(De){return re==="string"?Ee(De):re==="boolean"?!!De:De}var L=W(J),it=[],Wt=0;if(Z)for(var Mt=0;Mt<Z.length;Mt++){var Ct=At[pe[Mt]];Ct?(Wt===0&&(Wt=Ug()),it[Mt]=Ct(Z[Mt])):it[Mt]=Z[Mt];}var pt=L.apply(null,it);return pt=Ke(pt),Wt!==0&&kg(Wt),pt}function _e(J,re,pe,Z){pe=pe||[];var n=pe.every(function(Ke){return Ke==="number"}),At=re!=="string";return At&&n&&!Z?W(J):function(){return he(J,re,pe,arguments)}}var be=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Te(J,re,pe){for(var Z=re+pe,n=re;J[n]&&!(n>=Z);)++n;if(n-re>16&&J.subarray&&be)return be.decode(J.subarray(re,n));for(var At="";re<n;){var Ke=J[re++];if(!(Ke&128)){At+=String.fromCharCode(Ke);continue}var L=J[re++]&63;if((Ke&224)==192){At+=String.fromCharCode((Ke&31)<<6|L);continue}var it=J[re++]&63;if((Ke&240)==224?Ke=(Ke&15)<<12|L<<6|it:Ke=(Ke&7)<<18|L<<12|it<<6|J[re++]&63,Ke<65536)At+=String.fromCharCode(Ke);else {var Wt=Ke-65536;At+=String.fromCharCode(55296|Wt>>10,56320|Wt&1023);}}return At}function Ee(J,re){return J?Te(ke,J,re):""}function se(J,re,pe,Z){if(!(Z>0))return 0;for(var n=pe,At=pe+Z-1,Ke=0;Ke<J.length;++Ke){var L=J.charCodeAt(Ke);if(L>=55296&&L<=57343){var it=J.charCodeAt(++Ke);L=65536+((L&1023)<<10)|it&1023;}if(L<=127){if(pe>=At)break;re[pe++]=L;}else if(L<=2047){if(pe+1>=At)break;re[pe++]=192|L>>6,re[pe++]=128|L&63;}else if(L<=65535){if(pe+2>=At)break;re[pe++]=224|L>>12,re[pe++]=128|L>>6&63,re[pe++]=128|L&63;}else {if(pe+3>=At)break;re[pe++]=240|L>>18,re[pe++]=128|L>>12&63,re[pe++]=128|L>>6&63,re[pe++]=128|L&63;}}return re[pe]=0,pe-n}function Y(J,re,pe){return se(J,ke,re,pe)}typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function ge(J,re){ve.set(J,re);}function Me(J,re){return J%re>0&&(J+=re-J%re),J}var Se,ve,ke,rt,$e,Ve,nt;function Rt(J){Se=J,e.HEAP8=ve=new Int8Array(J),e.HEAP16=rt=new Int16Array(J),e.HEAP32=$e=new Int32Array(J),e.HEAPU8=ke=new Uint8Array(J),e.HEAPU16=new Uint16Array(J),e.HEAPU32=new Uint32Array(J),e.HEAPF32=Ve=new Float32Array(J),e.HEAPF64=nt=new Float64Array(J);}var ug=5271296,Au=28384,iu=e.TOTAL_MEMORY||33554432;e.buffer?Se=e.buffer:Se=new ArrayBuffer(iu),iu=Se.byteLength,Rt(Se),$e[Au>>2]=ug;function Xi(J){for(;J.length>0;){var re=J.shift();if(typeof re=="function"){re();continue}var pe=re.func;typeof pe=="number"?re.arg===void 0?e.dynCall_v(pe):e.dynCall_vi(pe,re.arg):pe(re.arg===void 0?null:re.arg);}}var su=[],fg=[],hg=[],ou=[];function dg(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)yg(e.preRun.shift());Xi(su);}function pg(){Xi(fg);}function mg(){Xi(hg);}function gg(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Tg(e.postRun.shift());Xi(ou);}function yg(J){su.unshift(J);}function Tg(J){ou.unshift(J);}var _g=Math.abs,bg=Math.ceil,Eg=Math.floor,xg=Math.min,xn=0,WA=null;function Cg(J){xn++,e.monitorRunDependencies&&e.monitorRunDependencies(xn);}function wg(J){if(xn--,e.monitorRunDependencies&&e.monitorRunDependencies(xn),xn==0&&(WA)){var re=WA;WA=null,re();}}e.preloadedImages={},e.preloadedAudios={};var Qr=null,Ta="data:application/octet-stream;base64,";function au(J){return String.prototype.startsWith?J.startsWith(Ta):J.indexOf(Ta)===0}var Xn,_a;Qr="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAAAAACAAAAAQAAABMAAAACAAAAAgAAAAAAAAAFAAAACgAAAAAAAAACAAAAAgAAAAMAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABEAAAACAAAAAAAAAAIAAAABAAAADwAAAAIAAAACAAAAAAAAAAUAAAALAAAAAAAAAAIAAAACAAAAAwAAABEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAIAAAAAAAAAAgAAAAEAAAAQAAAAAgAAAAIAAAAAAAAABQAAAAwAAAAAAAAAAgAAAAIAAAADAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAACAAAAAQAAABEAAAACAAAAAgAAAAAAAAAFAAAADQAAAAAAAAACAAAAAgAAAAMAAAATAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAACAAAAAAAAAAIAAAABAAAAEgAAAAIAAAACAAAAAAAAAAUAAAAOAAAAAAAAAAIAAAACAAAAAwAAAAIAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAEAAAAAAAAAAgAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAgAAAAAAAAABAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAABAAAAAAEAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP6phvycGBZRAJbod0OgwfkCp+L8jatBmQCjl3pGrPlFAfMWm114SOkButwtqS7UjQHQwbcjXyw1A8jnLuuyA9j9KwjL0VwHhPyotk0lcs8k/Q5PvEs9rsz+SfsOQEVqdPzUAKDojLoY/WJz/kcjCcD8YFu070FRZPyoLC2BdJEM/YOXQAuiMM0HIBz1bw3sdQdV46aaHRwZByatzjDPX8EDb3Jie8HXZQCJxj6ULP8NAUaG6uRAZrUCWdmou5/mVQLb9huRPm4BAhvoCHygZaUCuX/I3SPdSQC9/bC/1qTxAfKxsYQ6pJUCuslH+N14QQMS/cv7SvPg/Ol8maYKx4j8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////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cmNQYWlycwBjcmVhdGVTb3J0YWJsZUxvb3AAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAdmVjM1RvQ2VsbABjZWxsVG9DaGlsZFBvcwB2YWxpZGF0ZUNoaWxkUG9zAHJldkRpciAhPSBJTlZBTElEX0RJR0lUAGxvY2FsaWouYwBjZWxsVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAYmFzZUNlbGwgPT0gb3JpZ2luQmFzZUNlbGwALi4vaW5jbHVkZS9jb29yZGlqay5oAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAYmFzZUNlbGwgIT0gSU5WQUxJRF9CQVNFX0NFTEwAbG9jYWxJamtUb0NlbGwAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAZ3JpZFBhdGhDZWxsc0ludGVycG9sYXRlAHBvbHlmaWxsLmMAaXRlclN0ZXBQb2x5Z29uQ29tcGFjdAAwAHZlcnRleC5jAHZlcnRleFJvdGF0aW9ucwBjZWxsVG9WZXJ0ZXg=";var Bg=28400;function Sg(J,re,pe,Z){Cn("Assertion failed: "+Ee(J)+", at: "+[re?Ee(re):"unknown filename",pe,Z?Ee(Z):"unknown function"]);}function uu(){return ve.length}function Ig(J,re,pe){ke.set(ke.subarray(re,re+pe),J);}function Fg(J){return e.___errno_location&&($e[e.___errno_location()>>2]=J),J}function Lg(J){Cn("OOM");}function fu(J){try{var re=new ArrayBuffer(J);return re.byteLength!=J?void 0:(new Int8Array(re).set(ve),Gg(re),Rt(re),1)}catch{}}function Rg(J){var re=uu(),pe=16777216,Z=2147483648-pe;if(J>Z)return false;for(var n=16777216,At=Math.max(re,n);At<J;)At<=536870912?At=Me(2*At,pe):At=Math.min(Me((3*At+2147483648)/4,pe),Z);var Ke=fu(At);return !!Ke}var Pg=typeof atob=="function"?atob:function(J){var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",pe="",Z,n,At,Ke,L,it,Wt,Mt=0;J=J.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Ke=re.indexOf(J.charAt(Mt++)),L=re.indexOf(J.charAt(Mt++)),it=re.indexOf(J.charAt(Mt++)),Wt=re.indexOf(J.charAt(Mt++)),Z=Ke<<2|L>>4,n=(L&15)<<4|it>>2,At=(it&3)<<6|Wt,pe=pe+String.fromCharCode(Z),it!==64&&(pe=pe+String.fromCharCode(n)),Wt!==64&&(pe=pe+String.fromCharCode(At));while(Mt<J.length);return pe};function Dg(J){try{for(var re=Pg(J),pe=new Uint8Array(re.length),Z=0;Z<re.length;++Z)pe[Z]=re.charCodeAt(Z);return pe}catch{throw new Error("Converting base64 string to bytes failed.")}}function ba(J){if(au(J))return Dg(J.slice(Ta.length))}var Ng={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},Og={a:Cn,b:x,c:v,d:Sg,e:Fg,f:uu,g:Ig,h:Rg,i:Lg,o:Bg,p:Au},ie=(function(J,re,pe){"almost asm";var Z=new J.Int8Array(pe),n=new J.Int32Array(pe);new J.Uint8Array(pe);new J.Float32Array(pe);var L=new J.Float64Array(pe),it=re.o|0,Wt=re.p|0,Mt=J.Math.floor,Ct=J.Math.abs,pt=J.Math.sqrt,De=J.Math.cos,We=J.Math.sin,Wi=J.Math.tan,Hg=J.Math.acos,ZA=J.Math.asin,gu=J.Math.atan,Qt=J.Math.atan2,Yn=J.Math.ceil,Zt=J.Math.imul,Ca=J.Math.min,Vg=J.Math.max,zr=J.Math.clz32,jg=re.a,Ie=re.b,I=re.c,Oe=re.d,yu=re.e,Qg=re.f,zg=re.g,Jg=re.h,qg=re.i,S=28416;function Kg(s){return Z=new Int8Array(s),n=new Int32Array(s),L=new Float64Array(s),pe=s,true}function Xg(s){s=s|0;var o=0;return o=S,S=S+s|0,S=S+15&-16,o|0}function Yg(){return S|0}function Wg(s){s=s|0,S=s;}function Zg(s,o){s=s|0,S=s;}function $g(s,o){s=s|0,o=o|0;var a=0,u=0,l=0;return (s|0)<0?(o=2,o|0):(s|0)>13780509?(o=ts(15,o)|0,o|0):(a=((s|0)<0)<<31>>31,l=ut(s|0,a|0,3,0)|0,u=I()|0,a=ce(s|0,a|0,1,0)|0,a=ut(l|0,u|0,a|0,I()|0)|0,a=ce(a|0,I()|0,1,0)|0,s=I()|0,n[o>>2]=a,n[o+4>>2]=s,o=0,o|0)}function Tu(s,o,a,u){return s=s|0,o=o|0,a=a|0,u=u|0,_u(s,o,a,u,0)|0}function _u(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0;if(g=S,S=S+16|0,h=g,!(bu(s,o,a,u,l)|0))return u=0,S=g,u|0;do if((a|0)>=0){if((a|0)>13780509){if(f=ts(15,h)|0,f|0)break;p=h,h=n[p>>2]|0,p=n[p+4>>2]|0;}else f=((a|0)<0)<<31>>31,T=ut(a|0,f|0,3,0)|0,p=I()|0,f=ce(a|0,f|0,1,0)|0,f=ut(T|0,p|0,f|0,I()|0)|0,f=ce(f|0,I()|0,1,0)|0,p=I()|0,n[h>>2]=f,n[h+4>>2]=p,h=f;if(an(u|0,0,h<<3|0)|0,l|0){an(l|0,0,h<<2|0)|0,f=Dr(s,o,a,u,l,h,p,0)|0;break}f=zt(h,4)|0,f?(T=Dr(s,o,a,u,f,h,p,0)|0,fe(f),f=T):f=13;}else f=2;while(false);return T=f,S=g,T|0}function bu(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;if(P=S,S=S+16|0,B=P,M=P+8|0,w=B,n[w>>2]=s,n[w+4>>2]=o,(a|0)<0)return M=2,S=P,M|0;if(f=u,n[f>>2]=s,n[f+4>>2]=o,f=(l|0)!=0,f&&(n[l>>2]=0),et(s,o)|0)return M=9,S=P,M|0;n[M>>2]=0;e:do if((a|0)>=1)if(f)for(b=1,T=0,C=0,w=1,f=s;;){if(!(T|C)){if(f=wt(f,o,4,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,et(f,o)|0){f=9;break e}}if(f=wt(f,o,n[26864+(C<<2)>>2]|0,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,s=u+(b<<3)|0,n[s>>2]=f,n[s+4>>2]=o,n[l+(b<<2)>>2]=w,s=T+1|0,h=(s|0)==(w|0),p=C+1|0,g=(p|0)==6,et(f,o)|0){f=9;break e}if(w=w+(g&h&1)|0,(w|0)>(a|0)){f=0;break}else b=b+1|0,T=h?0:s,C=h?g?0:p:C;}else for(b=1,T=0,C=0,w=1,f=s;;){if(!(T|C)){if(f=wt(f,o,4,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,et(f,o)|0){f=9;break e}}if(f=wt(f,o,n[26864+(C<<2)>>2]|0,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,s=u+(b<<3)|0,n[s>>2]=f,n[s+4>>2]=o,s=T+1|0,h=(s|0)==(w|0),p=C+1|0,g=(p|0)==6,et(f,o)|0){f=9;break e}if(w=w+(g&h&1)|0,(w|0)>(a|0)){f=0;break}else b=b+1|0,T=h?0:s,C=h?g?0:p:C;}else f=0;while(false);return M=f,S=P,M|0}function Dr(s,o,a,u,l,f,h,p){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0,h=h|0,p=p|0;var g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0;if(P=S,S=S+16|0,B=P+8|0,M=P,g=Jr(s|0,o|0,f|0,h|0)|0,b=I()|0,C=u+(g<<3)|0,D=C,H=n[D>>2]|0,D=n[D+4>>2]|0,T=(H|0)==(s|0)&(D|0)==(o|0),!((H|0)==0&(D|0)==0|T))do g=ce(g|0,b|0,1,0)|0,g=on(g|0,I()|0,f|0,h|0)|0,b=I()|0,C=u+(g<<3)|0,H=C,D=n[H>>2]|0,H=n[H+4>>2]|0,T=(D|0)==(s|0)&(H|0)==(o|0);while(!((D|0)==0&(H|0)==0|T));if(g=l+(g<<2)|0,T&&(n[g>>2]|0)<=(p|0)||(H=C,n[H>>2]=s,n[H+4>>2]=o,n[g>>2]=p,(p|0)>=(a|0)))return H=0,S=P,H|0;switch(T=p+1|0,n[B>>2]=0,g=wt(s,o,2,B,M)|0,g|0){case 9:{w=9;break}case 0:{g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,a,u,l,f,h,T)|0,g||(w=9);break}}e:do if((w|0)==9){switch(n[B>>2]=0,g=wt(s,o,3,B,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,a,u,l,f,h,T)|0,g|0)break e;break}default:break e}switch(n[B>>2]=0,g=wt(s,o,1,B,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,a,u,l,f,h,T)|0,g|0)break e;break}default:break e}switch(n[B>>2]=0,g=wt(s,o,5,B,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,a,u,l,f,h,T)|0,g|0)break e;break}default:break e}switch(n[B>>2]=0,g=wt(s,o,4,B,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,a,u,l,f,h,T)|0,g|0)break e;break}default:break e}switch(n[B>>2]=0,g=wt(s,o,6,B,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,a,u,l,f,h,T)|0,g|0)break e;break}default:break e}return H=0,S=P,H|0}while(false);return H=g,S=P,H|0}function wt(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(a>>>0>6)return l=1,l|0;h=(n[u>>2]|0)%6|0,n[u>>2]=h;e:do if((h|0)>0)for(f=0;;){switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}}if(f=f+1|0,(f|0)==(h|0))break e}while(false);if(C=te(s|0,o|0,45)|0,I()|0,b=C&127,b>>>0>121)return l=5,l|0;g=$t(s,o)|0,f=te(s|0,o|0,52)|0,I()|0,f=f&15;e:do if(!f)T=15;else {for(;;){if(h=(15-f|0)*3|0,p=te(s|0,o|0,h|0)|0,I()|0,p=p&7,(p|0)==7){o=5;break}if(M=(hr(f)|0)==0,f=f+-1|0,w=oe(7,0,h|0)|0,o=o&~(I()|0),B=oe(n[(M?432:16)+(p*28|0)+(a<<2)>>2]|0,0,h|0)|0,h=I()|0,a=n[(M?640:224)+(p*28|0)+(a<<2)>>2]|0,s=B|s&~w,o=h|o,!a){a=0;break e}if(!f){T=15;break e}}return o|0}while(false);(T|0)==15&&(M=n[848+(b*28|0)+(a<<2)>>2]|0,B=oe(M|0,0,45)|0,s=B|s,o=I()|0|o&-1040385,a=n[4272+(b*28|0)+(a<<2)>>2]|0,(M&127|0)==127&&(M=oe(n[848+(b*28|0)+20>>2]|0,0,45)|0,o=I()|0|o&-1040385,a=n[4272+(b*28|0)+20>>2]|0,s=wn(M|s,o)|0,o=I()|0,n[u>>2]=(n[u>>2]|0)+1)),p=te(s|0,o|0,45)|0,I()|0,p=p&127;e:do if(ct(p)|0){t:do if(($t(s,o)|0)==1){if((b|0)!=(p|0))if(wu(p,n[7696+(b*28|0)>>2]|0)|0){s=Na(s,o)|0,h=1,o=I()|0;break}else Oe(27634,26928,533,26936);switch(g|0){case 3:{s=wn(s,o)|0,o=I()|0,n[u>>2]=(n[u>>2]|0)+1,h=0;break t}case 5:{s=Na(s,o)|0,o=I()|0,n[u>>2]=(n[u>>2]|0)+5,h=0;break t}case 0:return M=9,M|0;default:return M=1,M|0}}else h=0;while(false);if((a|0)>0){f=0;do s=Da(s,o)|0,o=I()|0,f=f+1|0;while((f|0)!=(a|0))}if((b|0)!=(p|0)){if(!(wa(p)|0)){if((h|0)!=0|($t(s,o)|0)!=5)break;n[u>>2]=(n[u>>2]|0)+1;break}switch(C&127){case 8:case 118:break e;}($t(s,o)|0)!=3&&(n[u>>2]=(n[u>>2]|0)+1);}}else if((a|0)>0){f=0;do s=wn(s,o)|0,o=I()|0,f=f+1|0;while((f|0)!=(a|0))}while(false);return n[u>>2]=((n[u>>2]|0)+a|0)%6|0,M=l,n[M>>2]=s,n[M+4>>2]=o,M=0,M|0}function ey(s,o,a,u){return s=s|0,o=o|0,a=a|0,u=u|0,Eu(s,o,a,u)|0?(an(u|0,0,a*48|0)|0,u=ty(s,o,a,u)|0,u|0):(u=0,u|0)}function Eu(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(M=S,S=S+16|0,w=M,B=M+8|0,C=w,n[C>>2]=s,n[C+4>>2]=o,(a|0)<0)return B=2,S=M,B|0;if(!a)return B=u,n[B>>2]=s,n[B+4>>2]=o,B=0,S=M,B|0;n[B>>2]=0;e:do if(et(s,o)|0)s=9;else {l=0,C=s;do{if(s=wt(C,o,4,B,w)|0,s|0)break e;if(o=w,C=n[o>>2]|0,o=n[o+4>>2]|0,l=l+1|0,et(C,o)|0){s=9;break e}}while((l|0)<(a|0));b=u,n[b>>2]=C,n[b+4>>2]=o,b=a+-1|0,T=0,s=1;do{if(l=26864+(T<<2)|0,(T|0)==5)for(h=n[l>>2]|0,f=0,l=s;;){if(s=w,s=wt(n[s>>2]|0,n[s+4>>2]|0,h,B,w)|0,s|0)break e;if((f|0)!=(b|0))if(g=w,p=n[g>>2]|0,g=n[g+4>>2]|0,s=u+(l<<3)|0,n[s>>2]=p,n[s+4>>2]=g,!(et(p,g)|0))s=l+1|0;else {s=9;break e}else s=l;if(f=f+1|0,(f|0)>=(a|0))break;l=s;}else for(h=w,g=n[l>>2]|0,p=0,l=s,f=n[h>>2]|0,h=n[h+4>>2]|0;;){if(s=wt(f,h,g,B,w)|0,s|0)break e;if(h=w,f=n[h>>2]|0,h=n[h+4>>2]|0,s=u+(l<<3)|0,n[s>>2]=f,n[s+4>>2]=h,s=l+1|0,et(f,h)|0){s=9;break e}if(p=p+1|0,(p|0)>=(a|0))break;l=s;}T=T+1|0;}while(T>>>0<6);s=w,s=(C|0)==(n[s>>2]|0)&&(o|0)==(n[s+4>>2]|0)?0:9;}while(false);return B=s,S=M,B|0}function ty(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;if(C=S,S=S+16|0,h=C,!a)return n[u>>2]=s,n[u+4>>2]=o,u=0,S=C,u|0;do if((a|0)>=0){if((a|0)>13780509){if(l=ts(15,h)|0,l|0)break;f=h,l=n[f>>2]|0,f=n[f+4>>2]|0;}else l=((a|0)<0)<<31>>31,b=ut(a|0,l|0,3,0)|0,f=I()|0,l=ce(a|0,l|0,1,0)|0,l=ut(b|0,f|0,l|0,I()|0)|0,l=ce(l|0,I()|0,1,0)|0,f=I()|0,b=h,n[b>>2]=l,n[b+4>>2]=f;if(T=zt(l,8)|0,!T)l=13;else {if(b=zt(l,4)|0,!b){fe(T),l=13;break}if(l=Dr(s,o,a,T,b,l,f,0)|0,l|0){fe(T),fe(b);break}if(o=n[h>>2]|0,h=n[h+4>>2]|0,(h|0)>0|(h|0)==0&o>>>0>0){l=0,p=0,g=0;do s=T+(p<<3)|0,f=n[s>>2]|0,s=n[s+4>>2]|0,!((f|0)==0&(s|0)==0)&&(n[b+(p<<2)>>2]|0)==(a|0)&&(w=u+(l<<3)|0,n[w>>2]=f,n[w+4>>2]=s,l=l+1|0),p=ce(p|0,g|0,1,0)|0,g=I()|0;while((g|0)<(h|0)|(g|0)==(h|0)&p>>>0<o>>>0)}fe(T),fe(b),l=0;}}else l=2;while(false);return w=l,S=C,w|0}function Zi(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;for(p=S,S=S+16|0,f=p,h=p+8|0,l=(et(s,o)|0)==0,l=l?1:2;;){if(n[h>>2]=0,T=(wt(s,o,l,h,f)|0)==0,g=f,T&((n[g>>2]|0)==(a|0)?(n[g+4>>2]|0)==(u|0):0)){s=4;break}if(l=l+1|0,l>>>0>=7){l=7,s=4;break}}return (s|0)==4?(S=p,l|0):0}function ry(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;if(p=S,S=S+48|0,l=p+16|0,f=p+8|0,h=p,a=si(a)|0,a|0)return h=a,S=p,h|0;if(T=s,g=n[T+4>>2]|0,a=f,n[a>>2]=n[T>>2],n[a+4>>2]=g,ju(f,l),a=Su(l,o,h)|0,!a){if(o=n[f>>2]|0,f=n[s+8>>2]|0,(f|0)>0){l=n[s+12>>2]|0,a=0;do o=(n[l+(a<<3)>>2]|0)+o|0,a=a+1|0;while((a|0)<(f|0))}a=h,l=n[a>>2]|0,a=n[a+4>>2]|0,f=((o|0)<0)<<31>>31,(a|0)<(f|0)|(a|0)==(f|0)&l>>>0<o>>>0?(a=h,n[a>>2]=o,n[a+4>>2]=f,a=f):o=l,g=ce(o|0,a|0,12,0)|0,T=I()|0,a=h,n[a>>2]=g,n[a+4>>2]=T,a=u,n[a>>2]=g,n[a+4>>2]=T,a=0;}return T=a,S=p,T|0}function xu(s,o,a,u,l,f,h){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0,h=h|0;var p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0,Jt=0;if(Ue=S,S=S+64|0,me=Ue+48|0,ne=Ue+32|0,ae=Ue+24|0,K=Ue+8|0,ee=Ue,g=n[s>>2]|0,(g|0)<=0)return Ge=0,S=Ue,Ge|0;for(z=s+4|0,V=me+8|0,le=ne+8|0,$=K+8|0,p=0,j=0;;){T=n[z>>2]|0,R=T+(j<<4)|0,n[me>>2]=n[R>>2],n[me+4>>2]=n[R+4>>2],n[me+8>>2]=n[R+8>>2],n[me+12>>2]=n[R+12>>2],(j|0)==(g+-1|0)?(n[ne>>2]=n[T>>2],n[ne+4>>2]=n[T+4>>2],n[ne+8>>2]=n[T+8>>2],n[ne+12>>2]=n[T+12>>2]):(R=T+(j+1<<4)|0,n[ne>>2]=n[R>>2],n[ne+4>>2]=n[R+4>>2],n[ne+8>>2]=n[R+8>>2],n[ne+12>>2]=n[R+12>>2]),g=gy(me,ne,u,ae)|0;e:do if(g)T=0,p=g;else if(g=ae,T=n[g>>2]|0,g=n[g+4>>2]|0,(g|0)>0|(g|0)==0&T>>>0>0){H=0,R=0;t:for(;;){if(Re=1/(+(T>>>0)+4294967296*+(g|0)),Jt=+L[me>>3],g=Bt(T|0,g|0,H|0,R|0)|0,He=+(g>>>0)+4294967296*+(I()|0),Pt=+(H>>>0)+4294967296*+(R|0),L[K>>3]=Re*(Jt*He)+Re*(+L[ne>>3]*Pt),L[$>>3]=Re*(+L[V>>3]*He)+Re*(+L[le>>3]*Pt),g=Oa(K,u,ee)|0,g|0){p=g;break}D=ee,P=n[D>>2]|0,D=n[D+4>>2]|0,w=Jr(P|0,D|0,o|0,a|0)|0,b=I()|0,g=h+(w<<3)|0,C=g,T=n[C>>2]|0,C=n[C+4>>2]|0;r:do if((T|0)==0&(C|0)==0)O=g,Ge=16;else for(B=0,M=0;;){if((B|0)>(a|0)|(B|0)==(a|0)&M>>>0>o>>>0){p=1;break t}if((T|0)==(P|0)&(C|0)==(D|0))break r;if(g=ce(w|0,b|0,1,0)|0,w=on(g|0,I()|0,o|0,a|0)|0,b=I()|0,M=ce(M|0,B|0,1,0)|0,B=I()|0,g=h+(w<<3)|0,C=g,T=n[C>>2]|0,C=n[C+4>>2]|0,(T|0)==0&(C|0)==0){O=g,Ge=16;break}}while(false);if((Ge|0)==16&&(Ge=0,!((P|0)==0&(D|0)==0))&&(M=O,n[M>>2]=P,n[M+4>>2]=D,M=f+(n[l>>2]<<3)|0,n[M>>2]=P,n[M+4>>2]=D,M=l,M=ce(n[M>>2]|0,n[M+4>>2]|0,1,0)|0,P=I()|0,D=l,n[D>>2]=M,n[D+4>>2]=P),H=ce(H|0,R|0,1,0)|0,R=I()|0,g=ae,T=n[g>>2]|0,g=n[g+4>>2]|0,!((g|0)>(R|0)|(g|0)==(R|0)&T>>>0>H>>>0)){T=1;break e}}T=0;}else T=1;while(false);if(j=j+1|0,!T){Ge=21;break}if(g=n[s>>2]|0,(j|0)>=(g|0)){p=0,Ge=21;break}}return (Ge|0)==21?(S=Ue,p|0):0}function ny(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0;if(He=S,S=S+112|0,Ge=He+80|0,g=He+72|0,Ue=He,Pt=He+56|0,l=si(a)|0,l|0)return Re=l,S=He,Re|0;if(T=s+8|0,Re=lt((n[T>>2]<<5)+32|0)|0,!Re)return Re=13,S=He,Re|0;if(Qa(s,Re),l=si(a)|0,!l){if(ne=s,ae=n[ne+4>>2]|0,l=g,n[l>>2]=n[ne>>2],n[l+4>>2]=ae,ju(g,Ge),l=Su(Ge,o,Ue)|0,l)ne=0,ae=0;else {if(l=n[g>>2]|0,f=n[T>>2]|0,(f|0)>0){h=n[s+12>>2]|0,a=0;do l=(n[h+(a<<3)>>2]|0)+l|0,a=a+1|0;while((a|0)!=(f|0));a=l;}else a=l;l=Ue,f=n[l>>2]|0,l=n[l+4>>2]|0,h=((a|0)<0)<<31>>31,(l|0)<(h|0)|(l|0)==(h|0)&f>>>0<a>>>0?(l=Ue,n[l>>2]=a,n[l+4>>2]=h,l=h):a=f,ne=ce(a|0,l|0,12,0)|0,ae=I()|0,l=Ue,n[l>>2]=ne,n[l+4>>2]=ae,l=0;}if(!l){if(a=zt(ne,8)|0,!a)return fe(Re),Re=13,S=He,Re|0;if(p=zt(ne,8)|0,!p)return fe(Re),fe(a),Re=13,S=He,Re|0;$=Ge,n[$>>2]=0,n[$+4>>2]=0,$=s,me=n[$+4>>2]|0,l=g,n[l>>2]=n[$>>2],n[l+4>>2]=me,l=xu(g,ne,ae,o,Ge,a,p)|0;e:do if(l)fe(a),fe(p),fe(Re);else {t:do if((n[T>>2]|0)>0){for(h=s+12|0,f=0;l=xu((n[h>>2]|0)+(f<<3)|0,ne,ae,o,Ge,a,p)|0,f=f+1|0,!(l|0);)if((f|0)>=(n[T>>2]|0))break t;fe(a),fe(p),fe(Re);break e}while(false);(ae|0)>0|(ae|0)==0&ne>>>0>0&&an(p|0,0,ne<<3|0)|0,me=Ge,$=n[me+4>>2]|0;t:do if(($|0)>0|($|0)==0&(n[me>>2]|0)>>>0>0){z=a,V=p,le=a,$=p,me=a,l=a,O=a,K=p,ee=p,a=p;r:for(;;){for(D=0,H=0,R=0,j=0,f=0,h=0;;){p=Ue,g=p+56|0;do n[p>>2]=0,p=p+4|0;while((p|0)<(g|0));if(o=z+(D<<3)|0,T=n[o>>2]|0,o=n[o+4>>2]|0,bu(T,o,1,Ue,0)|0){p=Ue,g=p+56|0;do n[p>>2]=0,p=p+4|0;while((p|0)<(g|0));p=zt(7,4)|0,p|0&&(Dr(T,o,1,Ue,p,7,0,0)|0,fe(p));}for(P=0;;){M=Ue+(P<<3)|0,B=n[M>>2]|0,M=n[M+4>>2]|0;n:do if((B|0)==0&(M|0)==0)p=f,g=h;else {if(b=Jr(B|0,M|0,ne|0,ae|0)|0,T=I()|0,p=u+(b<<3)|0,o=p,g=n[o>>2]|0,o=n[o+4>>2]|0,!((g|0)==0&(o|0)==0)){C=0,w=0;do{if((C|0)>(ae|0)|(C|0)==(ae|0)&w>>>0>ne>>>0)break r;if((g|0)==(B|0)&(o|0)==(M|0)){p=f,g=h;break n}p=ce(b|0,T|0,1,0)|0,b=on(p|0,I()|0,ne|0,ae|0)|0,T=I()|0,w=ce(w|0,C|0,1,0)|0,C=I()|0,p=u+(b<<3)|0,o=p,g=n[o>>2]|0,o=n[o+4>>2]|0;}while(!((g|0)==0&(o|0)==0))}if((B|0)==0&(M|0)==0){p=f,g=h;break}$n(B,M,Pt)|0,za(s,Re,Pt)|0&&(w=ce(f|0,h|0,1,0)|0,h=I()|0,C=p,n[C>>2]=B,n[C+4>>2]=M,f=V+(f<<3)|0,n[f>>2]=B,n[f+4>>2]=M,f=w),p=f,g=h;}while(false);if(P=P+1|0,P>>>0>=7)break;f=p,h=g;}if(D=ce(D|0,H|0,1,0)|0,H=I()|0,R=ce(R|0,j|0,1,0)|0,j=I()|0,h=Ge,f=n[h>>2]|0,h=n[h+4>>2]|0,(j|0)<(h|0)|(j|0)==(h|0)&R>>>0<f>>>0)f=p,h=g;else break}if((h|0)>0|(h|0)==0&f>>>0>0){f=0,h=0;do j=z+(f<<3)|0,n[j>>2]=0,n[j+4>>2]=0,f=ce(f|0,h|0,1,0)|0,h=I()|0,j=Ge,R=n[j+4>>2]|0;while((h|0)<(R|0)|((h|0)==(R|0)?f>>>0<(n[j>>2]|0)>>>0:0))}if(j=Ge,n[j>>2]=p,n[j+4>>2]=g,(g|0)>0|(g|0)==0&p>>>0>0)P=a,D=ee,H=me,R=K,j=V,a=O,ee=l,K=le,O=P,l=D,me=$,$=H,le=R,V=z,z=j;else break t}fe(le),fe($),fe(Re),l=1;break e}else l=p;while(false);fe(Re),fe(a),fe(l),l=0;}while(false);return Re=l,S=He,Re|0}}return fe(Re),Re=l,S=He,Re|0}function Ay(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0;if(p=S,S=S+16|0,h=p,s=Ty(s,o,((o|0)<0)<<31>>31,h)|0,s|0)return h=s,S=p,h|0;if(f=eT(h,a)|0,a=h+4|0,(n[h>>2]|0)>0){o=0;do{if(l=n[a>>2]|0,u=l+(o<<4)+4|0,fe(n[u>>2]|0),n[u>>2]=0,n[l+(o<<4)>>2]=0,u=l+(o<<4)+8|0,l=l+(o<<4)+12|0,(n[u>>2]|0)>0){s=0;do g=n[l>>2]|0,T=g+(s<<3)+4|0,fe(n[T>>2]|0),n[T>>2]=0,n[g+(s<<3)>>2]=0,s=s+1|0;while((s|0)<(n[u>>2]|0))}fe(n[l>>2]|0),n[l>>2]=0,n[u>>2]=0,o=o+1|0;}while((o|0)<(n[h>>2]|0))}return fe(n[a>>2]|0),n[a>>2]=0,n[h>>2]=0,T=f,S=p,T|0}function fr(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(h=n[s>>2]|0,(h|0)<=0)return l=0,u=0,h=l<0,u=12.566370614359172-u,u=l+u,l=h?u:l,L[o>>3]=l,0;if(f=n[s+4>>2]|0,s=(h|0)!=1&1,p=+L[f>>3]*.5+.7853981633974483,l=+L[f+(s<<4)>>3]*.5+.7853981633974483,a=+We(+p)*+We(+l),u=+L[f+(s<<4)+8>>3]-+L[f+8>>3],a=+Qt(+(+We(+u)*a),+(+De(+p)*+De(+l)+ +De(+u)*a))*-2,u=a+0,a=u-a,(h|0)==1)return p=u,l=a,h=p<0,l=12.566370614359172-l,l=p+l,p=h?l:p,L[o>>3]=p,0;for(s=1,l=u;b=s,s=s+1|0,C=(s|0)%(h|0)|0,T=+L[f+(b<<4)>>3]*.5+.7853981633974483,g=+L[f+(C<<4)>>3]*.5+.7853981633974483,u=+We(+T)*+We(+g),p=+L[f+(C<<4)+8>>3]-+L[f+(b<<4)+8>>3],a=+Qt(+(+We(+p)*u),+(+De(+T)*+De(+g)+ +De(+p)*u))*-2-a,u=l+a,a=u-l-a,!((s|0)>=(h|0));)l=u;return C=u<0,T=12.566370614359172-a,T=u+T,T=C?T:u,L[o>>3]=T,0}function iy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;return h=S,S=S+192|0,u=h+176|0,l=h,f=h+168|0,s=Bn(s,o,l)|0,s|0?(f=s,S=h,f|0):(n[f>>2]=n[l>>2],n[f+4>>2]=l+8,n[u>>2]=n[f>>2],n[u+4>>2]=n[f+4>>2],fr(u,a)|0,f=0,S=h,f|0)}function sy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;return h=S,S=S+192|0,u=h+176|0,l=h,f=h+168|0,s=Bn(s,o,l)|0,s?(f=s,S=h,f|0):(n[f>>2]=n[l>>2],n[f+4>>2]=l+8,n[u>>2]=n[f>>2],n[u+4>>2]=n[f+4>>2],fr(u,a)|0,L[a>>3]=+L[a>>3]*4058973249931477e-8,f=0,S=h,f|0)}function oy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;return h=S,S=S+192|0,u=h+176|0,l=h,f=h+168|0,s=Bn(s,o,l)|0,s?(f=s,S=h,f|0):(n[f>>2]=n[l>>2],n[f+4>>2]=l+8,n[u>>2]=n[f>>2],n[u+4>>2]=n[f+4>>2],fr(u,a)|0,L[a>>3]=+L[a>>3]*4058973249931477e-8*1e6,f=0,S=h,f|0)}function ct(s){return s=s|0,s>>>0>121?(s=0,s|0):(s=n[7696+(s*28|0)+16>>2]|0,s|0)}function wa(s){return s=s|0,(s|0)==4|(s|0)==117|0}function Cu(s){return s=s|0,n[11120+((n[s>>2]|0)*216|0)+((n[s+4>>2]|0)*72|0)+((n[s+8>>2]|0)*24|0)+(n[s+12>>2]<<3)>>2]|0}function ay(s){return s=s|0,n[11120+((n[s>>2]|0)*216|0)+((n[s+4>>2]|0)*72|0)+((n[s+8>>2]|0)*24|0)+(n[s+12>>2]<<3)+4>>2]|0}function cy(s,o){s=s|0,o=o|0,s=7696+(s*28|0)|0,n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],n[o+12>>2]=n[s+12>>2];}function ly(s,o){s=s|0,o=o|0;var a=0,u=0;if(o>>>0>20)return o=-1,o|0;do if((n[11120+(o*216|0)>>2]|0)!=(s|0))if((n[11120+(o*216|0)+8>>2]|0)!=(s|0))if((n[11120+(o*216|0)+16>>2]|0)!=(s|0))if((n[11120+(o*216|0)+24>>2]|0)!=(s|0))if((n[11120+(o*216|0)+32>>2]|0)!=(s|0))if((n[11120+(o*216|0)+40>>2]|0)!=(s|0))if((n[11120+(o*216|0)+48>>2]|0)!=(s|0))if((n[11120+(o*216|0)+56>>2]|0)!=(s|0))if((n[11120+(o*216|0)+64>>2]|0)!=(s|0))if((n[11120+(o*216|0)+72>>2]|0)!=(s|0))if((n[11120+(o*216|0)+80>>2]|0)!=(s|0))if((n[11120+(o*216|0)+88>>2]|0)!=(s|0))if((n[11120+(o*216|0)+96>>2]|0)!=(s|0))if((n[11120+(o*216|0)+104>>2]|0)!=(s|0))if((n[11120+(o*216|0)+112>>2]|0)!=(s|0))if((n[11120+(o*216|0)+120>>2]|0)!=(s|0))if((n[11120+(o*216|0)+128>>2]|0)!=(s|0))if((n[11120+(o*216|0)+136>>2]|0)==(s|0))s=2,a=1,u=2;else {if((n[11120+(o*216|0)+144>>2]|0)==(s|0)){s=0,a=2,u=0;break}if((n[11120+(o*216|0)+152>>2]|0)==(s|0)){s=0,a=2,u=1;break}if((n[11120+(o*216|0)+160>>2]|0)==(s|0)){s=0,a=2,u=2;break}if((n[11120+(o*216|0)+168>>2]|0)==(s|0)){s=1,a=2,u=0;break}if((n[11120+(o*216|0)+176>>2]|0)==(s|0)){s=1,a=2,u=1;break}if((n[11120+(o*216|0)+184>>2]|0)==(s|0)){s=1,a=2,u=2;break}if((n[11120+(o*216|0)+192>>2]|0)==(s|0)){s=2,a=2,u=0;break}if((n[11120+(o*216|0)+200>>2]|0)==(s|0)){s=2,a=2,u=1;break}if((n[11120+(o*216|0)+208>>2]|0)==(s|0)){s=2,a=2,u=2;break}else s=-1;return s|0}else s=2,a=1,u=1;else s=2,a=1,u=0;else s=1,a=1,u=2;else s=1,a=1,u=1;else s=1,a=1,u=0;else s=0,a=1,u=2;else s=0,a=1,u=1;else s=0,a=1,u=0;else s=2,a=0,u=2;else s=2,a=0,u=1;else s=2,a=0,u=0;else s=1,a=0,u=2;else s=1,a=0,u=1;else s=1,a=0,u=0;else s=0,a=0,u=2;else s=0,a=0,u=1;else s=0,a=0,u=0;while(false);return o=n[11120+(o*216|0)+(a*72|0)+(s*24|0)+(u<<3)+4>>2]|0,o|0}function wu(s,o){return s=s|0,o=o|0,(n[7696+(s*28|0)+20>>2]|0)==(o|0)?(o=1,o|0):(o=(n[7696+(s*28|0)+24>>2]|0)==(o|0),o|0)}function Ba(s,o){return s=s|0,o=o|0,n[848+(s*28|0)+(o<<2)>>2]|0}function va(s,o){return s=s|0,o=o|0,(n[848+(s*28|0)>>2]|0)==(o|0)?(o=0,o|0):(n[848+(s*28|0)+4>>2]|0)==(o|0)?(o=1,o|0):(n[848+(s*28|0)+8>>2]|0)==(o|0)?(o=2,o|0):(n[848+(s*28|0)+12>>2]|0)==(o|0)?(o=3,o|0):(n[848+(s*28|0)+16>>2]|0)==(o|0)?(o=4,o|0):(n[848+(s*28|0)+20>>2]|0)==(o|0)?(o=5,o|0):((n[848+(s*28|0)+24>>2]|0)==(o|0)?6:7)|0}function uy(){return 122}function fy(s){s=s|0;var o=0,a=0,u=0;o=0;do oe(o|0,0,45)|0,u=I()|0|134225919,a=s+(o<<3)|0,n[a>>2]=-1,n[a+4>>2]=u,o=o+1|0;while((o|0)!=122);return 0}function hy(s){s=s|0;var o=0,a=0,u=0;return u=+L[s+16>>3],a=+L[s+24>>3],o=u-a,+(u<a?o+6.283185307179586:o)}function dy(s){return s=s|0,+L[s+16>>3]<+L[s+24>>3]|0}function py(s){return s=s|0,+(+L[s>>3]-+L[s+8>>3])}function Bu(s,o){s=s|0,o=o|0;var a=0,u=0,l=0;return a=+L[o>>3],!(a>=+L[s+8>>3])||!(a<=+L[s>>3])?(o=0,o|0):(u=+L[s+16>>3],a=+L[s+24>>3],l=+L[o+8>>3],o=l>=a,s=l<=u&1,u<a?o&&(s=1):o||(s=0),o=(s|0)!=0,o|0)}function Ma(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;return +L[s>>3]<+L[o+8>>3]||+L[s+8>>3]>+L[o>>3]?(u=0,u|0):(f=+L[s+16>>3],a=s+24|0,b=+L[a>>3],h=f<b,u=o+16|0,T=+L[u>>3],l=o+24|0,g=+L[l>>3],p=T<g,o=b-T<g-f,s=h?p|o?1:2:0,o=p?h?1:o?2:1:0,f=+sr(f,s),f<+sr(+L[l>>3],o)||(b=+sr(+L[a>>3],s),b>+sr(+L[u>>3],o))?(p=0,p|0):(p=1,p|0))}function my(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0;f=+L[s+16>>3],g=+L[s+24>>3],s=f<g,p=+L[o+16>>3],h=+L[o+24>>3],l=p<h,o=g-p<h-f,n[a>>2]=s?l|o?1:2:0,n[u>>2]=l?s?1:o?2:1:0;}function vu(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;return +L[s>>3]<+L[o>>3]||+L[s+8>>3]>+L[o+8>>3]?(u=0,u|0):(u=s+16|0,g=+L[u>>3],f=+L[s+24>>3],h=g<f,a=o+16|0,b=+L[a>>3],l=o+24|0,T=+L[l>>3],p=b<T,o=f-b<T-g,s=h?p|o?1:2:0,o=p?h?1:o?2:1:0,f=+sr(f,s),f<=+sr(+L[l>>3],o)?(b=+sr(+L[u>>3],s),p=b>=+sr(+L[a>>3],o),p|0):(p=0,p|0))}function Mu(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0;l=S,S=S+176|0,u=l,n[u>>2]=4,p=+L[o>>3],L[u+8>>3]=p,f=+L[o+16>>3],L[u+16>>3]=f,L[u+24>>3]=p,p=+L[o+24>>3],L[u+32>>3]=p,h=+L[o+8>>3],L[u+40>>3]=h,L[u+48>>3]=p,L[u+56>>3]=h,L[u+64>>3]=f,o=u+72|0,a=o+96|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(a|0));xr(s|0,u|0,168)|0,S=l;}function Su(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0;M=S,S=S+288|0,b=M+264|0,C=M+96|0,T=M,p=T,g=p+96|0;do n[p>>2]=0,p=p+4|0;while((p|0)<(g|0));return o=ka(o,T)|0,o|0?(B=o,S=M,B|0):(g=T,T=n[g>>2]|0,g=n[g+4>>2]|0,$n(T,g,b)|0,Bn(T,g,C)|0,h=+ni(b,C+8|0),L[b>>3]=+L[s>>3],g=b+8|0,L[g>>3]=+L[s+16>>3],L[C>>3]=+L[s+8>>3],T=C+8|0,L[T>>3]=+L[s+24>>3],l=+ni(b,C),D=+L[g>>3]-+L[T>>3],f=+Ct(+D),P=+L[b>>3]-+L[C>>3],u=+Ct(+P),!(D==0|P==0)&&(D=+rf(+f,+u),D=+Yn(+(l*l/+as(+(D/+as(+f,+u)),3)/(h*(h*2.59807621135)*.8))),L[it>>3]=D,w=~~D>>>0,B=+Ct(D)>=1?D>0?~~+Ca(+Mt(D/4294967296),4294967295)>>>0:~~+Yn((D-+(~~D>>>0))/4294967296)>>>0:0,(n[it+4>>2]&2146435072|0)!=2146435072)?(C=(w|0)==0&(B|0)==0,o=a,n[o>>2]=C?1:w,n[o+4>>2]=C?0:B,o=0):o=1,B=o,S=M,B|0)}function gy(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;T=S,S=S+288|0,h=T+264|0,p=T+96|0,g=T,l=g,f=l+96|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(f|0));return a=ka(a,g)|0,a|0?(u=a,S=T,u|0):(a=g,l=n[a>>2]|0,a=n[a+4>>2]|0,$n(l,a,h)|0,Bn(l,a,p)|0,b=+ni(h,p+8|0),b=+Yn(+(+ni(s,o)/(b*2))),L[it>>3]=b,a=~~b>>>0,l=+Ct(b)>=1?b>0?~~+Ca(+Mt(b/4294967296),4294967295)>>>0:~~+Yn((b-+(~~b>>>0))/4294967296)>>>0:0,(n[it+4>>2]&2146435072|0)==2146435072?(u=1,S=T,u|0):(g=(a|0)==0&(l|0)==0,n[u>>2]=g?1:a,n[u+4>>2]=g?0:l,u=0,S=T,u|0))}function yy(s,o){s=s|0,o=+o;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;f=s+16|0,h=+L[f>>3],a=s+24|0,l=+L[a>>3],u=h-l,u=h<l?u+6.283185307179586:u,T=+L[s>>3],p=s+8|0,g=+L[p>>3],b=T-g,u=(u*o-u)*.5,o=(b*o-b)*.5,T=T+o,L[s>>3]=T>1.5707963267948966?1.5707963267948966:T,o=g-o,L[p>>3]=o<-1.5707963267948966?-1.5707963267948966:o,o=h+u,o=o>3.141592653589793?o+-6.283185307179586:o,L[f>>3]=o<-3.141592653589793?o+6.283185307179586:o,o=l-u,o=o>3.141592653589793?o+-6.283185307179586:o,L[a>>3]=o<-3.141592653589793?o+6.283185307179586:o;}function Ty(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0;if(ae=S,S=S+224|0,le=ae,K=ae+48|0,g=(a|0)>0|(a|0)==0&o>>>0>0,g&(a>>>0>0|(a|0)==0&o>>>0>17895697))return ne=14,S=ae,ne|0;if((a|0)<0)return ne=2,S=ae,ne|0;if((o|0)==0&(a|0)==0)return n[u>>2]=0,n[u+4>>2]=0,ne=0,S=ae,ne|0;for(l=s,l=La(n[l>>2]|0,n[l+4>>2]|0)|0,h=0,p=0;;){if(f=s+(h<<3)|0,ne=f,!(es(n[ne>>2]|0,n[ne+4>>2]|0)|0)){l=5,$=159;break}if(ne=f,ne=(La(n[ne>>2]|0,n[ne+4>>2]|0)|0)==(l|0),h=ce(h|0,p|0,1,0)|0,p=I()|0,!ne){l=12,$=159;break}if(!((p|0)<(a|0)|(p|0)==(a|0)&h>>>0<o>>>0)){$=8;break}}if(($|0)==8){do if((a|0)>0|(a|0)==0&o>>>0>1){if(l=o<<3,h=lt(l)|0,!h)return ne=13,S=ae,ne|0;for(xr(h|0,s|0,l|0)|0,As(h,o,8,1),l=1,f=0;me=h+(l<<3)|0,ne=h+(l+-1<<3)|0,ne=(n[me>>2]|0)==(n[ne>>2]|0)?(n[me+4>>2]|0)==(n[ne+4>>2]|0):0,l=ce(l|0,f|0,1,0)|0,f=I()|0,!ne;)if(!((f|0)<(a|0)|(f|0)==(a|0)&l>>>0<o>>>0)){$=14;break}if(($|0)==14){fe(h);break}return fe(h),ne=10,S=ae,ne|0}while(false);if(l=ut(o|0,a|0,6,0)|0,f=I()|0,g){h=0,p=0;do ne=s+(p<<3)|0,ne=((et(n[ne>>2]|0,n[ne+4>>2]|0)|0)!=0)<<31>>31,l=ce(l|0,f|0,ne|0,((ne|0)<0)<<31>>31|0)|0,f=I()|0,p=ce(p|0,h|0,1,0)|0,h=I()|0;while((h|0)<(a|0)|(h|0)==(a|0)&p>>>0<o>>>0);O=l,j=f;}else O=l,j=f;if(H=ut(O|0,j|0,10,0)|0,R=I()|0,me=lt(O<<5)|0,!me)return ne=13,S=ae,ne|0;if(ne=zt(H,4)|0,!ne)return fe(me),ne=13,S=ae,ne|0;e:do if(g){for(V=s,Sa(n[V>>2]|0,n[V+4>>2]|0,le)|0,B=me,M=0,P=0,l=0,D=0;;){g=le,g=(n[g>>2]|0)==0&(n[g+4>>2]|0)==0,f=g?26990:26995,h=g?5:6,p=0,g=le+((g&1)<<3)|0,T=ce(h|0,p|0,-1,-1)|0,b=I()|0,C=0,w=0;do z=g+(C<<3)|0,ee=n[z+4>>2]|0,V=B+(C<<5)|0,n[V>>2]=n[z>>2],n[V+4>>2]=ee,Z[B+(C<<5)+9>>0]=0,Z[B+(C<<5)+8>>0]=0,n[B+(C<<5)+20>>2]=B,V=B+(C<<5)+24|0,n[V>>2]=1,n[V+4>>2]=0,V=Z[f+C>>0]|0,ee=ce(T|0,b|0,C|0,w|0)|0,ee=Jr(ee|0,I()|0,h|0,p|0)|0,I()|0,ee=Z[f+ee>>0]|0,C=ce(C|0,w|0,1,0)|0,w=I()|0,z=Z[f+((C|0)==(h|0)&(w|0)==(p|0)?0:C)>>0]|0,V=V&255,n[B+(V<<5)+16>>2]=B+((ee&255)<<5),n[B+(V<<5)+12>>2]=B+((z&255)<<5);while(w>>>0<p>>>0|(w|0)==(p|0)&C>>>0<h>>>0);if(M=ce(M|0,P|0,1,0)|0,P=I()|0,l=ce(h|0,p|0,l|0,D|0)|0,D=I()|0,!((P|0)<(a|0)|(P|0)==(a|0)&M>>>0<o>>>0))break e;V=s+(M<<3)|0,Sa(n[V>>2]|0,n[V+4>>2]|0,le)|0||(B=me+(l<<5)|0);}Oe(27634,26956,108,26975);}while(false);if((j|0)>0|(j|0)==0&O>>>0>0){p=0,g=0;do{if(f=me+(p<<5)|0,h=n[f>>2]|0,f=n[f+4>>2]|0,l=te(h|0,f|0,30)|0,f=ut(l^h|0,(I()|0)^f|0,484763065,-1084733587)|0,h=I()|0,l=te(f|0,h|0,27)|0,h=ut(l^f|0,(I()|0)^h|0,321982955,-1798288965)|0,f=I()|0,l=te(h|0,f|0,31)|0,f=Jr(l^h|0,(I()|0)^f|0,H|0,R|0)|0,h=I()|0,l=ne+(f<<2)|0,n[l>>2]|0)do l=ce(f|0,h|0,1,0)|0,f=on(l|0,I()|0,H|0,R|0)|0,h=I()|0,l=ne+(f<<2)|0;while((n[l>>2]|0)!=0);n[l>>2]=me+(p<<5),p=ce(p|0,g|0,1,0)|0,g=I()|0;}while((g|0)<(j|0)|(g|0)==(j|0)&p>>>0<O>>>0);C=0,w=0;do{if(p=me+(C<<5)|0,g=me+(C<<5)+9|0,!(Z[g>>0]|0)){if(V=p,Fu(n[V>>2]|0,n[V+4>>2]|0,le)|0){$=39;break}b=le,T=n[b>>2]|0,b=n[b+4>>2]|0,f=te(T|0,b|0,30)|0,f=ut(f^T|0,(I()|0)^b|0,484763065,-1084733587)|0,h=I()|0,l=te(f|0,h|0,27)|0,h=ut(l^f|0,(I()|0)^h|0,321982955,-1798288965)|0,f=I()|0,l=te(h|0,f|0,31)|0,f=Jr(l^h|0,(I()|0)^f|0,H|0,R|0)|0,h=I()|0,l=n[ne+(f<<2)>>2]|0;e:do if(l|0){for(;V=l,!((n[V>>2]|0)==(T|0)&&(n[V+4>>2]|0)==(b|0));)if(l=ce(f|0,h|0,1,0)|0,f=on(l|0,I()|0,H|0,R|0)|0,h=I()|0,l=n[ne+(f<<2)>>2]|0,!l)break e;Z[g>>0]=1,Z[l+9>>0]=1,f=l+16|0,V=me+(C<<5)+12|0,n[(n[V>>2]|0)+16>>2]=n[f>>2],a=l+12|0,z=n[me+(C<<5)+16>>2]|0,n[z+12>>2]=n[a>>2],n[(n[a>>2]|0)+16>>2]=z,n[(n[f>>2]|0)+12>>2]=n[V>>2],f=$i(p)|0,V=$i(l)|0,l=f+24|0,a=n[l+4>>2]|0,z=V+24|0,ee=n[z+4>>2]|0,z=(a|0)<(ee|0)|((a|0)==(ee|0)?(n[l>>2]|0)>>>0<(n[z>>2]|0)>>>0:0),l=z?f:V,f=z?V:f,(f|0)!=(l|0)&&(ee=l+24|0,V=f+24|0,z=V,ee=ce(n[z>>2]|0,n[z+4>>2]|0,n[ee>>2]|0,n[ee+4>>2]|0)|0,z=I()|0,n[V>>2]=ee,n[V+4>>2]=z,n[l+20>>2]=f);}while(false)}C=ce(C|0,w|0,1,0)|0,w=I()|0;}while((w|0)<(j|0)|(w|0)==(j|0)&C>>>0<O>>>0);($|0)==39&&Oe(27634,26956,258,27001),l=0,f=0;do Z[me+(l<<5)+8>>0]=0,l=ce(l|0,f|0,1,0)|0,f=I()|0;while((f|0)<(j|0)|(f|0)==(j|0)&l>>>0<O>>>0);for(T=0,h=0,g=0,b=0;;){if(l=me+(T<<5)|0,(Z[me+(T<<5)+8>>0]|0)==0&&(Z[me+(T<<5)+9>>0]|0)==0){p=l,f=n[p>>2]|0,p=n[p+4>>2]|0;do Z[l+8>>0]=1,l=n[l+12>>2]|0,V=l;while(!((n[V>>2]|0)==(f|0)&&(n[V+4>>2]|0)==(p|0)));h=ce(h|0,g|0,1,0)|0,p=I()|0;}else p=g;if(T=ce(T|0,b|0,1,0)|0,b=I()|0,(b|0)<(j|0)|(b|0)==(j|0)&T>>>0<O>>>0)g=p;else break}l=0,f=0;do Z[me+(l<<5)+8>>0]=0,l=ce(l|0,f|0,1,0)|0,f=I()|0;while((f|0)<(j|0)|(f|0)==(j|0)&l>>>0<O>>>0);z=h,ee=p,l=1;}else z=0,ee=0,l=0;V=lt(z*24|0)|0;e:do if(V|0){t:do if(l){s=0,H=0,a=0,o=0;r:for(;;){if(l=me+(s<<5)|0,(Z[me+(s<<5)+8>>0]|0)==0&&(Z[me+(s<<5)+9>>0]|0)==0){D=l,P=n[D>>2]|0,D=n[D+4>>2]|0,f=0,h=0;do f=ce(f|0,h|0,2,0)|0,h=I()|0,l=n[l+12>>2]|0,R=l;while(!((n[R>>2]|0)==(P|0)&&(n[R+4>>2]|0)==(D|0)));if(M=lt(f<<4)|0,!M)break;f=P,h=D,B=0,w=0,p=0,g=0;do{if($A(f,h,K)|0){$=69;break r}if(R=n[K>>2]|0,b=R+-1|0,C=((b|0)<0)<<31>>31,(R|0)>1){h=p,T=0,f=g,p=0;do R=M+(h<<4)|0,g=K+8+(T<<4)|0,n[R>>2]=n[g>>2],n[R+4>>2]=n[g+4>>2],n[R+8>>2]=n[g+8>>2],n[R+12>>2]=n[g+12>>2],h=ce(h|0,f|0,1,0)|0,f=I()|0,T=ce(T|0,p|0,1,0)|0,p=I()|0;while((p|0)<(C|0)|(p|0)==(C|0)&T>>>0<b>>>0);p=h,g=f;}B=ce(B|0,w|0,b|0,C|0)|0,w=I()|0,Z[l+8>>0]=1,l=n[l+12>>2]|0,h=l,f=n[h>>2]|0,h=n[h+4>>2]|0;}while(!((f|0)==(P|0)&(h|0)==(D|0)));if(f=_T(M,B<<4)|0,!f){$=75;break}D=$i(l)|0,R=n[D+4>>2]|0,l=V+(a*24|0)|0,n[l>>2]=n[D>>2],n[l+4>>2]=R,l=V+(a*24|0)+16|0,n[l>>2]=B,n[V+(a*24|0)+20>>2]=f,n[le>>2]=n[l>>2],n[le+4>>2]=n[l+4>>2],fr(le,V+(a*24|0)+8|0)|0,f=ce(a|0,H|0,1,0)|0,l=I()|0;}else f=a,l=H;if(s=ce(s|0,o|0,1,0)|0,o=I()|0,(o|0)<(j|0)|(o|0)==(j|0)&s>>>0<O>>>0)H=l,a=f;else break t}if(($|0)==69?Oe(27634,26956,351,27016):($|0)==75&&fe(M),(H|0)>0|(H|0)==0&a>>>0>0)for(p=0,g=0,l=a,h=H;f=n[V+(p*24|0)+20>>2]|0,f?(fe(f),f=H,l=a):f=h,p=ce(p|0,g|0,1,0)|0,g=I()|0,(g|0)<(f|0)|(g|0)==(f|0)&p>>>0<l>>>0;)h=f;fe(V);break e}while(false);As(V,z,24,2);t:do if((z|0)==0&(ee|0)==0){if(R=lt(192)|0,R|0){if(n[R+16>>2]=0,n[R+20>>2]=0,w=R+8|0,n[w>>2]=3,l=lt(48)|0,B=R+12|0,n[B>>2]=l,l|0){n[l>>2]=n[3860],n[l+4>>2]=n[3861],n[l+8>>2]=n[3862],n[l+12>>2]=n[3863],C=l+16|0,n[C>>2]=n[3864],n[C+4>>2]=n[3865],n[C+8>>2]=n[3866],n[C+12>>2]=n[3867],C=l+32|0,n[C>>2]=n[3868],n[C+4>>2]=n[3869],n[C+8>>2]=n[3870],n[C+12>>2]=n[3871],n[le>>2]=n[w>>2],n[le+4>>2]=n[w+4>>2],fr(le,R)|0,n[R+40>>2]=0,n[R+44>>2]=0,C=R+32|0,n[C>>2]=3,l=lt(48)|0,M=R+36|0,n[M>>2]=l;do if(!l)p=0,g=1;else {if(n[l>>2]=n[3872],n[l+4>>2]=n[3873],n[l+8>>2]=n[3874],n[l+12>>2]=n[3875],b=l+16|0,n[b>>2]=n[3876],n[b+4>>2]=n[3877],n[b+8>>2]=n[3878],n[b+12>>2]=n[3879],b=l+32|0,n[b>>2]=n[3880],n[b+4>>2]=n[3881],n[b+8>>2]=n[3882],n[b+12>>2]=n[3883],n[le>>2]=n[C>>2],n[le+4>>2]=n[C+4>>2],fr(le,R+24|0)|0,n[R+64>>2]=0,n[R+68>>2]=0,b=R+56|0,n[b>>2]=3,l=lt(48)|0,P=R+60|0,n[P>>2]=l,!l){p=0,g=2;break}if(n[l>>2]=n[3884],n[l+4>>2]=n[3885],n[l+8>>2]=n[3886],n[l+12>>2]=n[3887],T=l+16|0,n[T>>2]=n[3888],n[T+4>>2]=n[3889],n[T+8>>2]=n[3890],n[T+12>>2]=n[3891],T=l+32|0,n[T>>2]=n[3892],n[T+4>>2]=n[3893],n[T+8>>2]=n[3894],n[T+12>>2]=n[3895],n[le>>2]=n[b>>2],n[le+4>>2]=n[b+4>>2],fr(le,R+48|0)|0,n[R+88>>2]=0,n[R+92>>2]=0,T=R+80|0,n[T>>2]=3,l=lt(48)|0,D=R+84|0,n[D>>2]=l,!l){p=0,g=3;break}if(n[l>>2]=n[3896],n[l+4>>2]=n[3897],n[l+8>>2]=n[3898],n[l+12>>2]=n[3899],g=l+16|0,n[g>>2]=n[3900],n[g+4>>2]=n[3901],n[g+8>>2]=n[3902],n[g+12>>2]=n[3903],g=l+32|0,n[g>>2]=n[3904],n[g+4>>2]=n[3905],n[g+8>>2]=n[3906],n[g+12>>2]=n[3907],n[le>>2]=n[T>>2],n[le+4>>2]=n[T+4>>2],fr(le,R+72|0)|0,n[R+112>>2]=0,n[R+116>>2]=0,g=R+104|0,n[g>>2]=3,l=lt(48)|0,s=R+108|0,n[s>>2]=l,!l){p=0,g=4;break}if(n[l>>2]=n[3908],n[l+4>>2]=n[3909],n[l+8>>2]=n[3910],n[l+12>>2]=n[3911],p=l+16|0,n[p>>2]=n[3912],n[p+4>>2]=n[3913],n[p+8>>2]=n[3914],n[p+12>>2]=n[3915],p=l+32|0,n[p>>2]=n[3916],n[p+4>>2]=n[3917],n[p+8>>2]=n[3918],n[p+12>>2]=n[3919],n[le>>2]=n[g>>2],n[le+4>>2]=n[g+4>>2],fr(le,R+96|0)|0,n[R+136>>2]=0,n[R+140>>2]=0,p=R+128|0,n[p>>2]=3,l=lt(48)|0,o=R+132|0,n[o>>2]=l,!l){p=0,g=5;break}if(n[l>>2]=n[3920],n[l+4>>2]=n[3921],n[l+8>>2]=n[3922],n[l+12>>2]=n[3923],h=l+16|0,n[h>>2]=n[3924],n[h+4>>2]=n[3925],n[h+8>>2]=n[3926],n[h+12>>2]=n[3927],h=l+32|0,n[h>>2]=n[3928],n[h+4>>2]=n[3929],n[h+8>>2]=n[3930],n[h+12>>2]=n[3931],n[le>>2]=n[p>>2],n[le+4>>2]=n[p+4>>2],fr(le,R+120|0)|0,n[R+160>>2]=0,n[R+164>>2]=0,h=R+152|0,n[h>>2]=3,l=lt(48)|0,a=R+156|0,n[a>>2]=l,!l){p=0,g=6;break}if(n[l>>2]=n[3932],n[l+4>>2]=n[3933],n[l+8>>2]=n[3934],n[l+12>>2]=n[3935],f=l+16|0,n[f>>2]=n[3936],n[f+4>>2]=n[3937],n[f+8>>2]=n[3938],n[f+12>>2]=n[3939],f=l+32|0,n[f>>2]=n[3940],n[f+4>>2]=n[3941],n[f+8>>2]=n[3942],n[f+12>>2]=n[3943],n[le>>2]=n[h>>2],n[le+4>>2]=n[h+4>>2],fr(le,R+144|0)|0,n[R+184>>2]=0,n[R+188>>2]=0,f=R+176|0,n[f>>2]=3,l=lt(48)|0,H=R+180|0,n[H>>2]=l,!l){p=0,g=7;break}if(n[l>>2]=n[3944],n[l+4>>2]=n[3945],n[l+8>>2]=n[3946],n[l+12>>2]=n[3947],K=l+16|0,n[K>>2]=n[3948],n[K+4>>2]=n[3949],n[K+8>>2]=n[3950],n[K+12>>2]=n[3951],l=l+32|0,n[l>>2]=n[3952],n[l+4>>2]=n[3953],n[l+8>>2]=n[3954],n[l+12>>2]=n[3955],n[le>>2]=n[f>>2],n[le+4>>2]=n[f+4>>2],fr(le,R+168|0)|0,As(R,8,24,3),l=lt(128)|0,n[u+4>>2]=l,l|0){n[u>>2]=8,n[l>>2]=n[w>>2],n[l+4>>2]=n[w+4>>2],n[l+8>>2]=n[w+8>>2],n[l+12>>2]=n[w+12>>2],$=l+16|0,n[$>>2]=n[C>>2],n[$+4>>2]=n[C+4>>2],n[$+8>>2]=n[C+8>>2],n[$+12>>2]=n[C+12>>2],$=l+32|0,n[$>>2]=n[b>>2],n[$+4>>2]=n[b+4>>2],n[$+8>>2]=n[b+8>>2],n[$+12>>2]=n[b+12>>2],$=l+48|0,n[$>>2]=n[T>>2],n[$+4>>2]=n[T+4>>2],n[$+8>>2]=n[T+8>>2],n[$+12>>2]=n[T+12>>2],$=l+64|0,n[$>>2]=n[g>>2],n[$+4>>2]=n[g+4>>2],n[$+8>>2]=n[g+8>>2],n[$+12>>2]=n[g+12>>2],$=l+80|0,n[$>>2]=n[p>>2],n[$+4>>2]=n[p+4>>2],n[$+8>>2]=n[p+8>>2],n[$+12>>2]=n[p+12>>2],$=l+96|0,n[$>>2]=n[h>>2],n[$+4>>2]=n[h+4>>2],n[$+8>>2]=n[h+8>>2],n[$+12>>2]=n[h+12>>2],$=l+112|0,n[$>>2]=n[f>>2],n[$+4>>2]=n[f+4>>2],n[$+8>>2]=n[f+8>>2],n[$+12>>2]=n[f+12>>2],fe(R),$=158;break t}l=n[B>>2]|0,l|0&&fe(l),l=n[M>>2]|0,l|0&&fe(l),l=n[P>>2]|0,l|0&&fe(l),l=n[D>>2]|0,l|0&&fe(l),l=n[s>>2]|0,l|0&&fe(l),l=n[o>>2]|0,l|0&&fe(l),l=n[a>>2]|0,l|0&&fe(l),l=n[H>>2]|0,l|0&&fe(l),fe(R);break t}while(false);l=0,h=0;do f=n[R+(l*24|0)+12>>2]|0,f|0&&fe(f),l=ce(l|0,h|0,1,0)|0,h=I()|0;while(h>>>0<p>>>0|(h|0)==(p|0)&l>>>0<g>>>0)}fe(R),$=152;}}else {if((ee|0)>0|(ee|0)==0&z>>>0>0){h=0,p=0,g=0,f=0,l=0,T=0;do K=V+(h*24|0)|0,le=p,p=n[K>>2]|0,$=g,g=n[K+4>>2]|0,f=ce(f|0,l|0,((p|0)!=(le|0)|(g|0)!=($|0))&1|0,0)|0,l=I()|0,h=ce(h|0,T|0,1,0)|0,T=I()|0;while((T|0)<(ee|0)|(T|0)==(ee|0)&h>>>0<z>>>0);D=f,P=l;}else D=0,P=0;if(s=lt(D*24|0)|0,s){r:do if((ee|0)>=0){for(w=0,B=0,f=0,h=0,M=0,p=0;;){if(!((w|0)==(z|0)&(B|0)==(ee|0))&&(le=V+(f*24|0)|0,$=V+(w*24|0)|0,(n[le>>2]|0)==(n[$>>2]|0)?(n[le+4>>2]|0)==(n[$+4>>2]|0):0))l=M;else {if(b=V+(f*24|0)|0,$=Bt(w|0,B|0,f|0,h|0)|0,le=I()|0,C=ce($|0,le|0,-1,-1)|0,h=I()|0,(le|0)>0|(le|0)==0&$>>>0>1){if(l=lt(C<<3)|0,!l)break;g=0,T=0;do $=g,g=ce(g|0,T|0,1,0)|0,T=I()|0,K=b+(g*24|0)+16|0,le=n[K+4>>2]|0,$=l+($<<3)|0,n[$>>2]=n[K>>2],n[$+4>>2]=le;while((T|0)<(h|0)|(T|0)==(h|0)&g>>>0<C>>>0)}else l=0;le=V+(f*24|0)+16|0,$=n[le+4>>2]|0,h=s+(p*24|0)+8|0,n[h>>2]=n[le>>2],n[h+4>>2]=$,n[s+(p*24|0)+16>>2]=C,n[s+(p*24|0)+20>>2]=l,L[s+(p*24|0)>>3]=+L[V+(f*24|0)+8>>3],p=ce(p|0,M|0,1,0)|0,f=w,h=B,l=I()|0;}if($=w,w=ce(w|0,B|0,1,0)|0,le=B,B=I()|0,(le|0)<(ee|0)|(le|0)==(ee|0)&$>>>0<z>>>0)M=l;else break r}if((M|0)>0|(M|0)==0&p>>>0>0){l=0,h=0;do f=n[s+(l*24|0)+20>>2]|0,f|0&&fe(f),l=ce(l|0,h|0,1,0)|0,h=I()|0;while((h|0)<(M|0)|(h|0)==(M|0)&l>>>0<p>>>0)}fe(s),$=152;break t}while(false);if(As(s,D,24,3),l=lt(D<<4)|0,h=u+4|0,n[h>>2]=l,l){n[u>>2]=D;do if((P|0)>0|(P|0)==0&D>>>0>0){if(u=s+8|0,n[l>>2]=n[u>>2],n[l+4>>2]=n[u+4>>2],n[l+8>>2]=n[u+8>>2],n[l+12>>2]=n[u+12>>2],(D|0)==1&(P|0)==0||(u=l+16|0,$=s+32|0,n[u>>2]=n[$>>2],n[u+4>>2]=n[$+4>>2],n[u+8>>2]=n[$+8>>2],n[u+12>>2]=n[$+12>>2],!((P|0)>0|(P|0)==0&D>>>0>2)))break;l=2,f=0;do u=(n[h>>2]|0)+(l<<4)|0,$=s+(l*24|0)+8|0,n[u>>2]=n[$>>2],n[u+4>>2]=n[$+4>>2],n[u+8>>2]=n[$+8>>2],n[u+12>>2]=n[$+12>>2],l=ce(l|0,f|0,1,0)|0,f=I()|0;while((f|0)<(P|0)|(f|0)==(P|0)&l>>>0<D>>>0)}while(false);fe(s),$=158;break}else {if((P|0)>0|(P|0)==0&D>>>0>0){l=0,h=0;do f=n[s+(l*24|0)+20>>2]|0,f|0&&fe(f),l=ce(l|0,h|0,1,0)|0,h=I()|0;while((h|0)<(P|0)|(h|0)==(P|0)&l>>>0<D>>>0)}fe(s),$=152;break}}else $=152;}while(false);if(($|0)==158)return fe(me),fe(ne),fe(V),ne=0,S=ae,ne|0;if(($|0)==152&&(ee|0)>0|(ee|0)==0&z>>>0>0)for(p=0,g=0,l=z,h=ee;f=n[V+(p*24|0)+20>>2]|0,f?(fe(f),f=ee,l=z):f=h,p=ce(p|0,g|0,1,0)|0,g=I()|0,(g|0)<(f|0)|(g|0)==(f|0)&p>>>0<l>>>0;)h=f;return fe(V),fe(me),fe(ne),ne=13,S=ae,ne|0}while(false);return fe(me),fe(ne),ne=13,S=ae,ne|0}else if(($|0)==159)return S=ae,l|0;return 0}function _y(s,o){s=s|0,o=o|0;var a=0,u=0;return u=s,s=n[u>>2]|0,u=n[u+4>>2]|0,a=o,o=n[a>>2]|0,a=n[a+4>>2]|0,(u>>>0<a>>>0|(u|0)==(a|0)&s>>>0<o>>>0?-1:(u>>>0>a>>>0|(u|0)==(a|0)&s>>>0>o>>>0)&1)|0}function $i(s){s=s|0;var o=0,a=0;return o=s+20|0,a=n[o>>2]|0,(a|0)==(s|0)?s|0:(a=$i(a)|0,n[o>>2]=a,a|0)}function by(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0;return p=s,h=n[p>>2]|0,p=n[p+4>>2]|0,f=o,l=n[f>>2]|0,f=n[f+4>>2]|0,p>>>0<f>>>0|(p|0)==(f|0)&h>>>0<l>>>0?(o=-1,o|0):p>>>0>f>>>0|(p|0)==(f|0)&h>>>0>l>>>0?(o=1,o|0):(u=+L[s+8>>3],a=+L[o+8>>3],u<a?(o=-1,o|0):(o=u>a&1,o|0))}function Ey(s,o){s=s|0,o=o|0;var a=0,u=0;return u=+L[s>>3],a=+L[o>>3],(u>a?-1:u<a&1)|0}function xy(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(C=S,S=S+64|0,b=C,p=C+56|0,!(true&(o&2013265920|0)==134217728&(true&(u&2013265920|0)==134217728)))return l=5,S=C,l|0;if((s|0)==(a|0)&(o|0)==(u|0))return n[l>>2]=0,l=0,S=C,l|0;if(h=te(s|0,o|0,52)|0,I()|0,h=h&15,T=te(a|0,u|0,52)|0,I()|0,(h|0)!=(T&15|0))return l=12,S=C,l|0;if(f=h+-1|0,h>>>0>1){Pa(s,o,f,b)|0,Pa(a,u,f,p)|0,T=b,g=n[T>>2]|0,T=n[T+4>>2]|0;e:do if((g|0)==(n[p>>2]|0)&&(T|0)==(n[p+4>>2]|0)){h=(h^15)*3|0,f=te(s|0,o|0,h|0)|0,I()|0,f=f&7,h=te(a|0,u|0,h|0)|0,I()|0,h=h&7;do if((f|0)==0|(h|0)==0)n[l>>2]=1,f=0;else if((f|0)==7)f=5;else {if((f|0)==1|(h|0)==1&&et(g,T)|0){f=5;break}if((n[15824+(f<<2)>>2]|0)!=(h|0)&&(n[15856+(f<<2)>>2]|0)!=(h|0))break e;n[l>>2]=1,f=0;}while(false);return l=f,S=C,l|0}while(false)}f=b,h=f+56|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(h|0));return Tu(s,o,1,b)|0,o=b,!((n[o>>2]|0)==(a|0)&&(n[o+4>>2]|0)==(u|0))&&(o=b+8|0,!((n[o>>2]|0)==(a|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+16|0,!((n[o>>2]|0)==(a|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+24|0,!((n[o>>2]|0)==(a|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+32|0,!((n[o>>2]|0)==(a|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+40|0,!((n[o>>2]|0)==(a|0)&&(n[o+4>>2]|0)==(u|0)))?(f=b+48|0,f=((n[f>>2]|0)==(a|0)?(n[f+4>>2]|0)==(u|0):0)&1):f=1,n[l>>2]=f,l=0,S=C,l|0}function Cy(s,o,a,u,l){return s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,a=Zi(s,o,a,u)|0,(a|0)==7?(l=11,l|0):(u=oe(a|0,0,56)|0,o=o&-2130706433|(I()|0)|268435456,n[l>>2]=s|u,n[l+4>>2]=o,l=0,l|0)}function wy(s,o,a){return s=s|0,o=o|0,a=a|0,true&(o&2013265920|0)==268435456?(n[a>>2]=s,n[a+4>>2]=o&-2130706433|134217728,a=0,a|0):(a=6,a|0)}function By(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0;return l=S,S=S+16|0,u=l,n[u>>2]=0,true&(o&2013265920|0)==268435456?(f=te(s|0,o|0,56)|0,I()|0,u=wt(s,o&-2130706433|134217728,f&7,u,a)|0,S=l,u|0):(u=6,S=l,u|0)}function Iu(s,o){s=s|0,o=o|0;var a=0;switch(a=te(s|0,o|0,56)|0,I()|0,a&7){case 0:case 7:return a=0,a|0;}return a=o&-2130706433|134217728,!(true&(o&2013265920|0)==268435456)||true&(o&117440512|0)==16777216&(et(s,a)|0)!=0?(a=0,a|0):(a=es(s,a)|0,a|0)}function vy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;return l=S,S=S+16|0,u=l,true&(o&2013265920|0)==268435456?(f=o&-2130706433|134217728,h=a,n[h>>2]=s,n[h+4>>2]=f,n[u>>2]=0,o=te(s|0,o|0,56)|0,I()|0,u=wt(s,f,o&7,u,a+8|0)|0,S=l,u|0):(u=6,S=l,u|0)}function Sa(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0;return l=(et(s,o)|0)==0,o=o&-2130706433,u=a,n[u>>2]=l?s:0,n[u+4>>2]=l?o|285212672:0,u=a+8|0,n[u>>2]=s,n[u+4>>2]=o|301989888,u=a+16|0,n[u>>2]=s,n[u+4>>2]=o|318767104,u=a+24|0,n[u>>2]=s,n[u+4>>2]=o|335544320,u=a+32|0,n[u>>2]=s,n[u+4>>2]=o|352321536,a=a+40|0,n[a>>2]=s,n[a+4>>2]=o|369098752,0}function $A(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;return h=S,S=S+16|0,l=h,f=o&-2130706433|134217728,true&(o&2013265920|0)==268435456?(u=te(s|0,o|0,56)|0,I()|0,u=gT(s,f,u&7)|0,(u|0)==-1?(n[a>>2]=0,f=6,S=h,f|0):(Zn(s,f,l)|0&&Oe(27634,27035,282,27050),o=te(s|0,o|0,52)|0,I()|0,o=o&15,et(s,f)|0?Ia(l,o,u,2,a):Fa(l,o,u,2,a),f=0,S=h,f|0)):(f=6,S=h,f|0)}function Fu(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;return h=S,S=S+16|0,u=h+8|0,l=h,f=o&-2130706433|134217728,true&(o&2013265920|0)==268435456?(n[u>>2]=0,o=te(s|0,o|0,56)|0,I()|0,o=wt(s,f,o&7,u,l)|0,o|0?(a=o,S=h,a|0):(u=n[l>>2]|0,l=n[l+4>>2]|0,o=Zi(u,l,s,f)|0,(o|0)==7?(a=11,S=h,a|0):(s=oe(o|0,0,56)|0,f=l&-2130706433|(I()|0)|268435456,n[a>>2]=u|s,n[a+4>>2]=f,a=0,S=h,a|0))):(a=6,S=h,a|0)}function My(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0;n[a>>2]=0,T=+L[s>>3],b=+L[s+8>>3],g=+L[s+16>>3],l=0,f=5,u=5,s=0;do P=+L[15888+(l*24|0)>>3]-T,M=+L[15888+(l*24|0)+8>>3]-b,h=+L[15888+(l*24|0)+16>>3]-g,h=P*P+M*M+h*h,h<u&&(n[a>>2]=l,f=h,s=l,u=h),l=l+1|0;while((l|0)!=20);if(f=+Hg(+(1-f*.5)),f<1e-16)g=0,h=0;else {if(O=+L[16368+(s*24|0)>>3],R=+L[15888+(s*24|0)>>3],j=+L[15888+(s*24|0)+8>>3],H=+L[15888+(s*24|0)+16>>3],K=-(H+(R*0+j*0)),h=R*K+0,P=j*K+0,K=H*K+1,D=+pt(+(K*K+(h*h+P*P))),D=D>0?1/D:0,h=h*D,P=P*D,D=K*D,K=-(T*R+b*j+g*H),M=T+R*K,u=b+j*K,T=g+H*K,b=+pt(+(T*T+(M*M+u*u))),b=b>0?1/b:0,M=M*b,u=u*b,b=T*b,u=+ri(O-+ri(+Qt(+(b*(j*h-R*P)+(M*(H*P-j*D)+u*(R*D-H*h))),+(D*b+(h*M+P*u))))),hr(o)|0?h=+ri(u+-0.3334731722518321):h=u,u=+Wi(+f)*2.618033988749896,(o|0)>0){s=0;do u=u*2.6457513110645907,s=s+1|0;while((s|0)!=(o|0))}g=+De(+h)*u,h=+We(+h)*u;}o=a+4|0,B=a+12|0,n[B>>2]=0,f=+Ct(+h)*1.1547005383792515,u=+Ct(+g)+f*.5,s=~~u,l=~~f,u=u-+(s|0),f=f-+(l|0);do if(u<.5)if(u<.3333333333333333)if(n[o>>2]=s,f<(u+1)*.5){n[a+8>>2]=l;break}else {l=l+1|0,n[a+8>>2]=l;break}else if(K=1-u,l=(!(f<K)&1)+l|0,n[a+8>>2]=l,K<=f&f<u*2){s=s+1|0,n[o>>2]=s;break}else {n[o>>2]=s;break}else {if(!(u<.6666666666666666))if(s=s+1|0,n[o>>2]=s,f<u*.5){n[a+8>>2]=l;break}else {l=l+1|0,n[a+8>>2]=l;break}if(f<1-u){if(n[a+8>>2]=l,u*2+-1<f){n[o>>2]=s;break}}else l=l+1|0,n[a+8>>2]=l;s=s+1|0,n[o>>2]=s;}while(false);do if(g<0)if(l&1){w=(l+1|0)/2|0,w=Bt(s|0,((s|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0,s=~~(+(s|0)-((+(w>>>0)+4294967296*+(I()|0))*2+1)),n[o>>2]=s,w=o;break}else {w=(l|0)/2|0,w=Bt(s|0,((s|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0,s=~~(+(s|0)-(+(w>>>0)+4294967296*+(I()|0))*2),n[o>>2]=s,w=o;break}else w=o;while(false);C=a+8|0,o=0-l|0,h<0?(a=s-((l<<1|1|0)/2|0)|0,n[w>>2]=a,n[C>>2]=o,l=o):a=s,s=l-a|0,o=0-a|0,(a|0)<0?(n[C>>2]=s,n[B>>2]=o,n[w>>2]=0,p=0):(s=l,p=a,o=0),a=p-s|0,l=o-s|0,(s|0)<0?(n[w>>2]=a,n[B>>2]=l,n[C>>2]=0,p=a,s=0):l=o,a=p-l|0,o=s-l|0,(l|0)<0?(n[w>>2]=a,n[C>>2]=o,n[B>>2]=0,l=0):(o=s,a=p),s=(o|0)<(a|0)?o:a,s=(l|0)<(s|0)?l:s,!((s|0)<=0)&&(n[w>>2]=a-s,n[C>>2]=o-s,n[B>>2]=l-s);}function Sy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;u=S,S=S+16|0,l=u,h=n[s+12>>2]|0,f=+((n[s+8>>2]|0)-h|0),L[l>>3]=+((n[s+4>>2]|0)-h|0)-f*.5,L[l+8>>3]=f*.8660254037844386,ei(l,n[s>>2]|0,o,0,a),S=u;}function ei(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0;if(f=+mT(s),f<1e-16){o=15888+(o*24|0)|0,n[l>>2]=n[o>>2],n[l+4>>2]=n[o+4>>2],n[l+8>>2]=n[o+8>>2],n[l+12>>2]=n[o+12>>2],n[l+16>>2]=n[o+16>>2],n[l+20>>2]=n[o+20>>2];return}if(h=+Qt(+ +L[s+8>>3],+ +L[s>>3]),(a|0)>0){s=0;do f=f*.37796447300922725,s=s+1|0;while((s|0)!=(a|0))}p=f*.3333333333333333,u?(a=(hr(a)|0)==0,f=+gu(+((a?p:p*.37796447300922725)*.381966011250105))):(f=+gu(+(f*.381966011250105)),hr(a)|0&&(h=+ri(h+.3334731722518321))),C=+ri(+L[16368+(o*24|0)>>3]-h),p=+L[15888+(o*24|0)>>3],b=+L[15888+(o*24|0)+8>>3],P=+L[15888+(o*24|0)+16>>3],B=-(P+(p*0+b*0)),T=p*B+0,h=b*B+0,B=P*B+1,w=+pt(+(B*B+(T*T+h*h))),w=w>0?1/w:0,T=T*w,h=h*w,w=B*w,B=+De(+C),C=+We(+C),D=+De(+f),M=+We(+f),g=D*p+M*(B*T+C*(P*h-b*w)),f=D*b+M*(B*h+C*(p*w-P*T)),h=D*P+M*(B*w+C*(b*T-p*h)),p=+pt(+(h*h+(g*g+f*f))),p=p>0?1/p:0,L[l>>3]=g*p,L[l+8>>3]=f*p,L[l+16>>3]=h*p;}function Ia(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0,Jt=0,bt=0,ht=0,Et=0,mt=0,er=0,St=0,It=0,pr=0,Dt=0,Xe=0,vn=0;if(er=S,S=S+256|0,f=er+240|0,Ge=er+224|0,ht=er,Et=er+208|0,mt=er+192|0,Ue=er+168|0,Pt=er+152|0,Re=er+136|0,He=er+120|0,Jt=er+104|0,bt=er+80|0,n[f>>2]=o,n[Ge>>2]=n[s>>2],n[Ge+4>>2]=n[s+4>>2],n[Ge+8>>2]=n[s+8>>2],n[Ge+12>>2]=n[s+12>>2],Lu(Ge,f,ht),n[l>>2]=0,Ge=u+a+((u|0)==5&1)|0,(Ge|0)<=(a|0)){S=er;return}O=n[f>>2]|0,j=Et+4|0,H=Et+8|0,R=Et+12|0,K=mt+8|0,ee=a+5|0,z=16848+(O<<2)|0,V=Ue+8|0,le=16928+(O<<2)|0,$=Pt+8|0,me=Re+8|0,ne=He+8|0,ae=mt+8|0,B=Ue+8|0,P=Ue+16|0,M=bt+8|0,D=bt+16|0,w=a,u=0,h=0,p=0,g=0;e:for(;;){C=ht+(((w|0)%5|0)<<4)|0,n[Et>>2]=n[C>>2],n[Et+4>>2]=n[C+4>>2],n[Et+8>>2]=n[C+8>>2],n[Et+12>>2]=n[C+12>>2];do;while((Wn(Et,O,0,1)|0)==2);if((w|0)>(a|0)&(hr(o)|0)!=0){if(C=n[Et>>2]|0,s=n[j>>2]|0,T=n[H>>2]|0,f=n[R>>2]|0,St=+(p-g|0),L[mt>>3]=+(h-g|0)-St*.5,L[K>>3]=St*.8660254037844386,g=n[17008+(C*80|0)+(u<<2)>>2]|0,b=n[18608+(C*80|0)+(g*20|0)>>2]|0,p=n[18608+(C*80|0)+(g*20|0)+16>>2]|0,(p|0)>0){h=0,u=T;do Dt=f+s|0,Xe=(Dt|0)<0,T=u+s-(Xe?Dt:0)|0,pr=(T|0)<0,It=f+u-(Xe?Dt:0)-(pr?T:0)|0,f=(It|0)<0,s=(Xe?0:Dt)-(pr?T:0)-(f?It:0)|0,u=(pr?0:T)-(f?It:0)|0,It=f?0:It,f=(u|0)<(s|0)?u:s,f=(It|0)<(f|0)?It:f,T=(f|0)>0,s=s-(T?f:0)|0,u=u-(T?f:0)|0,f=It-(T?f:0)|0,h=h+1|0;while((h|0)<(p|0))}else u=T;switch(Xe=(n[z>>2]|0)*3|0,It=(Zt(Xe,n[18608+(C*80|0)+(g*20|0)+4>>2]|0)|0)+s|0,T=(Zt(Xe,n[18608+(C*80|0)+(g*20|0)+8>>2]|0)|0)+u|0,Xe=(Zt(Xe,n[18608+(C*80|0)+(g*20|0)+12>>2]|0)|0)+f|0,g=(It|0)<0,T=T-(g?It:0)|0,pr=(T|0)<0,Xe=Xe+(g?0-It|0:0)+(pr?0-T|0:0)|0,Dt=(Xe|0)<0,It=(g?0:It)-(pr?T:0)-(Dt?Xe:0)|0,T=(pr?0:T)-(Dt?Xe:0)|0,Xe=Dt?0:Xe,Dt=(T|0)<(It|0)?T:It,Dt=(Xe|0)<(Dt|0)?Xe:Dt,pr=(Dt|0)>0,Xe=Xe-(pr?Dt:0)|0,St=+(T-(pr?Dt:0)-Xe|0),L[Ue>>3]=+(It-(pr?Dt:0)-Xe|0)-St*.5,L[V>>3]=St*.8660254037844386,St=+(n[le>>2]|0),L[Pt>>3]=St*3,L[$>>3]=0,vn=St*-1.5,L[Re>>3]=vn,L[me>>3]=St*2.598076211353316,L[He>>3]=vn,L[ne>>3]=St*-2.598076211353316,n[17008+(b*80|0)+(C<<2)>>2]|0){case 1:{s=Re,u=Pt;break}case 3:{s=He,u=Re;break}case 2:{s=Pt,u=He;break}default:{s=12;break e}}Ju(mt,Ue,u,s,Jt),ei(Jt,b,O,1,bt),Xe=n[l>>2]|0,St=+ZA(+ +L[D>>3]),vn=+Qt(+ +L[M>>3],+ +L[bt>>3]),L[l+8+(Xe<<4)>>3]=St,L[l+8+(Xe<<4)+8>>3]=vn,n[l>>2]=(n[l>>2]|0)+1;}if((w|0)<(ee|0)&&(Xe=n[R>>2]|0,St=+((n[H>>2]|0)-Xe|0),L[mt>>3]=+((n[j>>2]|0)-Xe|0)-St*.5,L[ae>>3]=St*.8660254037844386,ei(mt,n[Et>>2]|0,O,1,Ue),Xe=n[l>>2]|0,St=+ZA(+ +L[P>>3]),vn=+Qt(+ +L[B>>3],+ +L[Ue>>3]),L[l+8+(Xe<<4)>>3]=St,L[l+8+(Xe<<4)+8>>3]=vn,n[l>>2]=(n[l>>2]|0)+1),w=w+1|0,(w|0)>=(Ge|0)){s=3;break}else u=n[Et>>2]|0,h=n[j>>2]|0,p=n[H>>2]|0,g=n[R>>2]|0;}if((s|0)==3){S=er;return}else (s|0)==12&&Oe(27073,27120,599,27130);}function Lu(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;M=S,S=S+128|0,u=M+64|0,l=M,f=u,h=20208,p=f+60|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));f=l,h=20272,p=f+60|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));if(b=(hr(n[o>>2]|0)|0)==0,b=b?u:l,B=s+4|0,f=n[B>>2]|0,C=s+8|0,u=n[C>>2]|0,w=s+12|0,l=n[w>>2]|0,h=u+(f<<1)|0,n[B>>2]=h,u=l+(u<<1)|0,n[C>>2]=u,f=(l<<1)+f|0,n[w>>2]=f,l=u-h|0,p=f-h|0,(h|0)<0&&(n[C>>2]=l,n[w>>2]=p,n[B>>2]=0,u=l,h=0,f=p),p=h-u|0,l=f-u|0,(u|0)<0?(n[B>>2]=p,n[w>>2]=l,n[C>>2]=0,u=0):(l=f,p=h),h=p-l|0,f=u-l|0,(l|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(l=l-u|0,f=f-u|0,h=h-u|0,n[B>>2]=h,n[C>>2]=f,n[w>>2]=l),g=(f<<1)+h|0,p=l+(h<<1)|0,n[B>>2]=p,n[C>>2]=g,f=(l<<1)+f|0,n[w>>2]=f,u=g-p|0,l=f-p|0,(p|0)<0?(n[C>>2]=u,n[w>>2]=l,n[B>>2]=0,p=0,f=l):u=g,h=p-u|0,l=f-u|0,(u|0)<0?(n[B>>2]=h,n[w>>2]=l,n[C>>2]=0,p=h,u=0):l=f,h=p-l|0,f=u-l|0,(l|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[B>>2]=h-u,n[C>>2]=f-u,n[w>>2]=l-u),hr(n[o>>2]|0)|0&&(f=n[B>>2]|0,h=n[C>>2]|0,l=n[w>>2]|0,u=(h*3|0)+f|0,f=l+(f*3|0)|0,n[B>>2]=f,n[C>>2]=u,h=(l*3|0)+h|0,n[w>>2]=h,l=u-f|0,p=h-f|0,(f|0)<0?(n[C>>2]=l,n[w>>2]=p,n[B>>2]=0,u=l,g=0):(g=f,p=h),f=g-u|0,l=p-u|0,(u|0)<0?(n[B>>2]=f,n[w>>2]=l,n[C>>2]=0,g=f,h=0):(h=u,l=p),f=g-l|0,u=h-l|0,(l|0)<0?(n[B>>2]=f,n[C>>2]=u,n[w>>2]=0,h=u,l=0):f=g,u=(h|0)<(f|0)?h:f,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[B>>2]=f-u,n[C>>2]=h-u,n[w>>2]=l-u),n[o>>2]=(n[o>>2]|0)+1),n[a>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+4>>2]|0,T=n[b+8>>2]|0,h=(n[b>>2]|0)+(n[B>>2]|0)|0,g=a+4|0,n[g>>2]=h,l=o+l|0,o=a+8|0,n[o>>2]=l,u=T+u|0,T=a+12|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[a+16>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+16>>2]|0,T=n[b+20>>2]|0,h=(n[b+12>>2]|0)+(n[B>>2]|0)|0,g=a+20|0,n[g>>2]=h,l=o+l|0,o=a+24|0,n[o>>2]=l,u=T+u|0,T=a+28|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[a+32>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+28>>2]|0,T=n[b+32>>2]|0,h=(n[b+24>>2]|0)+(n[B>>2]|0)|0,g=a+36|0,n[g>>2]=h,l=o+l|0,o=a+40|0,n[o>>2]=l,u=T+u|0,T=a+44|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[a+48>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+40>>2]|0,T=n[b+44>>2]|0,h=(n[b+36>>2]|0)+(n[B>>2]|0)|0,g=a+52|0,n[g>>2]=h,l=o+l|0,o=a+56|0,n[o>>2]=l,u=T+u|0,T=a+60|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[a+64>>2]=n[s>>2],f=n[C>>2]|0,u=n[w>>2]|0,T=n[b+52>>2]|0,g=n[b+56>>2]|0,h=(n[b+48>>2]|0)+(n[B>>2]|0)|0,o=a+68|0,n[o>>2]=h,f=T+f|0,T=a+72|0,n[T>>2]=f,u=g+u|0,g=a+76|0,n[g>>2]=u,l=f-h|0,(h|0)<0?(u=u-h|0,n[T>>2]=l,n[g>>2]=u,n[o>>2]=0,f=0):(l=f,f=h),(l|0)<0&&(f=f-l|0,n[o>>2]=f,u=u-l|0,n[g>>2]=u,n[T>>2]=0,l=0),p=f-u|0,h=l-u|0,(u|0)<0?(n[o>>2]=p,n[T>>2]=h,n[g>>2]=0,f=p,u=0):h=l,l=(h|0)<(f|0)?h:f,l=(u|0)<(l|0)?u:l,(l|0)<=0){S=M;return}n[o>>2]=f-l,n[T>>2]=h-l,n[g>>2]=u-l,S=M;}function Wn(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0;if(w=n[16928+(o<<2)>>2]|0,C=(u|0)!=0,w=C?w*3|0:w,b=s+4|0,p=n[b>>2]|0,T=s+8|0,f=n[T>>2]|0,C){if(h=s+12|0,u=n[h>>2]|0,l=f+p+u|0,(l|0)==(w|0))return w=1,w|0;g=h;}else g=s+12|0,l=n[g>>2]|0,u=l,l=f+p+l|0;if((l|0)<=(w|0))return w=0,w|0;do if((u|0)>0){if(l=n[s>>2]|0,(f|0)>0){l=18608+(l*80|0)+60|0,h=p;break}l=18608+(l*80|0)+40|0,a?(h=p-w|0,a=f+h|0,B=(a|0)<0,f=u+f-(B?a:0)|0,p=(f|0)<0,u=u+h-(B?a:0)-(p?f:0)|0,h=(u|0)<0,a=(B?0:a)-(p?f:0)-(h?u:0)|0,f=(p?0:f)-(h?u:0)|0,u=h?0:u,h=(f|0)<(a|0)?f:a,h=(u|0)<(h|0)?u:h,p=(h|0)>0,f=f-(p?h:0)|0,u=u-(p?h:0)|0,h=a-(p?h:0)+w|0,n[b>>2]=h,n[T>>2]=f,n[g>>2]=u):h=p;}else l=18608+((n[s>>2]|0)*80|0)+20|0,h=p;while(false);if(n[s>>2]=n[l>>2],p=n[l+16>>2]|0,(p|0)>0){a=0;do B=u+h|0,M=(B|0)<0,H=M?B:0,P=f+h-H|0,D=(P|0)<0,s=D?P:0,h=u+f-H-s|0,f=(h|0)<0,u=f?0:h,h=f?h:0,f=(D?0:P)-h|0,h=(M?0:B)-s-h|0,s=(f|0)<(h|0)?f:h,s=(u|0)<(s|0)?u:s,(s|0)>0&&(h=h-s|0,f=f-s|0,u=u-s|0),a=a+1|0;while((a|0)<(p|0));n[b>>2]=h,n[T>>2]=f,n[g>>2]=u;}return P=n[16848+(o<<2)>>2]|0,P=C?P*3|0:P,D=Zt(P,n[l+8>>2]|0)|0,H=Zt(P,n[l+12>>2]|0)|0,h=(Zt(P,n[l+4>>2]|0)|0)+h|0,n[b>>2]=h,f=D+f|0,n[T>>2]=f,u=H+u|0,n[g>>2]=u,l=f-h|0,(h|0)<0?(u=u-h|0,n[T>>2]=l,n[g>>2]=u,n[b>>2]=0,f=0):(l=f,f=h),(l|0)<0?(s=f-l|0,n[b>>2]=s,u=u-l|0,n[g>>2]=u,n[T>>2]=0,h=0):(s=f,h=l),f=s-u|0,l=h-u|0,(u|0)<0?(n[b>>2]=f,n[T>>2]=l,n[g>>2]=0,u=0):(l=h,f=s),h=(l|0)<(f|0)?l:f,h=(u|0)<(h|0)?u:h,(h|0)>0&&(f=f-h|0,l=l-h|0,u=u-h|0,n[b>>2]=f,n[T>>2]=l,n[g>>2]=u),C?(H=(l+f+u|0)==(w|0)?1:2,H|0):(H=2,H|0)}function Iy(s,o){s=s|0,o=o|0;var a=0;do a=Wn(s,o,0,1)|0;while((a|0)==2);return a|0}function Fa(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0,Jt=0,bt=0,ht=0,Et=0,mt=0;if(bt=S,S=S+272|0,f=bt+256|0,h=bt+240|0,Re=bt,He=bt+224|0,Jt=bt+208|0,$=bt+184|0,me=bt+168|0,ne=bt+152|0,ae=bt+136|0,Ge=bt+120|0,Ue=bt+96|0,n[f>>2]=o,n[h>>2]=n[s>>2],n[h+4>>2]=n[s+4>>2],n[h+8>>2]=n[s+8>>2],n[h+12>>2]=n[s+12>>2],Ru(h,f,Re),n[l>>2]=0,le=u+a+((u|0)==6&1)|0,(le|0)<=(a|0)){S=bt;return}H=n[f>>2]|0,R=a+6|0,j=Jt+8|0,O=$+8|0,K=16928+(H<<2)|0,ee=me+8|0,z=ne+8|0,V=ae+8|0,P=n[h>>2]|0,w=He+4|0,B=He+8|0,M=He+12|0,D=Jt+8|0,g=$+8|0,b=$+16|0,T=Ue+8|0,C=Ue+16|0,h=0,p=a,u=-1;e:for(;;){if(f=(p|0)%6|0,s=Re+(f<<4)|0,n[He>>2]=n[s>>2],n[He+4>>2]=n[s+4>>2],n[He+8>>2]=n[s+8>>2],n[He+12>>2]=n[s+12>>2],s=h,h=Wn(He,H,0,1)|0,(p|0)>(a|0)&(hr(o)|0)!=0&&(Pt=n[He>>2]|0,(s|0)!=1&(Pt|0)!=(u|0))){switch(mt=(f+5|0)%6|0,s=n[Re+(mt<<4)+12>>2]|0,ht=+((n[Re+(mt<<4)+8>>2]|0)-s|0),L[Jt>>3]=+((n[Re+(mt<<4)+4>>2]|0)-s|0)-ht*.5,L[j>>3]=ht*.8660254037844386,s=n[Re+(f<<4)+12>>2]|0,ht=+((n[Re+(f<<4)+8>>2]|0)-s|0),L[$>>3]=+((n[Re+(f<<4)+4>>2]|0)-s|0)-ht*.5,L[O>>3]=ht*.8660254037844386,ht=+(n[K>>2]|0),L[me>>3]=ht*3,L[ee>>3]=0,Et=ht*-1.5,L[ne>>3]=Et,L[z>>3]=ht*2.598076211353316,L[ae>>3]=Et,L[V>>3]=ht*-2.598076211353316,n[17008+(P*80|0)+(((u|0)==(P|0)?Pt:u)<<2)>>2]|0){case 1:{s=ne,u=me;break}case 3:{s=ae,u=ne;break}case 2:{s=me,u=ae;break}default:{s=8;break e}}Ju(Jt,$,u,s,Ge),!(qu(Jt,Ge)|0)&&!(qu($,Ge)|0)&&(ei(Ge,P,H,1,Ue),mt=n[l>>2]|0,ht=+ZA(+ +L[C>>3]),Et=+Qt(+ +L[T>>3],+ +L[Ue>>3]),L[l+8+(mt<<4)>>3]=ht,L[l+8+(mt<<4)+8>>3]=Et,n[l>>2]=(n[l>>2]|0)+1);}if((p|0)<(R|0)&&(mt=n[M>>2]|0,ht=+((n[B>>2]|0)-mt|0),L[Jt>>3]=+((n[w>>2]|0)-mt|0)-ht*.5,L[D>>3]=ht*.8660254037844386,ei(Jt,n[He>>2]|0,H,1,$),mt=n[l>>2]|0,ht=+ZA(+ +L[b>>3]),Et=+Qt(+ +L[g>>3],+ +L[$>>3]),L[l+8+(mt<<4)>>3]=ht,L[l+8+(mt<<4)+8>>3]=Et,n[l>>2]=(n[l>>2]|0)+1),p=p+1|0,(p|0)>=(le|0)){s=3;break}else u=n[He>>2]|0;}if((s|0)==3){S=bt;return}else (s|0)==8&&Oe(27157,27120,766,27202);}function Ru(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;P=S,S=S+160|0,u=P+80|0,l=P,f=u,h=20336,p=f+72|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));f=l,h=20416,p=f+72|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));C=(hr(n[o>>2]|0)|0)==0,C=C?u:l,M=s+4|0,f=n[M>>2]|0,w=s+8|0,u=n[w>>2]|0,B=s+12|0,l=n[B>>2]|0,h=u+(f<<1)|0,n[M>>2]=h,u=l+(u<<1)|0,n[w>>2]=u,f=(l<<1)+f|0,n[B>>2]=f,l=u-h|0,p=f-h|0,(h|0)<0&&(n[w>>2]=l,n[B>>2]=p,n[M>>2]=0,u=l,h=0,f=p),p=h-u|0,l=f-u|0,(u|0)<0?(n[M>>2]=p,n[B>>2]=l,n[w>>2]=0,u=0):(l=f,p=h),h=p-l|0,f=u-l|0,(l|0)<0?(n[M>>2]=h,n[w>>2]=f,n[B>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(l=l-u|0,f=f-u|0,h=h-u|0,n[M>>2]=h,n[w>>2]=f,n[B>>2]=l),g=(f<<1)+h|0,p=l+(h<<1)|0,n[M>>2]=p,n[w>>2]=g,f=(l<<1)+f|0,n[B>>2]=f,u=g-p|0,l=f-p|0,(p|0)<0?(n[w>>2]=u,n[B>>2]=l,n[M>>2]=0,p=0,f=l):u=g,h=p-u|0,l=f-u|0,(u|0)<0?(n[M>>2]=h,n[B>>2]=l,n[w>>2]=0,p=h,u=0):l=f,h=p-l|0,f=u-l|0,(l|0)<0?(n[M>>2]=h,n[w>>2]=f,n[B>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[M>>2]=h-u,n[w>>2]=f-u,n[B>>2]=l-u),hr(n[o>>2]|0)|0&&(f=n[M>>2]|0,h=n[w>>2]|0,l=n[B>>2]|0,u=(h*3|0)+f|0,f=l+(f*3|0)|0,n[M>>2]=f,n[w>>2]=u,h=(l*3|0)+h|0,n[B>>2]=h,l=u-f|0,p=h-f|0,(f|0)<0?(n[w>>2]=l,n[B>>2]=p,n[M>>2]=0,u=l,g=0):(g=f,p=h),f=g-u|0,l=p-u|0,(u|0)<0?(n[M>>2]=f,n[B>>2]=l,n[w>>2]=0,g=f,h=0):(h=u,l=p),f=g-l|0,u=h-l|0,(l|0)<0?(n[M>>2]=f,n[w>>2]=u,n[B>>2]=0,h=u,l=0):f=g,u=(h|0)<(f|0)?h:f,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[M>>2]=f-u,n[w>>2]=h-u,n[B>>2]=l-u),n[o>>2]=(n[o>>2]|0)+1),g=0;do n[a+(g<<4)>>2]=n[s>>2],l=n[w>>2]|0,u=n[B>>2]|0,T=n[C+(g*12|0)+4>>2]|0,b=n[C+(g*12|0)+8>>2]|0,h=(n[C+(g*12|0)>>2]|0)+(n[M>>2]|0)|0,o=a+(g<<4)+4|0,n[o>>2]=h,l=T+l|0,T=a+(g<<4)+8|0,n[T>>2]=l,u=b+u|0,b=a+(g<<4)+12|0,n[b>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[T>>2]=f,n[b>>2]=u,n[o>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[o>>2]=h,u=u-l|0,n[b>>2]=u,n[T>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[o>>2]=p,n[T>>2]=f,n[b>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[o>>2]=h-l,n[T>>2]=f-l,n[b>>2]=u-l),g=g+1|0;while((g|0)!=6);S=P;}function La(s,o){return s=s|0,o=o|0,o=te(s|0,o|0,52)|0,I()|0,o&15|0}function Pu(s,o){return s=s|0,o=o|0,o=te(s|0,o|0,45)|0,I()|0,o&127|0}function Fy(s,o,a,u){return s=s|0,o=o|0,a=a|0,u=u|0,(a+-1|0)>>>0>14?(u=4,u|0):(a=te(s|0,o|0,(15-a|0)*3|0)|0,I()|0,n[u>>2]=a&7,u=0,u|0)}function Ly(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;if(s>>>0>15)return u=4,u|0;if(o>>>0>121)return u=17,u|0;h=oe(s|0,0,52)|0,l=I()|0,p=oe(o|0,0,45)|0,l=l|(I()|0)|134225919;e:do if((s|0)>=1){for(p=1,h=(Z[20496+o>>0]|0)!=0,f=-1;;){if(o=n[a+(p+-1<<2)>>2]|0,o>>>0>6){l=18,o=10;break}if(!((o|0)==0|h^1))if((o|0)==1){l=19,o=10;break}else h=0;if(T=(15-p|0)*3|0,g=oe(7,0,T|0)|0,l=l&~(I()|0),o=oe(o|0,((o|0)<0)<<31>>31|0,T|0)|0,f=o|f&~g,l=I()|0|l,(p|0)<(s|0))p=p+1|0;else break e}if((o|0)==10)return l|0}else f=-1;while(false);return T=u,n[T>>2]=f,n[T+4>>2]=l,T=0,T|0}function es(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0;return !(true&(o&-16777216|0)==134217728)||(u=te(s|0,o|0,52)|0,I()|0,u=u&15,a=te(s|0,o|0,45)|0,I()|0,a=a&127,a>>>0>121)?(s=0,s|0):(h=(u^15)*3|0,l=te(s|0,o|0,h|0)|0,h=oe(l|0,I()|0,h|0)|0,l=I()|0,f=Bt(-1227133514,-1171,h|0,l|0)|0,!((h&613566756&f|0)==0&(l&4681&(I()|0)|0)==0)||(h=(u*3|0)+19|0,f=oe(~s|0,~o|0,h|0)|0,h=te(f|0,I()|0,h|0)|0,!((u|0)==15|(h|0)==0&(I()|0)==0))?(h=0,h|0):!(Z[20496+a>>0]|0)||(o=o&8191,(s|0)==0&(o|0)==0)?(h=1,h|0):(h=Ka(s|0,o|0)|0,I()|0,((63-h|0)%3|0|0)!=0|0))}function Ry(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0;return true&(o&-16777216|0)==134217728&&(u=te(s|0,o|0,52)|0,I()|0,u=u&15,a=te(s|0,o|0,45)|0,I()|0,a=a&127,a>>>0<=121)&&(h=(u^15)*3|0,l=te(s|0,o|0,h|0)|0,h=oe(l|0,I()|0,h|0)|0,l=I()|0,f=Bt(-1227133514,-1171,h|0,l|0)|0,(h&613566756&f|0)==0&(l&4681&(I()|0)|0)==0)&&(h=(u*3|0)+19|0,f=oe(~s|0,~o|0,h|0)|0,h=te(f|0,I()|0,h|0)|0,(u|0)==15|(h|0)==0&(I()|0)==0)&&(!(Z[20496+a>>0]|0)||(a=o&8191,(s|0)==0&(a|0)==0)||(h=Ka(s|0,a|0)|0,I()|0,(63-h|0)%3|0|0))||Iu(s,o)|0?(h=1,h|0):(h=(Ku(s,o)|0)!=0&1,h|0)}function Ra(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0;if(l=oe(o|0,0,52)|0,f=I()|0,a=oe(a|0,0,45)|0,a=f|(I()|0)|134225919,(o|0)<1){f=-1,u=a,o=s,n[o>>2]=f,s=s+4|0,n[s>>2]=u;return}for(f=1,l=-1;h=(15-f|0)*3|0,p=oe(7,0,h|0)|0,a=a&~(I()|0),h=oe(u|0,0,h|0)|0,l=l&~p|h,a=a|(I()|0),(f|0)!=(o|0);)f=f+1|0;p=s,h=p,n[h>>2]=l,p=p+4|0,n[p>>2]=a;}function Pa(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0;if(f=te(s|0,o|0,52)|0,I()|0,f=f&15,a>>>0>15)return u=4,u|0;if((f|0)<(a|0))return u=12,u|0;if((f|0)==(a|0))return n[u>>2]=s,n[u+4>>2]=o,u=0,u|0;if(l=oe(a|0,0,52)|0,l=l|s,s=I()|0|o&-15728641,(f|0)>(a|0))do o=oe(7,0,(14-a|0)*3|0)|0,a=a+1|0,l=o|l,s=I()|0|s;while((a|0)<(f|0));return n[u>>2]=l,n[u+4>>2]=s,u=0,u|0}function ti(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0;if(f=te(s|0,o|0,52)|0,I()|0,f=f&15,!((a|0)<16&(f|0)<=(a|0)))return u=4,u|0;l=a-f|0,a=te(s|0,o|0,45)|0,I()|0;e:do if(!(ct(a&127)|0))a=An(7,0,l,((l|0)<0)<<31>>31)|0,l=I()|0;else {t:do if(f|0){for(a=1;h=oe(7,0,(15-a|0)*3|0)|0,!!((h&s|0)==0&((I()|0)&o|0)==0);)if(a>>>0<f>>>0)a=a+1|0;else break t;a=An(7,0,l,((l|0)<0)<<31>>31)|0,l=I()|0;break e}while(false);a=An(7,0,l,((l|0)<0)<<31>>31)|0,a=ut(a|0,I()|0,5,0)|0,a=ce(a|0,I()|0,-5,-1)|0,a=sn(a|0,I()|0,6,0)|0,a=ce(a|0,I()|0,1,0)|0,l=I()|0;}while(false);return h=u,n[h>>2]=a,n[h+4>>2]=l,h=0,h|0}function et(s,o){s=s|0,o=o|0;var a=0,u=0,l=0;if(l=te(s|0,o|0,45)|0,I()|0,!(ct(l&127)|0))return l=0,l|0;l=te(s|0,o|0,52)|0,I()|0,l=l&15;e:do if(!l)a=0;else for(u=1;;){if(a=te(s|0,o|0,(15-u|0)*3|0)|0,I()|0,a=a&7,a|0)break e;if(u>>>0<l>>>0)u=u+1|0;else {a=0;break}}while(false);return l=(a|0)==0&1,l|0}function Py(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0;if(h=S,S=S+16|0,f=h,Ua(f,s,o,a),o=f,s=n[o>>2]|0,o=n[o+4>>2]|0,(s|0)==0&(o|0)==0)return S=h,0;l=0,a=0;do p=u+(l<<3)|0,n[p>>2]=s,n[p+4>>2]=o,l=ce(l|0,a|0,1,0)|0,a=I()|0,Ha(f),p=f,s=n[p>>2]|0,o=n[p+4>>2]|0;while(!((s|0)==0&(o|0)==0));return S=h,0}function Du(s,o,a,u){return s=s|0,o=o|0,a=a|0,u=u|0,(u|0)<(a|0)?(a=o,u=s,Ie(a|0),u|0):(a=oe(-1,-1,((u-a|0)*3|0)+3|0)|0,u=oe(~a|0,~(I()|0)|0,(15-u|0)*3|0)|0,a=~(I()|0)&o,u=~u&s,Ie(a|0),u|0)}function Nu(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0;return l=te(s|0,o|0,52)|0,I()|0,l=l&15,(a|0)<16&(l|0)<=(a|0)?((l|0)<(a|0)&&(l=oe(-1,-1,((a+-1-l|0)*3|0)+3|0)|0,l=oe(~l|0,~(I()|0)|0,(15-a|0)*3|0)|0,o=~(I()|0)&o,s=~l&s),l=oe(a|0,0,52)|0,a=o&-15728641|(I()|0),n[u>>2]=s|l,n[u+4>>2]=a,u=0,u|0):(u=4,u|0)}function Dy(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0;if((a|0)==0&(u|0)==0)return ae=0,ae|0;if(l=s,f=n[l>>2]|0,l=n[l+4>>2]|0,true&(l&15728640|0)==0){if(!((u|0)>0|(u|0)==0&a>>>0>0)||(ae=o,n[ae>>2]=f,n[ae+4>>2]=l,(a|0)==1&(u|0)==0))return ae=0,ae|0;l=1,f=0;do me=s+(l<<3)|0,ne=n[me+4>>2]|0,ae=o+(l<<3)|0,n[ae>>2]=n[me>>2],n[ae+4>>2]=ne,l=ce(l|0,f|0,1,0)|0,f=I()|0;while((f|0)<(u|0)|(f|0)==(u|0)&l>>>0<a>>>0);return l=0,l|0}if($=a<<3,ne=lt($)|0,!ne)return ae=13,ae|0;if(xr(ne|0,s|0,$|0)|0,me=zt(a,8)|0,!me)return fe(ne),ae=13,ae|0;e:for(;;){l=ne,T=n[l>>2]|0,l=n[l+4>>2]|0,V=te(T|0,l|0,52)|0,I()|0,V=V&15,le=V+-1|0,z=(V|0)!=0,ee=(u|0)>0|(u|0)==0&a>>>0>0;t:do if(z&ee){if(R=oe(le|0,0,52)|0,j=I()|0,le>>>0>15){if(!((T|0)==0&(l|0)==0)){ae=16;break e}for(f=0,s=0;;){if(f=ce(f|0,s|0,1,0)|0,s=I()|0,!((s|0)<(u|0)|(s|0)==(u|0)&f>>>0<a>>>0))break t;if(h=ne+(f<<3)|0,K=n[h>>2]|0,h=n[h+4>>2]|0,!((K|0)==0&(h|0)==0)){l=h,ae=16;break e}}}for(p=T,s=l,f=0,h=0;;){if(!((p|0)==0&(s|0)==0)){if(!(true&(s&117440512|0)==0)){ae=21;break e}if(b=te(p|0,s|0,52)|0,I()|0,b=b&15,(b|0)<(le|0)){l=12,ae=27;break e}if((b|0)!=(le|0)&&(p=p|R,s=s&-15728641|j,b>>>0>=V>>>0)){g=le;do K=oe(7,0,(14-g|0)*3|0)|0,g=g+1|0,p=K|p,s=I()|0|s;while(g>>>0<b>>>0)}if(w=Jr(p|0,s|0,a|0,u|0)|0,B=I()|0,g=me+(w<<3)|0,b=g,C=n[b>>2]|0,b=n[b+4>>2]|0,!((C|0)==0&(b|0)==0)){D=0,H=0;do{if((D|0)>(u|0)|(D|0)==(u|0)&H>>>0>a>>>0){ae=31;break e}if((C|0)==(p|0)&(b&-117440513|0)==(s|0)){M=te(C|0,b|0,56)|0,I()|0,M=M&7,P=M+1|0,K=te(C|0,b|0,45)|0,I()|0;r:do if(!(ct(K&127)|0))b=7;else {if(C=te(C|0,b|0,52)|0,I()|0,C=C&15,!C){b=6;break}for(b=1;;){if(K=oe(7,0,(15-b|0)*3|0)|0,!((K&p|0)==0&((I()|0)&s|0)==0)){b=7;break r}if(b>>>0<C>>>0)b=b+1|0;else {b=6;break}}}while(false);if((M+2|0)>>>0>b>>>0){ae=41;break e}K=oe(P|0,0,56)|0,s=I()|0|s&-117440513,O=g,n[O>>2]=0,n[O+4>>2]=0,p=K|p;}else w=ce(w|0,B|0,1,0)|0,w=on(w|0,I()|0,a|0,u|0)|0,B=I()|0;H=ce(H|0,D|0,1,0)|0,D=I()|0,g=me+(w<<3)|0,b=g,C=n[b>>2]|0,b=n[b+4>>2]|0;}while(!((C|0)==0&(b|0)==0))}K=g,n[K>>2]=p,n[K+4>>2]=s;}if(f=ce(f|0,h|0,1,0)|0,h=I()|0,!((h|0)<(u|0)|(h|0)==(u|0)&f>>>0<a>>>0))break t;s=ne+(f<<3)|0,p=n[s>>2]|0,s=n[s+4>>2]|0;}}while(false);if(K=ce(a|0,u|0,5,0)|0,O=I()|0,O>>>0<0|(O|0)==0&K>>>0<11){ae=85;break}if(K=sn(a|0,u|0,6,0)|0,I()|0,K=zt(K,8)|0,!K){ae=48;break}do if(ee){for(P=0,s=0,M=0,D=0;;){if(b=me+(P<<3)|0,h=b,f=n[h>>2]|0,h=n[h+4>>2]|0,(f|0)==0&(h|0)==0)O=M;else {C=te(f|0,h|0,56)|0,I()|0,C=C&7,p=C+1|0,w=h&-117440513,O=te(f|0,h|0,45)|0,I()|0;t:do if(ct(O&127)|0){if(B=te(f|0,h|0,52)|0,I()|0,B=B&15,B|0)for(g=1;;){if(O=oe(7,0,(15-g|0)*3|0)|0,!((f&O|0)==0&(w&(I()|0)|0)==0))break t;if(g>>>0<B>>>0)g=g+1|0;else break}h=oe(p|0,0,56)|0,f=h|f,h=I()|0|w,p=b,n[p>>2]=f,n[p+4>>2]=h,p=C+2|0;}while(false);(p|0)==7?(O=K+(s<<3)|0,n[O>>2]=f,n[O+4>>2]=h&-117440513,s=ce(s|0,M|0,1,0)|0,O=I()|0):O=M;}if(P=ce(P|0,D|0,1,0)|0,D=I()|0,(D|0)<(u|0)|(D|0)==(u|0)&P>>>0<a>>>0)M=O;else break}if(ee){if(H=le>>>0>15,R=oe(le|0,0,52)|0,j=I()|0,!z){for(f=0,g=0,p=0,h=0;(T|0)==0&(l|0)==0||(le=o+(f<<3)|0,n[le>>2]=T,n[le+4>>2]=l,f=ce(f|0,g|0,1,0)|0,g=I()|0),p=ce(p|0,h|0,1,0)|0,h=I()|0,!!((h|0)<(u|0)|(h|0)==(u|0)&p>>>0<a>>>0);)l=ne+(p<<3)|0,T=n[l>>2]|0,l=n[l+4>>2]|0;l=O;break}for(f=0,g=0,h=0,p=0;;){do if(!((T|0)==0&(l|0)==0)){if(B=te(T|0,l|0,52)|0,I()|0,B=B&15,H|(B|0)<(le|0)){ae=80;break e}if((B|0)!=(le|0)){if(b=T|R,C=l&-15728641|j,B>>>0>=V>>>0){w=le;do z=oe(7,0,(14-w|0)*3|0)|0,w=w+1|0,b=z|b,C=I()|0|C;while(w>>>0<B>>>0)}}else b=T,C=l;M=Jr(b|0,C|0,a|0,u|0)|0,w=0,B=0,D=I()|0;do{if((w|0)>(u|0)|(w|0)==(u|0)&B>>>0>a>>>0){ae=81;break e}if(z=me+(M<<3)|0,P=n[z+4>>2]|0,(P&-117440513|0)==(C|0)&&(n[z>>2]|0)==(b|0)){ae=65;break}z=ce(M|0,D|0,1,0)|0,M=on(z|0,I()|0,a|0,u|0)|0,D=I()|0,B=ce(B|0,w|0,1,0)|0,w=I()|0,z=me+(M<<3)|0;}while(!((n[z>>2]|0)==(b|0)&&(n[z+4>>2]|0)==(C|0)));if((ae|0)==65&&(ae=0,true&(P&117440512|0)==100663296))break;z=o+(f<<3)|0,n[z>>2]=T,n[z+4>>2]=l,f=ce(f|0,g|0,1,0)|0,g=I()|0;}while(false);if(h=ce(h|0,p|0,1,0)|0,p=I()|0,!((p|0)<(u|0)|(p|0)==(u|0)&h>>>0<a>>>0))break;l=ne+(h<<3)|0,T=n[l>>2]|0,l=n[l+4>>2]|0;}l=O;}else f=0,l=O;}else f=0,s=0,l=0;while(false);if(an(me|0,0,$|0)|0,xr(ne|0,K|0,s<<3|0)|0,fe(K),(s|0)==0&(l|0)==0){ae=89;break}else o=o+(f<<3)|0,u=l,a=s;}if((ae|0)==16) true&(l&117440512|0)==0?(l=4,ae=27):ae=21;else if((ae|0)==31)Oe(27634,27225,620,27235);else {if((ae|0)==41)return fe(ne),fe(me),ae=10,ae|0;if((ae|0)==48)return fe(ne),fe(me),ae=13,ae|0;(ae|0)==80?Oe(27634,27225,711,27235):(ae|0)==81?Oe(27634,27225,723,27235):(ae|0)==85&&(xr(o|0,ne|0,a<<3|0)|0,ae=89);}return (ae|0)==21?(fe(ne),fe(me),ae=5,ae|0):(ae|0)==27?(fe(ne),fe(me),ae=l,ae|0):(ae|0)==89?(fe(ne),fe(me),ae=0,ae|0):0}function Ny(s,o,a,u,l,f,h){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0,h=h|0;var p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;if(P=S,S=S+16|0,M=P,!((a|0)>0|(a|0)==0&o>>>0>0))return M=0,S=P,M|0;if((h|0)>=16)return M=12,S=P,M|0;w=0,B=0,C=0,p=0;e:for(;;){if(T=s+(w<<3)|0,g=n[T>>2]|0,T=n[T+4>>2]|0,b=te(g|0,T|0,52)|0,I()|0,(b&15|0)>(h|0)){p=12,g=11;break}if(Ua(M,g,T,h),b=M,T=n[b>>2]|0,b=n[b+4>>2]|0,(T|0)==0&(b|0)==0)g=C;else {g=C;do{if(!((p|0)<(f|0)|(p|0)==(f|0)&g>>>0<l>>>0)){g=10;break e}C=u+(g<<3)|0,n[C>>2]=T,n[C+4>>2]=b,g=ce(g|0,p|0,1,0)|0,p=I()|0,Ha(M),C=M,T=n[C>>2]|0,b=n[C+4>>2]|0;}while(!((T|0)==0&(b|0)==0))}if(w=ce(w|0,B|0,1,0)|0,B=I()|0,(B|0)<(a|0)|(B|0)==(a|0)&w>>>0<o>>>0)C=g;else {p=0,g=11;break}}return (g|0)==10?(M=14,S=P,M|0):(g|0)==11?(S=P,p|0):0}function Oy(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;w=S,S=S+16|0,C=w;e:do if((a|0)>0|(a|0)==0&o>>>0>0){for(T=0,h=0,f=0,b=0;;){if(g=s+(T<<3)|0,p=n[g>>2]|0,g=n[g+4>>2]|0,!((p|0)==0&(g|0)==0)&&(g=(ti(p,g,u,C)|0)==0,p=C,h=ce(n[p>>2]|0,n[p+4>>2]|0,h|0,f|0)|0,f=I()|0,!g)){f=12;break}if(T=ce(T|0,b|0,1,0)|0,b=I()|0,!((b|0)<(a|0)|(b|0)==(a|0)&T>>>0<o>>>0))break e}return S=w,f|0}else h=0,f=0;while(false);return n[l>>2]=h,n[l+4>>2]=f,l=0,S=w,l|0}function Gy(s,o){return s=s|0,o=o|0,o=te(s|0,o|0,52)|0,I()|0,o&1|0}function $t(s,o){s=s|0,o=o|0;var a=0,u=0,l=0;if(l=te(s|0,o|0,52)|0,I()|0,l=l&15,!l)return l=0,l|0;for(u=1;;){if(a=te(s|0,o|0,(15-u|0)*3|0)|0,I()|0,a=a&7,a|0){u=5;break}if(u>>>0<l>>>0)u=u+1|0;else {a=0,u=5;break}}return (u|0)==5?a|0:0}function Da(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(b=te(s|0,o|0,52)|0,I()|0,b=b&15,!b)return T=o,b=s,Ie(T|0),b|0;for(T=1,a=0;;){switch(u=(15-T|0)*3|0,p=oe(7,0,u|0)|0,g=I()|0,f=s&~p,h=o&~g,s=te(s|0,o|0,u|0)|0,I()|0,s&7){case 1:{s=5;break}case 5:{s=4;break}case 4:{s=6;break}case 6:{s=2;break}case 2:{s=3;break}case 3:{s=1;break}default:s=s&7;}u=oe(s|0,0,u|0)|0,l=I()|0,s=u|f,o=l|h;e:do if(!a)if((u&p|0)==0&(l&g|0)==0)a=0;else if(h=te(s|0,o|0,52)|0,I()|0,h=h&15,!h)a=1;else {a=1;t:for(;;){switch(g=te(s|0,o|0,(15-a|0)*3|0)|0,I()|0,g&7){case 1:break t;case 0:break;default:{a=1;break e}}if(a>>>0<h>>>0)a=a+1|0;else {a=1;break e}}for(f=1;;){switch(l=(15-f|0)*3|0,a=te(s|0,o|0,l|0)|0,I()|0,u=oe(7,0,l|0)|0,u=s&~u,o=o&~(I()|0),a&7){case 1:{s=5;break}case 5:{s=4;break}case 4:{s=6;break}case 6:{s=2;break}case 2:{s=3;break}case 3:{s=1;break}default:s=a&7;}if(s=oe(s|0,0,l|0)|0,s=s|u,o=I()|0|o,f>>>0<h>>>0)f=f+1|0;else {a=1;break e}}}while(false);if(T>>>0<b>>>0)T=T+1|0;else break}return Ie(o|0),s|0}function wn(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0;if(h=te(s|0,o|0,52)|0,I()|0,h=h&15,!h)return f=o,h=s,Ie(f|0),h|0;for(f=1;;){switch(l=(15-f|0)*3|0,a=te(s|0,o|0,l|0)|0,I()|0,u=oe(7,0,l|0)|0,u=s&~u,o=o&~(I()|0),a&7){case 1:{s=5;break}case 5:{s=4;break}case 4:{s=6;break}case 6:{s=2;break}case 2:{s=3;break}case 3:{s=1;break}default:s=a&7;}if(s=oe(s|0,0,l|0)|0,s=s|u,o=I()|0|o,f>>>0<h>>>0)f=f+1|0;else break}return Ie(o|0),s|0}function ky(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(b=te(s|0,o|0,52)|0,I()|0,b=b&15,!b)return T=o,b=s,Ie(T|0),b|0;for(T=1,a=0;;){switch(u=(15-T|0)*3|0,p=oe(7,0,u|0)|0,g=I()|0,f=s&~p,h=o&~g,s=te(s|0,o|0,u|0)|0,I()|0,s&7){case 1:{s=3;break}case 3:{s=2;break}case 2:{s=6;break}case 6:{s=4;break}case 4:{s=5;break}case 5:{s=1;break}default:s=s&7;}u=oe(s|0,0,u|0)|0,l=I()|0,s=u|f,o=l|h;e:do if(!a)if((u&p|0)==0&(l&g|0)==0)a=0;else if(h=te(s|0,o|0,52)|0,I()|0,h=h&15,!h)a=1;else {a=1;t:for(;;){switch(g=te(s|0,o|0,(15-a|0)*3|0)|0,I()|0,g&7){case 1:break t;case 0:break;default:{a=1;break e}}if(a>>>0<h>>>0)a=a+1|0;else {a=1;break e}}for(f=1;;){switch(a=(15-f|0)*3|0,u=oe(7,0,a|0)|0,u=s&~u,l=o&~(I()|0),s=te(s|0,o|0,a|0)|0,I()|0,s&7){case 1:{s=3;break}case 3:{s=2;break}case 2:{s=6;break}case 6:{s=4;break}case 4:{s=5;break}case 5:{s=1;break}default:s=s&7;}if(s=oe(s|0,0,a|0)|0,s=s|u,o=I()|0|l,f>>>0<h>>>0)f=f+1|0;else {a=1;break e}}}while(false);if(T>>>0<b>>>0)T=T+1|0;else break}return Ie(o|0),s|0}function Na(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0;if(h=te(s|0,o|0,52)|0,I()|0,h=h&15,!h)return f=o,h=s,Ie(f|0),h|0;for(f=1;;){switch(u=(15-f|0)*3|0,a=oe(7,0,u|0)|0,a=s&~a,l=o&~(I()|0),s=te(s|0,o|0,u|0)|0,I()|0,s&7){case 1:{s=3;break}case 3:{s=2;break}case 2:{s=6;break}case 6:{s=4;break}case 4:{s=5;break}case 5:{s=1;break}default:s=s&7;}if(s=oe(s|0,0,u|0)|0,s=s|a,o=I()|0|l,f>>>0<h>>>0)f=f+1|0;else break}return Ie(o|0),s|0}function Uy(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0;if(O=S,S=S+16|0,j=O,oe(o|0,0,52)|0,a=I()|0|134225919,!o)return (n[s+4>>2]|0)>2||(n[s+8>>2]|0)>2||(n[s+12>>2]|0)>2?(R=0,j=0,Ie(R|0),S=O,j|0):(oe(Cu(s)|0,0,45)|0,R=I()|0|a,j=-1,Ie(R|0),S=O,j|0);n[j>>2]=n[s>>2],n[j+4>>2]=n[s+4>>2],n[j+8>>2]=n[s+8>>2],n[j+12>>2]=n[s+12>>2],R=j+4|0;e:do if((o|0)>0)for(P=j+8|0,D=j+12|0,M=o,C=n[P>>2]|0,w=n[D>>2]|0,o=-1,b=n[j+4>>2]|0;;){B=M,M=M+-1|0,s=b-w|0,u=C-w|0,B&1?(f=Nr(+((s*3|0)-u|0)*.14285714285714285)|0,n[R>>2]=f,s=Nr(+((u<<1)+s|0)*.14285714285714285)|0,n[P>>2]=s,n[D>>2]=0,u=s-f|0,l=0-f|0,(f|0)<0?(n[P>>2]=u,n[D>>2]=l,n[R>>2]=0,s=u,h=0):(h=f,l=0),f=h-s|0,u=l-s|0,(s|0)<0?(n[R>>2]=f,n[D>>2]=u,n[P>>2]=0,h=f,f=0):(u=l,f=s),s=h-u|0,l=f-u|0,(u|0)<0?(n[R>>2]=s,n[P>>2]=l,n[D>>2]=0,f=0):(l=f,s=h,f=u),u=(l|0)<(s|0)?l:s,u=(f|0)<(u|0)?f:u,(u|0)>0&&(f=f-u|0,l=l-u|0,s=s-u|0,n[R>>2]=s,n[P>>2]=l,n[D>>2]=f),ee=l+(s*3|0)|0,K=(ee|0)<0,T=f+(l*3|0)-(K?ee:0)|0,g=(T|0)<0,u=(f*3|0)+s-(K?ee:0)-(g?T:0)|0,p=(u|0)<0,z=p?0:u,h=(g?0:T)-(p?u:0)|0,u=(K?0:ee)-(g?T:0)-(p?u:0)|0,p=(h|0)<(u|0)?h:u,p=(z|0)<(p|0)?z:p,T=(p|0)>0,g=T?p:0,h=h-(T?p:0)|0,p=z-(T?p:0)|0,T=f):(p=Nr(+((s<<1)+u|0)*.14285714285714285)|0,n[R>>2]=p,l=Nr(+((u*3|0)-s|0)*.14285714285714285)|0,n[P>>2]=l,n[D>>2]=0,u=l-p|0,s=0-p|0,(p|0)<0?(n[P>>2]=u,n[D>>2]=s,n[R>>2]=0,l=u,p=0):s=0,h=p-l|0,u=s-l|0,(l|0)<0?(n[R>>2]=h,n[D>>2]=u,n[P>>2]=0,f=u,l=0):(f=s,h=p),s=h-f|0,u=l-f|0,(f|0)<0?(n[R>>2]=s,n[P>>2]=u,n[D>>2]=0,l=u,f=0):s=h,u=(l|0)<(s|0)?l:s,u=(f|0)<(u|0)?f:u,(u|0)>0&&(f=f-u|0,l=l-u|0,s=s-u|0,n[R>>2]=s,n[P>>2]=l,n[D>>2]=f),ee=f+(s*3|0)|0,z=(ee|0)<0,T=(l*3|0)+s-(z?ee:0)|0,g=(T|0)<0,u=(f*3|0)+l-(z?ee:0)-(g?T:0)|0,p=(u|0)<0,K=p?0:u,h=(g?0:T)-(p?u:0)|0,u=(z?0:ee)-(g?T:0)-(p?u:0)|0,p=(h|0)<(u|0)?h:u,p=(K|0)<(p|0)?K:p,T=(p|0)>0,g=T?p:0,h=h-(T?p:0)|0,p=K-(T?p:0)|0,T=f),u=b+(g-u)|0,f=(u|0)<0,g=C-h-(f?u:0)|0,h=(g|0)<0,w=w-p+(f?0-u|0:0)+(h?0-g|0:0)|0,b=(w|0)<0,p=b?0:w,z=(h?0:g)-(b?w:0)|0,w=(f?0:u)-(h?g:0)-(b?w:0)|0,b=(z|0)<(w|0)?z:w,b=(p|0)<(b|0)?p:b,g=(b|0)>0,w=w-(g?b:0)|0,h=(15-B|0)*3|0,u=oe(7,0,h|0)|0,u=o&~u,f=a&~(I()|0),C=(w|0)<0,ee=C?w:0,z=z-(g?b:0)-ee|0,K=(z|0)<0,ee=(K?0-z|0:0)+(p-(g?b:0)-ee)|0,a=(ee|0)<0,o=a?0:ee,ee=a?ee:0,a=(K?0:z)-ee|0,ee=(C?0:w)-(K?z:0)-ee|0,z=(a|0)<(ee|0)?a:ee,z=(o|0)<(z|0)?o:z,z=(z|0)>0?z:0,o=o-z|0,a=a-z|0;t:do switch(ee-z|0){case 0:switch(a|0){case 0:{o=(o|0)==0?0:(o|0)==1?1:7;break t}case 1:{o=(o|0)==0?2:(o|0)==1?3:7;break t}default:{H=36;break t}}case 1:switch(a|0){case 0:{o=(o|0)==0?4:(o|0)==1?5:7;break t}case 1:if(o){H=36;break t}else {o=6;break t}default:{H=36;break t}}default:H=36;}while(false);if((H|0)==36&&(H=0,o=7),o=oe(o|0,0,h|0)|0,o=o|u,a=I()|0|f,(B|0)<=1)break e;C=l,w=T,b=s;}else o=-1,s=n[R>>2]|0;while(false);e:do if((s|0)<=2&&(n[j+8>>2]|0)<=2&&(n[j+12>>2]|0)<=2){if(u=Cu(j)|0,s=oe(u|0,0,45)|0,o=s|o,s=I()|0|a&-1040385,g=ay(j)|0,!(ct(u)|0)){if((g|0)<=0)break;for(p=0;;){h=te(o|0,s|0,52)|0,I()|0,h=h&15;t:do if(h)for(f=1;;){switch(l=(15-f|0)*3|0,a=te(o|0,s|0,l|0)|0,I()|0,u=oe(7,0,l|0)|0,o=o&~u,u=s&~(I()|0),a&7){case 1:{s=5;break}case 5:{s=4;break}case 4:{s=6;break}case 6:{s=2;break}case 2:{s=3;break}case 3:{s=1;break}default:s=a&7;}if(s=oe(s|0,0,l|0)|0,o=s|o,s=I()|0|u,f>>>0<h>>>0)f=f+1|0;else break t}while(false);if(p=p+1|0,(p|0)==(g|0))break e}}h=te(o|0,s|0,52)|0,I()|0,h=h&15;t:do if(h){a=1;r:for(;;){switch(z=te(o|0,s|0,(15-a|0)*3|0)|0,I()|0,z&7){case 1:break r;case 0:break;default:break t}if(a>>>0<h>>>0)a=a+1|0;else break t}if(wu(u,n[j>>2]|0)|0)for(f=1;;){switch(a=(15-f|0)*3|0,u=oe(7,0,a|0)|0,u=o&~u,l=s&~(I()|0),s=te(o|0,s|0,a|0)|0,I()|0,s&7){case 1:{s=3;break}case 3:{s=2;break}case 2:{s=6;break}case 6:{s=4;break}case 4:{s=5;break}case 5:{s=1;break}default:s=s&7;}if(o=oe(s|0,0,a|0)|0,o=o|u,s=I()|0|l,f>>>0<h>>>0)f=f+1|0;else break t}else for(f=1;;){switch(l=(15-f|0)*3|0,a=te(o|0,s|0,l|0)|0,I()|0,u=oe(7,0,l|0)|0,o=o&~u,u=s&~(I()|0),a&7){case 1:{s=5;break}case 5:{s=4;break}case 4:{s=6;break}case 6:{s=2;break}case 2:{s=3;break}case 3:{s=1;break}default:s=a&7;}if(s=oe(s|0,0,l|0)|0,o=s|o,s=I()|0|u,f>>>0<h>>>0)f=f+1|0;else break t}}while(false);if((g|0)>0){a=0;do o=Da(o,s)|0,s=I()|0,a=a+1|0;while((a|0)!=(g|0))}}else o=0,s=0;while(false);return ee=s,z=o,Ie(ee|0),S=O,z|0}function hr(s){return s=s|0,(s|0)%2|0|0}function Oa(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(b=S,S=S+64|0,p=b+24|0,g=b+48|0,T=b,o>>>0>15)return T=4,S=b,T|0;if(f=+L[s>>3],L[it>>3]=f,(n[it+4>>2]&2146435072|0)==2146435072||(u=+L[s+8>>3],L[it>>3]=u,(n[it+4>>2]&2146435072|0)==2146435072))return T=3,S=b,T|0;l=+De(+f),C=l*+De(+u),l=l*+We(+u),u=+We(+f),L[T>>3]=C,L[T+8>>3]=l,L[T+16>>3]=u,L[it>>3]=C;do if((n[it+4>>2]&2146435072|0)!=2146435072&&(L[it>>3]=u,s=n[it+4>>2]|0,L[it>>3]=l,!((n[it+4>>2]&2146435072|0)==2146435072|true&(s&2146435072|0)==2146435072)))if(n[p>>2]=n[T>>2],n[p+4>>2]=n[T+4>>2],n[p+8>>2]=n[T+8>>2],n[p+12>>2]=n[T+12>>2],n[p+16>>2]=n[T+16>>2],n[p+20>>2]=n[T+20>>2],My(p,o,g),g=Uy(g,o)|0,T=I()|0,n[a>>2]=g,n[a+4>>2]=T,(g|0)==0&(T|0)==0)Oe(27634,27225,1073,27248);else {h=0;break}else h=2;while(false);return T=h,S=b,T|0}function Ga(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(B=a+4|0,M=te(s|0,o|0,52)|0,I()|0,M=M&15,w=te(s|0,o|0,45)|0,I()|0,u=(M|0)==0,ct(w&127)|0){if(u)return M=1,M|0;u=1;}else {if(u)return M=0,M|0;(n[B>>2]|0)==0&&(n[a+8>>2]|0)==0?u=(n[a+12>>2]|0)!=0&1:u=1;}for(w=a+8|0,C=a+12|0,b=1,a=n[B>>2]|0,h=n[w>>2]|0,f=n[C>>2]|0;l=a*3|0,p=h*3|0,T=f*3|0,b&1?(g=h+l|0,n[B>>2]=g,f=f+p|0,n[w>>2]=f,l=T+a|0,n[C>>2]=l,a=f-g|0,h=l-g|0,(g|0)<0?(n[w>>2]=a,n[C>>2]=h,n[B>>2]=0,p=0,l=h):(a=f,p=g),h=p-a|0,f=l-a|0,(a|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,p=h,l=0):(f=l,l=a),a=p-f|0,h=l-f|0,(f|0)<0?(n[B>>2]=a,n[w>>2]=h,n[C>>2]=0,f=0):(h=l,a=p),l=(h|0)<(a|0)?h:a,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,h=h-l|0,a=a-l|0,n[B>>2]=a,n[w>>2]=h,n[C>>2]=f)):(g=p+a|0,p=f+l|0,n[B>>2]=p,n[w>>2]=g,l=T+h|0,n[C>>2]=l,a=g-p|0,f=l-p|0,(p|0)<0?(n[w>>2]=a,n[C>>2]=f,n[B>>2]=0,p=0,l=f):a=g,h=p-a|0,f=l-a|0,(a|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,p=h,l=0):(f=l,l=a),a=p-f|0,h=l-f|0,(f|0)<0?(n[B>>2]=a,n[w>>2]=h,n[C>>2]=0,f=0):(h=l,a=p),l=(h|0)<(a|0)?h:a,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,h=h-l|0,a=a-l|0,n[B>>2]=a,n[w>>2]=h,n[C>>2]=f)),l=te(s|0,o|0,(15-b|0)*3|0)|0,I()|0,l=l&7,(l+-1|0)>>>0<6&&(g=n[22032+(l*12|0)+4>>2]|0,T=n[22032+(l*12|0)+8>>2]|0,p=(n[22032+(l*12|0)>>2]|0)+a|0,n[B>>2]=p,h=g+h|0,n[w>>2]=h,a=T+f|0,n[C>>2]=a,f=h-p|0,l=a-p|0,(p|0)<0&&(n[w>>2]=f,n[C>>2]=l,n[B>>2]=0,p=0,a=l,h=f),l=p-h|0,f=a-h|0,(h|0)<0?(n[B>>2]=l,n[C>>2]=f,n[w>>2]=0,p=l,h=0):f=a,a=p-f|0,l=h-f|0,(f|0)<0?(n[B>>2]=a,n[w>>2]=l,n[C>>2]=0,h=l,f=0):a=p,l=(h|0)<(a|0)?h:a,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,h=h-l|0,a=a-l|0,n[B>>2]=a,n[w>>2]=h,n[C>>2]=f)),b>>>0<M>>>0;)b=b+1|0;return u|0}function Zn(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(M=S,S=S+16|0,C=M,w=te(s|0,o|0,45)|0,I()|0,w=w&127,w>>>0>121)return n[a>>2]=0,n[a+4>>2]=0,n[a+8>>2]=0,n[a+12>>2]=0,B=5,S=M,B|0;e:do if((ct(w)|0)!=0&&(p=te(s|0,o|0,52)|0,I()|0,p=p&15,(p|0)!=0)){u=1;t:for(;;){switch(B=te(s|0,o|0,(15-u|0)*3|0)|0,I()|0,B&7){case 5:break t;case 0:break;default:{T=o;break e}}if(u>>>0<p>>>0)u=u+1|0;else {T=o;break e}}for(h=1,u=o;;){switch(o=(15-h|0)*3|0,l=oe(7,0,o|0)|0,l=s&~l,f=u&~(I()|0),u=te(s|0,u|0,o|0)|0,I()|0,u&7){case 1:{u=3;break}case 3:{u=2;break}case 2:{u=6;break}case 6:{u=4;break}case 4:{u=5;break}case 5:{u=1;break}default:u=u&7;}if(s=oe(u|0,0,o|0)|0,s=s|l,u=I()|0|f,h>>>0<p>>>0)h=h+1|0;else {T=u;break e}}}else T=o;while(false);if(B=7696+(w*28|0)|0,n[a>>2]=n[B>>2],n[a+4>>2]=n[B+4>>2],n[a+8>>2]=n[B+8>>2],n[a+12>>2]=n[B+12>>2],!(Ga(s,T,a)|0))return B=0,S=M,B|0;if(B=a+4|0,n[C>>2]=n[B>>2],n[C+4>>2]=n[B+4>>2],n[C+8>>2]=n[B+8>>2],g=te(s|0,T|0,52)|0,I()|0,b=g&15,g&1?(f=n[B>>2]|0,p=a+8|0,l=n[p>>2]|0,g=a+12|0,o=n[g>>2]|0,u=(l*3|0)+f|0,f=o+(f*3|0)|0,n[B>>2]=f,n[p>>2]=u,l=(o*3|0)+l|0,n[g>>2]=l,o=u-f|0,h=l-f|0,(f|0)<0&&(n[p>>2]=o,n[g>>2]=h,n[B>>2]=0,u=o,f=0,l=h),h=f-u|0,o=l-u|0,(u|0)<0?(n[B>>2]=h,n[g>>2]=o,n[p>>2]=0,u=0):(o=l,h=f),f=h-o|0,l=u-o|0,(o|0)<0?(n[B>>2]=f,n[p>>2]=l,n[g>>2]=0,o=0):(l=u,f=h),u=(l|0)<(f|0)?l:f,u=(o|0)<(u|0)?o:u,(u|0)>0&&(n[B>>2]=f-u,n[p>>2]=l-u,n[g>>2]=o-u),l=b+1|0):l=b,!(ct(w)|0))u=0;else {e:do if(!b)u=0;else for(o=1;;){if(u=te(s|0,T|0,(15-o|0)*3|0)|0,I()|0,u=u&7,u|0)break e;if(o>>>0<b>>>0)o=o+1|0;else {u=0;break}}while(false);u=(u|0)==4&1;}if(!(Wn(a,l,u,0)|0))(l|0)!=(b|0)&&(n[B>>2]=n[C>>2],n[B+4>>2]=n[C+4>>2],n[B+8>>2]=n[C+8>>2]);else {if(ct(w)|0)do;while((Wn(a,l,0,0)|0)!=0);(l|0)!=(b|0)&&(p=a+12|0,s=n[p>>2]|0,u=(n[B>>2]|0)-s|0,h=a+8|0,s=(n[h>>2]|0)-s|0,o=Nr(+((u<<1)+s|0)*.14285714285714285)|0,n[B>>2]=o,u=Nr(+((s*3|0)-u|0)*.14285714285714285)|0,n[h>>2]=u,n[p>>2]=0,s=u-o|0,l=0-o|0,(o|0)<0?(n[h>>2]=s,n[p>>2]=l,n[B>>2]=0,u=s,o=0):l=0,f=o-u|0,s=l-u|0,(u|0)<0?(n[B>>2]=f,n[p>>2]=s,n[h>>2]=0,o=f,u=0):s=l,f=o-s|0,l=u-s|0,(s|0)<0?(n[B>>2]=f,n[h>>2]=l,n[p>>2]=0,o=f,s=0):l=u,u=(l|0)<(o|0)?l:o,u=(s|0)<(u|0)?s:u,(u|0)>0&&(n[B>>2]=o-u,n[h>>2]=l-u,n[p>>2]=s-u));}return B=0,S=M,B|0}function $n(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0;return h=S,S=S+48|0,u=h+24|0,l=h,f=Zn(s,o,u)|0,f?(S=h,f|0):(f=te(s|0,o|0,52)|0,I()|0,Sy(u,f&15,l),g=+ZA(+ +L[l+16>>3]),p=+Qt(+ +L[l+8>>3],+ +L[l>>3]),L[a>>3]=g,L[a+8>>3]=p,f=0,S=h,f|0)}function Bn(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0;if(h=S,S=S+16|0,f=h,u=Zn(s,o,f)|0,u|0)return f=u,S=h,f|0;u=te(s|0,o|0,45)|0,I()|0,u=(ct(u&127)|0)==0,l=te(s|0,o|0,52)|0,I()|0,l=l&15;e:do if(!u){if(l|0)for(u=1;;){if(p=oe(7,0,(15-u|0)*3|0)|0,!((p&s|0)==0&((I()|0)&o|0)==0))break e;if(u>>>0<l>>>0)u=u+1|0;else break}return Ia(f,l,0,5,a),p=0,S=h,p|0}while(false);return Fa(f,l,0,6,a),p=0,S=h,p|0}function Hy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0;if(l=te(s|0,o|0,45)|0,I()|0,!(ct(l&127)|0))return l=2,n[a>>2]=l,0;if(l=te(s|0,o|0,52)|0,I()|0,l=l&15,!l)return l=5,n[a>>2]=l,0;for(u=1;;){if(f=oe(7,0,(15-u|0)*3|0)|0,!((f&s|0)==0&((I()|0)&o|0)==0)){u=2,s=6;break}if(u>>>0<l>>>0)u=u+1|0;else {u=5,s=6;break}}return (s|0)==6&&(n[a>>2]=u),0}function Ou(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;C=S,S=S+128|0,T=C+112|0,f=C+96|0,b=C,l=te(s|0,o|0,52)|0,I()|0,p=l&15,n[T>>2]=p,h=te(s|0,o|0,45)|0,I()|0,h=h&127;e:do if(ct(h)|0){if(p|0)for(u=1;;){if(g=oe(7,0,(15-u|0)*3|0)|0,!((g&s|0)==0&((I()|0)&o|0)==0)){l=0;break e}if(u>>>0<p>>>0)u=u+1|0;else break}if(l&1)l=1;else return g=oe(p+1|0,0,52)|0,b=I()|0|o&-15728641,T=oe(7,0,(14-p|0)*3|0)|0,b=Ou((g|s)&~T,b&~(I()|0),a)|0,S=C,b|0}else l=0;while(false);if(u=Zn(s,o,f)|0,!u){l?(Lu(f,T,b),g=5):(Ru(f,T,b),g=6);e:do if(ct(h)|0)if(!p)s=5;else for(u=1;;){if(h=oe(7,0,(15-u|0)*3|0)|0,!((h&s|0)==0&((I()|0)&o|0)==0)){s=2;break e}if(u>>>0<p>>>0)u=u+1|0;else {s=5;break}}else s=2;while(false);an(a|0,-1,s<<2|0)|0;e:do if(l)for(f=0;;){if(h=b+(f<<4)|0,Iy(h,n[T>>2]|0)|0,h=n[h>>2]|0,p=n[a>>2]|0,(p|0)==-1|(p|0)==(h|0))u=a;else {l=0;do{if(l=l+1|0,l>>>0>=s>>>0){u=1;break e}u=a+(l<<2)|0,p=n[u>>2]|0;}while(!((p|0)==-1|(p|0)==(h|0)))}if(n[u>>2]=h,f=f+1|0,f>>>0>=g>>>0){u=0;break}}else for(f=0;;){if(h=b+(f<<4)|0,Wn(h,n[T>>2]|0,0,1)|0,h=n[h>>2]|0,p=n[a>>2]|0,(p|0)==-1|(p|0)==(h|0))u=a;else {l=0;do{if(l=l+1|0,l>>>0>=s>>>0){u=1;break e}u=a+(l<<2)|0,p=n[u>>2]|0;}while(!((p|0)==-1|(p|0)==(h|0)))}if(n[u>>2]=h,f=f+1|0,f>>>0>=g>>>0){u=0;break}}while(false)}return b=u,S=C,b|0}function Vy(){return 12}function ka(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0;if(s>>>0>15)return p=4,p|0;if(oe(s|0,0,52)|0,p=I()|0|134225919,!s){a=0,u=0;do ct(u)|0&&(oe(u|0,0,45)|0,h=p|(I()|0),s=o+(a<<3)|0,n[s>>2]=-1,n[s+4>>2]=h,a=a+1|0),u=u+1|0;while((u|0)!=122);return a=0,a|0}a=0,h=0;do{if(ct(h)|0){for(oe(h|0,0,45)|0,u=1,l=-1,f=p|(I()|0);g=oe(7,0,(15-u|0)*3|0)|0,l=l&~g,f=f&~(I()|0),(u|0)!=(s|0);)u=u+1|0;g=o+(a<<3)|0,n[g>>2]=l,n[g+4>>2]=f,a=a+1|0;}h=h+1|0;}while((h|0)!=122);return a=0,a|0}function jy(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0;if(R=S,S=S+16|0,D=R,H=te(s|0,o|0,52)|0,I()|0,H=H&15,a>>>0>15)return H=4,S=R,H|0;if((H|0)<(a|0))return H=12,S=R,H|0;if((H|0)!=(a|0))if(f=oe(a|0,0,52)|0,f=f|s,p=I()|0|o&-15728641,(H|0)>(a|0)){g=a;do P=oe(7,0,(14-g|0)*3|0)|0,g=g+1|0,f=P|f,p=I()|0|p;while((g|0)<(H|0));P=f;}else P=f;else P=s,p=o;M=te(P|0,p|0,45)|0,I()|0;e:do if(ct(M&127)|0){if(g=te(P|0,p|0,52)|0,I()|0,g=g&15,g|0)for(f=1;;){if(M=oe(7,0,(15-f|0)*3|0)|0,!((M&P|0)==0&((I()|0)&p|0)==0)){T=33;break e}if(f>>>0<g>>>0)f=f+1|0;else break}if(M=u,n[M>>2]=0,n[M+4>>2]=0,(H|0)>(a|0)){for(M=o&-15728641,B=H;;){if(w=B,B=B+-1|0,B>>>0>15|(H|0)<(B|0)){T=19;break}if((H|0)!=(B|0))if(f=oe(B|0,0,52)|0,f=f|s,g=I()|0|M,(H|0)<(w|0))C=f;else {T=B;do C=oe(7,0,(14-T|0)*3|0)|0,T=T+1|0,f=C|f,g=I()|0|g;while((T|0)<(H|0));C=f;}else C=s,g=o;if(b=te(C|0,g|0,45)|0,I()|0,!(ct(b&127)|0))f=0;else {b=te(C|0,g|0,52)|0,I()|0,b=b&15;t:do if(!b)f=0;else for(T=1;;){if(f=te(C|0,g|0,(15-T|0)*3|0)|0,I()|0,f=f&7,f|0)break t;if(T>>>0<b>>>0)T=T+1|0;else {f=0;break}}while(false);f=(f|0)==0&1;}if(g=te(s|0,o|0,(15-w|0)*3|0)|0,I()|0,g=g&7,(g|0)==7){l=5,T=42;break}if(f=(f|0)!=0,(g|0)==1&f){l=5,T=42;break}if(C=g+(((g|0)!=0&f)<<31>>31)|0,C|0&&(T=H-w|0,T=An(7,0,T,((T|0)<0)<<31>>31)|0,b=I()|0,f?(f=ut(T|0,b|0,5,0)|0,f=ce(f|0,I()|0,-5,-1)|0,f=sn(f|0,I()|0,6,0)|0,f=ce(f|0,I()|0,1,0)|0,g=I()|0):(f=T,g=b),w=C+-1|0,w=ut(T|0,b|0,w|0,((w|0)<0)<<31>>31|0)|0,w=ce(f|0,g|0,w|0,I()|0)|0,C=I()|0,b=u,b=ce(w|0,C|0,n[b>>2]|0,n[b+4>>2]|0)|0,C=I()|0,w=u,n[w>>2]=b,n[w+4>>2]=C),(B|0)<=(a|0)){T=37;break}}if((T|0)==19)Oe(27634,27225,1407,27259);else if((T|0)==37){h=u,l=n[h+4>>2]|0,h=n[h>>2]|0;break}else if((T|0)==42)return S=R,l|0}else l=0,h=0;}else T=33;while(false);e:do if((T|0)==33)if(M=u,n[M>>2]=0,n[M+4>>2]=0,(H|0)>(a|0)){for(f=H;;){if(l=te(s|0,o|0,(15-f|0)*3|0)|0,I()|0,l=l&7,(l|0)==7){l=5;break}if(h=H-f|0,h=An(7,0,h,((h|0)<0)<<31>>31)|0,l=ut(h|0,I()|0,l|0,0)|0,h=I()|0,M=u,h=ce(n[M>>2]|0,n[M+4>>2]|0,l|0,h|0)|0,l=I()|0,M=u,n[M>>2]=h,n[M+4>>2]=l,f=f+-1|0,(f|0)<=(a|0))break e}return S=R,l|0}else l=0,h=0;while(false);return ti(P,p,H,D)|0&&Oe(27634,27225,1367,27274),H=D,D=n[H+4>>2]|0,((l|0)>-1|(l|0)==-1&h>>>0>4294967295)&((D|0)>(l|0)|((D|0)==(l|0)?(n[H>>2]|0)>>>0>h>>>0:0))?(H=0,S=R,H|0):(Oe(27634,27225,1447,27259),0)}function Qy(s,o,a,u,l,f){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0;var h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;if(C=S,S=S+16|0,h=C,l>>>0>15)return f=4,S=C,f|0;if(p=te(a|0,u|0,52)|0,I()|0,p=p&15,(p|0)>(l|0))return f=12,S=C,f|0;if(ti(a,u,l,h)|0&&Oe(27634,27225,1367,27274),b=h,T=n[b+4>>2]|0,!(((o|0)>-1|(o|0)==-1&s>>>0>4294967295)&((T|0)>(o|0)|((T|0)==(o|0)?(n[b>>2]|0)>>>0>s>>>0:0))))return f=2,S=C,f|0;b=l-p|0,l=oe(l|0,0,52)|0,g=I()|0|u&-15728641,T=f,n[T>>2]=l|a,n[T+4>>2]=g,T=te(a|0,u|0,45)|0,I()|0;e:do if(ct(T&127)|0){if(p|0)for(h=1;;){if(T=oe(7,0,(15-h|0)*3|0)|0,!((T&a|0)==0&((I()|0)&u|0)==0))break e;if(h>>>0<p>>>0)h=h+1|0;else break}if((b|0)<1)return f=0,S=C,f|0;for(T=p^15,u=-1,g=1,h=1;;){p=b-g|0,p=An(7,0,p,((p|0)<0)<<31>>31)|0,a=I()|0;do if(h)if(h=ut(p|0,a|0,5,0)|0,h=ce(h|0,I()|0,-5,-1)|0,h=sn(h|0,I()|0,6,0)|0,l=I()|0,(o|0)>(l|0)|(o|0)==(l|0)&s>>>0>h>>>0){o=ce(s|0,o|0,-1,-1)|0,o=Bt(o|0,I()|0,h|0,l|0)|0,h=I()|0,w=f,M=n[w>>2]|0,w=n[w+4>>2]|0,P=(T+u|0)*3|0,B=oe(7,0,P|0)|0,w=w&~(I()|0),u=sn(o|0,h|0,p|0,a|0)|0,s=I()|0,l=ce(u|0,s|0,2,0)|0,P=oe(l|0,I()|0,P|0)|0,w=I()|0|w,l=f,n[l>>2]=P|M&~B,n[l+4>>2]=w,s=ut(u|0,s|0,p|0,a|0)|0,s=Bt(o|0,h|0,s|0,I()|0)|0,h=0,o=I()|0;break}else {P=f,B=n[P>>2]|0,P=n[P+4>>2]|0,M=oe(7,0,(T+u|0)*3|0)|0,P=P&~(I()|0),h=f,n[h>>2]=B&~M,n[h+4>>2]=P,h=1;break}else B=f,l=n[B>>2]|0,B=n[B+4>>2]|0,u=(T+u|0)*3|0,w=oe(7,0,u|0)|0,B=B&~(I()|0),P=sn(s|0,o|0,p|0,a|0)|0,h=I()|0,u=oe(P|0,h|0,u|0)|0,B=I()|0|B,M=f,n[M>>2]=u|l&~w,n[M+4>>2]=B,h=ut(P|0,h|0,p|0,a|0)|0,s=Bt(s|0,o|0,h|0,I()|0)|0,h=0,o=I()|0;while(false);if((b|0)>(g|0))u=~g,g=g+1|0;else {o=0;break}}return S=C,o|0}while(false);if((b|0)<1)return P=0,S=C,P|0;for(l=p^15,h=1;;)if(M=b-h|0,M=An(7,0,M,((M|0)<0)<<31>>31)|0,P=I()|0,g=f,a=n[g>>2]|0,g=n[g+4>>2]|0,p=(l-h|0)*3|0,u=oe(7,0,p|0)|0,g=g&~(I()|0),w=sn(s|0,o|0,M|0,P|0)|0,B=I()|0,p=oe(w|0,B|0,p|0)|0,g=I()|0|g,T=f,n[T>>2]=p|a&~u,n[T+4>>2]=g,P=ut(w|0,B|0,M|0,P|0)|0,s=Bt(s|0,o|0,P|0,I()|0)|0,o=I()|0,(b|0)<=(h|0)){o=0;break}else h=h+1|0;return S=C,o|0}function Ua(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0;l=te(o|0,a|0,52)|0,I()|0,l=l&15,(o|0)==0&(a|0)==0|((u|0)>15|(l|0)>(u|0))?(f=-1,o=-1,a=0,l=0):(o=Du(o,a,l+1|0,u)|0,h=(I()|0)&-15728641,a=oe(u|0,0,52)|0,a=o|a,h=h|(I()|0),o=(et(a,h)|0)==0,f=l,o=o?-1:u,l=h),h=s,n[h>>2]=a,n[h+4>>2]=l,n[s+8>>2]=f,n[s+12>>2]=o;}function Gu(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0;if(l=te(s|0,o|0,52)|0,I()|0,l=l&15,f=u+8|0,n[f>>2]=l,(s|0)==0&(o|0)==0|((a|0)>15|(l|0)>(a|0))){a=u,n[a>>2]=0,n[a+4>>2]=0,n[f>>2]=-1,n[u+12>>2]=-1;return}if(s=Du(s,o,l+1|0,a)|0,f=(I()|0)&-15728641,l=oe(a|0,0,52)|0,l=s|l,f=f|(I()|0),s=u,n[s>>2]=l,n[s+4>>2]=f,s=u+12|0,et(l,f)|0){n[s>>2]=a;return}else {n[s>>2]=-1;return}}function Ha(s){s=s|0;var o=0,a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0;if(a=s,o=n[a>>2]|0,a=n[a+4>>2]|0,!((o|0)==0&(a|0)==0)&&(u=te(o|0,a|0,52)|0,I()|0,u=u&15,p=oe(1,0,(u^15)*3|0)|0,o=ce(p|0,I()|0,o|0,a|0)|0,a=I()|0,p=s,n[p>>2]=o,n[p+4>>2]=a,p=s+8|0,h=n[p>>2]|0,!((u|0)<(h|0)))){for(g=s+12|0,f=u;;){if((f|0)==(h|0)){u=5;break}if(T=(f|0)==(n[g>>2]|0),l=(15-f|0)*3|0,u=te(o|0,a|0,l|0)|0,I()|0,u=u&7,T&((u|0)==1&true)){u=7;break}if(!((u|0)==7&true)){u=10;break}if(T=oe(1,0,l|0)|0,o=ce(o|0,a|0,T|0,I()|0)|0,a=I()|0,T=s,n[T>>2]=o,n[T+4>>2]=a,(f|0)>(h|0))f=f+-1|0;else {u=10;break}}if((u|0)==5){T=s,n[T>>2]=0,n[T+4>>2]=0,n[p>>2]=-1,n[g>>2]=-1;return}else if((u|0)==7){h=oe(1,0,l|0)|0,h=ce(o|0,a|0,h|0,I()|0)|0,p=I()|0,T=s,n[T>>2]=h,n[T+4>>2]=p,n[g>>2]=f+-1;return}else if((u|0)==10)return}}function ri(s){s=+s;var o=0;return o=s<0?s+6.283185307179586:s,+(s>=6.283185307179586?o+-6.283185307179586:o)}function sr(s,o){switch(s=+s,o=o|0,o|0){case 1:{s=s<0?s+6.283185307179586:s;break}case 2:{s=s>0?s+-6.283185307179586:s;break}}return +s}function zy(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0;return l=+L[o>>3],u=+L[s>>3],f=+We(+((l-u)*.5)),a=+We(+((+L[o+8>>3]-+L[s+8>>3])*.5)),a=f*f+a*(+De(+l)*+De(+u)*a),+(+Qt(+ +pt(+a),+ +pt(+(1-a)))*2)}function ni(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0;return l=+L[o>>3],u=+L[s>>3],f=+We(+((l-u)*.5)),a=+We(+((+L[o+8>>3]-+L[s+8>>3])*.5)),a=f*f+a*(+De(+l)*+De(+u)*a),+(+Qt(+ +pt(+a),+ +pt(+(1-a)))*2*6371.007180918475)}function Jy(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0;return l=+L[o>>3],u=+L[s>>3],f=+We(+((l-u)*.5)),a=+We(+((+L[o+8>>3]-+L[s+8>>3])*.5)),a=f*f+a*(+De(+l)*+De(+u)*a),+(+Qt(+ +pt(+a),+ +pt(+(1-a)))*2*6371.007180918475*1e3)}function ku(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[20624+(s<<3)>>3],o=0,o|0)}function qy(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[20752+(s<<3)>>3],o=0,o|0)}function Ky(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[20880+(s<<3)>>3],o=0,o|0)}function Xy(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[21008+(s<<3)>>3],o=0,o|0)}function ts(s,o){s=s|0,o=o|0;var a=0;return s>>>0>15?(o=4,o|0):(a=An(7,0,s,((s|0)<0)<<31>>31)|0,a=ut(a|0,I()|0,120,0)|0,s=I()|0,n[o>>2]=a|2,n[o+4>>2]=s,o=0,o|0)}function Yy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(p=S,S=S+176|0,h=p,s=$A(s,o,h)|0,s|0)return h=s,S=p,h|0;if(L[a>>3]=0,s=n[h>>2]|0,(s|0)<=1)return h=0,S=p,h|0;o=s+-1|0,s=0,u=+L[h+8>>3],l=+L[h+16>>3],f=0;do s=s+1|0,T=u,u=+L[h+8+(s<<4)>>3],b=+We(+((u-T)*.5)),g=l,l=+L[h+8+(s<<4)+8>>3],g=+We(+((l-g)*.5)),g=b*b+g*(+De(+u)*+De(+T)*g),f=f+ +Qt(+ +pt(+g),+ +pt(+(1-g)))*2;while((s|0)<(o|0));return L[a>>3]=f,h=0,S=p,h|0}function Wy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(p=S,S=S+176|0,h=p,s=$A(s,o,h)|0,s|0)return h=s,f=+L[a>>3],f=f*6371.007180918475,L[a>>3]=f,S=p,h|0;if(L[a>>3]=0,s=n[h>>2]|0,(s|0)<=1)return h=0,f=0,f=f*6371.007180918475,L[a>>3]=f,S=p,h|0;o=s+-1|0,s=0,u=+L[h+8>>3],l=+L[h+16>>3],f=0;do s=s+1|0,T=u,u=+L[h+8+(s<<4)>>3],b=+We(+((u-T)*.5)),g=l,l=+L[h+8+(s<<4)+8>>3],g=+We(+((l-g)*.5)),g=b*b+g*(+De(+T)*+De(+u)*g),f=f+ +Qt(+ +pt(+g),+ +pt(+(1-g)))*2;while((s|0)!=(o|0));return L[a>>3]=f,h=0,b=f,b=b*6371.007180918475,L[a>>3]=b,S=p,h|0}function Zy(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(p=S,S=S+176|0,h=p,s=$A(s,o,h)|0,s|0)return h=s,f=+L[a>>3],f=f*6371.007180918475,f=f*1e3,L[a>>3]=f,S=p,h|0;if(L[a>>3]=0,s=n[h>>2]|0,(s|0)<=1)return h=0,f=0,f=f*6371.007180918475,f=f*1e3,L[a>>3]=f,S=p,h|0;o=s+-1|0,s=0,u=+L[h+8>>3],l=+L[h+16>>3],f=0;do s=s+1|0,T=u,u=+L[h+8+(s<<4)>>3],b=+We(+((u-T)*.5)),g=l,l=+L[h+8+(s<<4)+8>>3],g=+We(+((l-g)*.5)),g=b*b+g*(+De(+T)*+De(+u)*g),f=f+ +Qt(+ +pt(+g),+ +pt(+(1-g)))*2;while((s|0)!=(o|0));return L[a>>3]=f,h=0,b=f,b=b*6371.007180918475,b=b*1e3,L[a>>3]=b,S=p,h|0}function $y(s){s=s|0;var o=0,a=0,u=0,l=0,f=0,h=0,p=0;if(s)for(f=s+4|0,h=s+8|0,u=1,l=s;;){if(o=n[l>>2]|0,o|0)do{if(a=n[o>>2]|0,a|0)do p=a,a=n[a+16>>2]|0,fe(p);while((a|0)!=0);p=o,o=n[o+8>>2]|0,fe(p);}while((o|0)!=0);if(o=l,l=n[l+8>>2]|0,u?(n[s>>2]=0,n[f>>2]=0,n[h>>2]=0):fe(o),l)u=0;else break}}function eT(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0;if(n[o>>2]=0,D=o+4|0,n[D>>2]=0,H=o+8|0,n[H>>2]=0,P=n[s>>2]|0,(P|0)<=0)return o=0,o|0;M=s+4|0,s=o,B=0;e:for(;;){if(B){if(a=zt(1,12)|0,!a){a=5;break}n[s+8>>2]=a,s=a;}if(g=n[M>>2]|0,T=zt(1,12)|0,!T){s=13,a=37;break}if(w=s+4|0,u=n[w>>2]|0,n[((u|0)==0?s:u+8|0)>>2]=T,n[w>>2]=T,u=n[g+(B<<4)>>2]|0,(u|0)<3){s=1,a=37;break}l=g+(B<<4)+4|0,f=T+4|0,a=0,h=0;do{if(p=h,h=lt(24)|0,!h){s=13,a=37;break e}Xa(h|0,(n[l>>2]|0)+(a<<4)|0,16)|0,n[h+16>>2]=0,p?n[p+16>>2]=h:n[T>>2]=h,n[f>>2]=h,a=a+1|0;}while((a|0)<(u|0));if(C=n[g+(B<<4)+8>>2]|0,(C|0)>0){b=g+(B<<4)+12|0,g=0;do{if(u=n[b>>2]|0,a=T,T=zt(1,12)|0,!T){s=13,a=37;break e}if(n[a+8>>2]=T,n[w>>2]=T,p=n[u+(g<<3)>>2]|0,(p|0)<3){s=1,a=37;break e}u=u+(g<<3)+4|0,l=T+4|0,a=0,f=0;do{if(h=f,f=lt(24)|0,!f){s=13,a=37;break e}Xa(f|0,(n[u>>2]|0)+(a<<4)|0,16)|0,n[f+16>>2]=0,h?n[h+16>>2]=f:n[T>>2]=f,n[l>>2]=f,a=a+1|0;}while((a|0)<(p|0));g=g+1|0;}while((g|0)<(C|0))}if(B=B+1|0,(B|0)>=(P|0)){s=0,a=50;break}}if((a|0)==5){if(!o)return o=13,o|0;for(u=1,l=o;;){if(s=n[l>>2]|0,s|0)do{if(a=n[s>>2]|0,a|0)do P=a,a=n[a+16>>2]|0,fe(P);while((a|0)!=0);P=s,s=n[s+8>>2]|0,fe(P);}while((s|0)!=0);if(s=l,l=n[l+8>>2]|0,u?(n[o>>2]=0,n[D>>2]=0,n[H>>2]=0):fe(s),l)u=0;else {s=13;break}}return s|0}else if((a|0)==37){if(!o)return o=s,o|0;for(l=1,f=o;;){if(a=n[f>>2]|0,a|0)do{if(u=n[a>>2]|0,u|0)do P=u,u=n[u+16>>2]|0,fe(P);while((u|0)!=0);P=a,a=n[a+8>>2]|0,fe(P);}while((a|0)!=0);if(a=f,f=n[f+8>>2]|0,l?(n[o>>2]=0,n[D>>2]=0,n[H>>2]=0):fe(a),f)l=0;else break}return s|0}else if((a|0)==50)return s|0;return 0}function Ai(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0;if(H=S,S=S+16|0,D=H,b=te(s|0,o|0,52)|0,I()|0,b=b&15,B=te(a|0,u|0,52)|0,I()|0,(b|0)!=(B&15|0))return D=12,S=H,D|0;if(g=te(s|0,o|0,45)|0,I()|0,g=g&127,T=te(a|0,u|0,45)|0,I()|0,T=T&127,g>>>0>121|T>>>0>121)return D=5,S=H,D|0;if(B=(g|0)!=(T|0),B){if(h=va(g,T)|0,(h|0)==7)return D=1,S=H,D|0;p=va(T,g)|0,(p|0)==7?Oe(27291,27315,164,27325):(P=h,f=p);}else P=0,f=0;C=ct(g)|0,w=ct(T)|0,n[D>>2]=0,n[D+4>>2]=0,n[D+8>>2]=0,n[D+12>>2]=0;do if(P){T=n[4272+(g*28|0)+(P<<2)>>2]|0,h=(T|0)>0;e:do if(w)if(h)for(g=0,p=a,h=u;;){switch(p=ky(p,h)|0,h=I()|0,f|0){case 5:case 1:{f=3;break}case 3:{f=2;break}case 2:{f=6;break}case 6:{f=4;break}case 4:{f=5;break}}if(g=g+1|0,(g|0)==(T|0)){T=f,g=p,p=h;break e}}else T=f,g=a,p=u;else if(h)for(g=0,p=a,h=u;;){switch(p=Na(p,h)|0,h=I()|0,f|0){case 1:{f=3;break}case 3:{f=2;break}case 2:{f=6;break}case 6:{f=4;break}case 4:{f=5;break}case 5:{f=1;break}}if(g=g+1|0,(g|0)==(T|0)){T=f,g=p,p=h;break e}}else T=f,g=a,p=u;while(false);if(Ga(g,p,D)|0,B||Oe(27340,27315,194,27325),h=(C|0)!=0,f=(w|0)!=0,h&f&&Oe(27367,27315,195,27325),h){if(f=$t(s,o)|0,(f|0)==7){f=5;break}if(Z[21968+(f*7|0)+P>>0]|0){f=1;break}w=n[21136+(f*28|0)+(P<<2)>>2]|0,B=w;}else if(f){if(f=$t(g,p)|0,(f|0)==7){f=5;break}if(Z[21968+(f*7|0)+T>>0]|0){f=1;break}B=0,w=n[21136+(T*28|0)+(f<<2)>>2]|0;}else B=0,w=0;if((B|w|0)>=0){if((w|0)>0){a=D+4|0,u=D+8|0,C=D+12|0,T=0,p=n[a>>2]|0,h=n[u>>2]|0,f=n[C>>2]|0;do M=h+p|0,o=(M|0)<0,R=o?M:0,h=f+h-R|0,s=(h|0)<0,g=s?h:0,p=f+p-R-g|0,R=(p|0)<0,f=R?0:p,p=R?p:0,h=(s?0:h)-p|0,p=(o?0:M)-g-p|0,g=(h|0)<(p|0)?h:p,g=(f|0)<(g|0)?f:g,(g|0)>0&&(p=p-g|0,h=h-g|0,f=f-g|0),T=T+1|0;while((T|0)!=(w|0));n[a>>2]=p,n[u>>2]=h,n[C>>2]=f;}if((P+-1|0)>>>0<6?(f=n[22032+(P*12|0)>>2]|0,p=n[22032+(P*12|0)+4>>2]|0,R=n[22032+(P*12|0)+8>>2]|0,h=(p|0)<(f|0)?p:f,h=(R|0)<(h|0)?R:h,h=(h|0)>0?h:0,f=f-h|0,p=p-h|0,h=R-h|0):(f=0,p=0,h=0),b)for(;;)if(g=f*3|0,T=p*3|0,a=h*3|0,hr(b)|0?(o=g+p|0,s=(o|0)<0,R=T+h-(s?o:0)|0,M=(R|0)<0,p=f+a-(s?o:0)-(M?R:0)|0,h=(p|0)<0,P=h?0:p,g=(M?0:R)-(h?p:0)|0,p=(s?0:o)-(M?R:0)-(h?p:0)|0,h=(g|0)<(p|0)?g:p,h=(P|0)<(h|0)?P:h,R=(h|0)>0,f=R?h:0,g=g-(R?h:0)|0,h=P-(R?h:0)|0):(M=g+h|0,o=(M|0)<0,R=T+f-(o?M:0)|0,f=(R|0)<0,p=a+p-(o?M:0)-(f?R:0)|0,h=(p|0)<0,P=h?0:p,g=(f?0:R)-(h?p:0)|0,p=(o?0:M)-(f?R:0)-(h?p:0)|0,h=(g|0)<(p|0)?g:p,h=(P|0)<(h|0)?P:h,R=(h|0)>0,f=R?h:0,g=g-(R?h:0)|0,h=P-(R?h:0)|0),f=p-f|0,(b|0)>1)b=b+-1|0,p=g;else {p=g;break}if((B|0)>0){g=0;do o=f+p|0,s=(o|0)<0,R=p+h-(s?o:0)|0,M=(R|0)<0,P=f+h-(s?o:0)-(M?R:0)|0,f=(P|0)<0,h=f?0:P,p=(M?0:R)-(f?P:0)|0,P=(s?0:o)-(M?R:0)-(f?P:0)|0,f=(p|0)<(P|0)?p:P,f=(h|0)<(f|0)?h:f,R=(f|0)>0,h=h-(R?f:0)|0,p=p-(R?f:0)|0,f=P-(R?f:0)|0,g=g+1|0;while((g|0)!=(B|0))}a=D+4|0,b=D+8|0,P=n[b>>2]|0,u=D+12|0,R=n[u>>2]|0,g=(n[a>>2]|0)+f|0,n[a>>2]=g,p=P+p|0,n[b>>2]=p,f=R+h|0,n[u>>2]=f,h=p-g|0,(g|0)<0?(f=f-g|0,n[b>>2]=h,n[u>>2]=f,n[a>>2]=0,p=0):(h=p,p=g),(h|0)<0&&(p=p-h|0,n[a>>2]=p,f=f-h|0,n[u>>2]=f,n[b>>2]=0,h=0),T=p-f|0,g=h-f|0,(f|0)<0?(n[a>>2]=T,n[b>>2]=g,n[u>>2]=0,p=T,f=0):g=h,h=(g|0)<(p|0)?g:p,h=(f|0)<(h|0)?f:h,(h|0)>0&&(n[a>>2]=p-h,n[b>>2]=g-h,n[u>>2]=f-h),M=77;}else f=5;}else if(Ga(a,u,D)|0,(C|0)!=0&(w|0)!=0)if((T|0)!=(g|0)&&Oe(27398,27315,264,27325),h=$t(s,o)|0,f=$t(a,u)|0,(h|0)==7|(f|0)==7)f=5;else if(Z[21968+(h*7|0)+f>>0]|0)f=1;else if(a=n[21136+(h*28|0)+(f<<2)>>2]|0,(a|0)>0){b=D+4|0,u=D+8|0,C=D+12|0,T=0,p=n[b>>2]|0,h=n[u>>2]|0,f=n[C>>2]|0;do P=h+p|0,M=(P|0)<0,s=M?P:0,h=f+h-s|0,o=(h|0)<0,g=o?h:0,p=f+p-s-g|0,s=(p|0)<0,f=s?0:p,p=s?p:0,h=(o?0:h)-p|0,p=(M?0:P)-g-p|0,g=(h|0)<(p|0)?h:p,g=(f|0)<(g|0)?f:g,(g|0)>0&&(p=p-g|0,h=h-g|0,f=f-g|0),T=T+1|0;while((T|0)!=(a|0));n[b>>2]=p,n[u>>2]=h,n[C>>2]=f,M=77;}else M=77;else M=77;while(false);return (M|0)==77&&(f=D+4|0,n[l>>2]=n[f>>2],n[l+4>>2]=n[f+4>>2],n[l+8>>2]=n[f+8>>2],f=0),R=f,S=H,R|0}function Uu(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0;if(f=te(s|0,o|0,52)|0,I()|0,f=f&15,O=te(s|0,o|0,45)|0,I()|0,O=O&127,O>>>0>121)return u=5,u|0;if(D=ct(O)|0,oe(f|0,0,52)|0,p=I()|0|134225919,h=u,n[h>>2]=-1,n[h+4>>2]=p,h=n[a>>2]|0,p=n[a+4>>2]|0,a=n[a+8>>2]|0,!f){o=(h|0)<0,H=o?h:0,j=p-H|0,D=(j|0)<0,H=(D?0-j|0:0)+(a-H)|0,a=(H|0)<0,l=a?0:H,H=a?H:0,a=(D?0:j)-H|0,H=(o?0:h)-(D?j:0)-H|0,j=(a|0)<(H|0)?a:H,j=(l|0)<(j|0)?l:j,j=(j|0)>0?j:0,l=l-j|0,a=a-j|0;e:do switch(H-j|0){case 0:switch(a|0){case 0:if(l){l=(l|0)==1?1:7,R=11;break e}else {l=0;break e}case 1:if(l){l=(l|0)==1?3:7,R=11;break e}else {l=2;break e}default:return u=1,u|0}case 1:switch(a|0){case 0:if(l){l=(l|0)==1?5:7,R=11;break e}else {l=4;break e}case 1:{if(l)l=1;else {l=6;break e}return l|0}default:return u=1,u|0}default:return u=1,u|0}while(false);return (R|0)==11&&(l|0)==7||(l=Ba(O,l)|0,(l|0)==127)?(u=1,u|0):(j=oe(l|0,0,45)|0,O=I()|0,R=u,O=n[R+4>>2]&-1040385|O,n[u>>2]=n[R>>2]|j,n[u+4>>2]=O,u=0,u|0)}for(;;){if(P=f,f=f+-1|0,M=h-a|0,B=p-a|0,g=M>>>0>715827881|B>>>0>715827881,hr(P)|0){if(g){if(b=(M|0)>0,C=2147483647-M|0,w=-2147483648-M|0,b?(C|0)<(M|0):(w|0)>(M|0)){l=1,R=107;break}if(V=M<<1,b?(2147483647-V|0)<(M|0):(-2147483648-V|0)>(M|0)){l=1,R=107;break}if((B|0)>0?(2147483647-B|0)<(B|0):(-2147483648-B|0)>(B|0)){l=1,R=107;break}if(g=M*3|0,T=B<<1,(b?(C|0)<(T|0):(w|0)>(T|0))||((M|0)>-1?(g|-2147483648|0)>=(B|0):(g^-2147483648|0)<(B|0))){l=1,R=107;break}}else g=M*3|0,T=B<<1;if(C=Nr(+(g-B|0)*.14285714285714285)|0,b=Nr(+(T+M|0)*.14285714285714285)|0,T=(b|0)<(C|0),g=T?C:b,T=T?b:C,(T|0)<0){if((T|0)==-2147483648||((g|0)>0?(2147483647-g|0)<(T|0):(-2147483648-g|0)>(T|0))){R=24;break}if((g|0)>-1?(g|-2147483648|0)>=(T|0):(g^-2147483648|0)<(T|0)){R=24;break}}w=(C|0)<0,B=b-(w?C:0)|0,ee=(B|0)<0,K=(w?0-C|0:0)-(ee?B:0)|0,M=(K|0)<0,w=(w?0:C)-(ee?B:0)-(M?K:0)|0,B=(ee?0:B)-(M?K:0)|0,K=M?0:K,M=(B|0)<(w|0)?B:w,M=(K|0)<(M|0)?K:M,ee=(M|0)>0,w=w-(ee?M:0)|0,B=B-(ee?M:0)|0,M=K-(ee?M:0)|0,ee=(w*3|0)+B|0,K=(ee|0)<0,V=(B*3|0)+M-(K?ee:0)|0,g=(V|0)<0,C=(M*3|0)+w-(K?ee:0)-(g?V:0)|0,b=(C|0)<0,z=b?0:C,T=(g?0:V)-(b?C:0)|0,C=(K?0:ee)-(g?V:0)-(b?C:0)|0,b=(T|0)<(C|0)?T:C,b=(z|0)<(b|0)?z:b,V=(b|0)>0,g=V?b:0,T=T-(V?b:0)|0,b=z-(V?b:0)|0;}else {if(g){if(T=(M|0)>0,T?(2147483647-M|0)<(M|0):(-2147483648-M|0)>(M|0)){l=1,R=107;break}if(g=M<<1,b=(B|0)>0,b?(2147483647-B|0)<(B|0):(-2147483648-B|0)>(B|0)){l=1,R=107;break}if(w=B<<1,b?(2147483647-w|0)<(B|0):(-2147483648-w|0)>(B|0)){l=1,R=107;break}if(T?(2147483647-g|0)<(B|0):(-2147483648-g|0)>(B|0)){l=1,R=107;break}if(T=B*3|0,(B|0)>-1?(T|-2147483648|0)>=(M|0):(T^-2147483648|0)<(M|0)){l=1,R=107;break}}else g=M<<1,T=B*3|0;if(C=Nr(+(g+B|0)*.14285714285714285)|0,b=Nr(+(T-M|0)*.14285714285714285)|0,T=(b|0)<(C|0),g=T?C:b,T=T?b:C,(T|0)<0){if((T|0)==-2147483648||((g|0)>0?(2147483647-g|0)<(T|0):(-2147483648-g|0)>(T|0))){R=36;break}if((g|0)>-1?(g|-2147483648|0)>=(T|0):(g^-2147483648|0)<(T|0)){R=36;break}}w=(C|0)<0,B=b-(w?C:0)|0,z=(B|0)<0,V=(w?0-C|0:0)-(z?B:0)|0,M=(V|0)<0,w=(w?0:C)-(z?B:0)-(M?V:0)|0,B=(z?0:B)-(M?V:0)|0,V=M?0:V,M=(B|0)<(w|0)?B:w,M=(V|0)<(M|0)?V:M,z=(M|0)>0,w=w-(z?M:0)|0,B=B-(z?M:0)|0,M=V-(z?M:0)|0,z=(w*3|0)+M|0,V=(z|0)<0,K=(B*3|0)+w-(V?z:0)|0,g=(K|0)<0,C=(M*3|0)+B-(V?z:0)-(g?K:0)|0,b=(C|0)<0,ee=b?0:C,T=(g?0:K)-(b?C:0)|0,C=(V?0:z)-(g?K:0)-(b?C:0)|0,b=(T|0)<(C|0)?T:C,b=(ee|0)<(b|0)?ee:b,K=(b|0)>0,g=K?b:0,T=T-(K?b:0)|0,b=ee-(K?b:0)|0;}g=h+(g-C)|0,z=(g|0)<0,T=p-T-(z?g:0)|0,C=(T|0)<0,K=a-b+(z?0-g|0:0)+(C?0-T|0:0)|0,h=(K|0)<0,b=h?0:K,V=(C?0:T)-(h?K:0)|0,K=(z?0:g)-(C?T:0)-(h?K:0)|0,h=(V|0)<(K|0)?V:K,h=(b|0)<(h|0)?b:h,a=(h|0)>0,K=K-(a?h:0)|0,T=u,C=n[T>>2]|0,T=n[T+4>>2]|0,p=(15-P|0)*3|0,g=oe(7,0,p|0)|0,g=C&~g,T=T&~(I()|0),C=(K|0)<0,z=C?K:0,V=V-(a?h:0)-z|0,ee=(V|0)<0,z=(ee?0-V|0:0)+(b-(a?h:0)-z)|0,h=(z|0)<0,a=h?0:z,z=h?z:0,h=(ee?0:V)-z|0,z=(C?0:K)-(ee?V:0)-z|0,V=(h|0)<(z|0)?h:z,V=(a|0)<(V|0)?a:V,V=(V|0)>0?V:0,a=a-V|0,h=h-V|0;e:do switch(z-V|0){case 0:switch(h|0){case 0:{a=(a|0)==0?0:(a|0)==1?1:7;break e}case 1:{a=(a|0)==0?2:(a|0)==1?3:7;break e}default:{R=45;break e}}case 1:switch(h|0){case 0:{a=(a|0)==0?4:(a|0)==1?5:7;break e}case 1:if(a){R=45;break e}else {a=6;break e}default:{R=45;break e}}default:R=45;}while(false);if((R|0)==45&&(R=0,a=7),ee=oe(a|0,0,p|0)|0,z=I()|0|T,V=u,n[V>>2]=ee|g,n[V+4>>2]=z,(P|0)<=1){R=47;break}else h=w,p=B,a=M;}if((R|0)==24)Oe(27634,27425,416,27447);else if((R|0)==36)Oe(27634,27425,464,27461);else if((R|0)==47){if((w|0)>1|(B|0)>1|(M|0)>1)return V=1,V|0;K=(w|0)<0,z=K?w:0,V=B-z|0,ee=(V|0)<0,z=(ee?0-V|0:0)+(M-z)|0,f=(z|0)<0,a=f?0:z,z=f?z:0,f=(ee?0:V)-z|0,z=(K?0:w)-(ee?V:0)-z|0,V=(f|0)<(z|0)?f:z,V=(a|0)<(V|0)?a:V,V=(V|0)>0?V:0,a=a-V|0,f=f-V|0;e:do switch(z-V|0){case 0:switch(f|0){case 0:{f=(a|0)==0?0:(a|0)==1?1:7;break e}case 1:{f=(a|0)==0?2:(a|0)==1?3:7;break e}default:{R=55;break e}}case 1:switch(f|0){case 0:{f=(a|0)==0?4:(a|0)==1?5:7;break e}case 1:if(a){R=55;break e}else {f=6;break e}default:{R=55;break e}}default:R=55;}while(false);(R|0)==55&&(f=7),p=Ba(O,f)|0,(p|0)==127?T=0:T=ct(p)|0;e:do if(f){if(D){if(a=$t(s,o)|0,(a|0)==7)return V=5,V|0;h=n[21344+(a*28|0)+(f<<2)>>2]|0;t:do if((h|0)>0)for(a=f,f=0;;){switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}}if(f=f+1|0,(f|0)==(h|0))break t}else a=f;while(false);if((a|0)==1)return V=9,V|0;f=Ba(O,a)|0,(f|0)==127&&Oe(27476,27315,415,27506),ct(f)|0?Oe(27521,27315,416,27506):(l=f,j=h,H=a);}else l=p,j=0,H=f;if(g=n[4272+(O*28|0)+(H<<2)>>2]|0,(g|0)<=-1&&Oe(27552,27315,423,27506),!T){if((j|0)<0)return V=5,V|0;if(j|0){h=u,a=0,f=n[h>>2]|0,h=n[h+4>>2]|0;do f=wn(f,h)|0,h=I()|0,V=u,n[V>>2]=f,n[V+4>>2]=h,a=a+1|0;while((a|0)<(j|0))}if((g|0)<=0){R=104;break}for(h=u,a=0,f=n[h>>2]|0,h=n[h+4>>2]|0;;)if(f=wn(f,h)|0,h=I()|0,V=u,n[V>>2]=f,n[V+4>>2]=h,a=a+1|0,(a|0)==(g|0)){R=104;break e}}if(p=va(l,O)|0,(p|0)==7&&Oe(27291,27315,432,27506),a=u,f=n[a>>2]|0,a=n[a+4>>2]|0,(g|0)>0){h=0;do f=wn(f,a)|0,a=I()|0,V=u,n[V>>2]=f,n[V+4>>2]=a,h=h+1|0;while((h|0)!=(g|0))}if(a=$t(f,a)|0,(a|0)==7&&Oe(27634,27315,444,27506),f=wa(l)|0,f=n[(f?21760:21552)+(p*28|0)+(a<<2)>>2]|0,(f|0)<0&&Oe(27634,27315,458,27506),!f)R=104;else {p=u,a=0,h=n[p>>2]|0,p=n[p+4>>2]|0;do h=Da(h,p)|0,p=I()|0,V=u,n[V>>2]=h,n[V+4>>2]=p,a=a+1|0;while((a|0)<(f|0));R=104;}}else if((D|0)!=0&(T|0)!=0){if(l=$t(s,o)|0,a=u,a=$t(n[a>>2]|0,n[a+4>>2]|0)|0,(l|0)==7|(a|0)==7||(a=n[21344+(l*28|0)+(a<<2)>>2]|0,(a|0)<0))return V=5,V|0;if(!a)l=p,R=105;else {h=u,l=0,f=n[h>>2]|0,h=n[h+4>>2]|0;do f=wn(f,h)|0,h=I()|0,V=u,n[V>>2]=f,n[V+4>>2]=h,l=l+1|0;while((l|0)<(a|0));l=p,R=104;}}else l=p,R=104;while(false);return (R|0)==104&&T&&(R=105),(R|0)==105&&(V=u,($t(n[V>>2]|0,n[V+4>>2]|0)|0)==1)?(V=9,V|0):(z=u,K=n[z>>2]|0,z=n[z+4>>2]&-1040385,ee=oe(l|0,0,45)|0,z=z|(I()|0),V=u,n[V>>2]=K|ee,n[V+4>>2]=z,V=0,V|0)}else if((R|0)==107)return l|0;return 0}function tT(s,o,a,u,l,f){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0;var h=0,p=0;return p=S,S=S+16|0,h=p,l|0?(h=15,S=p,h|0):(s=Ai(s,o,a,u,h)|0,s||(l=n[h+4>>2]|0,s=n[h+8>>2]|0,n[f>>2]=(n[h>>2]|0)-s,n[f+4>>2]=l-s,s=0),h=s,S=p,h|0)}function rT(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0;return C=S,S=S+16|0,b=C,u|0?(b=15,S=C,b|0):(p=n[a>>2]|0,h=n[a+4>>2]|0,n[b>>2]=p,g=b+4|0,n[g>>2]=h,T=b+8|0,n[T>>2]=0,a=(h|0)<(p|0),u=a?p:h,a=a?h:p,(a|0)<0?!((a|0)==-2147483648||((u|0)>0?(2147483647-u|0)<(a|0):(-2147483648-u|0)>(a|0)))&&!((u|0)>-1?(u|-2147483648|0)>=(a|0):(u^-2147483648|0)<(a|0))?f=5:u=1:f=5,(f|0)==5&&(u=h-p|0,f=0-p|0,(p|0)<0?(n[g>>2]=u,n[T>>2]=f,n[b>>2]=0,p=0):(u=h,f=0),h=p-u|0,a=f-u|0,(u|0)<0?(n[b>>2]=h,n[T>>2]=a,n[g>>2]=0,p=h,u=0):a=f,h=p-a|0,f=u-a|0,(a|0)<0?(n[b>>2]=h,n[g>>2]=f,n[T>>2]=0,a=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(a|0)<(u|0)?a:u,(u|0)>0&&(n[b>>2]=h-u,n[g>>2]=f-u,n[T>>2]=a-u),u=Uu(s,o,b,l)|0),b=u,S=C,b|0)}function Va(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0;return g=S,S=S+32|0,h=g+12|0,p=g,f=Ai(s,o,s,o,h)|0,f|0?(p=f,S=g,p|0):(s=Ai(s,o,a,u,p)|0,s|0?(p=s,S=g,p|0):(s=(n[h>>2]|0)-(n[p>>2]|0)|0,T=(s|0)<0,u=T?0-s|0:0,a=u+((n[h+4>>2]|0)-(n[p+4>>2]|0))|0,o=(a|0)<0,u=(n[h+8>>2]|0)-(n[p+8>>2]|0)+u+(o?0-a|0:0)|0,f=(u|0)<0,h=f?0:u,u=f?u:0,f=(o?0:a)-u|0,u=(T?0:s)-(o?a:0)-u|0,p=(f|0)<(u|0)?f:u,p=(h|0)<(p|0)?h:p,p=(p|0)>0?p:0,h=h-p|0,f=f-p|0,p=u-p|0,p=(p|0)>-1?p:0-p|0,f=(f|0)>-1?f:0-f|0,h=(h|0)>-1?h:0-h|0,h=(f|0)>(h|0)?f:h,h=(p|0)>(h|0)?p:h,p=l,n[p>>2]=h,n[p+4>>2]=((h|0)<0)<<31>>31,p=0,S=g,p|0))}function nT(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0;return h=S,S=S+16|0,f=h,s=Va(s,o,a,u,f)|0,s|0?(f=s,S=h,f|0):(a=f,a=ce(n[a>>2]|0,n[a+4>>2]|0,1,0)|0,u=I()|0,f=l,n[f>>2]=a,n[f+4>>2]=u,f=0,S=h,f|0)}function AT(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0;return g=S,S=S+16|0,f=g,h=Va(s,o,a,u,f)|0,h|0?(l=h,S=g,l|0):(h=f,f=n[h>>2]|0,h=n[h+4>>2]|0,(f|0)==0&(h|0)==0?(n[l>>2]=s,n[l+4>>2]=o,l=0,S=g,l|0):(p=Hu(s,o,a,u,f,h,l,0,0,1,0)|0,p?(l=(Hu(a,u,s,o,f,h,l,f,h,-1,-1)|0)==0,l=l?0:p,S=g,l|0):(l=0,S=g,l|0)))}function Hu(s,o,a,u,l,f,h,p,g,T,b){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0,h=h|0,p=p|0,g=g|0,T=T|0,b=b|0;var C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0;if(me=S,S=S+48|0,C=me+24|0,w=me+12|0,$=me,n[C>>2]=0,n[C+4>>2]=0,n[C+8>>2]=0,n[w>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,Ai(s,o,s,o,C)|0&&Oe(27634,27315,696,27575),Ai(s,o,a,u,w)|0&&Oe(27634,27315,701,27575),P=C+8|0,u=n[P>>2]|0,a=u-(n[C>>2]|0)|0,n[C>>2]=a,le=C+4|0,u=(n[le>>2]|0)-u|0,n[le>>2]=u,le=u+a|0,C=0-le|0,n[P>>2]=C,P=w+8|0,R=n[P>>2]|0,H=R-(n[w>>2]|0)|0,n[w>>2]=H,V=w+4|0,R=(n[V>>2]|0)-R|0,n[V>>2]=R,V=R+H|0,n[P>>2]=0-V,z=1/(+(l>>>0)+4294967296*+(f|0)),K=z*+(H-a|0),ee=z*+(R-u|0),z=z*+(le-V|0),n[$>>2]=a,V=$+4|0,n[V>>2]=u,le=$+8|0,n[le>>2]=C,(f|0)<0)return T=0,S=me,T|0;for(O=+(a|0),j=+(u|0),D=+(C|0),H=0,R=0;;){if(M=+(H>>>0)+4294967296*+(R|0),ne=K*M+O,B=ee*M+j,M=z*M+D,u=~~+cs(+ne),C=~~+cs(+B),a=~~+cs(+M),ne=+Ct(+(+(u|0)-ne)),B=+Ct(+(+(C|0)-B)),M=+Ct(+(+(a|0)-M)),ne>B&ne>M?(w=a+C|0,u=0-w|0):(w=0-u|0,B>M&&(C=w-a|0)),n[V>>2]=C,n[$>>2]=w,n[le>>2]=0,a=u+C|0,(u|0)>0?(n[V>>2]=a,n[le>>2]=u,n[$>>2]=0,w=0):(a=C,u=0),(a|0)<0?(C=w-a|0,n[$>>2]=C,u=u-a|0,n[le>>2]=u,n[V>>2]=0,w=C-u|0,a=0-u|0,(u|0)<0?(n[$>>2]=w,n[V>>2]=a,n[le>>2]=0,P=a,u=0):(P=0,w=C)):P=a,a=(P|0)<(w|0)?P:w,a=(u|0)<(a|0)?u:a,(a|0)>0&&(n[$>>2]=w-a,n[V>>2]=P-a,n[le>>2]=u-a),a=ut(H|0,R|0,T|0,b|0)|0,a=ce(a|0,I()|0,p|0,g|0)|0,I()|0,a=Uu(s,o,$,h+(a<<3)|0)|0,a|0){u=20;break}if(P=H,H=ce(H|0,R|0,1,0)|0,w=R,R=I()|0,!((w|0)<(f|0)|(w|0)==(f|0)&P>>>0<l>>>0)){a=0,u=20;break}}return (u|0)==20?(S=me,a|0):0}function An(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0;if((a|0)==0&(u|0)==0)return l=0,f=1,Ie(l|0),f|0;f=s,l=o,s=1,o=0;do h=(a&1|0)==0&true,s=ut((h?1:f)|0,(h?0:l)|0,s|0,o|0)|0,o=I()|0,a=tf(a|0,u|0,1)|0,u=I()|0,f=ut(f|0,l|0,f|0,l|0)|0,l=I()|0;while(!((a|0)==0&(u|0)==0));return Ie(o|0),s|0}function ja(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;p=S,S=S+16|0,f=p,h=te(s|0,o|0,52)|0,I()|0,h=h&15;do if(h){if(l=$n(s,o,f)|0,!l){T=+L[f>>3],g=1/+De(+T),b=+L[26032+(h<<3)>>3],L[a>>3]=T+b,L[a+8>>3]=T-b,T=+L[f+8>>3],g=b*g,L[a+16>>3]=g+T,L[a+24>>3]=T-g;break}return h=l,S=p,h|0}else {if(l=te(s|0,o|0,45)|0,I()|0,l=l&127,l>>>0>121)return h=5,S=p,h|0;f=22128+(l<<5)|0,n[a>>2]=n[f>>2],n[a+4>>2]=n[f+4>>2],n[a+8>>2]=n[f+8>>2],n[a+12>>2]=n[f+12>>2],n[a+16>>2]=n[f+16>>2],n[a+20>>2]=n[f+20>>2],n[a+24>>2]=n[f+24>>2],n[a+28>>2]=n[f+28>>2];break}while(false);return yy(a,u?1.4:1.1),u=26160+(h<<3)|0,(n[u>>2]|0)==(s|0)&&(n[u+4>>2]|0)==(o|0)&&(L[a>>3]=1.5707963267948966),h=26288+(h<<3)|0,(n[h>>2]|0)==(s|0)&&(n[h+4>>2]|0)==(o|0)&&(L[a+8>>3]=-1.5707963267948966),+L[a>>3]!=1.5707963267948966&&+L[a+8>>3]!=-1.5707963267948966?(h=0,S=p,h|0):(L[a+16>>3]=3.141592653589793,L[a+24>>3]=-3.141592653589793,h=0,S=p,h|0)}function iT(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;T=S,S=S+48|0,h=T+32|0,f=T+40|0,p=T,Ra(h,0,0,0),g=n[h>>2]|0,h=n[h+4>>2]|0;do if(a>>>0<=15){if(l=si(u)|0,l|0){u=p,n[u>>2]=0,n[u+4>>2]=0,n[p+8>>2]=l,n[p+12>>2]=-1,u=p+16|0,g=p+29|0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,Z[u+12>>0]=0,Z[g>>0]=Z[f>>0]|0,Z[g+1>>0]=Z[f+1>>0]|0,Z[g+2>>0]=Z[f+2>>0]|0;break}if(l=zt((n[o+8>>2]|0)+1|0,32)|0,l){Qa(o,l),b=p,n[b>>2]=g,n[b+4>>2]=h,n[p+8>>2]=0,n[p+12>>2]=a,n[p+16>>2]=u,n[p+20>>2]=o,n[p+24>>2]=l,Z[p+28>>0]=0,g=p+29|0,Z[g>>0]=Z[f>>0]|0,Z[g+1>>0]=Z[f+1>>0]|0,Z[g+2>>0]=Z[f+2>>0]|0;break}else {u=p,n[u>>2]=0,n[u+4>>2]=0,n[p+8>>2]=13,n[p+12>>2]=-1,u=p+16|0,g=p+29|0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,Z[u+12>>0]=0,Z[g>>0]=Z[f>>0]|0,Z[g+1>>0]=Z[f+1>>0]|0,Z[g+2>>0]=Z[f+2>>0]|0;break}}else g=p,n[g>>2]=0,n[g+4>>2]=0,n[p+8>>2]=4,n[p+12>>2]=-1,g=p+16|0,b=p+29|0,n[g>>2]=0,n[g+4>>2]=0,n[g+8>>2]=0,Z[g+12>>0]=0,Z[b>>0]=Z[f>>0]|0,Z[b+1>>0]=Z[f+1>>0]|0,Z[b+2>>0]=Z[f+2>>0]|0;while(false);rs(p),n[s>>2]=n[p>>2],n[s+4>>2]=n[p+4>>2],n[s+8>>2]=n[p+8>>2],n[s+12>>2]=n[p+12>>2],n[s+16>>2]=n[p+16>>2],n[s+20>>2]=n[p+20>>2],n[s+24>>2]=n[p+24>>2],n[s+28>>2]=n[p+28>>2],S=T;}function rs(s){s=s|0;var o=0,a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0;if(O=S,S=S+336|0,B=O+168|0,M=O,u=s,a=n[u>>2]|0,u=n[u+4>>2]|0,(a|0)==0&(u|0)==0){S=O;return}if(o=s+28|0,Z[o>>0]|0?(a=Vu(a,u)|0,u=I()|0):Z[o>>0]=1,j=s+20|0,!(n[n[j>>2]>>2]|0)){o=s+24|0,a=n[o>>2]|0,a|0&&fe(a),R=s,n[R>>2]=0,n[R+4>>2]=0,n[s+8>>2]=0,n[j>>2]=0,n[s+12>>2]=-1,n[s+16>>2]=0,n[o>>2]=0,S=O;return}R=s+16|0,o=n[R>>2]|0,l=o&15;e:do if((a|0)==0&(u|0)==0)H=s+24|0;else {P=s+12|0,C=(l|0)==3,b=o&255,g=(l|1|0)==3,w=s+24|0,T=(l+-1|0)>>>0<3,h=(l|2|0)==3,p=M+8|0;t:for(;;){if(f=te(a|0,u|0,52)|0,I()|0,f=f&15,(f|0)==(n[P>>2]|0)){switch(b&15){case 0:case 2:case 3:{if(l=$n(a,u,B)|0,l|0){D=15;break t}if(za(n[j>>2]|0,n[w>>2]|0,B)|0){D=19;break t}break}}if(g&&(l=n[(n[j>>2]|0)+4>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=n[l+4>>2],n[B+8>>2]=n[l+8>>2],n[B+12>>2]=n[l+12>>2],Bu(26896,B)|0)){if(Oa(n[(n[j>>2]|0)+4>>2]|0,f,M)|0){D=25;break}if(l=M,(n[l>>2]|0)==(a|0)&&(n[l+4>>2]|0)==(u|0)){D=29;break}}if(T){if(l=Bn(a,u,B)|0,l|0){D=32;break}if(ja(a,u,M,0)|0){D=36;break}if(h&&Qu(n[j>>2]|0,n[w>>2]|0,B,M)|0){D=42;break}if(g&&zu(n[j>>2]|0,n[w>>2]|0,B,M)|0){D=42;break}}if(C){if(o=ja(a,u,B,1)|0,l=n[w>>2]|0,o|0){D=45;break}if(Ma(l,B)|0){if(Mu(M,B),vu(B,n[w>>2]|0)|0){D=53;break}if(za(n[j>>2]|0,n[w>>2]|0,p)|0){D=53;break}if(zu(n[j>>2]|0,n[w>>2]|0,M,B)|0){D=53;break}}}}do if((f|0)<(n[P>>2]|0)){if(o=ja(a,u,B,1)|0,l=n[w>>2]|0,o|0){D=58;break t}if(!(Ma(l,B)|0)){D=73;break}if(vu(n[w>>2]|0,B)|0&&(Mu(M,B),Qu(n[j>>2]|0,n[w>>2]|0,M,B)|0)){D=65;break t}if(a=Nu(a,u,f+1|0,M)|0,a|0){D=67;break t}u=M,a=n[u>>2]|0,u=n[u+4>>2]|0;}else D=73;while(false);if((D|0)==73&&(D=0,a=Vu(a,u)|0,u=I()|0),(a|0)==0&(u|0)==0){H=w;break e}}switch(D|0){case 15:{o=n[w>>2]|0,o|0&&fe(o),D=s,n[D>>2]=0,n[D+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=l,D=20;break}case 19:{n[s>>2]=a,n[s+4>>2]=u,D=20;break}case 25:{Oe(27634,27600,470,27611);break}case 29:{n[s>>2]=a,n[s+4>>2]=u,S=O;return}case 32:{o=n[w>>2]|0,o|0&&fe(o),H=s,n[H>>2]=0,n[H+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=l,S=O;return}case 36:{Oe(27634,27600,493,27611);break}case 42:{n[s>>2]=a,n[s+4>>2]=u,S=O;return}case 45:{l|0&&fe(l),D=s,n[D>>2]=0,n[D+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=o,D=55;break}case 53:{n[s>>2]=a,n[s+4>>2]=u,D=55;break}case 58:{l|0&&fe(l),D=s,n[D>>2]=0,n[D+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=o,D=71;break}case 65:{n[s>>2]=a,n[s+4>>2]=u,D=71;break}case 67:{o=n[w>>2]|0,o|0&&fe(o),H=s,n[H>>2]=0,n[H+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=a,S=O;return}}if((D|0)==20){S=O;return}else if((D|0)==55){S=O;return}else if((D|0)==71){S=O;return}}while(false);o=n[H>>2]|0,o|0&&fe(o),D=s,n[D>>2]=0,n[D+4>>2]=0,n[s+8>>2]=0,n[j>>2]=0,n[s+12>>2]=-1,n[R>>2]=0,n[H>>2]=0,S=O;}function Vu(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;C=S,S=S+16|0,b=C,u=te(s|0,o|0,52)|0,I()|0,u=u&15,a=te(s|0,o|0,45)|0,I()|0;do if(u){for(;a=oe(u+4095|0,0,52)|0,l=I()|0|o&-15728641,f=(15-u|0)*3|0,h=oe(7,0,f|0)|0,p=I()|0,a=a|s|h,l=l|p,g=te(s|0,o|0,f|0)|0,I()|0,g=g&7,u=u+-1|0,!(g>>>0<6);)if(u)o=l,s=a;else {T=4;break}if((T|0)==4){a=te(a|0,l|0,45)|0,I()|0;break}return b=(g|0)==0&(et(a,l)|0)!=0,b=oe((b?2:1)+g|0,0,f|0)|0,T=I()|0|o&~p,b=b|s&~h,Ie(T|0),S=C,b|0}while(false);return a=a&127,a>>>0>120?(T=0,b=0,Ie(T|0),S=C,b|0):(Ra(b,0,a+1|0,0),T=n[b+4>>2]|0,b=n[b>>2]|0,Ie(T|0),S=C,b|0)}function sT(s,o,a,u,l,f){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0;var h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0;D=S,S=S+160|0,C=D+80|0,p=D+64|0,w=D+112|0,P=D,iT(C,s,o,a),T=C,Ua(p,n[T>>2]|0,n[T+4>>2]|0,o),T=p,g=n[T>>2]|0,T=n[T+4>>2]|0,h=n[C+8>>2]|0,B=w+4|0,n[B>>2]=n[C>>2],n[B+4>>2]=n[C+4>>2],n[B+8>>2]=n[C+8>>2],n[B+12>>2]=n[C+12>>2],n[B+16>>2]=n[C+16>>2],n[B+20>>2]=n[C+20>>2],n[B+24>>2]=n[C+24>>2],n[B+28>>2]=n[C+28>>2],B=P,n[B>>2]=g,n[B+4>>2]=T,B=P+8|0,n[B>>2]=h,s=P+12|0,o=w,a=s+36|0;do n[s>>2]=n[o>>2],s=s+4|0,o=o+4|0;while((s|0)<(a|0));if(w=P+48|0,n[w>>2]=n[p>>2],n[w+4>>2]=n[p+4>>2],n[w+8>>2]=n[p+8>>2],n[w+12>>2]=n[p+12>>2],(g|0)==0&(T|0)==0)return P=h,S=D,P|0;a=P+16|0,b=P+24|0,C=P+28|0,h=0,p=0,o=g,s=T;do{if(!((h|0)<(l|0)|(h|0)==(l|0)&p>>>0<u>>>0)){M=4;break}if(T=p,p=ce(p|0,h|0,1,0)|0,h=I()|0,T=f+(T<<3)|0,n[T>>2]=o,n[T+4>>2]=s,Ha(w),s=w,o=n[s>>2]|0,s=n[s+4>>2]|0,(o|0)==0&(s|0)==0){if(rs(a),o=a,s=n[o>>2]|0,o=n[o+4>>2]|0,(s|0)==0&(o|0)==0){M=10;break}Gu(s,o,n[C>>2]|0,w),s=w,o=n[s>>2]|0,s=n[s+4>>2]|0;}T=P,n[T>>2]=o,n[T+4>>2]=s;}while(!((o|0)==0&(s|0)==0));return (M|0)==4?(s=P+40|0,o=n[s>>2]|0,o|0&&fe(o),M=P+16|0,n[M>>2]=0,n[M+4>>2]=0,n[b>>2]=0,n[P+36>>2]=0,n[C>>2]=-1,n[P+32>>2]=0,n[s>>2]=0,Gu(0,0,0,w),n[P>>2]=0,n[P+4>>2]=0,n[B>>2]=0,P=14,S=D,P|0):((M|0)==10&&(n[P>>2]=0,n[P+4>>2]=0,n[B>>2]=n[b>>2]),P=n[B>>2]|0,S=D,P|0)}function oT(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0;if(C=S,S=S+48|0,g=C+32|0,p=C+40|0,T=C,!(n[s>>2]|0))return b=u,n[b>>2]=0,n[b+4>>2]=0,b=0,S=C,b|0;Ra(g,0,0,0),h=g,l=n[h>>2]|0,h=n[h+4>>2]|0;do if(o>>>0>15)b=T,n[b>>2]=0,n[b+4>>2]=0,n[T+8>>2]=4,n[T+12>>2]=-1,b=T+16|0,a=T+29|0,n[b>>2]=0,n[b+4>>2]=0,n[b+8>>2]=0,Z[b+12>>0]=0,Z[a>>0]=Z[p>>0]|0,Z[a+1>>0]=Z[p+1>>0]|0,Z[a+2>>0]=Z[p+2>>0]|0,a=4,b=9;else {if(a=si(a)|0,a|0){g=T,n[g>>2]=0,n[g+4>>2]=0,n[T+8>>2]=a,n[T+12>>2]=-1,g=T+16|0,b=T+29|0,n[g>>2]=0,n[g+4>>2]=0,n[g+8>>2]=0,Z[g+12>>0]=0,Z[b>>0]=Z[p>>0]|0,Z[b+1>>0]=Z[p+1>>0]|0,Z[b+2>>0]=Z[p+2>>0]|0,b=9;break}if(a=zt((n[s+8>>2]|0)+1|0,32)|0,!a){b=T,n[b>>2]=0,n[b+4>>2]=0,n[T+8>>2]=13,n[T+12>>2]=-1,b=T+16|0,a=T+29|0,n[b>>2]=0,n[b+4>>2]=0,n[b+8>>2]=0,Z[b+12>>0]=0,Z[a>>0]=Z[p>>0]|0,Z[a+1>>0]=Z[p+1>>0]|0,Z[a+2>>0]=Z[p+2>>0]|0,a=13,b=9;break}Qa(s,a),B=T,n[B>>2]=l,n[B+4>>2]=h,h=T+8|0,n[h>>2]=0,n[T+12>>2]=o,n[T+20>>2]=s,n[T+24>>2]=a,Z[T+28>>0]=0,l=T+29|0,Z[l>>0]=Z[p>>0]|0,Z[l+1>>0]=Z[p+1>>0]|0,Z[l+2>>0]=Z[p+2>>0]|0,n[T+16>>2]=3,w=+py(a),w=w*+hy(a),f=+Ct(+ +L[a>>3]),f=w/+De(+ +as(+f,+ +Ct(+ +L[a+8>>3])))*6371.007180918475*6371.007180918475,l=T+12|0,a=n[l>>2]|0;e:do if((a|0)>0)do{if(ku(a+-1|0,g)|0,!(f/+L[g>>3]>10))break e;B=n[l>>2]|0,a=B+-1|0,n[l>>2]=a;}while((B|0)>1);while(false);if(rs(T),l=u,n[l>>2]=0,n[l+4>>2]=0,l=T,a=n[l>>2]|0,l=n[l+4>>2]|0,!((a|0)==0&(l|0)==0))do ti(a,l,o,g)|0,p=g,s=u,p=ce(n[s>>2]|0,n[s+4>>2]|0,n[p>>2]|0,n[p+4>>2]|0)|0,s=I()|0,B=u,n[B>>2]=p,n[B+4>>2]=s,rs(T),B=T,a=n[B>>2]|0,l=n[B+4>>2]|0;while(!((a|0)==0&(l|0)==0));a=n[h>>2]|0;}while(false);return B=a,S=C,B|0}function ii(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;if(!(Bu(o,a)|0)||(o=dy(o)|0,u=+L[a>>3],l=+L[a+8>>3],l=o&l<0?l+6.283185307179586:l,w=n[s>>2]|0,(w|0)<=0))return w=0,w|0;if(C=n[s+4>>2]|0,o){o=0,b=l,a=-1,s=0;e:for(;;){for(T=s;h=+L[C+(T<<4)>>3],l=+L[C+(T<<4)+8>>3],s=(a+2|0)%(w|0)|0,f=+L[C+(s<<4)>>3],p=+L[C+(s<<4)+8>>3],h>f?(g=h,h=p):(g=f,f=h,h=l,l=p),u=u==f|u==g?u+2220446049250313e-31:u,!!(u<f|u>g);)if(a=T+1|0,(a|0)>=(w|0)){a=22;break e}else s=T,T=a,a=s;if(p=h<0?h+6.283185307179586:h,h=l<0?l+6.283185307179586:l,b=p==b|h==b?b+-2220446049250313e-31:b,g=p+(h-p)*((u-f)/(g-f)),(g<0?g+6.283185307179586:g)>b&&(o=o^1),s=T+1|0,(s|0)>=(w|0)){a=22;break}else a=T;}if((a|0)==22)return o|0}else {o=0,b=l,a=-1,s=0;e:for(;;){for(T=s;h=+L[C+(T<<4)>>3],l=+L[C+(T<<4)+8>>3],s=(a+2|0)%(w|0)|0,f=+L[C+(s<<4)>>3],p=+L[C+(s<<4)+8>>3],h>f?(g=h,h=p):(g=f,f=h,h=l,l=p),u=u==f|u==g?u+2220446049250313e-31:u,!!(u<f|u>g);)if(a=T+1|0,(a|0)>=(w|0)){a=22;break e}else s=T,T=a,a=s;if(b=h==b|l==b?b+-2220446049250313e-31:b,h+(l-h)*((u-f)/(g-f))>b&&(o=o^1),s=T+1|0,(s|0)>=(w|0)){a=22;break}else a=T;}if((a|0)==22)return o|0}return 0}function ju(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0;if(M=n[s>>2]|0,!M){n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0,n[o+16>>2]=0,n[o+20>>2]=0,n[o+24>>2]=0,n[o+28>>2]=0;return}if(P=o+8|0,L[P>>3]=17976931348623157e292,D=o+24|0,L[D>>3]=17976931348623157e292,L[o>>3]=-17976931348623157e292,H=o+16|0,L[H>>3]=-17976931348623157e292,!((M|0)<=0)){for(w=n[s+4>>2]|0,T=17976931348623157e292,b=-17976931348623157e292,C=0,s=-1,f=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,B=0;a=+L[w+(B<<4)>>3],p=+L[w+(B<<4)+8>>3],s=s+2|0,l=+L[w+(((s|0)==(M|0)?0:s)<<4)+8>>3],a<f&&(L[P>>3]=a,f=a),p<h&&(L[D>>3]=p,h=p),a>g?L[o>>3]=a:a=g,p>u&&(L[H>>3]=p,u=p),T=p>0&p<T?p:T,b=p<0&p>b?p:b,C=C|+Ct(+(p-l))>3.141592653589793,s=B+1|0,(s|0)!=(M|0);)R=B,g=a,B=s,s=R;C&&(L[H>>3]=b,L[D>>3]=T);}}function si(s){return s=s|0,(s>>>0<4?0:15)|0}function Qa(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0;if(M=n[s>>2]|0,M){if(P=o+8|0,L[P>>3]=17976931348623157e292,D=o+24|0,L[D>>3]=17976931348623157e292,L[o>>3]=-17976931348623157e292,H=o+16|0,L[H>>3]=-17976931348623157e292,(M|0)>0){for(l=n[s+4>>2]|0,w=17976931348623157e292,B=-17976931348623157e292,u=0,a=-1,g=17976931348623157e292,T=17976931348623157e292,C=-17976931348623157e292,h=-17976931348623157e292,R=0;f=+L[l+(R<<4)>>3],b=+L[l+(R<<4)+8>>3],ee=a+2|0,p=+L[l+(((ee|0)==(M|0)?0:ee)<<4)+8>>3],f<g&&(L[P>>3]=f,g=f),b<T&&(L[D>>3]=b,T=b),f>C?L[o>>3]=f:f=C,b>h&&(L[H>>3]=b,h=b),w=b>0&b<w?b:w,B=b<0&b>B?b:B,u=u|+Ct(+(b-p))>3.141592653589793,a=R+1|0,(a|0)!=(M|0);)ee=R,C=f,R=a,a=ee;u&&(L[H>>3]=B,L[D>>3]=w);}}else n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0,n[o+16>>2]=0,n[o+20>>2]=0,n[o+24>>2]=0,n[o+28>>2]=0;if(ee=s+8|0,a=n[ee>>2]|0,!((a|0)<=0)){K=s+12|0,O=0;do if(l=n[K>>2]|0,u=O,O=O+1|0,D=o+(O<<5)|0,H=n[l+(u<<3)>>2]|0,H){if(R=o+(O<<5)+8|0,L[R>>3]=17976931348623157e292,s=o+(O<<5)+24|0,L[s>>3]=17976931348623157e292,L[D>>3]=-17976931348623157e292,j=o+(O<<5)+16|0,L[j>>3]=-17976931348623157e292,(H|0)>0){for(M=n[l+(u<<3)+4>>2]|0,w=17976931348623157e292,B=-17976931348623157e292,l=0,u=-1,P=0,g=17976931348623157e292,T=17976931348623157e292,b=-17976931348623157e292,h=-17976931348623157e292;f=+L[M+(P<<4)>>3],C=+L[M+(P<<4)+8>>3],u=u+2|0,p=+L[M+(((u|0)==(H|0)?0:u)<<4)+8>>3],f<g&&(L[R>>3]=f,g=f),C<T&&(L[s>>3]=C,T=C),f>b?L[D>>3]=f:f=b,C>h&&(L[j>>3]=C,h=C),w=C>0&C<w?C:w,B=C<0&C>B?C:B,l=l|+Ct(+(C-p))>3.141592653589793,u=P+1|0,(u|0)!=(H|0);)z=P,P=u,b=f,u=z;l&&(L[j>>3]=B,L[s>>3]=w);}}else n[D>>2]=0,n[D+4>>2]=0,n[D+8>>2]=0,n[D+12>>2]=0,n[D+16>>2]=0,n[D+20>>2]=0,n[D+24>>2]=0,n[D+28>>2]=0,a=n[ee>>2]|0;while((O|0)<(a|0))}}function za(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0;if(!(ii(s,o,a)|0))return l=0,l|0;if(l=s+8|0,(n[l>>2]|0)<=0)return l=1,l|0;for(u=s+12|0,s=0;;){if(f=s,s=s+1|0,ii((n[u>>2]|0)+(f<<3)|0,o+(s<<5)|0,a)|0){s=0,u=6;break}if((s|0)>=(n[l>>2]|0)){s=1,u=6;break}}return (u|0)==6?s|0:0}function Qu(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(T=S,S=S+16|0,p=T,h=a+8|0,!(ii(s,o,h)|0))return g=0,S=T,g|0;g=s+8|0;e:do if((n[g>>2]|0)>0){for(f=s+12|0,l=0;;){if(b=l,l=l+1|0,ii((n[f>>2]|0)+(b<<3)|0,o+(l<<5)|0,h)|0){l=0;break}if((l|0)>=(n[g>>2]|0))break e}return S=T,l|0}while(false);if(ns(s,o,a,u)|0)return b=0,S=T,b|0;n[p>>2]=n[a>>2],n[p+4>>2]=h,l=n[g>>2]|0;e:do if((l|0)>0)for(s=s+12|0,h=0,f=l;;){if(l=n[s>>2]|0,(n[l+(h<<3)>>2]|0)>0){if(ii(p,u,n[l+(h<<3)+4>>2]|0)|0){l=0;break e}if(l=h+1|0,ns((n[s>>2]|0)+(h<<3)|0,o+(l<<5)|0,a,u)|0){l=0;break e}f=n[g>>2]|0;}else l=h+1|0;if((l|0)<(f|0))h=l;else {l=1;break}}else l=1;while(false);return b=l,S=T,b|0}function ns(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0;if(ee=S,S=S+176|0,R=ee+172|0,l=ee+168|0,j=ee,!(Ma(o,u)|0))return s=0,S=ee,s|0;if(my(o,u,R,l),xr(j|0,a|0,168)|0,(n[a>>2]|0)>0){o=0;do z=j+8+(o<<4)+8|0,H=+sr(+L[z>>3],n[l>>2]|0),L[z>>3]=H,o=o+1|0;while((o|0)<(n[a>>2]|0))}P=+L[u>>3],D=+L[u+8>>3],H=+sr(+L[u+16>>3],n[l>>2]|0),B=+sr(+L[u+24>>3],n[l>>2]|0);e:do if((n[s>>2]|0)>0){if(u=s+4|0,l=n[j>>2]|0,(l|0)<=0){for(o=0;;)if(o=o+1|0,(o|0)>=(n[s>>2]|0)){o=0;break e}}for(a=0;;){if(o=n[u>>2]|0,w=+L[o+(a<<4)>>3],M=+sr(+L[o+(a<<4)+8>>3],n[R>>2]|0),o=n[u>>2]|0,a=a+1|0,z=(a|0)%(n[s>>2]|0)|0,f=+L[o+(z<<4)>>3],h=+sr(+L[o+(z<<4)+8>>3],n[R>>2]|0),!(w>=P)|!(f>=P)&&!(w<=D)|!(f<=D)&&!(M<=B)|!(h<=B)&&!(M>=H)|!(h>=H)){C=f-w,T=h-M,o=0;do if(V=o,o=o+1|0,z=(o|0)==(l|0)?0:o,f=+L[j+8+(V<<4)+8>>3],h=+L[j+8+(z<<4)+8>>3]-f,p=+L[j+8+(V<<4)>>3],g=+L[j+8+(z<<4)>>3]-p,b=C*h-T*g,b!=0&&(O=M-f,K=w-p,g=(O*g-h*K)/b,!(g<0|g>1))&&(b=(C*O-T*K)/b,b>=0&b<=1)){o=1;break e}while((o|0)<(l|0))}if((a|0)>=(n[s>>2]|0)){o=0;break}}}else o=0;while(false);return V=o,S=ee,V|0}function zu(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0;if(ns(s,o,a,u)|0)return f=1,f|0;if(f=s+8|0,(n[f>>2]|0)<=0)return f=0,f|0;for(l=s+12|0,s=0;;){if(h=s,s=s+1|0,ns((n[l>>2]|0)+(h<<3)|0,o+(s<<5)|0,a,u)|0){s=1,l=6;break}if((s|0)>=(n[f>>2]|0)){s=0,l=6;break}}return (l|0)==6?s|0:0}function aT(){return 8}function cT(){return 16}function lT(){return 168}function uT(){return 8}function fT(){return 16}function hT(){return 12}function dT(){return 8}function pT(s){return s=s|0,+(+((n[s>>2]|0)>>>0)+4294967296*+(n[s+4>>2]|0))}function mT(s){s=s|0;var o=0,a=0;return a=+L[s>>3],o=+L[s+8>>3],+ +pt(+(a*a+o*o))}function Ju(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;T=+L[s>>3],g=+L[o>>3]-T,p=+L[s+8>>3],h=+L[o+8>>3]-p,C=+L[a>>3],f=+L[u>>3]-C,w=+L[a+8>>3],b=+L[u+8>>3]-w,f=(f*(p-w)-(T-C)*b)/(g*b-h*f),L[l>>3]=T+g*f,L[l+8>>3]=p+h*f;}function qu(s,o){return s=s|0,o=o|0,+Ct(+(+L[s>>3]-+L[o>>3]))<11920928955078125e-23?(o=+Ct(+(+L[s+8>>3]-+L[o+8>>3]))<11920928955078125e-23,o|0):(o=0,o|0)}function gT(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0;if(f=S,S=S+16|0,l=f,u=et(s,o)|0,(a+-1|0)>>>0>5||(u=(u|0)!=0,(a|0)==1&u))return l=-1,S=f,l|0;do if(oi(s,o,l)|0)u=-1;else if(u){u=((n[26416+(a<<2)>>2]|0)+5-(n[l>>2]|0)|0)%5|0;break}else {u=((n[26448+(a<<2)>>2]|0)+6-(n[l>>2]|0)|0)%6|0;break}while(false);return l=u,S=f,l|0}function oi(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(b=S,S=S+32|0,p=b+16|0,g=b,u=Zn(s,o,p)|0,u|0)return a=u,S=b,a|0;f=Pu(s,o)|0,T=$t(s,o)|0,cy(f,g),u=ly(f,n[p>>2]|0)|0;do if(ct(f)|0){do switch(f|0){case 4:{l=0;break}case 14:{l=1;break}case 24:{l=2;break}case 38:{l=3;break}case 49:{l=4;break}case 58:{l=5;break}case 63:{l=6;break}case 72:{l=7;break}case 83:{l=8;break}case 97:{l=9;break}case 107:{l=10;break}case 117:{l=11;break}default:Oe(27634,27636,75,27645);}while(false);if(h=n[26480+(l*24|0)+8>>2]|0,o=n[26480+(l*24|0)+16>>2]|0,s=n[p>>2]|0,(s|0)!=(n[g>>2]|0)&&(g=wa(f)|0,s=n[p>>2]|0,g|(s|0)==(o|0)&&(u=(u+1|0)%6|0)),(T|0)==3&(s|0)==(o|0)){u=(u+5|0)%6|0;break}(T|0)==5&(s|0)==(h|0)&&(u=(u+1|0)%6|0);}while(false);return n[a>>2]=u,a=0,S=b,a|0}function dr(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0;if(j=S,S=S+32|0,R=j+24|0,D=j+20|0,M=j+8|0,B=j+16|0,w=j,g=(et(s,o)|0)==0,g=g?6:5,b=te(s|0,o|0,52)|0,I()|0,b=b&15,g>>>0<=a>>>0)return u=2,S=j,u|0;C=(b|0)==0,!C&&(P=oe(7,0,(b^15)*3|0)|0,(P&s|0)==0&((I()|0)&o|0)==0)?l=a:f=4;e:do if((f|0)==4){if(l=(et(s,o)|0)!=0,((l?4:5)|0)<(a|0)||oi(s,o,R)|0||(f=(n[R>>2]|0)+a|0,l?l=26768+(((f|0)%5|0)<<2)|0:l=26800+(((f|0)%6|0)<<2)|0,P=n[l>>2]|0,(P|0)==7))return u=1,S=j,u|0;n[D>>2]=0,l=wt(s,o,P,D,M)|0;do if(!l){if(p=M,T=n[p>>2]|0,p=n[p+4>>2]|0,h=p>>>0<o>>>0|(p|0)==(o|0)&T>>>0<s>>>0,f=h?T:s,h=h?p:o,!C&&(C=oe(7,0,(b^15)*3|0)|0,(T&C|0)==0&(p&(I()|0)|0)==0))l=a;else {if(p=(a+-1+g|0)%(g|0)|0,l=et(s,o)|0,(p|0)<0&&Oe(27634,27636,248,27661),g=(l|0)!=0,((g?4:5)|0)<(p|0)&&Oe(27634,27636,248,27661),oi(s,o,R)|0&&Oe(27634,27636,248,27661),l=(n[R>>2]|0)+p|0,g?l=26768+(((l|0)%5|0)<<2)|0:l=26800+(((l|0)%6|0)<<2)|0,p=n[l>>2]|0,(p|0)==7&&Oe(27634,27636,248,27661),n[B>>2]=0,l=wt(s,o,p,B,w)|0,l|0)break;T=w,g=n[T>>2]|0,T=n[T+4>>2]|0;do if(T>>>0<h>>>0|(T|0)==(h|0)&g>>>0<f>>>0){if(et(g,T)|0?f=Zi(g,T,s,o)|0:f=n[26864+((((n[B>>2]|0)+(n[26832+(p<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=et(g,T)|0,(f+-1|0)>>>0>5){l=-1,f=g,h=T;break}if(l=(l|0)!=0,(f|0)==1&l){l=-1,f=g,h=T;break}do if(oi(g,T,R)|0)l=-1;else if(l){l=((n[26416+(f<<2)>>2]|0)+5-(n[R>>2]|0)|0)%5|0;break}else {l=((n[26448+(f<<2)>>2]|0)+6-(n[R>>2]|0)|0)%6|0;break}while(false);f=g,h=T;}else l=a;while(false);p=M,T=n[p>>2]|0,p=n[p+4>>2]|0;}if((f|0)==(T|0)&(h|0)==(p|0)){if(g=(et(T,p)|0)!=0,g?s=Zi(T,p,s,o)|0:s=n[26864+((((n[D>>2]|0)+(n[26832+(P<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=et(T,p)|0,(s+-1|0)>>>0<=5&&(H=(l|0)!=0,!((s|0)==1&H)))do if(oi(T,p,R)|0)l=-1;else if(H){l=((n[26416+(s<<2)>>2]|0)+5-(n[R>>2]|0)|0)%5|0;break}else {l=((n[26448+(s<<2)>>2]|0)+6-(n[R>>2]|0)|0)%6|0;break}while(false);else l=-1;l=l+1|0,l=(l|0)==6|g&(l|0)==5?0:l;}o=h,s=f;break e}while(false);return u=l,S=j,u|0}while(false);return H=oe(l|0,0,56)|0,R=I()|0|o&-2130706433|536870912,n[u>>2]=H|s,n[u+4>>2]=R,u=0,S=j,u|0}function yT(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0;return f=(et(s,o)|0)==0,u=dr(s,o,0,a)|0,l=(u|0)==0,f?!l||(u=dr(s,o,1,a+8|0)|0,u|0)||(u=dr(s,o,2,a+16|0)|0,u|0)||(u=dr(s,o,3,a+24|0)|0,u|0)||(u=dr(s,o,4,a+32|0)|0,u)?(f=u,f|0):dr(s,o,5,a+40|0)|0:!l||(u=dr(s,o,1,a+8|0)|0,u|0)||(u=dr(s,o,2,a+16|0)|0,u|0)||(u=dr(s,o,3,a+24|0)|0,u|0)||(u=dr(s,o,4,a+32|0)|0,u|0)?(f=u,f|0):(f=a+40|0,n[f>>2]=0,n[f+4>>2]=0,f=0,f|0)}function TT(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0,g=0;return g=S,S=S+192|0,l=g,f=g+168|0,h=te(s|0,o|0,56)|0,I()|0,h=h&7,p=o&-2130706433|134217728,u=Zn(s,p,f)|0,u|0?(p=u,S=g,p|0):(o=te(s|0,o|0,52)|0,I()|0,o=o&15,et(s,p)|0?Ia(f,o,h,1,l):Fa(f,o,h,1,l),p=l+8|0,n[a>>2]=n[p>>2],n[a+4>>2]=n[p+4>>2],n[a+8>>2]=n[p+8>>2],n[a+12>>2]=n[p+12>>2],p=0,S=g,p|0)}function Ku(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0;return l=S,S=S+16|0,a=l,!(true&(o&2013265920|0)==536870912)||(u=o&-2130706433|134217728,!(es(s,u)|0))?(u=0,S=l,u|0):(f=te(s|0,o|0,56)|0,I()|0,f=(dr(s,u,f&7,a)|0)==0,u=a,u=f&((n[u>>2]|0)==(s|0)?(n[u+4>>2]|0)==(o|0):0)&1,S=l,u|0)}function Xu(){return 27680}function As(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;C=S,S=S+208|0,g=C,T=C+192|0,h=Zt(a,o)|0,p=T,n[p>>2]=1,n[p+4>>2]=0;e:do if(h|0){for(p=0-a|0,n[g+4>>2]=a,n[g>>2]=a,l=2,o=a,f=a;o=o+a+f|0,n[g+(l<<2)>>2]=o,o>>>0<h>>>0;)w=f,l=l+1|0,f=o,o=w;if(f=s+h+p|0,f>>>0>s>>>0){h=f,l=1,o=1;do{do if((o&3|0)!=3)if(o=l+-1|0,(n[g+(o<<2)>>2]|0)>>>0<(h-s|0)>>>0?Ja(s,a,u,l,g):ss(s,a,u,T,l,0,g),(l|0)==1){os(T,1),l=0;break}else {os(T,o),l=1;break}else Ja(s,a,u,l,g),is(T,2),l=l+2|0;while(false);o=n[T>>2]|1,n[T>>2]=o,s=s+a|0;}while(s>>>0<f>>>0)}else l=1,o=1;for(ss(s,a,u,T,l,0,g),f=T+4|0;;){if((l|0)==1&(o|0)==1)if(n[f>>2]|0)b=19;else break e;else (l|0)<2?b=19:(os(T,2),w=l+-2|0,n[T>>2]=n[T>>2]^7,is(T,1),ss(s+(0-(n[g+(w<<2)>>2]|0))+p|0,a,u,T,l+-1|0,1,g),os(T,1),o=n[T>>2]|1,n[T>>2]=o,s=s+p|0,ss(s,a,u,T,w,1,g),l=w);(b|0)==19&&(b=0,o=Yu(T)|0,is(T,o),s=s+p|0,l=o+l|0,o=n[T>>2]|0);}}while(false);S=C;}function Ja(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0;C=S,S=S+240|0,b=C,n[b>>2]=s;e:do if((u|0)>1)for(T=0-o|0,p=s,f=u,u=1,h=s;;){if(p=p+T|0,g=f+-2|0,s=p+(0-(n[l+(g<<2)>>2]|0))|0,(ln[a&3](h,s)|0)>-1&&(ln[a&3](h,p)|0)>-1||(h=b+(u<<2)|0,(ln[a&3](s,p)|0)>-1?(n[h>>2]=s,f=f+-1|0):(n[h>>2]=p,s=p,f=g),u=u+1|0,(f|0)<=1))break e;p=s,h=n[b>>2]|0;}else u=1;while(false);Zu(o,b,u),S=C;}function is(s,o){s=s|0,o=o|0;var a=0,u=0,l=0;l=s+4|0,o>>>0>31?(u=n[l>>2]|0,n[s>>2]=u,n[l>>2]=0,o=o+-32|0,a=0):(a=n[l>>2]|0,u=n[s>>2]|0),n[s>>2]=a<<32-o|u>>>o,n[l>>2]=a>>>o;}function ss(s,o,a,u,l,f,h){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0,f=f|0,h=h|0;var p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;B=S,S=S+240|0,C=B+232|0,w=B,M=n[u>>2]|0,n[C>>2]=M,g=n[u+4>>2]|0,T=C+4|0,n[T>>2]=g,n[w>>2]=s;e:do if((M|0)!=1|(g|0)!=0&&(b=0-o|0,p=s+(0-(n[h+(l<<2)>>2]|0))|0,(ln[a&3](p,s)|0)>=1))for(u=1,f=(f|0)==0,g=p;;){if(f&(l|0)>1){if(f=s+b|0,p=n[h+(l+-2<<2)>>2]|0,(ln[a&3](f,g)|0)>-1){p=10;break e}if((ln[a&3](f+(0-p)|0,g)|0)>-1){p=10;break e}}if(f=u+1|0,n[w+(u<<2)>>2]=g,M=Yu(C)|0,is(C,M),l=M+l|0,!((n[C>>2]|0)!=1|(n[T>>2]|0)!=0)){u=f,s=g,p=10;break e}if(s=g+(0-(n[h+(l<<2)>>2]|0))|0,(ln[a&3](s,n[w>>2]|0)|0)<1){s=g,u=f,f=0,p=9;break}else M=g,u=f,f=1,g=s,s=M;}else u=1,p=9;while(false);(p|0)==9&&(f|0)==0&&(p=10),(p|0)==10&&(Zu(o,w,u),Ja(s,o,a,l,h)),S=B;}function os(s,o){s=s|0,o=o|0;var a=0,u=0,l=0;l=s+4|0,o>>>0>31?(u=n[s>>2]|0,n[l>>2]=u,n[s>>2]=0,o=o+-32|0,a=0):(a=n[s>>2]|0,u=n[l>>2]|0),n[l>>2]=a>>>(32-o|0)|u<<o,n[s>>2]=a<<o;}function Yu(s){s=s|0;var o=0;return o=Wu((n[s>>2]|0)+-1|0)|0,o?o|0:(o=Wu(n[s+4>>2]|0)|0,((o|0)==0?0:o+32|0)|0)}function Wu(s){s=s|0;var o=0;if(s)if(s&1)s=0;else for(o=s,s=0;s=s+1|0,!(o&2);)o=o>>>1;else s=32;return s|0}function Zu(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0,p=0;h=S,S=S+256|0,u=h;e:do if((a|0)>=2&&(f=o+(a<<2)|0,n[f>>2]=u,s|0))for(;;){l=s>>>0<256?s:256,xr(u|0,n[o>>2]|0,l|0)|0,u=0;do p=o+(u<<2)|0,u=u+1|0,xr(n[p>>2]|0,n[o+(u<<2)>>2]|0,l|0)|0,n[p>>2]=(n[p>>2]|0)+l;while((u|0)!=(a|0));if(s=s-l|0,!s)break e;u=n[f>>2]|0;}while(false);S=h;}function Nr(s){return s=+s,~~+nf(+s)|0}function lt(s){s=s|0;var o=0,a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0;K=S,S=S+16|0,w=K;do if(s>>>0<245){if(T=s>>>0<11?16:s+11&-8,s=T>>>3,C=n[6921]|0,a=C>>>s,a&3|0)return o=(a&1^1)+s|0,s=27724+(o<<1<<2)|0,a=s+8|0,u=n[a>>2]|0,l=u+8|0,f=n[l>>2]|0,(f|0)==(s|0)?n[6921]=C&~(1<<o):(n[f+12>>2]=s,n[a>>2]=f),O=o<<3,n[u+4>>2]=O|3,O=u+O+4|0,n[O>>2]=n[O>>2]|1,O=l,S=K,O|0;if(b=n[6923]|0,T>>>0>b>>>0){if(a|0)return o=2<<s,o=a<<s&(o|0-o),o=(o&0-o)+-1|0,p=o>>>12&16,o=o>>>p,a=o>>>5&8,o=o>>>a,f=o>>>2&4,o=o>>>f,s=o>>>1&2,o=o>>>s,u=o>>>1&1,u=(a|p|f|s|u)+(o>>>u)|0,o=27724+(u<<1<<2)|0,s=o+8|0,f=n[s>>2]|0,p=f+8|0,a=n[p>>2]|0,(a|0)==(o|0)?(s=C&~(1<<u),n[6921]=s):(n[a+12>>2]=o,n[s>>2]=a,s=C),O=u<<3,h=O-T|0,n[f+4>>2]=T|3,l=f+T|0,n[l+4>>2]=h|1,n[f+O>>2]=h,b|0&&(u=n[6926]|0,o=b>>>3,a=27724+(o<<1<<2)|0,o=1<<o,s&o?(s=a+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=a,s=a+8|0),n[s>>2]=u,n[o+12>>2]=u,n[u+8>>2]=o,n[u+12>>2]=a),n[6923]=h,n[6926]=l,O=p,S=K,O|0;if(f=n[6922]|0,f){for(a=(f&0-f)+-1|0,l=a>>>12&16,a=a>>>l,u=a>>>5&8,a=a>>>u,h=a>>>2&4,a=a>>>h,p=a>>>1&2,a=a>>>p,g=a>>>1&1,g=n[27988+((u|l|h|p|g)+(a>>>g)<<2)>>2]|0,a=g,p=g,g=(n[g+4>>2]&-8)-T|0;s=n[a+16>>2]|0,!(!s&&(s=n[a+20>>2]|0,!s));)h=(n[s+4>>2]&-8)-T|0,l=h>>>0<g>>>0,a=s,p=l?s:p,g=l?h:g;if(h=p+T|0,h>>>0>p>>>0){l=n[p+24>>2]|0,o=n[p+12>>2]|0;do if((o|0)==(p|0)){if(s=p+20|0,o=n[s>>2]|0,!o&&(s=p+16|0,o=n[s>>2]|0,!o)){a=0;break}for(;;)if(u=o+20|0,a=n[u>>2]|0,a)o=a,s=u;else if(u=o+16|0,a=n[u>>2]|0,a)o=a,s=u;else break;n[s>>2]=0,a=o;}else a=n[p+8>>2]|0,n[a+12>>2]=o,n[o+8>>2]=a,a=o;while(false);do if(l|0){if(o=n[p+28>>2]|0,s=27988+(o<<2)|0,(p|0)==(n[s>>2]|0)){if(n[s>>2]=a,!a){n[6922]=f&~(1<<o);break}}else if(O=l+16|0,n[((n[O>>2]|0)==(p|0)?O:l+20|0)>>2]=a,!a)break;n[a+24>>2]=l,o=n[p+16>>2]|0,o|0&&(n[a+16>>2]=o,n[o+24>>2]=a),o=n[p+20>>2]|0,o|0&&(n[a+20>>2]=o,n[o+24>>2]=a);}while(false);return g>>>0<16?(O=g+T|0,n[p+4>>2]=O|3,O=p+O+4|0,n[O>>2]=n[O>>2]|1):(n[p+4>>2]=T|3,n[h+4>>2]=g|1,n[h+g>>2]=g,b|0&&(u=n[6926]|0,o=b>>>3,a=27724+(o<<1<<2)|0,o=1<<o,o&C?(s=a+8|0,o=n[s>>2]|0):(n[6921]=o|C,o=a,s=a+8|0),n[s>>2]=u,n[o+12>>2]=u,n[u+8>>2]=o,n[u+12>>2]=a),n[6923]=g,n[6926]=h),O=p+8|0,S=K,O|0}else C=T;}else C=T;}else C=T;}else if(s>>>0<=4294967231)if(s=s+11|0,T=s&-8,u=n[6922]|0,u){l=0-T|0,s=s>>>8,s?T>>>0>16777215?g=31:(C=(s+1048320|0)>>>16&8,P=s<<C,p=(P+520192|0)>>>16&4,P=P<<p,g=(P+245760|0)>>>16&2,g=14-(p|C|g)+(P<<g>>>15)|0,g=T>>>(g+7|0)&1|g<<1):g=0,a=n[27988+(g<<2)>>2]|0;e:do if(!a)a=0,s=0,P=61;else for(s=0,p=T<<((g|0)==31?0:25-(g>>>1)|0),f=0;;){if(h=(n[a+4>>2]&-8)-T|0,h>>>0<l>>>0)if(h)s=a,l=h;else {s=a,l=0,P=65;break e}if(P=n[a+20>>2]|0,a=n[a+16+(p>>>31<<2)>>2]|0,f=(P|0)==0|(P|0)==(a|0)?f:P,a)p=p<<1;else {a=f,P=61;break}}while(false);if((P|0)==61){if((a|0)==0&(s|0)==0){if(s=2<<g,s=(s|0-s)&u,!s){C=T;break}C=(s&0-s)+-1|0,h=C>>>12&16,C=C>>>h,f=C>>>5&8,C=C>>>f,p=C>>>2&4,C=C>>>p,g=C>>>1&2,C=C>>>g,a=C>>>1&1,s=0,a=n[27988+((f|h|p|g|a)+(C>>>a)<<2)>>2]|0;}a?P=65:(p=s,h=l);}if((P|0)==65)for(f=a;;)if(C=(n[f+4>>2]&-8)-T|0,a=C>>>0<l>>>0,l=a?C:l,s=a?f:s,a=n[f+16>>2]|0,a||(a=n[f+20>>2]|0),a)f=a;else {p=s,h=l;break}if((p|0)!=0&&h>>>0<((n[6923]|0)-T|0)>>>0&&(b=p+T|0,b>>>0>p>>>0)){f=n[p+24>>2]|0,o=n[p+12>>2]|0;do if((o|0)==(p|0)){if(s=p+20|0,o=n[s>>2]|0,!o&&(s=p+16|0,o=n[s>>2]|0,!o)){o=0;break}for(;;)if(l=o+20|0,a=n[l>>2]|0,a)o=a,s=l;else if(l=o+16|0,a=n[l>>2]|0,a)o=a,s=l;else break;n[s>>2]=0;}else O=n[p+8>>2]|0,n[O+12>>2]=o,n[o+8>>2]=O;while(false);do if(f){if(s=n[p+28>>2]|0,a=27988+(s<<2)|0,(p|0)==(n[a>>2]|0)){if(n[a>>2]=o,!o){u=u&~(1<<s),n[6922]=u;break}}else if(O=f+16|0,n[((n[O>>2]|0)==(p|0)?O:f+20|0)>>2]=o,!o)break;n[o+24>>2]=f,s=n[p+16>>2]|0,s|0&&(n[o+16>>2]=s,n[s+24>>2]=o),s=n[p+20>>2]|0,s&&(n[o+20>>2]=s,n[s+24>>2]=o);}while(false);e:do if(h>>>0<16)O=h+T|0,n[p+4>>2]=O|3,O=p+O+4|0,n[O>>2]=n[O>>2]|1;else {if(n[p+4>>2]=T|3,n[b+4>>2]=h|1,n[b+h>>2]=h,o=h>>>3,h>>>0<256){a=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=a+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=a,s=a+8|0),n[s>>2]=b,n[o+12>>2]=b,n[b+8>>2]=o,n[b+12>>2]=a;break}if(o=h>>>8,o?h>>>0>16777215?a=31:(j=(o+1048320|0)>>>16&8,O=o<<j,R=(O+520192|0)>>>16&4,O=O<<R,a=(O+245760|0)>>>16&2,a=14-(R|j|a)+(O<<a>>>15)|0,a=h>>>(a+7|0)&1|a<<1):a=0,o=27988+(a<<2)|0,n[b+28>>2]=a,s=b+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<<a,!(u&s)){n[6922]=u|s,n[o>>2]=b,n[b+24>>2]=o,n[b+12>>2]=b,n[b+8>>2]=b;break}o=n[o>>2]|0;t:do if((n[o+4>>2]&-8|0)!=(h|0)){for(u=h<<((a|0)==31?0:25-(a>>>1)|0);a=o+16+(u>>>31<<2)|0,s=n[a>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(h|0)){o=s;break t}else u=u<<1,o=s;n[a>>2]=b,n[b+24>>2]=o,n[b+12>>2]=b,n[b+8>>2]=b;break e}while(false);j=o+8|0,O=n[j>>2]|0,n[O+12>>2]=b,n[j>>2]=b,n[b+8>>2]=O,n[b+12>>2]=o,n[b+24>>2]=0;}while(false);return O=p+8|0,S=K,O|0}else C=T;}else C=T;else C=-1;while(false);if(a=n[6923]|0,a>>>0>=C>>>0)return o=a-C|0,s=n[6926]|0,o>>>0>15?(O=s+C|0,n[6926]=O,n[6923]=o,n[O+4>>2]=o|1,n[s+a>>2]=o,n[s+4>>2]=C|3):(n[6923]=0,n[6926]=0,n[s+4>>2]=a|3,O=s+a+4|0,n[O>>2]=n[O>>2]|1),O=s+8|0,S=K,O|0;if(h=n[6924]|0,h>>>0>C>>>0)return R=h-C|0,n[6924]=R,O=n[6927]|0,j=O+C|0,n[6927]=j,n[j+4>>2]=R|1,n[O+4>>2]=C|3,O=O+8|0,S=K,O|0;if(n[7039]|0?s=n[7041]|0:(n[7041]=4096,n[7040]=4096,n[7042]=-1,n[7043]=-1,n[7044]=0,n[7032]=0,n[7039]=w&-16^1431655768,s=4096),p=C+48|0,g=C+47|0,f=s+g|0,l=0-s|0,T=f&l,T>>>0<=C>>>0||(s=n[7031]|0,s|0&&(b=n[7029]|0,w=b+T|0,w>>>0<=b>>>0|w>>>0>s>>>0)))return O=0,S=K,O|0;e:do if(n[7032]&4)o=0,P=143;else {a=n[6927]|0;t:do if(a){for(u=28132;w=n[u>>2]|0,!(w>>>0<=a>>>0&&(w+(n[u+4>>2]|0)|0)>>>0>a>>>0);)if(s=n[u+8>>2]|0,s)u=s;else {P=128;break t}if(o=f-h&l,o>>>0<2147483647)if(s=cn(o|0)|0,(s|0)==((n[u>>2]|0)+(n[u+4>>2]|0)|0)){if((s|0)!=-1){h=o,f=s,P=145;break e}}else u=s,P=136;else o=0;}else P=128;while(false);do if((P|0)==128)if(a=cn(0)|0,(a|0)!=-1&&(o=a,B=n[7040]|0,M=B+-1|0,o=((M&o|0)==0?0:(M+o&0-B)-o|0)+T|0,B=n[7029]|0,M=o+B|0,o>>>0>C>>>0&o>>>0<2147483647)){if(w=n[7031]|0,w|0&&M>>>0<=B>>>0|M>>>0>w>>>0){o=0;break}if(s=cn(o|0)|0,(s|0)==(a|0)){h=o,f=a,P=145;break e}else u=s,P=136;}else o=0;while(false);do if((P|0)==136){if(a=0-o|0,!(p>>>0>o>>>0&(o>>>0<2147483647&(u|0)!=-1)))if((u|0)==-1){o=0;break}else {h=o,f=u,P=145;break e}if(s=n[7041]|0,s=g-o+s&0-s,s>>>0>=2147483647){h=o,f=u,P=145;break e}if((cn(s|0)|0)==-1){cn(a|0)|0,o=0;break}else {h=s+o|0,f=u,P=145;break e}}while(false);n[7032]=n[7032]|4,P=143;}while(false);if((P|0)==143&&T>>>0<2147483647&&(R=cn(T|0)|0,M=cn(0)|0,D=M-R|0,H=D>>>0>(C+40|0)>>>0,!((R|0)==-1|H^1|R>>>0<M>>>0&((R|0)!=-1&(M|0)!=-1)^1))&&(h=H?D:o,f=R,P=145),(P|0)==145){o=(n[7029]|0)+h|0,n[7029]=o,o>>>0>(n[7030]|0)>>>0&&(n[7030]=o),g=n[6927]|0;e:do if(g){for(o=28132;;){if(s=n[o>>2]|0,a=n[o+4>>2]|0,(f|0)==(s+a|0)){P=154;break}if(u=n[o+8>>2]|0,u)o=u;else break}if((P|0)==154&&(j=o+4|0,(n[o+12>>2]&8|0)==0)&&f>>>0>g>>>0&s>>>0<=g>>>0){n[j>>2]=a+h,O=(n[6924]|0)+h|0,R=g+8|0,R=(R&7|0)==0?0:0-R&7,j=g+R|0,R=O-R|0,n[6927]=j,n[6924]=R,n[j+4>>2]=R|1,n[g+O+4>>2]=40,n[6928]=n[7043];break}for(f>>>0<(n[6925]|0)>>>0&&(n[6925]=f),a=f+h|0,o=28132;;){if((n[o>>2]|0)==(a|0)){P=162;break}if(s=n[o+8>>2]|0,s)o=s;else break}if((P|0)==162&&(n[o+12>>2]&8|0)==0){n[o>>2]=f,b=o+4|0,n[b>>2]=(n[b>>2]|0)+h,b=f+8|0,b=f+((b&7|0)==0?0:0-b&7)|0,o=a+8|0,o=a+((o&7|0)==0?0:0-o&7)|0,T=b+C|0,p=o-b-C|0,n[b+4>>2]=C|3;t:do if((g|0)==(o|0))O=(n[6924]|0)+p|0,n[6924]=O,n[6927]=T,n[T+4>>2]=O|1;else {if((n[6926]|0)==(o|0)){O=(n[6923]|0)+p|0,n[6923]=O,n[6926]=T,n[T+4>>2]=O|1,n[T+O>>2]=O;break}if(s=n[o+4>>2]|0,(s&3|0)==1){h=s&-8,u=s>>>3;r:do if(s>>>0<256)if(s=n[o+8>>2]|0,a=n[o+12>>2]|0,(a|0)==(s|0)){n[6921]=n[6921]&~(1<<u);break}else {n[s+12>>2]=a,n[a+8>>2]=s;break}else {f=n[o+24>>2]|0,s=n[o+12>>2]|0;do if((s|0)==(o|0)){if(a=o+16|0,u=a+4|0,s=n[u>>2]|0,s)a=u;else if(s=n[a>>2]|0,!s){s=0;break}for(;;)if(l=s+20|0,u=n[l>>2]|0,u)s=u,a=l;else if(l=s+16|0,u=n[l>>2]|0,u)s=u,a=l;else break;n[a>>2]=0;}else O=n[o+8>>2]|0,n[O+12>>2]=s,n[s+8>>2]=O;while(false);if(!f)break;a=n[o+28>>2]|0,u=27988+(a<<2)|0;do if((n[u>>2]|0)!=(o|0)){if(O=f+16|0,n[((n[O>>2]|0)==(o|0)?O:f+20|0)>>2]=s,!s)break r}else {if(n[u>>2]=s,s|0)break;n[6922]=n[6922]&~(1<<a);break r}while(false);if(n[s+24>>2]=f,a=o+16|0,u=n[a>>2]|0,u|0&&(n[s+16>>2]=u,n[u+24>>2]=s),a=n[a+4>>2]|0,!a)break;n[s+20>>2]=a,n[a+24>>2]=s;}while(false);o=o+h|0,l=h+p|0;}else l=p;if(o=o+4|0,n[o>>2]=n[o>>2]&-2,n[T+4>>2]=l|1,n[T+l>>2]=l,o=l>>>3,l>>>0<256){a=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=a+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=a,s=a+8|0),n[s>>2]=T,n[o+12>>2]=T,n[T+8>>2]=o,n[T+12>>2]=a;break}o=l>>>8;do if(!o)u=0;else {if(l>>>0>16777215){u=31;break}j=(o+1048320|0)>>>16&8,O=o<<j,R=(O+520192|0)>>>16&4,O=O<<R,u=(O+245760|0)>>>16&2,u=14-(R|j|u)+(O<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1;}while(false);if(o=27988+(u<<2)|0,n[T+28>>2]=u,s=T+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[6922]|0,a=1<<u,!(s&a)){n[6922]=s|a,n[o>>2]=T,n[T+24>>2]=o,n[T+12>>2]=T,n[T+8>>2]=T;break}o=n[o>>2]|0;r:do if((n[o+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);a=o+16+(u>>>31<<2)|0,s=n[a>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(l|0)){o=s;break r}else u=u<<1,o=s;n[a>>2]=T,n[T+24>>2]=o,n[T+12>>2]=T,n[T+8>>2]=T;break t}while(false);j=o+8|0,O=n[j>>2]|0,n[O+12>>2]=T,n[j>>2]=T,n[T+8>>2]=O,n[T+12>>2]=o,n[T+24>>2]=0;}while(false);return O=b+8|0,S=K,O|0}for(o=28132;s=n[o>>2]|0,!(s>>>0<=g>>>0&&(O=s+(n[o+4>>2]|0)|0,O>>>0>g>>>0));)o=n[o+8>>2]|0;l=O+-47|0,s=l+8|0,s=l+((s&7|0)==0?0:0-s&7)|0,l=g+16|0,s=s>>>0<l>>>0?g:s,o=s+8|0,a=h+-40|0,R=f+8|0,R=(R&7|0)==0?0:0-R&7,j=f+R|0,R=a-R|0,n[6927]=j,n[6924]=R,n[j+4>>2]=R|1,n[f+a+4>>2]=40,n[6928]=n[7043],a=s+4|0,n[a>>2]=27,n[o>>2]=n[7033],n[o+4>>2]=n[7034],n[o+8>>2]=n[7035],n[o+12>>2]=n[7036],n[7033]=f,n[7034]=h,n[7036]=0,n[7035]=o,o=s+24|0;do j=o,o=o+4|0,n[o>>2]=7;while((j+8|0)>>>0<O>>>0);if((s|0)!=(g|0)){if(f=s-g|0,n[a>>2]=n[a>>2]&-2,n[g+4>>2]=f|1,n[s>>2]=f,o=f>>>3,f>>>0<256){a=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=a+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=a,s=a+8|0),n[s>>2]=g,n[o+12>>2]=g,n[g+8>>2]=o,n[g+12>>2]=a;break}if(o=f>>>8,o?f>>>0>16777215?u=31:(j=(o+1048320|0)>>>16&8,O=o<<j,R=(O+520192|0)>>>16&4,O=O<<R,u=(O+245760|0)>>>16&2,u=14-(R|j|u)+(O<<u>>>15)|0,u=f>>>(u+7|0)&1|u<<1):u=0,a=27988+(u<<2)|0,n[g+28>>2]=u,n[g+20>>2]=0,n[l>>2]=0,o=n[6922]|0,s=1<<u,!(o&s)){n[6922]=o|s,n[a>>2]=g,n[g+24>>2]=a,n[g+12>>2]=g,n[g+8>>2]=g;break}o=n[a>>2]|0;t:do if((n[o+4>>2]&-8|0)!=(f|0)){for(u=f<<((u|0)==31?0:25-(u>>>1)|0);a=o+16+(u>>>31<<2)|0,s=n[a>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(f|0)){o=s;break t}else u=u<<1,o=s;n[a>>2]=g,n[g+24>>2]=o,n[g+12>>2]=g,n[g+8>>2]=g;break e}while(false);j=o+8|0,O=n[j>>2]|0,n[O+12>>2]=g,n[j>>2]=g,n[g+8>>2]=O,n[g+12>>2]=o,n[g+24>>2]=0;}}else O=n[6925]|0,(O|0)==0|f>>>0<O>>>0&&(n[6925]=f),n[7033]=f,n[7034]=h,n[7036]=0,n[6930]=n[7039],n[6929]=-1,n[6934]=27724,n[6933]=27724,n[6936]=27732,n[6935]=27732,n[6938]=27740,n[6937]=27740,n[6940]=27748,n[6939]=27748,n[6942]=27756,n[6941]=27756,n[6944]=27764,n[6943]=27764,n[6946]=27772,n[6945]=27772,n[6948]=27780,n[6947]=27780,n[6950]=27788,n[6949]=27788,n[6952]=27796,n[6951]=27796,n[6954]=27804,n[6953]=27804,n[6956]=27812,n[6955]=27812,n[6958]=27820,n[6957]=27820,n[6960]=27828,n[6959]=27828,n[6962]=27836,n[6961]=27836,n[6964]=27844,n[6963]=27844,n[6966]=27852,n[6965]=27852,n[6968]=27860,n[6967]=27860,n[6970]=27868,n[6969]=27868,n[6972]=27876,n[6971]=27876,n[6974]=27884,n[6973]=27884,n[6976]=27892,n[6975]=27892,n[6978]=27900,n[6977]=27900,n[6980]=27908,n[6979]=27908,n[6982]=27916,n[6981]=27916,n[6984]=27924,n[6983]=27924,n[6986]=27932,n[6985]=27932,n[6988]=27940,n[6987]=27940,n[6990]=27948,n[6989]=27948,n[6992]=27956,n[6991]=27956,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,O=h+-40|0,R=f+8|0,R=(R&7|0)==0?0:0-R&7,j=f+R|0,R=O-R|0,n[6927]=j,n[6924]=R,n[j+4>>2]=R|1,n[f+O+4>>2]=40,n[6928]=n[7043];while(false);if(o=n[6924]|0,o>>>0>C>>>0)return R=o-C|0,n[6924]=R,O=n[6927]|0,j=O+C|0,n[6927]=j,n[j+4>>2]=R|1,n[O+4>>2]=C|3,O=O+8|0,S=K,O|0}return O=Xu()|0,n[O>>2]=12,O=0,S=K,O|0}function fe(s){s=s|0;var o=0,a=0,u=0,l=0,f=0,h=0,p=0,g=0;if(s){a=s+-8|0,l=n[6925]|0,s=n[s+-4>>2]|0,o=s&-8,g=a+o|0;do if(s&1)p=a,h=a;else {if(u=n[a>>2]|0,!(s&3)||(h=a+(0-u)|0,f=u+o|0,h>>>0<l>>>0))return;if((n[6926]|0)==(h|0)){if(s=g+4|0,o=n[s>>2]|0,(o&3|0)!=3){p=h,o=f;break}n[6923]=f,n[s>>2]=o&-2,n[h+4>>2]=f|1,n[h+f>>2]=f;return}if(a=u>>>3,u>>>0<256)if(s=n[h+8>>2]|0,o=n[h+12>>2]|0,(o|0)==(s|0)){n[6921]=n[6921]&~(1<<a),p=h,o=f;break}else {n[s+12>>2]=o,n[o+8>>2]=s,p=h,o=f;break}l=n[h+24>>2]|0,s=n[h+12>>2]|0;do if((s|0)==(h|0)){if(o=h+16|0,a=o+4|0,s=n[a>>2]|0,s)o=a;else if(s=n[o>>2]|0,!s){s=0;break}for(;;)if(u=s+20|0,a=n[u>>2]|0,a)s=a,o=u;else if(u=s+16|0,a=n[u>>2]|0,a)s=a,o=u;else break;n[o>>2]=0;}else p=n[h+8>>2]|0,n[p+12>>2]=s,n[s+8>>2]=p;while(false);if(l){if(o=n[h+28>>2]|0,a=27988+(o<<2)|0,(n[a>>2]|0)==(h|0)){if(n[a>>2]=s,!s){n[6922]=n[6922]&~(1<<o),p=h,o=f;break}}else if(p=l+16|0,n[((n[p>>2]|0)==(h|0)?p:l+20|0)>>2]=s,!s){p=h,o=f;break}n[s+24>>2]=l,o=h+16|0,a=n[o>>2]|0,a|0&&(n[s+16>>2]=a,n[a+24>>2]=s),o=n[o+4>>2]|0,o?(n[s+20>>2]=o,n[o+24>>2]=s,p=h,o=f):(p=h,o=f);}else p=h,o=f;}while(false);if(!(h>>>0>=g>>>0)&&(s=g+4|0,u=n[s>>2]|0,!!(u&1))){if(u&2)n[s>>2]=u&-2,n[p+4>>2]=o|1,n[h+o>>2]=o,l=o;else {if((n[6927]|0)==(g|0)){if(g=(n[6924]|0)+o|0,n[6924]=g,n[6927]=p,n[p+4>>2]=g|1,(p|0)!=(n[6926]|0))return;n[6926]=0,n[6923]=0;return}if((n[6926]|0)==(g|0)){g=(n[6923]|0)+o|0,n[6923]=g,n[6926]=h,n[p+4>>2]=g|1,n[h+g>>2]=g;return}l=(u&-8)+o|0,a=u>>>3;do if(u>>>0<256)if(o=n[g+8>>2]|0,s=n[g+12>>2]|0,(s|0)==(o|0)){n[6921]=n[6921]&~(1<<a);break}else {n[o+12>>2]=s,n[s+8>>2]=o;break}else {f=n[g+24>>2]|0,s=n[g+12>>2]|0;do if((s|0)==(g|0)){if(o=g+16|0,a=o+4|0,s=n[a>>2]|0,s)o=a;else if(s=n[o>>2]|0,!s){a=0;break}for(;;)if(u=s+20|0,a=n[u>>2]|0,a)s=a,o=u;else if(u=s+16|0,a=n[u>>2]|0,a)s=a,o=u;else break;n[o>>2]=0,a=s;}else a=n[g+8>>2]|0,n[a+12>>2]=s,n[s+8>>2]=a,a=s;while(false);if(f|0){if(s=n[g+28>>2]|0,o=27988+(s<<2)|0,(n[o>>2]|0)==(g|0)){if(n[o>>2]=a,!a){n[6922]=n[6922]&~(1<<s);break}}else if(u=f+16|0,n[((n[u>>2]|0)==(g|0)?u:f+20|0)>>2]=a,!a)break;n[a+24>>2]=f,s=g+16|0,o=n[s>>2]|0,o|0&&(n[a+16>>2]=o,n[o+24>>2]=a),s=n[s+4>>2]|0,s|0&&(n[a+20>>2]=s,n[s+24>>2]=a);}}while(false);if(n[p+4>>2]=l|1,n[h+l>>2]=l,(p|0)==(n[6926]|0)){n[6923]=l;return}}if(s=l>>>3,l>>>0<256){a=27724+(s<<1<<2)|0,o=n[6921]|0,s=1<<s,o&s?(o=a+8|0,s=n[o>>2]|0):(n[6921]=o|s,s=a,o=a+8|0),n[o>>2]=p,n[s+12>>2]=p,n[p+8>>2]=s,n[p+12>>2]=a;return}s=l>>>8,s?l>>>0>16777215?u=31:(h=(s+1048320|0)>>>16&8,g=s<<h,f=(g+520192|0)>>>16&4,g=g<<f,u=(g+245760|0)>>>16&2,u=14-(f|h|u)+(g<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1):u=0,s=27988+(u<<2)|0,n[p+28>>2]=u,n[p+20>>2]=0,n[p+16>>2]=0,o=n[6922]|0,a=1<<u;e:do if(!(o&a))n[6922]=o|a,n[s>>2]=p,n[p+24>>2]=s,n[p+12>>2]=p,n[p+8>>2]=p;else {s=n[s>>2]|0;t:do if((n[s+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);a=s+16+(u>>>31<<2)|0,o=n[a>>2]|0,!!o;)if((n[o+4>>2]&-8|0)==(l|0)){s=o;break t}else u=u<<1,s=o;n[a>>2]=p,n[p+24>>2]=s,n[p+12>>2]=p,n[p+8>>2]=p;break e}while(false);h=s+8|0,g=n[h>>2]|0,n[g+12>>2]=p,n[h>>2]=p,n[p+8>>2]=g,n[p+12>>2]=s,n[p+24>>2]=0;}while(false);if(g=(n[6929]|0)+-1|0,n[6929]=g,!(g|0)){for(s=28140;s=n[s>>2]|0,s;)s=s+8|0;n[6929]=-1;}}}}function zt(s,o){s=s|0,o=o|0;var a=0;return s?(a=Zt(o,s)|0,(o|s)>>>0>65535&&(a=((a>>>0)/(s>>>0)|0|0)==(o|0)?a:-1)):a=0,s=lt(a)|0,!s||!(n[s+-4>>2]&3)||an(s|0,0,a|0)|0,s|0}function _T(s,o){s=s|0,o=o|0;var a=0,u=0;return s?o>>>0>4294967231?(o=Xu()|0,n[o>>2]=12,o=0,o|0):(a=bT(s+-8|0,o>>>0<11?16:o+11&-8)|0,a|0?(o=a+8|0,o|0):(a=lt(o)|0,a?(u=n[s+-4>>2]|0,u=(u&-8)-((u&3|0)==0?8:4)|0,xr(a|0,s|0,(u>>>0<o>>>0?u:o)|0)|0,fe(s),o=a,o|0):(o=0,o|0))):(o=lt(o)|0,o|0)}function bT(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(b=s+4|0,C=n[b>>2]|0,a=C&-8,p=s+a|0,!(C&3))return o>>>0<256?(s=0,s|0):(a>>>0>=(o+4|0)>>>0&&(a-o|0)>>>0<=n[7041]<<1>>>0||(s=0),s|0);if(a>>>0>=o>>>0)return a=a-o|0,a>>>0<=15||(T=s+o|0,n[b>>2]=C&1|o|2,n[T+4>>2]=a|3,C=p+4|0,n[C>>2]=n[C>>2]|1,$u(T,a)),s|0;if((n[6927]|0)==(p|0))return T=(n[6924]|0)+a|0,a=T-o|0,u=s+o|0,T>>>0<=o>>>0?(s=0,s|0):(n[b>>2]=C&1|o|2,n[u+4>>2]=a|1,n[6927]=u,n[6924]=a,s|0);if((n[6926]|0)==(p|0))return u=(n[6923]|0)+a|0,u>>>0<o>>>0?(s=0,s|0):(a=u-o|0,a>>>0>15?(T=s+o|0,u=s+u|0,n[b>>2]=C&1|o|2,n[T+4>>2]=a|1,n[u>>2]=a,u=u+4|0,n[u>>2]=n[u>>2]&-2,u=T):(n[b>>2]=C&1|u|2,u=s+u+4|0,n[u>>2]=n[u>>2]|1,u=0,a=0),n[6923]=a,n[6926]=u,s|0);if(u=n[p+4>>2]|0,u&2|0||(g=(u&-8)+a|0,g>>>0<o>>>0))return s=0,s|0;T=g-o|0,l=u>>>3;do if(u>>>0<256)if(u=n[p+8>>2]|0,a=n[p+12>>2]|0,(a|0)==(u|0)){n[6921]=n[6921]&~(1<<l);break}else {n[u+12>>2]=a,n[a+8>>2]=u;break}else {h=n[p+24>>2]|0,a=n[p+12>>2]|0;do if((a|0)==(p|0)){if(u=p+16|0,l=u+4|0,a=n[l>>2]|0,a)u=l;else if(a=n[u>>2]|0,!a){l=0;break}for(;;)if(f=a+20|0,l=n[f>>2]|0,l)a=l,u=f;else if(f=a+16|0,l=n[f>>2]|0,l)a=l,u=f;else break;n[u>>2]=0,l=a;}else l=n[p+8>>2]|0,n[l+12>>2]=a,n[a+8>>2]=l,l=a;while(false);if(h|0){if(a=n[p+28>>2]|0,u=27988+(a<<2)|0,(n[u>>2]|0)==(p|0)){if(n[u>>2]=l,!l){n[6922]=n[6922]&~(1<<a);break}}else if(f=h+16|0,n[((n[f>>2]|0)==(p|0)?f:h+20|0)>>2]=l,!l)break;n[l+24>>2]=h,a=p+16|0,u=n[a>>2]|0,u|0&&(n[l+16>>2]=u,n[u+24>>2]=l),a=n[a+4>>2]|0,a|0&&(n[l+20>>2]=a,n[a+24>>2]=l);}}while(false);return T>>>0<16?(n[b>>2]=C&1|g|2,C=s+g+4|0,n[C>>2]=n[C>>2]|1,s|0):(p=s+o|0,n[b>>2]=C&1|o|2,n[p+4>>2]=T|3,C=s+g+4|0,n[C>>2]=n[C>>2]|1,$u(p,T),s|0)}function $u(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0,h=0,p=0;p=s+o|0,a=n[s+4>>2]|0;do if(a&1)h=s;else {if(l=n[s>>2]|0,!(a&3))return;if(h=s+(0-l)|0,o=l+o|0,(n[6926]|0)==(h|0)){if(s=p+4|0,a=n[s>>2]|0,(a&3|0)!=3)break;n[6923]=o,n[s>>2]=a&-2,n[h+4>>2]=o|1,n[p>>2]=o;return}if(u=l>>>3,l>>>0<256)if(s=n[h+8>>2]|0,a=n[h+12>>2]|0,(a|0)==(s|0)){n[6921]=n[6921]&~(1<<u);break}else {n[s+12>>2]=a,n[a+8>>2]=s;break}f=n[h+24>>2]|0,s=n[h+12>>2]|0;do if((s|0)==(h|0)){if(a=h+16|0,u=a+4|0,s=n[u>>2]|0,s)a=u;else if(s=n[a>>2]|0,!s){s=0;break}for(;;)if(l=s+20|0,u=n[l>>2]|0,u)s=u,a=l;else if(l=s+16|0,u=n[l>>2]|0,u)s=u,a=l;else break;n[a>>2]=0;}else l=n[h+8>>2]|0,n[l+12>>2]=s,n[s+8>>2]=l;while(false);if(f){if(a=n[h+28>>2]|0,u=27988+(a<<2)|0,(n[u>>2]|0)==(h|0)){if(n[u>>2]=s,!s){n[6922]=n[6922]&~(1<<a);break}}else if(l=f+16|0,n[((n[l>>2]|0)==(h|0)?l:f+20|0)>>2]=s,!s)break;n[s+24>>2]=f,a=h+16|0,u=n[a>>2]|0,u|0&&(n[s+16>>2]=u,n[u+24>>2]=s),a=n[a+4>>2]|0,a&&(n[s+20>>2]=a,n[a+24>>2]=s);}}while(false);if(s=p+4|0,u=n[s>>2]|0,u&2)n[s>>2]=u&-2,n[h+4>>2]=o|1,n[h+o>>2]=o,l=o;else {if((n[6927]|0)==(p|0)){if(p=(n[6924]|0)+o|0,n[6924]=p,n[6927]=h,n[h+4>>2]=p|1,(h|0)!=(n[6926]|0))return;n[6926]=0,n[6923]=0;return}if((n[6926]|0)==(p|0)){p=(n[6923]|0)+o|0,n[6923]=p,n[6926]=h,n[h+4>>2]=p|1,n[h+p>>2]=p;return}l=(u&-8)+o|0,a=u>>>3;do if(u>>>0<256)if(s=n[p+8>>2]|0,o=n[p+12>>2]|0,(o|0)==(s|0)){n[6921]=n[6921]&~(1<<a);break}else {n[s+12>>2]=o,n[o+8>>2]=s;break}else {f=n[p+24>>2]|0,o=n[p+12>>2]|0;do if((o|0)==(p|0)){if(s=p+16|0,a=s+4|0,o=n[a>>2]|0,o)s=a;else if(o=n[s>>2]|0,!o){a=0;break}for(;;)if(u=o+20|0,a=n[u>>2]|0,a)o=a,s=u;else if(u=o+16|0,a=n[u>>2]|0,a)o=a,s=u;else break;n[s>>2]=0,a=o;}else a=n[p+8>>2]|0,n[a+12>>2]=o,n[o+8>>2]=a,a=o;while(false);if(f|0){if(o=n[p+28>>2]|0,s=27988+(o<<2)|0,(n[s>>2]|0)==(p|0)){if(n[s>>2]=a,!a){n[6922]=n[6922]&~(1<<o);break}}else if(u=f+16|0,n[((n[u>>2]|0)==(p|0)?u:f+20|0)>>2]=a,!a)break;n[a+24>>2]=f,o=p+16|0,s=n[o>>2]|0,s|0&&(n[a+16>>2]=s,n[s+24>>2]=a),o=n[o+4>>2]|0,o|0&&(n[a+20>>2]=o,n[o+24>>2]=a);}}while(false);if(n[h+4>>2]=l|1,n[h+l>>2]=l,(h|0)==(n[6926]|0)){n[6923]=l;return}}if(o=l>>>3,l>>>0<256){a=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=a+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=a,s=a+8|0),n[s>>2]=h,n[o+12>>2]=h,n[h+8>>2]=o,n[h+12>>2]=a;return}if(o=l>>>8,o?l>>>0>16777215?u=31:(f=(o+1048320|0)>>>16&8,p=o<<f,a=(p+520192|0)>>>16&4,p=p<<a,u=(p+245760|0)>>>16&2,u=14-(a|f|u)+(p<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1):u=0,o=27988+(u<<2)|0,n[h+28>>2]=u,n[h+20>>2]=0,n[h+16>>2]=0,s=n[6922]|0,a=1<<u,!(s&a)){n[6922]=s|a,n[o>>2]=h,n[h+24>>2]=o,n[h+12>>2]=h,n[h+8>>2]=h;return}o=n[o>>2]|0;e:do if((n[o+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);a=o+16+(u>>>31<<2)|0,s=n[a>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(l|0)){o=s;break e}else u=u<<1,o=s;n[a>>2]=h,n[h+24>>2]=o,n[h+12>>2]=h,n[h+8>>2]=h;return}while(false);f=o+8|0,p=n[f>>2]|0,n[p+12>>2]=h,n[f>>2]=h,n[h+8>>2]=p,n[h+12>>2]=o,n[h+24>>2]=0;}function ce(s,o,a,u){return s=s|0,o=o|0,a=a|0,u=u|0,a=s+a>>>0,Ie(o+u+(a>>>0<s>>>0|0)>>>0|0),a|0|0}function Bt(s,o,a,u){return s=s|0,o=o|0,a=a|0,u=u|0,u=o-u-(a>>>0>s>>>0|0)>>>0,Ie(u|0),s-a>>>0|0|0}function ef(s){return s=s|0,(s?31-(zr(s^s-1)|0)|0:32)|0}function qa(s,o,a,u,l){s=s|0,o=o|0,a=a|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(b=s,g=o,T=g,h=a,w=u,p=w,!T)return f=(l|0)!=0,p?f?(n[l>>2]=s|0,n[l+4>>2]=o&0,w=0,l=0,Ie(w|0),l|0):(w=0,l=0,Ie(w|0),l|0):(f&&(n[l>>2]=(b>>>0)%(h>>>0),n[l+4>>2]=0),w=0,l=(b>>>0)/(h>>>0)>>>0,Ie(w|0),l|0);f=(p|0)==0;do if(h){if(!f){if(f=(zr(p|0)|0)-(zr(T|0)|0)|0,f>>>0<=31){C=f+1|0,p=31-f|0,o=f-31>>31,h=C,s=b>>>(C>>>0)&o|T<<p,o=T>>>(C>>>0)&o,f=0,p=b<<p;break}return l?(n[l>>2]=s|0,n[l+4>>2]=g|o&0,w=0,l=0,Ie(w|0),l|0):(w=0,l=0,Ie(w|0),l|0)}if(f=h-1|0,f&h|0){p=(zr(h|0)|0)+33-(zr(T|0)|0)|0,M=64-p|0,C=32-p|0,g=C>>31,B=p-32|0,o=B>>31,h=p,s=C-1>>31&T>>>(B>>>0)|(T<<C|b>>>(p>>>0))&o,o=o&T>>>(p>>>0),f=b<<M&g,p=(T<<M|b>>>(B>>>0))&g|b<<C&p-33>>31;break}return l|0&&(n[l>>2]=f&b,n[l+4>>2]=0),(h|0)==1?(B=g|o&0,M=s|0|0,Ie(B|0),M|0):(M=ef(h|0)|0,B=T>>>(M>>>0)|0,M=T<<32-M|b>>>(M>>>0)|0,Ie(B|0),M|0)}else {if(f)return l|0&&(n[l>>2]=(T>>>0)%(h>>>0),n[l+4>>2]=0),B=0,M=(T>>>0)/(h>>>0)>>>0,Ie(B|0),M|0;if(!b)return l|0&&(n[l>>2]=0,n[l+4>>2]=(T>>>0)%(p>>>0)),B=0,M=(T>>>0)/(p>>>0)>>>0,Ie(B|0),M|0;if(f=p-1|0,!(f&p))return l|0&&(n[l>>2]=s|0,n[l+4>>2]=f&T|o&0),B=0,M=T>>>((ef(p|0)|0)>>>0),Ie(B|0),M|0;if(f=(zr(p|0)|0)-(zr(T|0)|0)|0,f>>>0<=30){o=f+1|0,p=31-f|0,h=o,s=T<<p|b>>>(o>>>0),o=T>>>(o>>>0),f=0,p=b<<p;break}return l?(n[l>>2]=s|0,n[l+4>>2]=g|o&0,B=0,M=0,Ie(B|0),M|0):(B=0,M=0,Ie(B|0),M|0)}while(false);if(!h)T=p,g=0,p=0;else {C=a|0|0,b=w|u&0,T=ce(C|0,b|0,-1,-1)|0,a=I()|0,g=p,p=0;do u=g,g=f>>>31|g<<1,f=p|f<<1,u=s<<1|u>>>31|0,w=s>>>31|o<<1|0,Bt(T|0,a|0,u|0,w|0)|0,M=I()|0,B=M>>31|((M|0)<0?-1:0)<<1,p=B&1,s=Bt(u|0,w|0,B&C|0,(((M|0)<0?-1:0)>>31|((M|0)<0?-1:0)<<1)&b|0)|0,o=I()|0,h=h-1|0;while((h|0)!=0);T=g,g=0;}return h=0,l|0&&(n[l>>2]=s,n[l+4>>2]=o),B=(f|0)>>>31|(T|h)<<1|(h<<1|f>>>31)&0|g,M=(f<<1|0)&-2|p,Ie(B|0),M|0}function sn(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;return T=o>>31|((o|0)<0?-1:0)<<1,g=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,f=u>>31|((u|0)<0?-1:0)<<1,l=((u|0)<0?-1:0)>>31|((u|0)<0?-1:0)<<1,p=Bt(T^s|0,g^o|0,T|0,g|0)|0,h=I()|0,s=f^T,o=l^g,Bt((qa(p,h,Bt(f^a|0,l^u|0,f|0,l|0)|0,I()|0,0)|0)^s|0,(I()|0)^o|0,s|0,o|0)|0}function ET(s,o){s=s|0,o=o|0;var a=0,u=0,l=0,f=0;return f=s&65535,l=o&65535,a=Zt(l,f)|0,u=s>>>16,s=(a>>>16)+(Zt(l,u)|0)|0,l=o>>>16,o=Zt(l,f)|0,Ie((s>>>16)+(Zt(l,u)|0)+(((s&65535)+o|0)>>>16)|0),s+o<<16|a&65535|0|0}function ut(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0;return l=s,f=a,a=ET(l,f)|0,s=I()|0,Ie((Zt(o,f)|0)+(Zt(u,l)|0)+s|s&0|0),a|0|0|0}function on(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;return l=S,S=S+16|0,p=l|0,h=o>>31|((o|0)<0?-1:0)<<1,f=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,T=u>>31|((u|0)<0?-1:0)<<1,g=((u|0)<0?-1:0)>>31|((u|0)<0?-1:0)<<1,s=Bt(h^s|0,f^o|0,h|0,f|0)|0,o=I()|0,qa(s,o,Bt(T^a|0,g^u|0,T|0,g|0)|0,I()|0,p)|0,u=Bt(n[p>>2]^h|0,n[p+4>>2]^f|0,h|0,f|0)|0,a=I()|0,S=l,Ie(a|0),u|0}function Jr(s,o,a,u){s=s|0,o=o|0,a=a|0,u=u|0;var l=0,f=0;return f=S,S=S+16|0,l=f|0,qa(s,o,a,u,l)|0,S=f,Ie(n[l+4>>2]|0),n[l>>2]|0|0}function tf(s,o,a){return s=s|0,o=o|0,a=a|0,(a|0)<32?(Ie(o>>a|0),s>>>a|(o&(1<<a)-1)<<32-a):(Ie(((o|0)<0?-1:0)|0),o>>a-32|0)}function te(s,o,a){return s=s|0,o=o|0,a=a|0,(a|0)<32?(Ie(o>>>a|0),s>>>a|(o&(1<<a)-1)<<32-a):(Ie(0),o>>>a-32|0)}function oe(s,o,a){return s=s|0,o=o|0,a=a|0,(a|0)<32?(Ie(o<<a|(s&(1<<a)-1<<32-a)>>>32-a|0),s<<a):(Ie(s<<a-32|0),0)}function Ka(s,o,a){return s=s|0,o=o|0,o=zr(o)|0,(o|0)==32&&(o=o+(zr(s)|0)|0),Ie(0),o|0}function rf(s,o){return s=+s,o=+o,s!=s?+o:o!=o?+s:+Vg(+s,+o)}function as(s,o){return s=+s,o=+o,s!=s?+o:o!=o?+s:+Ca(+s,+o)}function cs(s){return s=+s,s>=0?+Mt(s+.5):+Yn(s-.5)}function xr(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0;if((a|0)>=8192)return zg(s|0,o|0,a|0)|0,s|0;if(f=s|0,l=s+a|0,(s&3)==(o&3)){for(;s&3;){if(!a)return f|0;Z[s>>0]=Z[o>>0]|0,s=s+1|0,o=o+1|0,a=a-1|0;}for(a=l&-4|0,u=a-64|0;(s|0)<=(u|0);)n[s>>2]=n[o>>2],n[s+4>>2]=n[o+4>>2],n[s+8>>2]=n[o+8>>2],n[s+12>>2]=n[o+12>>2],n[s+16>>2]=n[o+16>>2],n[s+20>>2]=n[o+20>>2],n[s+24>>2]=n[o+24>>2],n[s+28>>2]=n[o+28>>2],n[s+32>>2]=n[o+32>>2],n[s+36>>2]=n[o+36>>2],n[s+40>>2]=n[o+40>>2],n[s+44>>2]=n[o+44>>2],n[s+48>>2]=n[o+48>>2],n[s+52>>2]=n[o+52>>2],n[s+56>>2]=n[o+56>>2],n[s+60>>2]=n[o+60>>2],s=s+64|0,o=o+64|0;for(;(s|0)<(a|0);)n[s>>2]=n[o>>2],s=s+4|0,o=o+4|0;}else for(a=l-4|0;(s|0)<(a|0);)Z[s>>0]=Z[o>>0]|0,Z[s+1>>0]=Z[o+1>>0]|0,Z[s+2>>0]=Z[o+2>>0]|0,Z[s+3>>0]=Z[o+3>>0]|0,s=s+4|0,o=o+4|0;for(;(s|0)<(l|0);)Z[s>>0]=Z[o>>0]|0,s=s+1|0,o=o+1|0;return f|0}function Xa(s,o,a){s=s|0,o=o|0,a=a|0;var u=0;if((o|0)<(s|0)&(s|0)<(o+a|0)){for(u=s,o=o+a|0,s=s+a|0;(a|0)>0;)s=s-1|0,o=o-1|0,a=a-1|0,Z[s>>0]=Z[o>>0]|0;s=u;}else xr(s,o,a)|0;return s|0}function an(s,o,a){s=s|0,o=o|0,a=a|0;var u=0,l=0,f=0,h=0;if(f=s+a|0,o=o&255,(a|0)>=67){for(;s&3;)Z[s>>0]=o,s=s+1|0;for(u=f&-4|0,h=o|o<<8|o<<16|o<<24,l=u-64|0;(s|0)<=(l|0);)n[s>>2]=h,n[s+4>>2]=h,n[s+8>>2]=h,n[s+12>>2]=h,n[s+16>>2]=h,n[s+20>>2]=h,n[s+24>>2]=h,n[s+28>>2]=h,n[s+32>>2]=h,n[s+36>>2]=h,n[s+40>>2]=h,n[s+44>>2]=h,n[s+48>>2]=h,n[s+52>>2]=h,n[s+56>>2]=h,n[s+60>>2]=h,s=s+64|0;for(;(s|0)<(u|0);)n[s>>2]=h,s=s+4|0;}for(;(s|0)<(f|0);)Z[s>>0]=o,s=s+1|0;return f-a|0}function nf(s){return s=+s,s>=0?+Mt(s+.5):+Yn(s-.5)}function cn(s){s=s|0;var o=0,a=0,u=0;return u=Qg()|0,a=n[Wt>>2]|0,o=a+s|0,(s|0)>0&(o|0)<(a|0)|(o|0)<0?(qg(o|0)|0,yu(12),-1):(o|0)>(u|0)&&!(Jg(o|0)|0)?(yu(12),-1):(n[Wt>>2]=o,a|0)}function xT(s,o,a){return s=s|0,o=o|0,a=a|0,ln[s&3](o|0,a|0)|0}function CT(s,o){return jg(0),0}var ln=[CT,_y,by,Ey];return {___divdi3:sn,___muldi3:ut,___remdi3:on,___uremdi3:Jr,_areNeighborCells:xy,_bitshift64Ashr:tf,_bitshift64Lshr:te,_bitshift64Shl:oe,_calloc:zt,_cellAreaKm2:sy,_cellAreaM2:oy,_cellAreaRads2:iy,_cellToBoundary:Bn,_cellToCenterChild:Nu,_cellToChildPos:jy,_cellToChildren:Py,_cellToChildrenSize:ti,_cellToLatLng:$n,_cellToLocalIj:tT,_cellToParent:Pa,_cellToVertex:dr,_cellToVertexes:yT,_cellsToDirectedEdge:Cy,_cellsToLinkedMultiPolygon:Ay,_childPosToCell:Qy,_compactCells:Dy,_constructCell:Ly,_destroyLinkedMultiPolygon:$y,_directedEdgeToBoundary:$A,_directedEdgeToCells:vy,_edgeLengthKm:Wy,_edgeLengthM:Zy,_edgeLengthRads:Yy,_emscripten_replace_memory:Kg,_free:fe,_getBaseCellNumber:Pu,_getDirectedEdgeDestination:By,_getDirectedEdgeOrigin:wy,_getHexagonAreaAvgKm2:ku,_getHexagonAreaAvgM2:qy,_getHexagonEdgeLengthAvgKm:Ky,_getHexagonEdgeLengthAvgM:Xy,_getIcosahedronFaces:Ou,_getIndexDigit:Fy,_getNumCells:ts,_getPentagons:ka,_getRes0Cells:fy,_getResolution:La,_greatCircleDistanceKm:ni,_greatCircleDistanceM:Jy,_greatCircleDistanceRads:zy,_gridDisk:Tu,_gridDiskDistances:_u,_gridDistance:Va,_gridPathCells:AT,_gridPathCellsSize:nT,_gridRing:ey,_gridRingUnsafe:Eu,_i64Add:ce,_i64Subtract:Bt,_isPentagon:et,_isResClassIII:Gy,_isValidCell:es,_isValidDirectedEdge:Iu,_isValidIndex:Ry,_isValidVertex:Ku,_latLngToCell:Oa,_llvm_ctlz_i64:Ka,_llvm_maxnum_f64:rf,_llvm_minnum_f64:as,_llvm_round_f64:cs,_localIjToCell:rT,_malloc:lt,_maxFaceCount:Hy,_maxGridDiskSize:$g,_maxPolygonToCellsSize:ry,_maxPolygonToCellsSizeExperimental:oT,_memcpy:xr,_memmove:Xa,_memset:an,_originToDirectedEdges:Sa,_pentagonCount:Vy,_polygonToCells:ny,_polygonToCellsExperimental:sT,_readInt64AsDoubleFromPointer:pT,_res0CellCount:uy,_reverseDirectedEdge:Fu,_round:nf,_sbrk:cn,_sizeOfCellBoundary:lT,_sizeOfCoordIJ:dT,_sizeOfGeoLoop:uT,_sizeOfGeoPolygon:fT,_sizeOfH3Index:aT,_sizeOfLatLng:cT,_sizeOfLinkedGeoPolygon:hT,_uncompactCells:Ny,_uncompactCellsSize:Oy,_vertexToLatLng:TT,dynCall_iii:xT,establishStackSpace:Zg,stackAlloc:Xg,stackRestore:Wg,stackSave:Yg}})(Ng,Og,Se);e.___divdi3=ie.___divdi3;e.___muldi3=ie.___muldi3;e.___remdi3=ie.___remdi3;e.___uremdi3=ie.___uremdi3;e._areNeighborCells=ie._areNeighborCells;e._bitshift64Ashr=ie._bitshift64Ashr;e._bitshift64Lshr=ie._bitshift64Lshr;e._bitshift64Shl=ie._bitshift64Shl;e._calloc=ie._calloc;e._cellAreaKm2=ie._cellAreaKm2;e._cellAreaM2=ie._cellAreaM2;e._cellAreaRads2=ie._cellAreaRads2;e._cellToBoundary=ie._cellToBoundary;e._cellToCenterChild=ie._cellToCenterChild;e._cellToChildPos=ie._cellToChildPos;e._cellToChildren=ie._cellToChildren;e._cellToChildrenSize=ie._cellToChildrenSize;e._cellToLatLng=ie._cellToLatLng;e._cellToLocalIj=ie._cellToLocalIj;e._cellToParent=ie._cellToParent;e._cellToVertex=ie._cellToVertex;e._cellToVertexes=ie._cellToVertexes;e._cellsToDirectedEdge=ie._cellsToDirectedEdge;e._cellsToLinkedMultiPolygon=ie._cellsToLinkedMultiPolygon;e._childPosToCell=ie._childPosToCell;e._compactCells=ie._compactCells;e._constructCell=ie._constructCell;e._destroyLinkedMultiPolygon=ie._destroyLinkedMultiPolygon;e._directedEdgeToBoundary=ie._directedEdgeToBoundary;e._directedEdgeToCells=ie._directedEdgeToCells;e._edgeLengthKm=ie._edgeLengthKm;e._edgeLengthM=ie._edgeLengthM;e._edgeLengthRads=ie._edgeLengthRads;var Gg=e._emscripten_replace_memory=ie._emscripten_replace_memory;e._free=ie._free;e._getBaseCellNumber=ie._getBaseCellNumber;e._getDirectedEdgeDestination=ie._getDirectedEdgeDestination;e._getDirectedEdgeOrigin=ie._getDirectedEdgeOrigin;e._getHexagonAreaAvgKm2=ie._getHexagonAreaAvgKm2;e._getHexagonAreaAvgM2=ie._getHexagonAreaAvgM2;e._getHexagonEdgeLengthAvgKm=ie._getHexagonEdgeLengthAvgKm;e._getHexagonEdgeLengthAvgM=ie._getHexagonEdgeLengthAvgM;e._getIcosahedronFaces=ie._getIcosahedronFaces;e._getIndexDigit=ie._getIndexDigit;e._getNumCells=ie._getNumCells;e._getPentagons=ie._getPentagons;e._getRes0Cells=ie._getRes0Cells;e._getResolution=ie._getResolution;e._greatCircleDistanceKm=ie._greatCircleDistanceKm;e._greatCircleDistanceM=ie._greatCircleDistanceM;e._greatCircleDistanceRads=ie._greatCircleDistanceRads;e._gridDisk=ie._gridDisk;e._gridDiskDistances=ie._gridDiskDistances;e._gridDistance=ie._gridDistance;e._gridPathCells=ie._gridPathCells;e._gridPathCellsSize=ie._gridPathCellsSize;e._gridRing=ie._gridRing;e._gridRingUnsafe=ie._gridRingUnsafe;e._i64Add=ie._i64Add;e._i64Subtract=ie._i64Subtract;e._isPentagon=ie._isPentagon;e._isResClassIII=ie._isResClassIII;e._isValidCell=ie._isValidCell;e._isValidDirectedEdge=ie._isValidDirectedEdge;e._isValidIndex=ie._isValidIndex;e._isValidVertex=ie._isValidVertex;e._latLngToCell=ie._latLngToCell;e._llvm_ctlz_i64=ie._llvm_ctlz_i64;e._llvm_maxnum_f64=ie._llvm_maxnum_f64;e._llvm_minnum_f64=ie._llvm_minnum_f64;e._llvm_round_f64=ie._llvm_round_f64;e._localIjToCell=ie._localIjToCell;e._malloc=ie._malloc;e._maxFaceCount=ie._maxFaceCount;e._maxGridDiskSize=ie._maxGridDiskSize;e._maxPolygonToCellsSize=ie._maxPolygonToCellsSize;e._maxPolygonToCellsSizeExperimental=ie._maxPolygonToCellsSizeExperimental;e._memcpy=ie._memcpy;e._memmove=ie._memmove;e._memset=ie._memset;e._originToDirectedEdges=ie._originToDirectedEdges;e._pentagonCount=ie._pentagonCount;e._polygonToCells=ie._polygonToCells;e._polygonToCellsExperimental=ie._polygonToCellsExperimental;e._readInt64AsDoubleFromPointer=ie._readInt64AsDoubleFromPointer;e._res0CellCount=ie._res0CellCount;e._reverseDirectedEdge=ie._reverseDirectedEdge;e._round=ie._round;e._sbrk=ie._sbrk;e._sizeOfCellBoundary=ie._sizeOfCellBoundary;e._sizeOfCoordIJ=ie._sizeOfCoordIJ;e._sizeOfGeoLoop=ie._sizeOfGeoLoop;e._sizeOfGeoPolygon=ie._sizeOfGeoPolygon;e._sizeOfH3Index=ie._sizeOfH3Index;e._sizeOfLatLng=ie._sizeOfLatLng;e._sizeOfLinkedGeoPolygon=ie._sizeOfLinkedGeoPolygon;e._uncompactCells=ie._uncompactCells;e._uncompactCellsSize=ie._uncompactCellsSize;e._vertexToLatLng=ie._vertexToLatLng;e.establishStackSpace=ie.establishStackSpace;var hu=e.stackAlloc=ie.stackAlloc,kg=e.stackRestore=ie.stackRestore,Ug=e.stackSave=ie.stackSave;e.dynCall_iii=ie.dynCall_iii;if(e.asm=ie,e.cwrap=_e,e.setValue=N,e.getValue=U,Qr){au(Qr)||(Qr=d(Qr));{Cg();var Ea=function(J){J.byteLength&&(J=new Uint8Array(J)),ke.set(J,F),e.memoryInitializerRequest&&delete e.memoryInitializerRequest.response,wg();},du=function(){m(Qr,Ea,function(){throw "could not load memory initializer "+Qr});},pu=ba(Qr);if(pu)Ea(pu.buffer);else if(e.memoryInitializerRequest){var mu=function(){var J=e.memoryInitializerRequest,re=J.response;if(J.status!==200&&J.status!==0){var pe=ba(e.memoryInitializerRequestURL);if(pe)re=pe.buffer;else {console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+J.status+", retrying "+Qr),du();return}}Ea(re);};e.memoryInitializerRequest.response?setTimeout(mu,0):e.memoryInitializerRequest.addEventListener("load",mu);}else du();}}var Yi;WA=function J(){Yi||xa(),Yi||(WA=J);};function xa(J){if(xn>0||(dg(),xn>0))return;function re(){Yi||(Yi=true,!q&&(pg(),mg(),e.onRuntimeInitialized&&e.onRuntimeInitialized(),gg()));}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("");},1),re();},1)):re();}e.run=xa;function Cn(J){throw e.onAbort&&e.onAbort(J),J+="",y(J),_(J),q=true,"abort("+J+"). Build with -s ASSERTIONS=1 for more info."}if(e.abort=Cn,e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return xa(),t})(typeof ze=="object"?ze:{}),Ce="number",xe=Ce,hA=Ce,we=Ce,Be=Ce,Ft=Ce,ye=Ce,ex=[["sizeOfH3Index",Ce],["sizeOfLatLng",Ce],["sizeOfCellBoundary",Ce],["sizeOfGeoLoop",Ce],["sizeOfGeoPolygon",Ce],["sizeOfLinkedGeoPolygon",Ce],["sizeOfCoordIJ",Ce],["readInt64AsDoubleFromPointer",Ce],["isValidCell",hA,[we,Be]],["isValidIndex",hA,[we,Be]],["latLngToCell",xe,[Ce,Ce,Ft,ye]],["cellToLatLng",xe,[we,Be,ye]],["cellToBoundary",xe,[we,Be,ye]],["maxGridDiskSize",xe,[Ce,ye]],["gridDisk",xe,[we,Be,Ce,ye]],["gridDiskDistances",xe,[we,Be,Ce,ye,ye]],["gridRing",xe,[we,Be,Ce,ye]],["gridRingUnsafe",xe,[we,Be,Ce,ye]],["maxPolygonToCellsSize",xe,[ye,Ft,Ce,ye]],["polygonToCells",xe,[ye,Ft,Ce,ye]],["maxPolygonToCellsSizeExperimental",xe,[ye,Ft,Ce,ye]],["polygonToCellsExperimental",xe,[ye,Ft,Ce,Ce,Ce,ye]],["cellsToLinkedMultiPolygon",xe,[ye,Ce,ye]],["destroyLinkedMultiPolygon",null,[ye]],["compactCells",xe,[ye,ye,Ce,Ce]],["uncompactCells",xe,[ye,Ce,Ce,ye,Ce,Ft]],["uncompactCellsSize",xe,[ye,Ce,Ce,Ft,ye]],["isPentagon",hA,[we,Be]],["isResClassIII",hA,[we,Be]],["getBaseCellNumber",Ce,[we,Be]],["getResolution",Ce,[we,Be]],["getIndexDigit",Ce,[we,Be,Ce]],["constructCell",xe,[Ce,Ce,ye,ye]],["maxFaceCount",xe,[we,Be,ye]],["getIcosahedronFaces",xe,[we,Be,ye]],["cellToParent",xe,[we,Be,Ft,ye]],["cellToChildren",xe,[we,Be,Ft,ye]],["cellToCenterChild",xe,[we,Be,Ft,ye]],["cellToChildrenSize",xe,[we,Be,Ft,ye]],["cellToChildPos",xe,[we,Be,Ft,ye]],["childPosToCell",xe,[Ce,Ce,we,Be,Ft,ye]],["areNeighborCells",xe,[we,Be,we,Be,ye]],["cellsToDirectedEdge",xe,[we,Be,we,Be,ye]],["getDirectedEdgeOrigin",xe,[we,Be,ye]],["getDirectedEdgeDestination",xe,[we,Be,ye]],["isValidDirectedEdge",hA,[we,Be]],["directedEdgeToCells",xe,[we,Be,ye]],["originToDirectedEdges",xe,[we,Be,ye]],["directedEdgeToBoundary",xe,[we,Be,ye]],["reverseDirectedEdge",xe,[we,Be,ye]],["gridDistance",xe,[we,Be,we,Be,ye]],["gridPathCells",xe,[we,Be,we,Be,ye]],["gridPathCellsSize",xe,[we,Be,we,Be,ye]],["cellToLocalIj",xe,[we,Be,we,Be,Ce,ye]],["localIjToCell",xe,[we,Be,ye,Ce,ye]],["getHexagonAreaAvgM2",xe,[Ft,ye]],["getHexagonAreaAvgKm2",xe,[Ft,ye]],["getHexagonEdgeLengthAvgM",xe,[Ft,ye]],["getHexagonEdgeLengthAvgKm",xe,[Ft,ye]],["greatCircleDistanceM",Ce,[ye,ye]],["greatCircleDistanceKm",Ce,[ye,ye]],["greatCircleDistanceRads",Ce,[ye,ye]],["cellAreaM2",xe,[we,Be,ye]],["cellAreaKm2",xe,[we,Be,ye]],["cellAreaRads2",xe,[we,Be,ye]],["edgeLengthM",xe,[we,Be,ye]],["edgeLengthKm",xe,[we,Be,ye]],["edgeLengthRads",xe,[we,Be,ye]],["getNumCells",xe,[Ft,ye]],["getRes0Cells",xe,[ye]],["res0CellCount",Ce],["getPentagons",xe,[Ce,ye]],["pentagonCount",Ce],["cellToVertex",xe,[we,Be,Ce,ye]],["cellToVertexes",xe,[we,Be,ye]],["vertexToLatLng",xe,[we,Be,ye]],["isValidVertex",hA,[we,Be]]],tx=0,rx=1,nx=2,Ax=3,ud=4,ix=5,sx=6,ox=7,ax=8,cx=9,lx=10,ux=11,fx=12,hx=13,dx=14,px=15,mx=16,gx=17,yx=18,Tx=19,gt={};gt[tx]="Success";gt[rx]="The operation failed but a more specific error is not available";gt[nx]="Argument was outside of acceptable range";gt[Ax]="Latitude or longitude arguments were outside of acceptable range";gt[ud]="Resolution argument was outside of acceptable range";gt[ix]="Cell argument was not valid";gt[sx]="Directed edge argument was not valid";gt[ox]="Undirected edge argument was not valid";gt[ax]="Vertex argument was not valid";gt[cx]="Pentagon distortion was encountered";gt[lx]="Duplicate input";gt[ux]="Cell arguments were not neighbors";gt[fx]="Cell arguments had incompatible resolutions";gt[hx]="Memory allocation failed";gt[dx]="Bounds of provided memory were insufficient";gt[px]="Mode or flags argument was not valid";gt[mx]="Index argument was not valid";gt[gx]="Base cell number was outside of acceptable range";gt[yx]="Child indexing digits invalid";gt[Tx]="Child indexing digits refer to a deleted subsequence";var fd=1e3,_x=1001,hd=1002,Gs={};Gs[fd]="Unknown unit";Gs[_x]="Array length out of bounds";Gs[hd]="Got unexpected null value for H3 index";var bx="Unknown error";function dd(t,e,r){var A=r&&"value"in r,i=new Error((t[e]||bx)+" (code: "+e+(A?", value: "+r.value:"")+")");return i.code=e,i}function pd(t,e){var r=arguments.length===2?{value:e}:{};return dd(gt,t,r)}function md(t,e){var r=arguments.length===2?{value:e}:{};return dd(Gs,t,r)}function Pn(t){if(t!==0)throw pd(t)}var xt={};ex.forEach(function(e){xt[e[0]]=ze.cwrap.apply(ze,e);});var dA=16;var gd=4,ad=4,dn=8,Ex=8,Ns=xt.sizeOfH3Index(),yd=xt.sizeOfLatLng(),xx=xt.sizeOfCellBoundary();xt.sizeOfGeoPolygon();xt.sizeOfGeoLoop();var Cx=xt.sizeOfLinkedGeoPolygon();xt.sizeOfCoordIJ();var cd={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function wx(t){if(typeof t!="number"||t<0||t>15||Math.floor(t)!==t)throw pd(ud,t);return t}function Bx(t){if(!t)throw md(hd);return t}var vx=/[^0-9a-fA-F]/;function Dn(t){if(Array.isArray(t)&&t.length===2&&Number.isInteger(t[0])&&Number.isInteger(t[1]))return t;if(typeof t!="string"||vx.test(t))return [0,0];var e=parseInt(t.substring(0,t.length-8),dA),r=parseInt(t.substring(t.length-8),dA);return [r,e]}function ld(t){if(t>=0)return t.toString(dA);t=t&2147483647;var e=Td(8,t.toString(dA)),r=(parseInt(e[0],dA)+8).toString(dA);return e=r+e.substring(1),e}function Mx(t,e){return ld(e)+Td(8,ld(t))}function Td(t,e){for(var r=t-e.length,A="",i=0;i<r;i++)A+="0";return A=A+e,A}function Sx(t,e){e===void 0&&(e=0);var r=ze.getValue(t+Ns*e,"i32"),A=ze.getValue(t+Ns*e+gd,"i32");return A?Mx(r,A):null}function Ix(t,e){return e===void 0&&(e=0),ze.getValue(t+dn*e,"double")}function Fx(t){return xt.readInt64AsDoubleFromPointer(t)}function Lx(t,e,r){ze.HEAPU32.set(Dn(t),e/gd+2*r);}function Rx(t,e){for(var r=e.length,A=0;A<r;A++)Lx(e[A],t,A);}function Os(t){return Ox(ze.getValue(t,"double"))}function w0(t){return [Os(t),Os(t+dn)]}function _d(t){return [Os(t+dn),Os(t)]}function Px(t,e,r){for(var A=ze.getValue(t,"i32"),i=t+dn,c=[],d=_d,m=0;m<A*2;m+=2)c.push(d(i+dn*m));return c.push(c[0]),c}function Dx(t,e){for(var r=[],A=_d,i,c,d,m;t;){for(r.push(i=[]),c=ze.getValue(t,"i8*");c;){for(i.push(d=[]),m=ze.getValue(c,"i8*");m;)d.push(A(m)),m=ze.getValue(m+dn*2,"i8*");d.push(d[0]),c=ze.getValue(c+ad*2,"i8*");}t=ze.getValue(t+ad*2,"i8*");}return r}function bd(t){var e=Dn(t),r=e[0],A=e[1];return !!xt.isPentagon(r,A)}function Ed(t){var e=Dn(t),r=e[0],A=e[1];return xt.isValidCell(r,A)?xt.getResolution(r,A):-1}function xd(t,e,r){var A=ze._malloc(yd);ze.HEAPF64.set([t,e].map(Nx),A/dn);var i=ze._malloc(Ns);try{return Pn(xt.latLngToCell(A,r,i)),Bx(Sx(i))}finally{ze._free(i),ze._free(A);}}function mi(t){var e=ze._malloc(yd),r=Dn(t),A=r[0],i=r[1];try{return Pn(xt.cellToLatLng(A,i,e)),w0(e)}finally{ze._free(e);}}function Cd(t,e){var r=ze._malloc(xx),A=Dn(t),i=A[0],c=A[1];try{return Pn(xt.cellToBoundary(i,c,r)),Px(r,e,e)}finally{ze._free(r);}}function wd(t,e){if(!t||!t.length)return [];var r=t.length,A=ze._calloc(r,Ns);Rx(A,t);var i=ze._calloc(Cx);try{return Pn(xt.cellsToLinkedMultiPolygon(A,r,i)),Dx(i,e)}finally{xt.destroyLinkedMultiPolygon(i),ze._free(i),ze._free(A);}}function Bd(t,e){var r=Dn(t),A=r[0],i=r[1],c=Dn(e),d=c[0],m=c[1],y=ze._malloc(Ex);try{return Pn(xt.gridDistance(A,i,d,m,y)),Fx(y)}finally{ze._free(y);}}function vd(t,e){wx(t);var r=ze._malloc(dn);try{switch(e){case cd.m:Pn(xt.getHexagonEdgeLengthAvgM(t,r));break;case cd.km:Pn(xt.getHexagonEdgeLengthAvgKm(t,r));break;default:throw md(fd,e)}return Ix(r)}finally{ze._free(r);}}function Nx(t){return t*Math.PI/180}function Ox(t){return t*180/Math.PI}function ks(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let A=r[0]-e;A>180?r[0]-=360:A<-180&&(r[0]+=360);}}function Gx(t,e,r){let[A,i]=mi(t),c=e.length;ks(e,i);let d=e[0]===e[c-1]?c-1:c;for(let m=0;m<d;m++)e[m][0]=ht(i,e[m][0],r),e[m][1]=ht(A,e[m][1],r);}function Md(t,e,r){let A=t(e,r),[i,c]=mi(A);return [c,i]}function B0(t,e=1){let r=Cd(t,true);return e!==1?Gx(t,r,e):ks(r),r}function Us(t){let e=new Float64Array(t.length*2),r=0;for(let A of t)e[r++]=A[0],e[r++]=A[1];return e}var kx={getPentagon:{type:"accessor",value:t=>t.pentagon}},Ux=(()=>{class t extends Sr{indexToBounds(){let{data:r,getPentagon:A}=this.props;return {data:r,_normalize:false,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(i,c)=>{let d=A(i,c),m=Ad(typeof d=="string"?id(d):d,{closedRing:true,segments:"auto"});return Us(m)}}}}return t.layerName="A5Layer",t.defaultProps=kx,t})(),Hx=Ux;function Vx(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function Hs(t){if(Array.isArray(t))return t.map(e=>Hs(e));if(t&&typeof t=="object"){let e={};for(let[r,A]of Object.entries(t))e[Vx(r)]=Hs(A);return e}return t}var Sd=":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",jx=Sd+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",Qx="["+Sd+"]["+jx+"]*",zx=new RegExp("^"+Qx+"$");function Vs(t,e){let r=[],A=e.exec(t);for(;A;){let i=[];i.startIndex=e.lastIndex-A[0].length;let c=A.length;for(let d=0;d<c;d++)i.push(A[d]);r.push(i),A=e.exec(t);}return r}var v0=function(t){let e=zx.exec(t);return !(e===null||typeof e>"u")};function Id(t){return typeof t<"u"}var gi=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],js=["__proto__","constructor","prototype"];var Jx={allowBooleanAttributes:false,unpairedTags:[]};function Dd(t,e){e=Object.assign({},Jx,e);let r=[],A=false,i=false;t[0]==="\uFEFF"&&(t=t.substr(1));for(let c=0;c<t.length;c++)if(t[c]==="<"&&t[c+1]==="?"){if(c+=2,c=Ld(t,c),c.err)return c}else if(t[c]==="<"){let d=c;if(c++,t[c]==="!"){c=Rd(t,c);continue}else {let m=false;t[c]==="/"&&(m=true,c++);let y="";for(;c<t.length&&t[c]!==">"&&t[c]!==" "&&t[c]!==" "&&t[c]!==`
|
|
2
|
-
`&&t[c]!=="\r";c++)y+=t[c];if(y=y.trim(),y[y.length-1]==="/"&&(y=y.substring(0,y.length-1),c--),!eC(y)){let x;return y.trim().length===0?x="Invalid space after '<'.":x="Tag '"+y+"' is an invalid name.",yt("InvalidTag",x,Kt(t,c))}let _=Xx(t,c);if(_===false)return yt("InvalidAttr","Attributes for '"+y+"' have open quote.",Kt(t,c));let E=_.value;if(c=_.index,E[E.length-1]==="/"){let x=c-E.length;E=E.substring(0,E.length-1);let v=Pd(E,e);if(v===true)A=true;else return yt(v.err.code,v.err.msg,Kt(t,x+v.err.line))}else if(m)if(_.tagClosed){if(E.trim().length>0)return yt("InvalidTag","Closing tag '"+y+"' can't have attributes or invalid starting.",Kt(t,d));if(r.length===0)return yt("InvalidTag","Closing tag '"+y+"' has not been opened.",Kt(t,d));{let x=r.pop();if(y!==x.tagName){let v=Kt(t,x.tagStartPos);return yt("InvalidTag","Expected closing tag '"+x.tagName+"' (opened in line "+v.line+", col "+v.col+") instead of closing tag '"+y+"'.",Kt(t,d))}r.length==0&&(i=true);}}else return yt("InvalidTag","Closing tag '"+y+"' doesn't have proper closing.",Kt(t,c));else {let x=Pd(E,e);if(x!==true)return yt(x.err.code,x.err.msg,Kt(t,c-E.length+x.err.line));if(i===true)return yt("InvalidXml","Multiple possible root nodes found.",Kt(t,c));e.unpairedTags.indexOf(y)!==-1||r.push({tagName:y,tagStartPos:d}),A=true;}for(c++;c<t.length;c++)if(t[c]==="<")if(t[c+1]==="!"){c++,c=Rd(t,c);continue}else if(t[c+1]==="?"){if(c=Ld(t,++c),c.err)return c}else break;else if(t[c]==="&"){let x=Zx(t,c);if(x==-1)return yt("InvalidChar","char '&' is not expected.",Kt(t,c));c=x;}else if(i===true&&!Fd(t[c]))return yt("InvalidXml","Extra text at the end",Kt(t,c));t[c]==="<"&&c--;}}else {if(Fd(t[c]))continue;return yt("InvalidChar","char '"+t[c]+"' is not expected.",Kt(t,c))}if(A){if(r.length==1)return yt("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",Kt(t,r[0].tagStartPos));if(r.length>0)return yt("InvalidXml","Invalid '"+JSON.stringify(r.map(c=>c.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return yt("InvalidXml","Start tag expected.",1);return true}function Fd(t){return t===" "||t===" "||t===`
|
|
3
|
-
`||t==="\r"}function Ld(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let A=t.substr(r,e-r);if(e>5&&A==="xml")return yt("InvalidXml","XML declaration allowed only at the start of the document.",Kt(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function Rd(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 qx='"',Kx="'";function Xx(t,e){let r="",A="",i=false;for(;e<t.length;e++){if(t[e]===qx||t[e]===Kx)A===""?A=t[e]:A!==t[e]||(A="");else if(t[e]===">"&&A===""){i=true;break}r+=t[e];}return A!==""?false:{value:r,index:e,tagClosed:i}}var Yx=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function Pd(t,e){let r=Vs(t,Yx),A={};for(let i=0;i<r.length;i++){if(r[i][1].length===0)return yt("InvalidAttr","Attribute '"+r[i][2]+"' has no space in starting.",yi(r[i]));if(r[i][3]!==void 0&&r[i][4]===void 0)return yt("InvalidAttr","Attribute '"+r[i][2]+"' is without value.",yi(r[i]));if(r[i][3]===void 0&&!e.allowBooleanAttributes)return yt("InvalidAttr","boolean attribute '"+r[i][2]+"' is not allowed.",yi(r[i]));let c=r[i][2];if(!$x(c))return yt("InvalidAttr","Attribute '"+c+"' is an invalid name.",yi(r[i]));if(!Object.prototype.hasOwnProperty.call(A,c))A[c]=1;else return yt("InvalidAttr","Attribute '"+c+"' is repeated.",yi(r[i]))}return true}function Wx(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 Zx(t,e){if(e++,t[e]===";")return -1;if(t[e]==="#")return e++,Wx(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 yt(t,e,r){return {err:{code:t,msg:e,line:r.line||r,col:r.col}}}function $x(t){return v0(t)}function eC(t){return v0(t)}function Kt(t,e){let r=t.substring(0,e).split(/\r?\n/);return {line:r.length,col:r[r.length-1].length+1}}function yi(t){return t.startIndex+t[1].length}var M0={cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",euro:"\u20AC",dollar:"$",fnof:"\u0192",inr:"\u20B9",af:"\u060B",birr:"\u1265\u122D",peso:"\u20B1",rub:"\u20BD",won:"\u20A9",yuan:"\xA5",cedil:"\xB8"};var Ti={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'},S0={nbsp:"\xA0",copy:"\xA9",reg:"\xAE",trade:"\u2122",mdash:"\u2014",ndash:"\u2013",hellip:"\u2026",laquo:"\xAB",raquo:"\xBB",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",bull:"\u2022",para:"\xB6",sect:"\xA7",deg:"\xB0",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE"};var pA=Object.freeze({ALLOW:"allow",BLOCK:"block",THROW:"throw"}),tC=new Set("!?\\\\/[]$%{}^&*()<>|+");function Nd(t){if(t[0]==="#")throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${t}"`);for(let e of t)if(tC.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${t}"`);return t}function _i(...t){let e=Object.create(null);for(let r of t)if(r)for(let A of Object.keys(r)){let i=r[A];if(typeof i=="string")e[A]=i;else if(i&&typeof i=="object"&&i.val!==void 0){let c=i.val;typeof c=="string"&&(e[A]=c);}}return e}var Nn="external",Qs="base",I0="all";function rC(t){return !t||t===Nn?new Set([Nn]):t===I0?new Set([I0]):t===Qs?new Set([Qs]):Array.isArray(t)?new Set(t):new Set([Nn])}var rr=Object.freeze({allow:0,leave:1,remove:2,throw:3}),nC=new Set([9,10,13]);function AC(t){if(!t)return {xmlVersion:1,onLevel:rr.allow,nullLevel:rr.remove};let e=t.xmlVersion===1.1?1.1:1,r=rr[t.onNCR]??rr.allow,A=rr[t.nullNCR]??rr.remove,i=Math.max(A,rr.remove);return {xmlVersion:e,onLevel:r,nullLevel:i}}var bi=class{constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck=="function"?e.postCheck:A=>A,this._limitTiers=rC(this._limit.applyLimitsTo??Nn),this._numericAllowed=e.numericAllowed??true,this._baseMap=_i(Ti,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let r=AC(e.ncr);this._ncrXmlVersion=r.xmlVersion,this._ncrOnLevel=r.onLevel,this._ncrNullLevel=r.nullLevel,this._onExternalEntity=typeof e.onExternalEntity=="function"?e.onExternalEntity:null,this._onInputEntity=typeof e.onInputEntity=="function"?e.onInputEntity:null;}_applyRegistrationHook(e,r,A,i){if(!e)return true;let c=e(r,A);if(c===pA.BLOCK)return false;if(c===pA.THROW)throw new Error(`[EntityDecoder] Registration of ${i} entity "&${r};" was rejected by hook`);return true}setExternalEntities(e){if(e)for(let i of Object.keys(e))Nd(i);if(!this._onExternalEntity){this._externalMap=_i(e);return}let r=_i(e),A=Object.create(null);for(let[i,c]of Object.entries(r))this._applyRegistrationHook(this._onExternalEntity,i,c,"external")&&(A[i]=c);this._externalMap=A;}addExternalEntity(e,r){Nd(e),typeof r=="string"&&r.indexOf("&")===-1&&this._applyRegistrationHook(this._onExternalEntity,e,r,"external")&&(this._externalMap[e]=r);}addInputEntities(e){if(this._totalExpansions=0,this._expandedLength=0,!this._onInputEntity){this._inputMap=_i(e);return}let r=_i(e),A=Object.create(null);for(let[i,c]of Object.entries(r))this._applyRegistrationHook(this._onInputEntity,i,c,"input")&&(A[i]=c);this._inputMap=A;}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e===1.1?1.1:1;}decode(e){if(typeof e!="string"||e.length===0||e.indexOf("&")===-1)return e;let r=e,A=[],i=e.length,c=0,d=0,m=this._maxTotalExpansions>0,y=this._maxExpandedLength>0,_=m||y;for(;d<i;){if(e.charCodeAt(d)!==38){d++;continue}let x=d+1;for(;x<i&&e.charCodeAt(x)!==59&&x-d<=32;)x++;if(x>=i||e.charCodeAt(x)!==59){d++;continue}let v=e.slice(d+1,x);if(v.length===0){d++;continue}let F,N;if(this._removeSet.has(v))F="",N===void 0&&(N=Nn);else if(this._leaveSet.has(v)){d++;continue}else if(v.charCodeAt(0)===35){let U=this._resolveNCR(v);if(U===void 0){d++;continue}F=U,N=Qs;}else {let U=this._resolveName(v);F=U?.value,N=U?.tier;}if(F===void 0){d++;continue}if(d>c&&A.push(e.slice(c,d)),A.push(F),c=x+1,d=c,_&&this._tierCounts(N)){if(m&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(y){let U=F.length-(v.length+2);if(U>0&&(this._expandedLength+=U,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}c<i&&A.push(e.slice(c));let E=A.length===0?e:A.join("");return this._postCheck(E,r)}_tierCounts(e){return this._limitTiers.has(I0)?true:this._limitTiers.has(e)}_resolveName(e){if(e in this._inputMap)return {value:this._inputMap[e],tier:Nn};if(e in this._externalMap)return {value:this._externalMap[e],tier:Nn};if(e in this._baseMap)return {value:this._baseMap[e],tier:Qs}}_classifyNCR(e){return e===0?this._ncrNullLevel:e>=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!nC.has(e)?rr.remove:-1}_applyNCRAction(e,r,A){switch(e){case rr.allow:return String.fromCodePoint(A);case rr.remove:return "";case rr.leave:return;case rr.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${r}; (U+${A.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(A)}}_resolveNCR(e){let r=e.charCodeAt(1),A;if(r===120||r===88?A=parseInt(e.slice(2),16):A=parseInt(e.slice(1),10),Number.isNaN(A)||A<0||A>1114111)return;let i=this._classifyNCR(A);if(!this._numericAllowed&&i<rr.remove)return;let c=i===-1?this._ncrOnLevel:Math.max(this._ncrOnLevel,i);return this._applyNCRAction(c,e,A)}};var Od=t=>gi.includes(t)?"__"+t:t,iC={preserveOrder:false,attributeNamePrefix:"@_",attributesGroupName:false,textNodeName:"#text",ignoreAttributes:true,removeNSPrefix:false,allowBooleanAttributes:false,parseTagValue:true,parseAttributeValue:false,trimValues:true,cdataPropName:false,numberParseOptions:{hex:true,leadingZeros:true,eNotation:true,unicode:false},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:false,isArray:()=>false,commentPropName:false,unpairedTags:[],processEntities:true,htmlEntities:false,entityDecoder:null,ignoreDeclaration:false,ignorePiTags:false,transformTagName:false,transformAttributeName:false,updateTag:function(t,e,r){return t},captureMetaData:false,maxNestedTags:100,strictReservedNames:true,jPath:true,onDangerousProperty:Od};function sC(t,e){if(typeof t!="string")return;let r=t.toLowerCase();if(gi.some(A=>r===A.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);if(js.some(A=>r===A.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`)}function Gd(t,e){return typeof t=="boolean"?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:1e4,maxTotalExpansions:1/0,maxExpandedLength:1e5,maxEntityCount:1e3,allowedTags:null,tagFilter:null,appliesTo:"all"}:typeof t=="object"&&t!==null?{enabled:t.enabled!==false,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,appliesTo:t.appliesTo??"all"}:Gd(true)}var kd=function(t){let e=Object.assign({},iC,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:A,name:i}of r)A&&sC(A,i);return e.onDangerousProperty===null&&(e.onDangerousProperty=Od),e.processEntities=Gd(e.processEntities,e.htmlEntities),e.unpairedTagsSet=new Set(e.unpairedTags),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(A=>typeof A=="string"&&A.startsWith("*.")?".."+A.substring(2):A)),e};var zs;typeof Symbol!="function"?zs="@@xmlMetadata":zs=Symbol("XML Node Metadata");var ar=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][zs]={startIndex:r});}static getMetaDataSymbol(){return zs}};var Ud=":A-Za-z_\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD",oC=Ud+"\\-\\.\\d\xB7\u0300-\u036F\u203F-\u2040",Hd=":A-Za-z_\xC0-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}",aC=Hd+"\\-\\.\\d\xB7\u0300-\u036F\u0487\u203F-\u2040",F0=(t,e,r="")=>{let A=t.replace(":",""),i=e.replace(":",""),c=`[${A}][${i}]*`;return {name:new RegExp(`^[${t}][${e}]*$`,r),ncName:new RegExp(`^${c}$`,r),qName:new RegExp(`^${c}(?::${c})?$`,r),nmToken:new RegExp(`^[${e}]+$`,r),nmTokens:new RegExp(`^[${e}]+(?:\\s+[${e}]+)*$`,r)}},cC=F0(Ud,oC),lC=F0(Hd,aC,"u"),Vd=":A-Za-z_",uC=Vd+"\\-\\.\\d",fC=F0(Vd,uC),hC=(t="1.0",e=false)=>e?fC:t==="1.1"?lC:cC;var L0=(t,{xmlVersion:e="1.0",asciiOnly:r=false}={})=>hC(e,r).qName.test(t);var Js=class{constructor(e,r){this.suppressValidationErr=!e,this.options=e,this.xmlVersion=r||1;}setXmlVersion(e=1){this.xmlVersion=e;}readDocType(e,r){let A=Object.create(null),i=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 c=1,d=false,m=false,y="";for(;r<e.length;r++)if(e[r]==="<"&&!m){if(d&&On(e,"!ENTITY",r)){r+=7;let _,E;if([_,E,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),E.indexOf("&")===-1){if(this.options.enabled!==false&&this.options.maxEntityCount!=null&&i>=this.options.maxEntityCount)throw new Error(`Entity count (${i+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);A[_]=E,i++;}}else if(d&&On(e,"!ELEMENT",r)){r+=8;let{index:_}=this.readElementExp(e,r+1);r=_;}else if(d&&On(e,"!ATTLIST",r))r+=8;else if(d&&On(e,"!NOTATION",r)){r+=9;let{index:_}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=_;}else if(On(e,"!--",r))m=true;else throw new Error("Invalid DOCTYPE");c++,y="";}else if(e[r]===">"){if(m?e[r-1]==="-"&&e[r-2]==="-"&&(m=false,c--):c--,c===0)break}else e[r]==="["?d=true:y+=e[r];if(c!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return {entities:A,i:r}}readEntityExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r])&&e[r]!=='"'&&e[r]!=="'";)r++;let i=e.substring(A,r);if(Ei(i,{xmlVersion:this.xmlVersion}),r=nr(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 c="";if([r,c]=this.readIdentifierVal(e,r,"entity"),this.options.enabled!==false&&this.options.maxEntitySize!=null&&c.length>this.options.maxEntitySize)throw new Error(`Entity "${i}" size (${c.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return r--,[i,c,r]}readNotationExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let i=e.substring(A,r);!this.suppressValidationErr&&Ei(i,{xmlVersion:this.xmlVersion}),r=nr(e,r);let c=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&c!=="SYSTEM"&&c!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${c}"`);r+=c.length,r=nr(e,r);let d=null,m=null;if(c==="PUBLIC")[r,d]=this.readIdentifierVal(e,r,"publicIdentifier"),r=nr(e,r),(e[r]==='"'||e[r]==="'")&&([r,m]=this.readIdentifierVal(e,r,"systemIdentifier"));else if(c==="SYSTEM"&&([r,m]=this.readIdentifierVal(e,r,"systemIdentifier"),!this.suppressValidationErr&&!m))throw new Error("Missing mandatory system identifier for SYSTEM notation");return {notationName:i,publicIdentifier:d,systemIdentifier:m,index:--r}}readIdentifierVal(e,r,A){let i="",c=e[r];if(c!=='"'&&c!=="'")throw new Error(`Expected quoted string, found "${c}"`);r++;let d=r;for(;r<e.length&&e[r]!==c;)r++;if(i=e.substring(d,r),e[r]!==c)throw new Error(`Unterminated ${A} value`);return r++,[r,i]}readElementExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let i=e.substring(A,r);if(!this.suppressValidationErr&&!L0(i,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid element name: "${i}"`);r=nr(e,r);let c="";if(e[r]==="E"&&On(e,"MPTY",r))r+=4;else if(e[r]==="A"&&On(e,"NY",r))r+=2;else if(e[r]==="("){r++;let d=r;for(;r<e.length&&e[r]!==")";)r++;if(c=e.substring(d,r),e[r]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return {elementName:i,contentModel:c.trim(),index:r}}readAttlistExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let i=e.substring(A,r);for(Ei(i,{xmlVersion:this.xmlVersion}),r=nr(e,r),A=r;r<e.length&&!/\s/.test(e[r]);)r++;let c=e.substring(A,r);if(!Ei(c,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid attribute name: "${c}"`);r=nr(e,r);let d="";if(e.substring(r,r+8).toUpperCase()==="NOTATION"){if(d="NOTATION",r+=8,r=nr(e,r),e[r]!=="(")throw new Error(`Expected '(', found "${e[r]}"`);r++;let y=[];for(;r<e.length&&e[r]!==")";){let _=r;for(;r<e.length&&e[r]!=="|"&&e[r]!==")";)r++;let E=e.substring(_,r);if(E=E.trim(),!Ei(E,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid notation name: "${E}"`);y.push(E),e[r]==="|"&&(r++,r=nr(e,r));}if(e[r]!==")")throw new Error("Unterminated list of notations");r++,d+=" ("+y.join("|")+")";}else {let y=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;d+=e.substring(y,r);let _=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!_.includes(d.toUpperCase()))throw new Error(`Invalid attribute type: "${d}"`)}r=nr(e,r);let m="";return e.substring(r,r+8).toUpperCase()==="#REQUIRED"?(m="#REQUIRED",r+=8):e.substring(r,r+7).toUpperCase()==="#IMPLIED"?(m="#IMPLIED",r+=7):[r,m]=this.readIdentifierVal(e,r,"ATTLIST"),{elementName:i,attributeName:c,attributeType:d,defaultValue:m,index:r}}};var nr=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function On(t,e,r){for(let A=0;A<e.length;A++)if(e[A]!==t[r+A+1])return false;return true}function Ei(t,e){if(L0(t,{xmlVersion:e}))return t;throw new Error(`Invalid entity name ${t}`)}var dC=[48,1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,3558,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,65296,120782,120792,120802,120812,120822,66720,68912,69734,69872,69942,70096,70384,70736,70864,71248,71360,71472,71904,72016,72688,72784,73040,73120,73552,92768,92864,93008,123200,123632,124144,125264,130032],qs=255,Ks=new Map,jd=65535,Qd=1632,mA=Qd,pC=jd-Qd+1,Xs=new Uint8Array(pC).fill(qs);for(let t of dC)for(let e=0;e<10;e++){let r=t+e;r<=jd?Xs[r-mA]=e:Ks.set(r,e);}var zd=48,Jd=57,qd=45,Ys=new Set([8722,65293,65123]);function mC(t){if(typeof t!="string")return t;let e=t.length;if(e===0)return t;let r=-1;for(let i=0;i<e;i++){let c=t.charCodeAt(i);if(!(c>=zd&&c<=Jd||c===qd)){if(c<mA){if(Ys.has(c)){r=i;break}continue}if(c>=55296&&c<=56319){if(i+1<e){let d=t.charCodeAt(i+1);if(d>=56320&&d<=57343){let m=65536+(c-55296<<10)+(d-56320);if(Ks.has(m)){r=i;break}}}continue}if(Xs[c-mA]!==qs||Ys.has(c)){r=i;break}}}if(r===-1)return t;let A=[];r>0&&A.push(t.slice(0,r));for(let i=r;i<e;i++){let c=t.charCodeAt(i);if(c>=zd&&c<=Jd||c===qd){A.push(t[i]);continue}if(c<mA){A.push(Ys.has(c)?"-":t[i]);continue}if(c>=55296&&c<=56319){if(i+1<e){let m=t.charCodeAt(i+1);if(m>=56320&&m<=57343){let y=65536+(c-55296<<10)+(m-56320),_=Ks.get(y);if(_!==void 0){A.push(String.fromCharCode(_+48)),i++;continue}}}A.push(t[i]);continue}if(Ys.has(c)){A.push("-");continue}let d=Xs[c-mA];A.push(d!==qs?String.fromCharCode(d+48):t[i]);}return A.join("")}var Kd=mC;var gC=/^[-+]?0x[a-fA-F0-9]+$/,yC=/^0b[01]+$/,TC=/^0o[0-7]+$/,_C=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,bC={hex:true,binary:false,octal:false,leadingZeros:true,decimalPoint:".",eNotation:true,infinity:"original",unicode:false};function P0(t,e={}){if(e=Object.assign({},bC,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"||e.unicode&&(r=Kd(r),r==="0"))return 0;if(e.hex&&gC.test(r))return R0(r,16);if(e.binary&&yC.test(r))return R0(r,2);if(e.octal&&TC.test(r))return R0(r,8);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return xC(t,r,e);{let A=_C.exec(r);if(A){let i=A[1]||"",c=A[2],d=CC(A[3]),m=i?t[c.length+1]===".":t[c.length]===".";if(!e.leadingZeros&&(c.length>1||c.length===1&&!m))return t;{let y=Number(r),_=String(y);if(y===0)return y;if(_.search(/[eE]/)!==-1)return e.eNotation?y:t;if(r.indexOf(".")!==-1)return _==="0"||_===d||_===`${i}${d}`?y:t;let E=c?d:r;return c?E===_||i+E===_?y:t:E===_||E===i+_?y:t}}else return t}}else return wC(t,Number(r),e)}var EC=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function xC(t,e,r){if(!r.eNotation)return t;let A=e.match(EC);if(A){let i=A[1]||"",c=A[3].indexOf("e")===-1?"E":"e",d=A[2],m=i?t[d.length+1]===c:t[d.length]===c;return d.length>1&&m?t:d.length===1&&(A[3].startsWith(`.${c}`)||A[3][0]===c)?Number(e):d.length>0?r.leadingZeros&&!m?(e=(A[1]||"")+A[3],Number(e)):t:Number(e)}else return t}function CC(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 R0(t,e){let r=t.trim();if((e===2||e===8)&&(t=r.substring(2)),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 wC(t,e,r){let A=e===1/0;switch(r.infinity.toLowerCase()){case "null":return null;case "infinity":return e;case "string":return A?"Infinity":"-Infinity";default:return t}}function D0(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 true}:()=>false}var gA=class{constructor(e,r={},A){this.pattern=e,this.separator=r.separator||".",this.segments=this._parse(e),this.data=A,this._hasDeepWildcard=this.segments.some(i=>i.type==="deep-wildcard"),this._hasAttributeCondition=this.segments.some(i=>i.attrName!==void 0),this._hasPositionSelector=this.segments.some(i=>i.position!==void 0);}_parse(e){let r=[],A=0,i="";for(;A<e.length;)e[A]===this.separator?A+1<e.length&&e[A+1]===this.separator?(i.trim()&&(r.push(this._parseSegment(i.trim())),i=""),r.push({type:"deep-wildcard"}),A+=2):(i.trim()&&r.push(this._parseSegment(i.trim())),i="",A++):(i+=e[A],A++);return i.trim()&&r.push(this._parseSegment(i.trim())),r}_parseSegment(e){let r={type:"tag"},A=null,i=e,c=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(c&&(i=c[1]+c[3],c[2])){let E=c[2].slice(1,-1);E&&(A=E);}let d,m=i;if(i.includes("::")){let E=i.indexOf("::");if(d=i.substring(0,E).trim(),m=i.substring(E+2).trim(),!d)throw new Error(`Invalid namespace in pattern: ${e}`)}let y,_=null;if(m.includes(":")){let E=m.lastIndexOf(":"),x=m.substring(0,E).trim(),v=m.substring(E+1).trim();["first","last","odd","even"].includes(v)||/^nth\(\d+\)$/.test(v)?(y=x,_=v):y=m;}else y=m;if(!y)throw new Error(`Invalid segment pattern: ${e}`);if(r.tag=y,d&&(r.namespace=d),A)if(A.includes("=")){let E=A.indexOf("=");r.attrName=A.substring(0,E).trim(),r.attrValue=A.substring(E+1).trim();}else r.attrName=A.trim();if(_){let E=_.match(/^nth\((\d+)\)$/);E?(r.position="nth",r.positionValue=parseInt(E[1],10)):r.position=_;}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 xi=class{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._deepByTerminalTag=new Map,this._patterns=new Set,this._sealed=false;}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()){let c=e.segments[e.segments.length-1];if(c&&c.type!=="deep-wildcard"&&c.tag!=="*"){let d=c.tag;this._deepByTerminalTag.has(d)||this._deepByTerminalTag.set(d,[]),this._deepByTerminalTag.get(d).push(e);}else this._deepWildcards.push(e);return this}let r=e.length,i=e.segments[e.segments.length-1]?.tag;if(!i||i==="*")this._wildcardByDepth.has(r)||this._wildcardByDepth.set(r,[]),this._wildcardByDepth.get(r).push(e);else {let c=`${r}:${i}`;this._byDepthAndTag.has(c)||this._byDepthAndTag.set(c,[]),this._byDepthAndTag.get(c).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=true,this}get isSealed(){return this._sealed}matchesAny(e){return this.findMatch(e)!==null}findMatch(e){let r=e.getDepth(),A=e.getCurrentTag(),i=`${r}:${A}`,c=this._byDepthAndTag.get(i);if(c){for(let y=0;y<c.length;y++)if(e.matches(c[y]))return c[y]}let d=this._wildcardByDepth.get(r);if(d){for(let y=0;y<d.length;y++)if(e.matches(d[y]))return d[y]}let m=this._deepByTerminalTag.get(A);if(m){for(let y=0;y<m.length;y++)if(e.matches(m[y]))return m[y]}for(let y=0;y<this._deepWildcards.length;y++)if(e.matches(this._deepWildcards[y]))return this._deepWildcards[y];return null}};var N0=class{constructor(e){this._matcher=e;}get separator(){return this._matcher.separator}getCurrentTag(){let e=this._matcher.path;return e.length>0?e[e.length-1].tag:void 0}getCurrentNamespace(){let e=this._matcher.path;return e.length>0?e[e.length-1].namespace:void 0}getAttrValue(e){let r=this._matcher.path;if(r.length!==0)return r[r.length-1].values?.[e]}hasAttr(e){let r=this._matcher.path;if(r.length===0)return false;let A=r[r.length-1];return A.values!==void 0&&e in A.values}getAnyParentAttr(e){return this._matcher.getAnyParentAttr(e)}hasAnyParentAttr(e){return this._matcher.hasAnyParentAttr(e)}getPosition(){let e=this._matcher.path;return e.length===0?-1:e[e.length-1].position??0}getCounter(){let e=this._matcher.path;return e.length===0?-1:e[e.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(e,r=true){return this._matcher.toString(e,r)}toArray(){return this._matcher.path.map(e=>e.tag)}matches(e){return this._matcher.matches(e)}matchesAny(e){return e.matchesAny(this._matcher)}},Ci=class{constructor(e={}){this.separator=e.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new N0(this),this._keptAttrs=[];}push(e,r=null,A=null,i=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);let c=this.path.length,d=this.siblingStacks[c];d||(d={counts:new Map,total:0},this.siblingStacks[c]=d);let m=A?`${A}:${e}`:e,y=d.counts.get(m)||0,_=d.total;d.counts.set(m,y+1),d.total++;let E={tag:e,position:_,counter:y};A!=null&&(E.namespace=A),r!=null&&(E.values=r),this.path.push(E);let x=this.path.length,v=i!==null?i.keep:null;if(v!=null&&v.length>0&&r)for(let F=0;F<v.length;F++){let N=v[F];r[N]!==void 0&&this._keptAttrs.push({depth:x,name:N,value:r[N]});}}pop(){if(this.path.length===0)return;this._pathStringCache=null;let e=this.path.pop();this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1);let r=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=r;)this._keptAttrs.pop();return e}updateCurrent(e){if(this.path.length>0){let r=this.path[this.path.length-1];e!=null&&(r.values=e);}}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){if(this.path.length!==0)return this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return false;let r=this.path[this.path.length-1];return r.values!==void 0&&e in r.values}getAnyParentAttr(e){let r=this._keptAttrs;for(let A=r.length-1;A>=0;A--)if(r[A].name===e)return r[A].value}hasAnyParentAttr(e){let r=this._keptAttrs;for(let A=r.length-1;A>=0;A--)if(r[A].name===e)return true;return false}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=true){let A=e||this.separator;if(A===this.separator&&r===true){if(this._pathStringCache!==null)return this._pathStringCache;let c=this.path.map(d=>d.namespace?`${d.namespace}:${d.tag}`:d.tag).join(A);return this._pathStringCache=c,c}return this.path.map(c=>r&&c.namespace?`${c.namespace}:${c.tag}`:c.tag).join(A)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[];}matches(e){let r=e.segments;return r.length===0?false:e.hasDeepWildcard()?this._matchWithDeepWildcard(r):this._matchSimple(r)}_matchSimple(e){if(this.path.length!==e.length)return false;for(let r=0;r<e.length;r++)if(!this._matchSegment(e[r],this.path[r],r===this.path.length-1))return false;return true}_matchWithDeepWildcard(e){let r=this.path.length-1,A=e.length-1;for(;A>=0&&r>=0;){let i=e[A];if(i.type==="deep-wildcard"){if(A--,A<0)return true;let c=e[A],d=false;for(let m=r;m>=0;m--)if(this._matchSegment(c,this.path[m],m===this.path.length-1)){r=m-1,A--,d=true;break}if(!d)return false}else {if(!this._matchSegment(i,this.path[r],r===this.path.length-1))return false;r--,A--;}}return A<0}_matchSegment(e,r,A){if(e.tag!=="*"&&e.tag!==r.tag||e.namespace!==void 0&&e.namespace!=="*"&&e.namespace!==r.namespace||e.attrName!==void 0&&(!A||!r.values||!(e.attrName in r.values)||e.attrValue!==void 0&&String(r.values[e.attrName])!==String(e.attrValue)))return false;if(e.position!==void 0){if(!A)return false;let i=r.counter??0;if(e.position==="first"&&i!==0)return false;if(e.position==="odd"&&i%2!==1)return false;if(e.position==="even"&&i%2!==0)return false;if(e.position==="nth"&&i!==e.positionValue)return false}return true}matchesAny(e){return e.matchesAny(this)}snapshot(){return {path:this.path.map(e=>r$1({},e)),siblingStacks:this.siblingStacks.map(e=>e&&{counts:new Map(e.counts),total:e.total}),keptAttrs:this._keptAttrs.map(e=>r$1({},e))}}restore(e){this._pathStringCache=null,this.path=e.path.map(r=>r$1({},r)),this.siblingStacks=e.siblingStacks.map(r=>r&&{counts:new Map(r.counts),total:r.total}),this._keptAttrs=(e.keptAttrs||[]).map(r=>r$1({},r));}readOnly(){return this._view}};var BC=[{id:"html-script-open",description:"<script opening tag",pattern:/<script[\s>/]/i},{id:"html-script-close",description:"<\/script closing tag",pattern:/<\/script[\s>]/i},{id:"html-javascript-protocol",description:"javascript: URI scheme (with optional whitespace/encoding)",pattern:/j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i},{id:"html-vbscript-protocol",description:"vbscript: URI scheme",pattern:/vbscript[\t\n\r ]*:/i},{id:"html-data-html",description:"data:text/html URI \u2014 can execute scripts in browsers",pattern:/data[\t\n\r ]*:[\t\n\r ]*text\/html/i},{id:"html-data-xhtml",description:"data:application/xhtml+xml URI",pattern:/data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i},{id:"html-data-svg",description:"data:image/svg+xml URI \u2014 can execute scripts",pattern:/data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i},{id:"html-inline-event-handler",description:"Inline event handler attributes: onclick=, onerror=, onload=, etc.",pattern:/\bon\w{1,30}\s*=/i},{id:"html-entity-obfuscated-script",description:"HTML-entity-encoded <script (e.g. <script or <script)",pattern:/(?:�*3[Cc];?|�*60;?|<)\s*script/i},{id:"html-entity-obfuscated-javascript",description:'HTML-entity-encoded javascript: (partial \u2014 catches common j or j for "j")',pattern:/(?:�*6[Aa];?|�*106;?)\s*(?:�*61;?|a)[\s\S]{0,80}script\s*:/i},{id:"html-style-expression",description:"CSS expression() \u2014 IE-era code execution in style attributes",pattern:/style[\s\S]{0,20}expression\s*\(/i},{id:"html-object-embed",description:"<object or <embed tags that can load active content",pattern:/<(?:object|embed)[\s>/]/i},{id:"html-base-tag",description:"<base href= \u2014 can hijack all relative URLs on a page",pattern:/<base[\s>]/i},{id:"html-meta-refresh",description:'<meta http-equiv="refresh" \u2014 can redirect users',pattern:/<meta[\s\S]{0,40}http-equiv[\s\S]{0,20}refresh/i},{id:"html-srcdoc",description:"srcdoc= attribute on iframes \u2014 embeds HTML that can run scripts",pattern:/srcdoc\s*=/i},{id:"html-iframe",description:"<iframe tag",pattern:/<iframe[\s>/]/i},{id:"html-form",description:"<form tag \u2014 can be used for phishing / credential harvesting injection",pattern:/<form[\s>/]/i}],yA=BC;var vC=[{id:"xml-cdata-injection",description:"CDATA section injection: <![CDATA[ breaks out of text node context",pattern:/<!\[CDATA\[/i},{id:"xml-cdata-close",description:"CDATA close sequence: ]]> can terminate an enclosing CDATA section",pattern:/\]\]>/},{id:"xml-processing-instruction",description:"XML processing instruction: <?xml-stylesheet or <?php etc.",pattern:/<\?(?:xml[\- ]|php|asp)/i},{id:"xml-doctype-injection",description:"DOCTYPE declaration embedded in content \u2014 can define entities",pattern:/<!DOCTYPE(?:[\s[]|$)/i},{id:"xml-entity-system",description:"SYSTEM keyword \u2014 used in external entity declarations (XXE)",pattern:/\bSYSTEM\s+["']/i},{id:"xml-entity-public",description:"PUBLIC keyword \u2014 used in external entity declarations (XXE)",pattern:/\bPUBLIC\s+["']/i},{id:"xml-entity-declaration",description:"<!ENTITY declaration \u2014 defines entities, potential XXE or entity expansion",pattern:/<!ENTITY[\s%]/i},{id:"xml-billion-laughs",description:"Entity reference chaining / billion laughs: repeated &eX; style references",pattern:/(?:&\w{1,20};){3,}/},{id:"xml-namespace-confusion",description:"xmlns: attribute injection \u2014 can redefine namespaces to confuse parsers",pattern:/\bxmlns\s*(?::\w{1,40})?\s*=/i},{id:"xml-comment-injection",description:"<!-- comment injection \u2014 can hide content from some parsers",pattern:/<!--/},{id:"xml-comment-close",description:"--> closes an enclosing XML comment",pattern:/-->/},{id:"xml-pi-close",description:"?> closes an enclosing processing instruction",pattern:/\?>/}],TA=vC;var MC=[{id:"svg-script-element",description:"<script element inside SVG executes JavaScript",pattern:/<script[\s>/]/i},{id:"svg-xlink-href-javascript",description:"xlink:href with javascript: \u2014 classic SVG XSS via <a> or <use>",pattern:/xlink\s*:\s*href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-href-javascript",description:"href= with javascript: in SVG context (<a>, <animate>, etc.)",pattern:/href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-foreignobject",description:"<foreignObject embeds HTML inside SVG \u2014 can execute scripts",pattern:/<foreignObject[\s>/]/i},{id:"svg-use-external",description:"<use xlink:href or href pointing to external resource (non-fragment URL)",pattern:/<use[\s\S]{0,60}(?:xlink\s*:\s*)?href\s*=\s*(?:["'][^#]|[^"'#\s>])/i},{id:"svg-animate-href",description:'<animate attributeName="href" \u2014 can dynamically change href to javascript:',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*href["']/i},{id:"svg-animate-xlinkhref",description:'<animate attributeName="xlink:href"',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*xlink\s*:\s*href["']/i},{id:"svg-set-javascript",description:'<set to="javascript:..." \u2014 sets an attribute to a javascript: URI',pattern:/<set[\s\S]{0,80}to\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-event-handler",description:"SVG-specific event handler attributes: onload=, onerror=, onactivate=, etc.",pattern:/\bon(?:load|error|activate|begin|end|repeat|focus|blur|click|mouse\w{1,20}|key\w{1,20})\s*=/i},{id:"svg-handler-generic",description:"Generic on* handler catch-all for SVG attributes",pattern:/\bon\w{1,30}\s*=/i},{id:"svg-filter-feimage",description:"<feImage href= \u2014 filter primitive that can load external resources",pattern:/<feImage[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=/i},{id:"svg-image-external",description:"<image xlink:href with http/https or javascript protocol",pattern:/<image[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=\s*["']?\s*(?:https?|javascript)\s*:/i},{id:"svg-style-javascript",description:"style= attribute containing javascript: (e.g. background:url(javascript:...))",pattern:/style\s*=[\s\S]{0,60}javascript\s*:/i}],O0=MC;var SC=[{id:"sql-block-comment-open",description:"SQL block comment open: /* ... */ \u2014 unusual in legitimate user text",pattern:/\/\*/},{id:"sql-union-select",description:"UNION SELECT \u2014 most common SQL injection aggregation attack",pattern:/\bUNION\s{1,20}(?:ALL\s{1,20})?SELECT\b/i},{id:"sql-drop-table",description:"DROP TABLE \u2014 destructive DDL injection",pattern:/\bDROP\s{1,20}TABLE\b/i},{id:"sql-drop-database",description:"DROP DATABASE \u2014 destructive DDL injection",pattern:/\bDROP\s{1,20}DATABASE\b/i},{id:"sql-insert-into",description:"INSERT INTO \u2014 data injection",pattern:/\bINSERT\s{1,20}INTO\b/i},{id:"sql-delete-from",description:"DELETE FROM \u2014 data deletion injection",pattern:/\bDELETE\s{1,20}FROM\b/i},{id:"sql-update-set",description:"UPDATE ... SET \u2014 data modification injection",pattern:/\bUPDATE\b[\s\S]{1,60}\bSET\b/i},{id:"sql-exec-xp",description:"EXEC xp_ \u2014 MSSQL extended stored procedure execution",pattern:/\bEXEC(?:UTE)?\s{1,20}xp_/i},{id:"sql-tautology-string",description:`Classic string tautology: ' OR '1'='1 or " OR "1"="1"`,pattern:/'\s{0,10}OR\s{0,10}'[^']{0,20}'\s*=\s*'[^']{0,20}/i},{id:"sql-tautology-numeric",description:"Numeric tautology: OR 1=1",pattern:/\bOR\s{1,10}1\s*=\s*1\b/i},{id:"sql-always-true-zero",description:"Numeric tautology: OR 0=0",pattern:/\bOR\s{1,10}0\s*=\s*0\b/i},{id:"sql-sleep-benchmark",description:"Time-based blind injection: SLEEP() or BENCHMARK()",pattern:/\b(?:SLEEP|BENCHMARK)\s*\(/i},{id:"sql-waitfor-delay",description:"MSSQL time-based blind injection: WAITFOR DELAY",pattern:/\bWAITFOR\s{1,20}DELAY\b/i},{id:"sql-char-function",description:"CHAR() function \u2014 used to obfuscate injected strings",pattern:/\bCHAR\s*\(\s*\d{1,3}/i},{id:"sql-information-schema",description:"INFORMATION_SCHEMA \u2014 reconnaissance query for table/column enumeration",pattern:/\bINFORMATION_SCHEMA\b/i}],wi=SC;var IC=[{id:"shell-path-traversal-unix",description:"Unix path traversal: ../ \u2014 climbing the directory tree",pattern:/\.\.\//},{id:"shell-path-traversal-windows",description:"Windows path traversal: ..\\ \u2014 climbing the directory tree",pattern:/\.\.\\/},{id:"shell-path-traversal-encoded",description:"URL-encoded path traversal: %2e%2e or %2f variants",pattern:/%2e%2e|%2f\.\.|\.\.%2f/i},{id:"shell-null-byte",description:"Null byte injection: \\x00 or %00 \u2014 truncates strings in C-backed functions",pattern:/\x00|%00/},{id:"shell-semicolon",description:"Semicolon command separator: cmd1; cmd2",pattern:/;/},{id:"shell-pipe",description:"Pipe operator: cmd1 | cmd2",pattern:/\|/},{id:"shell-and-operator",description:"AND operator: cmd1 && cmd2",pattern:/&&/},{id:"shell-or-operator",description:"OR operator: cmd1 || cmd2",pattern:/\|\|/},{id:"shell-backtick",description:"Backtick command substitution: `cmd`",pattern:/`/},{id:"shell-dollar-paren",description:"Dollar-paren command substitution: $(cmd)",pattern:/\$\(/},{id:"shell-dollar-brace",description:"Dollar-brace variable expansion: ${var} \u2014 can be abused for injection",pattern:/\$\{/},{id:"shell-redirect-out",description:"Output redirection: cmd > file or cmd >> file",pattern:/>{1,2}/},{id:"shell-redirect-in",description:"Input redirection: cmd < file",pattern:/</},{id:"shell-newline-injection",description:"Newline injection: \\n or \\r \u2014 can inject new shell commands",pattern:/[\n\r]/},{id:"shell-glob-star",description:"Glob expansion: * or ? \u2014 can expand to unintended files",pattern:/[/\\][*?]/},{id:"shell-absolute-root",description:"Absolute root path injection: string starting with / or \\ (Windows UNC)",pattern:/^(?:\/|\\\\)/},{id:"shell-windows-drive",description:"Windows drive letter path injection: C:\\ or D:/",pattern:/^[a-zA-Z]:[/\\]/},{id:"shell-curl-wget",description:"curl/wget with URL or flags \u2014 can exfiltrate data or download payloads",pattern:/\b(?:curl|wget)\s+(?:https?:\/\/|ftp:\/\/|-)/i}],G0=IC;var FC=[{id:"redos-nested-quantifier-plus",description:"Nested + quantifier inside a group with outer quantifier: (a+)+, (.+b)*, etc.",pattern:/\([^)]*\+[^)]*\)[+*]/},{id:"redos-nested-quantifier-star",description:"Nested * quantifier: (a*)* or (a*)+ \u2014 catastrophic backtracking",pattern:/\([^)]*\*[^)]*\)[*+]/},{id:"redos-nested-groups",description:"Doubly nested quantified groups: ((a+)+) \u2014 guaranteed catastrophic",pattern:/\(\([^)]{0,40}\)[+*]\)[+*]/},{id:"redos-alternation-overlap",description:"Overlapping alternation under quantifier: (a|a)+ \u2014 ambiguous NFA paths",pattern:/\(([^|()]{1,20})\|(?:\1)(?:\|[^|()]{1,20}){0,5}\)[+*?]{1,2}/},{id:"redos-star-plus-concat",description:"(x*x)+ pattern \u2014 triggers super-linear backtracking",pattern:/\([^)]{0,10}\*[^)]{0,10}\)[+*]/},{id:"redos-dot-star-greedy",description:"(.*){n,} or (.+){n,} \u2014 repeated greedy dot quantifiers",pattern:/\(\.[*+]\)\{?\d/},{id:"redos-large-repetition",description:"Very large fixed or range repetition count {1000,} or {1000,n} \u2014 denial of service via backtracking",pattern:/\{\d{4,}(?:,\d*)?\}/},{id:"redos-catastrophic-alternation",description:"Long alternation with many similar branches \u2014 polynomial backtracking risk",pattern:/\([^)]{0,200}(?:\|[^|)]{0,50}){9,}\)/}],k0=FC;var cr=`["'\\s]*:`,LC=[{id:"nosql-where-operator",description:"$where \u2014 executes arbitrary JavaScript server-side in MongoDB",pattern:new RegExp(`\\$where${cr}`,"i")},{id:"nosql-ne-operator",description:'$ne \u2014 "not equal" operator used to bypass equality checks',pattern:new RegExp(`\\$ne${cr}`,"i")},{id:"nosql-gt-operator",description:'$gt \u2014 "greater than" used to bypass password/value checks',pattern:new RegExp(`\\$gte?${cr}`,"i")},{id:"nosql-lt-operator",description:'$lt / $lte \u2014 "less than" bypass variants',pattern:new RegExp(`\\$lte?${cr}`,"i")},{id:"nosql-regex-operator",description:"$regex \u2014 can be used to extract data character by character (blind injection)",pattern:new RegExp(`\\$regex${cr}`,"i")},{id:"nosql-or-operator",description:"$or \u2014 logical OR; used to create always-true conditions",pattern:new RegExp(`\\$or${cr}\\s*\\[`,"i")},{id:"nosql-and-operator",description:"$and \u2014 logical AND operator injection",pattern:new RegExp(`\\$and${cr}\\s*\\[`,"i")},{id:"nosql-nor-operator",description:"$nor \u2014 logical NOR operator injection",pattern:new RegExp(`\\$nor${cr}\\s*\\[`,"i")},{id:"nosql-exists-operator",description:"$exists \u2014 can enumerate fields to determine schema",pattern:new RegExp(`\\$exists${cr}`,"i")},{id:"nosql-in-operator",description:"$in \u2014 matches any value in a list; can enumerate values",pattern:new RegExp(`\\$in${cr}\\s*\\[`,"i")},{id:"nosql-expr-operator",description:"$expr \u2014 allows aggregation expressions in queries (MongoDB 3.6+)",pattern:new RegExp(`\\$expr${cr}`,"i")},{id:"nosql-function-operator",description:"$function \u2014 executes arbitrary JavaScript in MongoDB 4.4+",pattern:new RegExp(`\\$function${cr}`,"i")},{id:"nosql-accumulator-operator",description:"$accumulator \u2014 custom aggregation with arbitrary JS execution",pattern:new RegExp(`\\$accumulator${cr}`,"i")},{id:"nosql-proto-pollution",description:"__proto__ \u2014 prototype pollution via object key injection",pattern:/__proto__/},{id:"nosql-constructor-prototype",description:"constructor.prototype \u2014 alternative prototype pollution vector (dot notation or JSON key)",pattern:/constructor[\s"':.,{\[]*prototype/i},{id:"nosql-proto-bracket",description:'["__proto__"] \u2014 bracket-notation prototype pollution',pattern:/\[["']__proto__["']\]/}],U0=LC;var RC=[{id:"log-crlf-injection",description:"CRLF injection: literal \\r or \\n embeds fake log lines",pattern:/[\r\n]/},{id:"log-url-encoded-crlf",description:"URL-encoded CRLF: %0d, %0a, %0D, %0A \u2014 decoded by some log parsers",pattern:/%0[dDaA]/},{id:"log-unicode-newline",description:"Unicode newline variants: U+2028 (line separator), U+2029 (paragraph separator)",pattern:/[\u2028\u2029]/},{id:"log-log4shell-jndi",description:"Log4Shell: ${jndi:...} triggers remote code execution in Apache Log4j",pattern:/\$\{jndi\s*:/i},{id:"log-log4shell-obfuscated",description:"Obfuscated Log4Shell: ${::-j}... lookup-bypass prefix used to evade WAF detection",pattern:/\$\{::-/},{id:"log-log4j-lookup",description:"Log4j lookup syntax: ${env:...}, ${sys:...}, ${ctx:...} \u2014 data exfiltration",pattern:/\$\{(?:env|sys|ctx|main|map|sd|web|docker|k8s|spring)\s*:/i},{id:"log-ssti-double-brace",description:"SSTI double-brace: {{expression}} \u2014 Jinja2, Twig, Handlebars, etc.",pattern:/\{\{[\s\S]{0,80}\}\}/},{id:"log-ssti-hash-brace",description:"SSTI hash-brace: #{expression} \u2014 Thymeleaf, Velocity, Ruby ERB",pattern:/#\{[\s\S]{0,80}\}/},{id:"log-ssti-dollar-brace",description:"SSTI/EL injection: ${expression with operators or method calls} \u2014 JSP EL, Freemarker, SpEL",pattern:/\$\{[^}]*(?:\.|\(|\*|\+|\bclass\b|\bruntime\b|\bprocess\b|\bexec\b)[^}]{0,80}\}/i},{id:"log-ssti-percent-tag",description:"SSTI ERB/ASP tag: <%= expression %> \u2014 Ruby ERB, ASP",pattern:/<%=[\s\S]{0,80}%>/},{id:"log-null-byte",description:"Null byte: \\x00 or %00 \u2014 can truncate log entries in C-backed loggers",pattern:/\x00|%00/},{id:"log-ansi-escape",description:"ANSI escape sequence: ESC[ \u2014 can manipulate terminal output when logs are tailed",pattern:/\x1b\[/}],H0=RC;var PC=[{id:"sql-line-comment",description:"SQL line comment: -- followed by whitespace or end of string",pattern:/--(?:\s|$)/},{id:"sql-stacked-query",description:"Stacked queries: semicolon immediately followed by a SQL keyword",pattern:/;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i},{id:"sql-hex-encoding",description:"Hex-encoded string injection: 0x41414141 style (MySQL)",pattern:/\b0x[0-9a-f]{4,}/i}],DC=[...wi,...PC],V0=DC;yA.label="HTML";TA.label="XML";O0.label="SVG";wi.label="SQL";V0.label="SQL-STRICT";G0.label="SHELL";k0.label="REDOS";U0.label="NOSQL";H0.label="LOG";function NC(t){if(typeof t!="string")throw new TypeError(`is-unsafe: first argument must be a string, got ${typeof t}`)}function OC(t){if(!(t instanceof RegExp)){if(Array.isArray(t)){if(t.length===0)throw new TypeError("is-unsafe: context must not be an empty array");if(Array.isArray(t[0])){for(let e of t)if(!Array.isArray(e)||e.length===0)throw new TypeError("is-unsafe: each context in the array must be a non-empty pattern array (PatternList)")}return}throw new TypeError(`is-unsafe: second argument must be a PatternList (e.g. HTML), an array of PatternLists (e.g. [HTML, XML]), or a RegExp. Got: ${typeof t}`)}}function GC(t){return t instanceof RegExp?{lists:null,regex:t}:Array.isArray(t[0])?{lists:t,regex:null}:{lists:[t],regex:null}}function kC(t,e){let r=e.label??"CUSTOM";for(let A of e)if(A.pattern.test(t))return {context:r,id:A.id,description:A.description,pattern:A.pattern};return null}function Xd(t,e){NC(t),OC(e);let{lists:r,regex:A}=GC(e);if(A)return A.test(t);for(let i of r)if(kC(t,i)!==null)return true;return false}function UC(t,e){if(!t)return {};let r=e.attributesGroupName?t[e.attributesGroupName]:t;if(!r)return {};let A={};for(let i in r)if(i.startsWith(e.attributeNamePrefix)){let c=i.substring(e.attributeNamePrefix.length);A[c]=r[i];}else A[i]=r[i];return A}function HC(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 Ws=class{constructor(e,r){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.parseXml=JC,this.parseTextData=VC,this.resolveNameSpace=jC,this.buildAttributesMap=zC,this.isItStopNode=YC,this.replaceEntitiesValue=KC,this.readStopNodeData=$C,this.saveTextToParentTag=XC,this.addChild=qC,this.ignoreAttributesFn=D0(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=false;let A=r$1({},Ti);this.options.entityDecoder?this.entityDecoder=this.options.entityDecoder:(typeof this.options.htmlEntities=="object"?A=this.options.htmlEntities:this.options.htmlEntities===true&&(A=r$1(r$1({},S0),M0)),this.entityDecoder=new bi({namedEntities:r$1(r$1({},A),r),numericAllowed:this.options.htmlEntities,limit:{maxTotalExpansions:this.options.processEntities.maxTotalExpansions,maxExpandedLength:this.options.processEntities.maxExpandedLength,applyLimitsTo:this.options.processEntities.appliesTo},onInputEntity:(c,d)=>Xd(d,[yA,TA])?pA.BLOCK:pA.ALLOW})),this.matcher=new Ci,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=false,this.stopNodeExpressionsSet=new xi;let i=this.options.stopNodes;if(i&&i.length>0){for(let c=0;c<i.length;c++){let d=i[c];typeof d=="string"?this.stopNodeExpressionsSet.add(new gA(d)):d instanceof gA&&this.stopNodeExpressionsSet.add(d);}this.stopNodeExpressionsSet.seal();}}};function VC(t,e,r,A,i,c,d){let m=this.options;if(t!==void 0&&(m.trimValues&&!A&&(t=t.trim()),t.length>0)){d||(t=this.replaceEntitiesValue(t,e,r));let y=m.jPath?r.toString():r,_=m.tagValueProcessor(e,t,y,i,c);return _==null?t:typeof _!=typeof t||_!==t?_:m.trimValues||t.trim()===t?z0(t,m.parseTagValue,m.numberParseOptions):t}}function jC(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 QC=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function zC(t,e,r,A=false){let i=this.options;if(A===true||i.ignoreAttributes!==true&&typeof t=="string"){let c=Vs(t,QC),d=c.length,m={},y=new Array(d),_=false,E={};for(let F=0;F<d;F++){let N=this.resolveNameSpace(c[F][1]),U=c[F][4];if(N.length&&U!==void 0){let q=U;i.trimValues&&(q=q.trim()),q=this.replaceEntitiesValue(q,r,this.readonlyMatcher),y[F]=q,E[N]=q,_=true;}}_&&typeof e=="object"&&e.updateCurrent&&e.updateCurrent(E);let x=i.jPath?e.toString():this.readonlyMatcher,v=false;for(let F=0;F<d;F++){let N=this.resolveNameSpace(c[F][1]);if(this.ignoreAttributesFn(N,x))continue;let U=i.attributeNamePrefix+N;if(N.length)if(i.transformAttributeName&&(U=i.transformAttributeName(U)),U=Yd(U,i),c[F][4]!==void 0){let q=y[F],X=i.attributeValueProcessor(N,q,x);X==null?m[U]=q:typeof X!=typeof q||X!==q?m[U]=X:m[U]=z0(q,i.parseAttributeValue,i.numberParseOptions),v=true;}else i.allowBooleanAttributes&&(m[U]=true,v=true);}if(!v)return;if(i.attributesGroupName&&!i.preserveOrder){let F={};return F[i.attributesGroupName]=m,F}return m}}var JC=function(t){t=t.replace(/\r\n?/g,`
|
|
4
|
-
`);let e=new ar("!xml"),r=e,A="";this.matcher.reset(),this.entityDecoder.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=false;let i=this.options,c=new Js(i.processEntities),d=t.length;for(let m=0;m<d;m++)if(t[m]==="<"){let _=t.charCodeAt(m+1);if(_===47){let E=_A(t,">",m,"Closing Tag is not closed."),x=t.substring(m+2,E).trim();if(i.removeNSPrefix){let F=x.indexOf(":");F!==-1&&(x=x.substr(F+1));}x=j0(i.transformTagName,x,"",i).tagName,r&&(A=this.saveTextToParentTag(A,r,this.readonlyMatcher));let v=this.matcher.getCurrentTag();if(x&&i.unpairedTagsSet.has(x))throw new Error(`Unpaired tag can not be used as closing tag: </${x}>`);v&&i.unpairedTagsSet.has(v)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=false,r=this.tagsNodeStack.pop(),A="",m=E;}else if(_===63){let E=Q0(t,m,false,"?>");if(!E)throw new Error("Pi Tag is not closed.");A=this.saveTextToParentTag(A,r,this.readonlyMatcher);let x=this.buildAttributesMap(E.tagExp,this.matcher,E.tagName,true);if(x){let v=x[this.options.attributeNamePrefix+"version"];this.entityDecoder.setXmlVersion(Number(v)||1),c.setXmlVersion(Number(v)||1);}if(!(i.ignoreDeclaration&&E.tagName==="?xml"||i.ignorePiTags)){let v=new ar(E.tagName);v.add(i.textNodeName,""),E.tagName!==E.tagExp&&E.attrExpPresent&&i.ignoreAttributes!==true&&(v[":@"]=x),this.addChild(r,v,this.readonlyMatcher,m);}m=E.closeIndex+1;}else if(_===33&&t.charCodeAt(m+2)===45&&t.charCodeAt(m+3)===45){let E=_A(t,"-->",m+4,"Comment is not closed.");if(i.commentPropName){let x=t.substring(m+4,E-2);A=this.saveTextToParentTag(A,r,this.readonlyMatcher),r.add(i.commentPropName,[{[i.textNodeName]:x}]);}m=E;}else if(_===33&&t.charCodeAt(m+2)===68){if(this.doctypefound)throw new Error("Multiple DOCTYPE declarations found.");this.doctypefound=true;let E=c.readDocType(t,m);this.entityDecoder.addInputEntities(E.entities),m=E.i;}else if(_===33&&t.charCodeAt(m+2)===91){let E=_A(t,"]]>",m,"CDATA is not closed.")-2,x=t.substring(m+9,E);A=this.saveTextToParentTag(A,r,this.readonlyMatcher);let v=this.parseTextData(x,r.tagname,this.readonlyMatcher,true,false,true,true);v==null&&(v=""),i.cdataPropName?r.add(i.cdataPropName,[{[i.textNodeName]:x}]):r.add(i.textNodeName,v),m=E+2;}else {let E=Q0(t,m,i.removeNSPrefix);if(!E){let Te=t.substring(Math.max(0,m-50),Math.min(d,m+50));throw new Error(`readTagExp returned undefined at position ${m}. Context: "${Te}"`)}let x=E.tagName,v=E.rawTagName,F=E.tagExp,N=E.attrExpPresent,U=E.closeIndex;if({tagName:x,tagExp:F}=j0(i.transformTagName,x,F,i),i.strictReservedNames&&(x===i.commentPropName||x===i.cdataPropName||x===i.textNodeName||x===i.attributesGroupName))throw new Error(`Invalid tag name: ${x}`);r&&A&&r.tagname!=="!xml"&&(A=this.saveTextToParentTag(A,r,this.readonlyMatcher,false));let q=r;q&&i.unpairedTagsSet.has(q.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let X=false;F.length>0&&F.lastIndexOf("/")===F.length-1&&(X=true,x[x.length-1]==="/"?(x=x.substr(0,x.length-1),F=x):F=F.substr(0,F.length-1),N=x!==F);let W=null,_e;_e=HC(v),x!==e.tagname&&this.matcher.push(x,{},_e),x!==F&&N&&(W=this.buildAttributesMap(F,this.matcher,x),W&&(UC(W,i))),x!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let be=m;if(this.isCurrentNodeStopNode){let Te="";if(X)m=E.closeIndex;else if(i.unpairedTagsSet.has(x))m=E.closeIndex;else {let se=this.readStopNodeData(t,v,U+1);if(!se)throw new Error(`Unexpected end of ${v}`);m=se.i,Te=se.tagContent;}let Ee=new ar(x);W&&(Ee[":@"]=W),Ee.add(i.textNodeName,Te),this.matcher.pop(),this.isCurrentNodeStopNode=false,this.addChild(r,Ee,this.readonlyMatcher,be);}else {if(X){({tagName:x,tagExp:F}=j0(i.transformTagName,x,F,i));let Te=new ar(x);W&&(Te[":@"]=W),this.addChild(r,Te,this.readonlyMatcher,be),this.matcher.pop(),this.isCurrentNodeStopNode=false;}else if(i.unpairedTagsSet.has(x)){let Te=new ar(x);W&&(Te[":@"]=W),this.addChild(r,Te,this.readonlyMatcher,be),this.matcher.pop(),this.isCurrentNodeStopNode=false,m=E.closeIndex;continue}else {let Te=new ar(x);if(this.tagsNodeStack.length>i.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),W&&(Te[":@"]=W),this.addChild(r,Te,this.readonlyMatcher,be),r=Te;}A="",m=U;}}}else A+=t[m];return e.child};function qC(t,e,r,A){this.options.captureMetaData||(A=void 0);let i=this.options.jPath?r.toString():r,c=this.options.updateTag(e.tagname,i,e[":@"]);c===false||(typeof c=="string"&&(e.tagname=c),t.addChild(e,A));}function KC(t,e,r){let A=this.options.processEntities;if(!A||!A.enabled)return t;if(A.allowedTags){let i=this.options.jPath?r.toString():r;if(!(Array.isArray(A.allowedTags)?A.allowedTags.includes(e):A.allowedTags(e,i)))return t}if(A.tagFilter){let i=this.options.jPath?r.toString():r;if(!A.tagFilter(e,i))return t}return this.entityDecoder.decode(t)}function XC(t,e,r,A){return t&&(A===void 0&&(A=e.child.length===0),t=this.parseTextData(t,e.tagname,r,false,e[":@"]?Object.keys(e[":@"]).length!==0:false,A),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function YC(){return this.stopNodeExpressionsSet.size===0?false:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function WC(t,e,r=">"){let A=0,i=t.length,c=r.charCodeAt(0),d=r.length>1?r.charCodeAt(1):-1,m="",y=e;for(let _=e;_<i;_++){let E=t.charCodeAt(_);if(A)E===A&&(A=0);else if(E===34||E===39)A=E;else if(E===c)if(d!==-1){if(t.charCodeAt(_+1)===d)return m+=t.substring(y,_),{data:m,index:_}}else return m+=t.substring(y,_),{data:m,index:_};else E===9&&!A&&(m+=t.substring(y,_)+" ",y=_+1);}}function _A(t,e,r,A){let i=t.indexOf(e,r);if(i===-1)throw new Error(A);return i+e.length-1}function ZC(t,e,r,A){let i=t.indexOf(e,r);if(i===-1)throw new Error(A);return i}function Q0(t,e,r,A=">"){let i=WC(t,e+1,A);if(!i)return;let c=i.data,d=i.index,m=c.search(/\s/),y=c,_=true;m!==-1&&(y=c.substring(0,m),c=c.substring(m+1).trimStart());let E=y;if(r){let x=y.indexOf(":");x!==-1&&(y=y.substr(x+1),_=y!==i.data.substr(x+1));}return {tagName:y,tagExp:c,closeIndex:d,attrExpPresent:_,rawTagName:E}}function $C(t,e,r){let A=r,i=1,c=t.length;for(;r<c;r++)if(t[r]==="<"){let d=t.charCodeAt(r+1);if(d===47){let m=ZC(t,">",r,`${e} is not closed`);if(t.substring(r+2,m).trim()===e&&(i--,i===0))return {tagContent:t.substring(A,r),i:m};r=m;}else if(d===63)r=_A(t,"?>",r+1,"StopNode is not closed.");else if(d===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=_A(t,"-->",r+3,"StopNode is not closed.");else if(d===33&&t.charCodeAt(r+2)===91)r=_A(t,"]]>",r,"StopNode is not closed.")-2;else {let m=Q0(t,r,false);m&&((m&&m.tagName)===e&&m.tagExp[m.tagExp.length-1]!=="/"&&i++,r=m.closeIndex);}}}function z0(t,e,r){if(e&&typeof t=="string"){let A=t.trim();return A==="true"?true:A==="false"?false:P0(t,r)}else return Id(t)?t:""}function j0(t,e,r,A){if(t){let i=t(e);r===e&&(r=i),e=i;}return e=Yd(e,A),{tagName:e,tagExp:r}}function Yd(t,e){if(js.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return gi.includes(t)?e.onDangerousProperty(t):t}var J0=ar.getMetaDataSymbol();function ew(t,e){if(!t||typeof t!="object")return {};if(!e)return t;let r={};for(let A in t)if(A.startsWith(e)){let i=A.substring(e.length);r[i]=t[A];}else r[A]=t[A];return r}function q0(t,e,r,A){return Wd(t,e,r,A)}function Wd(t,e,r,A){let i,c={};for(let d=0;d<t.length;d++){let m=t[d],y=tw(m);if(y!==void 0&&y!==e.textNodeName){let _=ew(m[":@"]||{},e.attributeNamePrefix);r.push(y,_);}if(y===e.textNodeName)i===void 0?i=m[y]:i+=""+m[y];else {if(y===void 0)continue;if(m[y]){let _=Wd(m[y],e,r,A),E=nw(_,e);if(Object.keys(_).length===0&&e.alwaysCreateTextNode&&(_[e.textNodeName]=""),m[":@"]?rw(_,m[":@"],A,e):Object.keys(_).length===1&&_[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?_=_[e.textNodeName]:Object.keys(_).length===0&&(e.alwaysCreateTextNode?_[e.textNodeName]="":_=""),m[J0]!==void 0&&typeof _=="object"&&_!==null&&(_[J0]=m[J0]),c[y]!==void 0&&Object.prototype.hasOwnProperty.call(c,y))Array.isArray(c[y])||(c[y]=[c[y]]),c[y].push(_);else {let x=e.jPath?A.toString():A;e.isArray(y,x,E)?c[y]=[_]:c[y]=_;}y!==void 0&&y!==e.textNodeName&&r.pop();}}}return typeof i=="string"?i.length>0&&(c[e.textNodeName]=i):i!==void 0&&(c[e.textNodeName]=i),c}function tw(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let A=e[r];if(A!==":@")return A}}function rw(t,e,r,A){if(e){let i=Object.keys(e),c=i.length;for(let d=0;d<c;d++){let m=i[d],y=m.startsWith(A.attributeNamePrefix)?m.substring(A.attributeNamePrefix.length):m,_=A.jPath?r.toString()+"."+y:r;A.isArray(m,_,true,true)?t[m]=[e[m]]:t[m]=e[m];}}}function nw(t,e){let{textNodeName:r}=e,A=Object.keys(t).length;return !!(A===0||A===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}var Bi=class{constructor(e){this.externalEntities={},this.options=kd(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===true&&(r={});let c=Dd(e,r);if(c!==true)throw Error(`${c.err.msg}:${c.err.line}:${c.err.col}`)}let A=new Ws(this.options,this.externalEntities),i=A.parseXml(e);return this.options.preserveOrder||i===void 0?i:q0(i,this.options,A.matcher,A.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 ar.getMetaDataSymbol()}};function K0(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r=r$1({allowBooleanAttributes:true,ignoreDeclaration:true,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(i,c,d,m)=>!!e?.arrayPaths?.some(_=>c===_)},e?._fastXML),A=Aw(t,r);return e?.uncapitalizeKeys?Hs(A):A}function Aw(t,e){return new Bi(r$1({ignoreAttributes:false,attributeNamePrefix:""},e)).parse(t)}var iw="4.4.4",Fr={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:iw,worker:false,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:sw,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:false,removeNSPrefix:false,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>K0(new TextDecoder().decode(t),r$1(r$1({},Fr.options.xml),e?.xml)),parseTextSync:(t,e)=>K0(t,r$1(r$1({},Fr.options.xml),e?.xml))};function sw(t){return t.startsWith("<?xml")}function Zd(t,e){let r=Fr.parseTextSync?.(t,e),A=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof A=="string"?A:A.value||A.code||"Unknown error"}var ow="4.4.4",vi={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:ow,worker:false,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:aw,options:{wms:{throwOnError:false}},parse:async(t,e)=>X0(new TextDecoder().decode(t),e),parseSync:(t,e)=>X0(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>X0(t,e)};function aw(t){return t.startsWith("<?xml")}function X0(t,e){let r=r$1(r$1({},vi.options.wms),e?.wms),A=Zd(t,r),i=r.minimalErrors?A:`WMS Service error: ${A}`;if(r.throwOnError)throw new Error(i);return i}function Gn(t){return Array.isArray(t)?t:t?[t]:[]}function Mi(t){let e=Gn(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Si(t,e=void 0){switch(typeof t){case "number":return t;case "string":return parseFloat(t);default:return}}function Zs(t,e=void 0){switch(typeof t){case "number":return t;case "string":return parseInt(t,10);default:return}}function kn(t){switch(t){case "true":return true;case "false":return false;case "1":return true;case "0":return false;default:return false}}function Y0(t,e){let r=Fr.parseTextSync?.(t,e),A=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,i=cw(A);if(e?.inheritedLayerProps)for(let c of i.layers)ep(c,null);return e?.includeRawJSON&&(i.json=A),e?.includeXMLText&&(i.xml=t),i}function cw(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:Mi(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:Zs(t.Service?.LayerLimit),maxWidth:Zs(t.Service?.maxWidth),maxHeight:Zs(t.Service?.maxHeight),layers:[],requests:lw(t.Capability?.Request),exceptions:uw(t.Exception)},r=Gn(t.Capability?.Layer);for(let A of r)e.layers.push($d(A));for(let[A,i]of Object.entries(e))i===void 0&&delete e[A];return e}function lw(t){let e={};for(let[r,A]of Object.entries(t||{})){let i=Mi(A?.Format);e[r]={mimeTypes:i};}return e}function uw(t){if(Gn(t?.Format).length>0)return {mimeTypes:Mi(t)}}function $d(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Mi(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(_=>typeof _=="string")&&(e.crs=r);let A=t?.EX_GeographicBoundingBox&&fw(t?.EX_GeographicBoundingBox);A&&(e.geographicBoundingBox=A),A=t?.LatLonBoundingBox&&hw(t?.LatLonBoundingBox),A&&(e.geographicBoundingBox=A);let i=t?.BoundingBox&&dw(t?.BoundingBox);i&&i.length>0&&(e.boundingBoxes=i);let d=Gn(t?.Dimension).map(_=>mw(_));d.length&&(e.dimensions=d),t?.opaque&&(e.opaque=kn(t?.opaque)),t?.cascaded&&(e.cascaded=kn(t?.cascaded)),t?.queryable&&(e.queryable=kn(t?.queryable));let m=Gn(t?.Layer),y=[];for(let _ of m)y.push($d(_));y.length>0&&(e.layers=y);for(let[_,E]of Object.entries(e))E===void 0&&delete e[_];return e}function fw(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:A,southBoundLatitude:i}=t;return [[e,i],[A,r]]}function hw(t){let{minx:e,miny:r,maxx:A,maxy:i}=t;return [[e,r],[A,i]]}function dw(t){return Gn(t).map(r=>pw(r))}function pw(t){let{CRS:e,SRS:r,minx:A,miny:i,maxx:c,maxy:d,resx:m,resy:y}=t,_={crs:e||r,boundingBox:[[Si(A),Si(i)],[Si(c),Si(d)]]};return m&&(_.xResolution=m),y&&(_.yResolution=y),_}function mw(t){let{name:e,units:r,value:A}=t,i={name:e,units:r,extent:A};return t.unitSymbol&&(i.unitSymbol=t.unitSymbol),t.default&&(i.defaultValue=t.default),t.multipleValues&&(i.multipleValues=kn(t.multipleValues)),t.nearestValue&&(i.nearestValue=kn(t.nearestValue)),t.current&&(i.current=kn(t.current)),i}function ep(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||[])ep(r,t);}var gw="4.4.4",bA={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:gw,worker:false,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:yw,options:{wms:{}},parse:async(t,e)=>Y0(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>Y0(t,e?.wms)};function yw(t){return t.startsWith("<?xml")}function W0(t,e){let A=(Fr.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return {features:(Array.isArray(A)?A:[A]).map(c=>Tw(c))}}function Tw(t){return {attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var tp=s$1(r$1({},bA),{dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>W0(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>W0(t,e)});function Z0(t,e){return Fr.parseTextSync?.(t,e)}var rp=s$1(r$1({},bA),{dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>Z0(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Z0(t,e)});var eo={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:true,fromBlob:false,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new $s(t,e)},$s=class extends xd$1{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,eo.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??false,this.flipCRS=["EPSG:4326"],this.wmsParameters=r$1(r$1({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 d=e,{boundingBox:r,bbox:A}=d,i=u(d,["boundingBox","bbox"]),c=r$1({bbox:r?[...r[0],...r[1]]:A},i);return await this.getMap(c)}normalizeMetadata(e){return e}async getCapabilities(e,r){let A=this.getCapabilitiesURL(e,r),i=await this.fetch(A),c=await i.arrayBuffer();this._checkResponse(i,c);let d=await bA.parse(c,this.loadOptions);return this.capabilities=d,d}async getMap(e,r){let A=this.getMapURL(e,r),i=await this.fetch(A),c=await i.arrayBuffer();this._checkResponse(i,c);try{return await nc$1.parse(c,this.loadOptions)}catch{throw this._parseError(c)}}async getFeatureInfo(e,r){let A=this.getFeatureInfoURL(e,r),i=await this.fetch(A),c=await i.arrayBuffer();return this._checkResponse(i,c),await tp.parse(c,this.loadOptions)}async getFeatureInfoText(e,r){let A=this.getFeatureInfoURL(e,r),i=await this.fetch(A),c=await i.arrayBuffer();return this._checkResponse(i,c),new TextDecoder().decode(c)}async describeLayer(e,r){let A=this.describeLayerURL(e,r),i=await this.fetch(A),c=await i.arrayBuffer();return this._checkResponse(i,c),await rp.parse(c,this.loadOptions)}async getLegendGraphic(e,r){let A=this.getLegendGraphicURL(e,r),i=await this.fetch(A),c=await i.arrayBuffer();this._checkResponse(i,c);try{return await nc$1.parse(c,this.loadOptions)}catch{throw this._parseError(c)}}getCapabilitiesURL(e,r){let A=r$1({version:this.wmsParameters.version},e);return this._getWMSUrl("GetCapabilities",A,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let A=r$1({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",A,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:A,bbox:i}=e;e.bbox=A?[...A[0],...A[1]]:i;let c=r$1({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",c,r)}describeLayerURL(e,r){let A=r$1({version:this.wmsParameters.version},e);return this._getWMSUrl("DescribeLayer",A,r)}getLegendGraphicURL(e,r){let A=r$1({version:this.wmsParameters.version},e);return this._getWMSUrl("GetLegendGraphic",A,r)}_parseWMSUrl(e){let[r,A]=e.split("?"),i=A.split("&"),c={};for(let d of i){let[m,y]=d.split("=");c[m]=y;}return {url:r,parameters:c}}_getWMSUrl(e,r,A){let i=this.url,c=true,d=r$1(r$1(r$1({service:"WMS",version:r.version,request:e},r),this.vendorParameters),A),m=["transparent","time","elevation"];for(let[y,_]of Object.entries(d))(!m.includes(y)||_)&&(i+=c?"?":"&",c=false,i+=this._getURLParameter(y,_,r));return encodeURI(i)}_getWMS130Parameters(e){let r=r$1({},e);return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,A){switch(e){case "crs":A.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case "srs":A.version==="1.3.0"&&(e="crs");break;case "bbox":let i=this._flipBoundingBox(r,A);i&&(r=i);break;case "x":A.version==="1.3.0"&&(e="i");break;case "y":A.version==="1.3.0"&&(e="j");break;}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 A=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),i=e;return A?[i[1],i[0],i[3],i[2]]:i}async _fetchArrayBuffer(e){let r=await this.fetch(e),A=await r.arrayBuffer();return this._checkResponse(r,A),A}_checkResponse(e,r){let A=e.headers["content-type"];if(!e.ok||vi.mimeTypes.includes(A)){let i=ur$1(this.loadOptions,{wms:{throwOnError:true}}),c=vi.parseSync?.(r,i);throw new Error(c)}}_parseError(e){let r=vi.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};var np=6378137*Math.PI;function $0(t){let e=ue$1(t);return e[0]=(e[0]/256-1)*np,e[1]=(e[1]/256-1)*np,e}var _w={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:true,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:false,value:(t,e)=>console.error(e,t)}},bw=(()=>{class t extends Dv$1{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return true}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0;}updateState({changeFlags:r,props:A,oldProps:i}){let{viewport:c}=this.context;r.dataChanged||A.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(A),this._loadMetadata(),this.debounce(()=>this.loadImage(c,"image source changed"),0)):q(A.layers,i.layers,1)?r.viewportChanged&&this.debounce(()=>this.loadImage(c,"viewport changed")):this.debounce(()=>this.loadImage(c,"layers changed"),0);}finalizeState(){}renderLayers(){let{bounds:r,image:A,lastRequestParameters:i}=this.state;return A&&new Ho$1(s$1(r$1({},this.getSubLayerProps({id:"bitmap"})),{_imageCoordinateSystem:i.srs==="EPSG:4326"?pa$1.LNGLAT:pa$1.CARTESIAN,bounds:r,image:A}))}async getFeatureInfoText(r,A){let{lastRequestParameters:i}=this.state;return i?await this.state.imageSource.getFeatureInfoText?.(s$1(r$1({},i),{query_layers:i.layers,x:r,y:A,info_format:"application/vnd.ogc.gml"})):""}_createImageSource(r){if(r.data instanceof zp$1)return r.data;if(typeof r.data=="string")return Jd$1(r.data,[eo],{core:{type:r.serviceType,loadOptions:r.loadOptions}});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:r}=this.state;try{this.state.loadCounter++;let A=await r.getMetadata();this.state.imageSource===r&&this.getCurrentLayer()?.props.onMetadataLoad(A);}catch(A){this.getCurrentLayer()?.props.onMetadataLoadError(A);}finally{this.state.loadCounter--;}}async loadImage(r,A){let{layers:i,serviceType:c}=this.props;if(c==="wms"&&i.length===0)return;let d=r.getBounds(),{width:m,height:y}=r,_=this.getRequestId(),{srs:E}=this.props;E==="auto"&&(E=r.resolution?"EPSG:4326":"EPSG:3857");let x={width:m,height:y,boundingBox:[[d[0],d[1]],[d[2],d[3]]],layers:i,crs:E};if(E==="EPSG:3857"){let v=$0([d[0],d[1]]),F=$0([d[2],d[3]]);x.boundingBox=[v,F];}try{this.state.loadCounter++,this.props.onImageLoadStart(_);let v=await this.state.imageSource.getImage(x);this.state.lastRequestId<_&&(this.getCurrentLayer()?.props.onImageLoad(_),this.setState({image:v,bounds:d,lastRequestParameters:x,lastRequestId:_}));}catch(v){this.raiseError(v,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(_,v);}finally{this.state.loadCounter--;}}getRequestId(){return this.state._nextRequestId++}debounce(r,A=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>r(),A);}}return t.layerName="WMSLayer",t.defaultProps=_w,t})();var Ew={getHeight:{type:"accessor",value:0},greatCircle:true},xw=(()=>{class t extends Bo$1{}return t.layerName="GreatCircleLayer",t.defaultProps=Ew,t})(),Cw=xw;var to=x(ec(),1),ww=3,Bw=30,vw=2*Bw+1,ip=180/Math.PI;function op(t,e,r){let A=1<<e;return [(t[0]+r[0])/A,(t[1]+r[1])/A]}function sp(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function ap(t){return [sp(t[0]),sp(t[1])]}function cp(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 lp([t,e,r]){let A=Math.atan2(r,Math.sqrt(t*t+e*e));return [Math.atan2(e,t)*ip,A*ip]}function up(t){let e=to.default.fromString(t,true,10).toString(2);for(;e.length<ww+vw;)e="0"+e;let r=e.lastIndexOf("1"),A=e.substring(0,3),i=e.substring(3,r),c=i.length/2,d=to.default.fromString(A,true,2).toString(10),m=to.default.fromString(i,true,2).toString(4);for(;m.length<c;)m="0"+m;return `${d}/${m}`}function Mw(t,e,r,A){if(A===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let i=e[0];e[0]=e[1],e[1]=i;}}function fp(t){let e=t.split("/"),r=parseInt(e[0],10),A=e[1],i=A.length,c=[0,0],d;for(let m=i-1;m>=0;m--){d=i-m;let y=A[m],_=0,E=0;y==="1"?E=1:y==="2"?(_=1,E=1):y==="3"&&(_=1);let x=Math.pow(2,d-1);Mw(x,c,_,E),c[0]+=x*_,c[1]+=x*E;}if(r%2===1){let m=c[0];c[0]=c[1],c[1]=m;}return {face:r,ij:c,level:d}}var hp=x(ec(),1);function Sw(t){let e=t.padEnd(16,"0");return hp.default.fromString(e,16)}var Iw=100;function Fw({face:t,ij:e,level:r}){let A=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(Iw*Math.pow(2,-r))),c=new Float64Array(4*i*2+2),d=0,m=0;for(let y=0;y<4;y++){let _=A[y].slice(0),E=A[y+1],x=(E[0]-_[0])/i,v=(E[1]-_[1])/i;for(let F=0;F<i;F++){_[0]+=x,_[1]+=v;let N=op(e,r,_),U=ap(N),q=cp(t,U),X=lp(q);Math.abs(X[1])>89.999&&(X[0]=m);let W=X[0]-m;X[0]+=W>180?-360:W<-180?360:0,c[d++]=X[0],c[d++]=X[1],m=X[0];}}return c[d++]=c[0],c[d++]=c[1],c}function Lw(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=Sw(t);}return up(t.toString())}function dp(t){let e=Lw(t),r=fp(e);return Fw(r)}var Rw={getS2Token:{type:"accessor",value:t=>t.token}},Pw=(()=>{class t extends Sr{indexToBounds(){let{data:r,getS2Token:A}=this.props;return {data:r,_normalize:false,positionFormat:"XY",getPolygon:(i,c)=>dp(A(i,c))}}}return t.layerName="S2Layer",t.defaultProps=Rw,t})(),Dw=Pw;var tc=512;function Nw(t,e){let r=0,A=0,i=1<<t.length,c=i/tc;for(let d=0;d<t.length;d++){i>>=1;let m=parseInt(t[d]);m%2&&(r|=i),m>1&&(A|=i);}return [[r/c,tc-A/c],[(r+e)/c,tc-(A+e)/c]]}function pp(t,e=1){let[r,A]=Nw(t,e),[i,c]=ne(r),[d,m]=ne(A);return [d,c,d,m,i,m,i,c,d,c]}var Ow={getQuadkey:{type:"accessor",value:t=>t.quadkey}},Gw=(()=>{class t extends Sr{indexToBounds(){let{data:r,extruded:A,getQuadkey:i}=this.props,c=A?.99:1;return {data:r,_normalize:false,positionFormat:"XY",getPolygon:(d,m)=>pp(i(d,m),c),updateTriggers:{getPolygon:c}}}}return t.layerName="QuadkeyLayer",t.defaultProps=Ow,t})(),kw=Gw;var EA=class{constructor(e){this.index=e,this.isVisible=false,this.isSelected=false,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=false,this._isCancelled=false,this._needsReload=false;}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 !!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:A,onError:i}){let{index:c,id:d,bbox:m,userData:y,zoom:_}=this,E=this._loaderId;this._abortController=new AbortController;let{signal:x}=this._abortController,v=await r.scheduleRequest(this,U=>U.isSelected?1:-1);if(!v){this._isCancelled=true;return}if(this._isCancelled){v.done();return}let F=null,N;try{F=await e({index:c,id:d,bbox:m,userData:y,zoom:_,signal:x});}catch(U){N=U||true;}finally{v.done();}if(E===this._loaderId){if(this._loader=void 0,this.content=F,this._isCancelled&&!F){this._isLoaded=false;return}this._isLoaded=true,this._isCancelled=false,N?i(N,this):A(this);}}loadData(e){return this._isLoaded=false,this._isCancelled=false,this._needsReload=false,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=true;}abort(){this.isLoaded||(this._isCancelled=true,this._abortController?.abort());}};var Tt={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var mp=new H,Uw=new H,xA=class t{constructor(e=[0,0,0],r=[0,0,0],A){A=A||mp.copy(e).add(r).scale(.5),this.center=new H(A),this.halfDiagonal=new H(r).subtract(this.center),this.minimum=new H(e),this.maximum=new H(r);}clone(){return new t(this.minimum,this.maximum,this.center)}equals(e){return this===e||!!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,A=Uw.from(e.normal),i=r.x*Math.abs(A.x)+r.y*Math.abs(A.y)+r.z*Math.abs(A.z),c=this.center.dot(A)+e.distance;return c-i>0?Tt.INSIDE:c+i<0?Tt.OUTSIDE:Tt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=mp.from(e).subtract(this.center),{halfDiagonal:A}=this,i=0,c;return c=Math.abs(r.x)-A.x,c>0&&(i+=c*c),c=Math.abs(r.y)-A.y,c>0&&(i+=c*c),c=Math.abs(r.z)-A.z,c>0&&(i+=c*c),i}};var Fi=new H,gp=new H,kr=class t{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new H,this.fromCenterRadius(e,r);}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=Fi.from(r),this.center=new H().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new t(this.center,this.radius)}union(e){let r=this.center,A=this.radius,i=e.center,c=e.radius,d=Fi.copy(i).subtract(r),m=d.magnitude();if(A>=m+c)return this.clone();if(c>=m+A)return e.clone();let y=(A+m+c)*.5;return gp.copy(d).scale((-A+y)/m).add(r),this.center.copy(gp),this.radius=y,this}expand(e){let A=Fi.from(e).subtract(this.center).magnitude();return A>this.radius&&(this.radius=A),this}transform(e){this.center.transform(e);let r=Z.getScaling(Fi,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 A=Fi.from(e).subtract(this.center);return Math.max(0,A.len()-this.radius)}intersectPlane(e){let r=this.center,A=this.radius,c=e.normal.dot(r)+e.distance;return c<-A?Tt.OUTSIDE:c<A?Tt.INTERSECTING:Tt.INSIDE}};var Hw=new H,Vw=new H,ro=new H,no=new H,Ao=new H,jw=new H,Qw=new H,Yr={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Wr=class t{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new H().from(e),this.halfAxes=new Tr$1(r);}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),A=this.halfAxes.getColumn(2);return [new H(e).len(),new H(r).len(),new H(A).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),A=this.halfAxes.getColumn(2),i=new H(e).normalize(),c=new H(r).normalize(),d=new H(A).normalize();return new Vs$1().fromMatrix3(new Tr$1([...i,...c,...d]))}fromCenterHalfSizeQuaternion(e,r,A){let i=new Vs$1(A),c=new Tr$1().fromQuaternion(i);return c[0]=c[0]*r[0],c[1]=c[1]*r[0],c[2]=c[2]*r[0],c[3]=c[3]*r[1],c[4]=c[4]*r[1],c[5]=c[5]*r[1],c[6]=c[6]*r[2],c[7]=c[7]*r[2],c[8]=c[8]*r[2],this.center=new H().from(e),this.halfAxes=c,this}clone(){return new t(this.center,this.halfAxes)}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new kr){let r=this.halfAxes,A=r.getColumn(0,ro),i=r.getColumn(1,no),c=r.getColumn(2,Ao),d=Hw.copy(A).add(i).add(c);return e.center.copy(this.center),e.radius=d.magnitude(),e}intersectPlane(e){let r=this.center,A=e.normal,i=this.halfAxes,c=A.x,d=A.y,m=A.z,y=Math.abs(c*i[Yr.COLUMN0ROW0]+d*i[Yr.COLUMN0ROW1]+m*i[Yr.COLUMN0ROW2])+Math.abs(c*i[Yr.COLUMN1ROW0]+d*i[Yr.COLUMN1ROW1]+m*i[Yr.COLUMN1ROW2])+Math.abs(c*i[Yr.COLUMN2ROW0]+d*i[Yr.COLUMN2ROW1]+m*i[Yr.COLUMN2ROW2]),_=A.dot(r)+e.distance;return _<=-y?Tt.OUTSIDE:_>=y?Tt.INSIDE:Tt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=Vw.from(e).subtract(this.center),A=this.halfAxes,i=A.getColumn(0,ro),c=A.getColumn(1,no),d=A.getColumn(2,Ao),m=i.magnitude(),y=c.magnitude(),_=d.magnitude();i.normalize(),c.normalize(),d.normalize();let E=0,x;return x=Math.abs(r.dot(i))-m,x>0&&(E+=x*x),x=Math.abs(r.dot(c))-y,x>0&&(E+=x*x),x=Math.abs(r.dot(d))-_,x>0&&(E+=x*x),E}computePlaneDistances(e,r,A=[-0,-0]){let i=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,d=this.center,m=this.halfAxes,y=m.getColumn(0,ro),_=m.getColumn(1,no),E=m.getColumn(2,Ao),x=jw.copy(y).add(_).add(E).add(d),v=Qw.copy(x).subtract(e),F=r.dot(v);return i=Math.min(F,i),c=Math.max(F,c),x.copy(d).add(y).add(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),x.copy(d).add(y).subtract(_).add(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),x.copy(d).add(y).subtract(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),d.copy(x).subtract(y).add(_).add(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),d.copy(x).subtract(y).add(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),d.copy(x).subtract(y).subtract(_).add(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),d.copy(x).subtract(y).subtract(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),c=Math.max(F,c),A[0]=i,A[1]=c,A}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,ro);r.transformAsPoint(e);let A=this.halfAxes.getColumn(1,no);A.transformAsPoint(e);let i=this.halfAxes.getColumn(2,Ao);return i.transformAsPoint(e),this.halfAxes=new Tr$1([...r,...A,...i]),this}getTransform(){throw new Error("not implemented")}};var yp=new H,Tp=new H,Ht=class t{constructor(e=[0,0,1],r=0){this.normal=new H,this.distance=-0,this.fromNormalDistance(e,r);}fromNormalDistance(e,r){return ji$1(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=yp.from(e),this.normal.from(r).normalize();let A=-this.normal.dot(e);return this.distance=A,this}fromCoefficients(e,r,A,i){return this.normal.set(e,r,A),ji$1(De(this.normal.len(),1)),this.distance=i,this}clone(){return new t(this.normal,this.distance)}equals(e){return De(this.distance,e.distance)&&De(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=Tp.copy(this.normal).transformAsVector(e).normalize(),A=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(A,r)}projectPointOntoPlane(e,r=[0,0,0]){let A=yp.from(e),i=this.getPointDistance(A),c=Tp.copy(this.normal).scale(i);return A.subtract(c).to(r)}};var _p=[new H([1,0,0]),new H([0,1,0]),new H([0,0,1])],bp=new H,zw=new H,Ur=(()=>{class t{constructor(r=[]){this.planes=r;}fromBoundingSphere(r){this.planes.length=2*_p.length;let A=r.center,i=r.radius,c=0;for(let d of _p){let m=this.planes[c],y=this.planes[c+1];m||(m=this.planes[c]=new Ht),y||(y=this.planes[c+1]=new Ht);let _=bp.copy(d).scale(-i).add(A);m.fromPointNormal(_,d);let E=bp.copy(d).scale(i).add(A),x=zw.copy(d).negate();y.fromPointNormal(E,x),c+=2;}return this}computeVisibility(r){let A=Tt.INSIDE;for(let i of this.planes)switch(r.intersectPlane(i)){case Tt.OUTSIDE:return Tt.OUTSIDE;case Tt.INTERSECTING:A=Tt.INTERSECTING;break;}return A}computeVisibilityWithPlaneMask(r,A){if(ji$1(Number.isFinite(A),"parentPlaneMask is required."),A===t.MASK_OUTSIDE||A===t.MASK_INSIDE)return A;let i=t.MASK_INSIDE,c=this.planes;for(let d=0;d<this.planes.length;++d){let m=d<31?1<<d:0;if(d<31&&(A&m)===0)continue;let y=c[d],_=r.intersectPlane(y);if(_===Tt.OUTSIDE)return t.MASK_OUTSIDE;_===Tt.INTERSECTING&&(i|=m);}return i}}return t.MASK_OUTSIDE=4294967295,t.MASK_INSIDE=0,t.MASK_INDETERMINATE=2147483647,t})();new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;var Hr=new Tr$1,qw=new Tr$1,Kw=new Tr$1,io=new Tr$1,Ep=new Tr$1;function Ac(t,e={}){let r=Of.EPSILON20,A=10,i=0,c=0,d=qw,m=Kw;d.identity(),m.copy(t);let y=r*Xw(m);for(;c<A&&Yw(m)>y;)Ww(m,io),Ep.copy(io).transpose(),m.multiplyRight(io),m.multiplyLeft(Ep),d.multiplyRight(io),++i>2&&(++c,i=0);return e.unitary=d.toTarget(e.unitary),e.diagonal=m.toTarget(e.diagonal),e}function Xw(t){let e=0;for(let r=0;r<9;++r){let A=t[r];e+=A*A;}return Math.sqrt(e)}var rc=[1,0,0],nc=[2,2,1];function Yw(t){let e=0;for(let r=0;r<3;++r){let A=t[Hr.getElementIndex(nc[r],rc[r])];e+=2*A*A;}return Math.sqrt(e)}function Ww(t,e){let r=Of.EPSILON15,A=0,i=1;for(let _=0;_<3;++_){let E=Math.abs(t[Hr.getElementIndex(nc[_],rc[_])]);E>A&&(i=_,A=E);}let c=rc[i],d=nc[i],m=1,y=0;if(Math.abs(t[Hr.getElementIndex(d,c)])>r){let _=t[Hr.getElementIndex(d,d)],E=t[Hr.getElementIndex(c,c)],x=t[Hr.getElementIndex(d,c)],v=(_-E)/2/x,F;v<0?F=-1/(-v+Math.sqrt(1+v*v)):F=1/(v+Math.sqrt(1+v*v)),m=1/Math.sqrt(1+F*F),y=F*m;}return Tr$1.IDENTITY.to(e),e[Hr.getElementIndex(c,c)]=e[Hr.getElementIndex(d,d)]=m,e[Hr.getElementIndex(d,c)]=y,e[Hr.getElementIndex(c,d)]=-y,e}var pn=new H,Zw=new H,$w=new H,eB=new H,tB=new H,rB=new Tr$1,nB={diagonal:new Tr$1,unitary:new Tr$1};function Li(t,e=new Wr){if(!t||t.length===0)return e.halfAxes=new Tr$1([0,0,0,0,0,0,0,0,0]),e.center=new H,e;let r=t.length,A=new H(0,0,0);for(let Y of t)A.add(Y);let i=1/r;A.multiplyByScalar(i);let c=0,d=0,m=0,y=0,_=0,E=0;for(let Y of t){let k=pn.copy(Y).subtract(A);c+=k.x*k.x,d+=k.x*k.y,m+=k.x*k.z,y+=k.y*k.y,_+=k.y*k.z,E+=k.z*k.z;}c*=i,d*=i,m*=i,y*=i,_*=i,E*=i;let x=rB;x[0]=c,x[1]=d,x[2]=m,x[3]=d,x[4]=y,x[5]=_,x[6]=m,x[7]=_,x[8]=E;let{unitary:v}=Ac(x,nB),F=e.halfAxes.copy(v),N=F.getColumn(0,$w),U=F.getColumn(1,eB),q=F.getColumn(2,tB),X=-Number.MAX_VALUE,W=-Number.MAX_VALUE,he=-Number.MAX_VALUE,_e=Number.MAX_VALUE,be=Number.MAX_VALUE,Te=Number.MAX_VALUE;for(let Y of t)pn.copy(Y),X=Math.max(pn.dot(N),X),W=Math.max(pn.dot(U),W),he=Math.max(pn.dot(q),he),_e=Math.min(pn.dot(N),_e),be=Math.min(pn.dot(U),be),Te=Math.min(pn.dot(q),Te);N=N.multiplyByScalar(.5*(_e+X)),U=U.multiplyByScalar(.5*(be+W)),q=q.multiplyByScalar(.5*(Te+he)),e.center.copy(N).add(U).add(q);let Ee=Zw.set(X-_e,W-be,he-Te).multiplyByScalar(.5),se=new Tr$1([Ee[0],0,0,0,Ee[1],0,0,0,Ee[2]]);return e.halfAxes.multiplyRight(se),e}var CA=512,xp=3,Cp=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],wp=Cp.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),AB=wp.concat([[.25,.5],[.75,.5]]),ic=class t{constructor(e,r,A){this.x=e,this.y=r,this.z=A;}get children(){if(!this._children){let e=this.x*2,r=this.y*2,A=this.z+1;this._children=[new t(e,r,A),new t(e,r+1,A),new t(e+1,r,A),new t(e+1,r+1,A)];}return this._children}update(e){let{viewport:r,cullingVolume:A,elevationBounds:i,minZ:c,maxZ:d,bounds:m,offset:y,project:_}=e,E=this.getBoundingVolume(i,y,_);if(m&&!this.insideBounds(m)||A.computeVisibility(E)<0)return false;if(!this.childVisible){let{z:v}=this;if(v<d&&v>=c){let F=E.distanceTo(r.cameraPosition)*r.scale/r.height;v+=Math.floor(Math.log2(F));}if(v>=d)return this.selected=true,true}this.selected=false,this.childVisible=true;for(let v of this.children)v.update(e);return true}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,A,i]){let c=Math.pow(2,this.z),d=CA/c;return this.x*d<A&&this.y*d<i&&(this.x+1)*d>e&&(this.y+1)*d>r}getBoundingVolume(e,r,A){if(A){let y=this.z<1?AB:this.z<2?wp:Cp,_=[];for(let E of y){let x=so(this.x+E[0],this.y+E[1],this.z);x[2]=e[0],_.push(A(x)),e[0]!==e[1]&&(x[2]=e[1],_.push(A(x)));}return Li(_)}let i=Math.pow(2,this.z),c=CA/i,d=this.x*c+r*CA,m=CA-(this.y+1)*c;return new xA([d,m,e[0]],[d+c,m+c,e[1]])}};function Bp(t,e,r,A){let i=t instanceof ri&&t.resolution?t.projectPosition:null,c=Object.values(t.getFrustumPlanes()).map(({normal:F,distance:N})=>new Ht(F.clone().negate(),N)),d=new Ur(c),m=t.distanceScales.unitsPerMeter[2],y=r&&r[0]*m||0,_=r&&r[1]*m||0,E=t instanceof At&&t.pitch<=60?e:0;if(A){let[F,N,U,q]=A,X=ue$1([F,q]),W=ue$1([U,N]);A=[X[0],CA-X[1],W[0],CA-W[1]];}let x=new ic(0,0,0),v={viewport:t,project:i,cullingVolume:d,elevationBounds:[y,_],minZ:E,maxZ:e,bounds:A,offset:0};if(x.update(v),t instanceof At&&t.subViewports&&t.subViewports.length>1){for(v.offset=-1;x.update(v)&&!(--v.offset<-xp););for(v.offset=1;x.update(v)&&!(++v.offset>xp););}return x.getSelected()}var Zr=512,iB=[-1/0,-1/0,1/0,1/0],mn={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 true;if(!Array.isArray(t)||!Array.isArray(e))return false;let r=t.length;if(r!==e.length)return false;for(let A=0;A<r;A++)if(t[A]!==e[A])return false;return true}};function oo(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(i=>i[0])),Math.min(...r.map(i=>i[1])),Math.max(...r.map(i=>i[0])),Math.max(...r.map(i=>i[1]))]}function sB(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function $r(t,e){if(!t||!t.length)return null;let{index:r,id:A}=e;if(Array.isArray(t)){let c=sB(A)%t.length;t=t[c];}let i=t;for(let c of Object.keys(r)){let d=new RegExp(`{${c}}`,"g");i=i.replace(d,String(r[c]));}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(i=i.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),i}function oB(t,e,r){let A;A=t.getBounds();return t.isGeospatial?[Math.max(A[0],r[0]),Math.max(A[1],r[1]),Math.min(A[2],r[2]),Math.min(A[3],r[3])]:[Math.max(Math.min(A[0],r[2]),r[0]),Math.max(Math.min(A[1],r[3]),r[1]),Math.min(Math.max(A[2],r[0]),r[2]),Math.min(Math.max(A[3],r[1]),r[3])]}function Mp({viewport:t,z:e,cullRect:r}){return (t.subViewports||[t]).map(i=>sc(i,e||0,r))}function sc(t,e,r){if(!Array.isArray(e)){let c=r.x-t.x,d=r.y-t.y,{width:m,height:y}=r,_={targetZ:e},E=t.unproject([c,d],_),x=t.unproject([c+m,d],_),v=t.unproject([c,d+y],_),F=t.unproject([c+m,d+y],_);return [Math.min(E[0],x[0],v[0],F[0]),Math.min(E[1],x[1],v[1],F[1]),Math.max(E[0],x[0],v[0],F[0]),Math.max(E[1],x[1],v[1],F[1])]}let A=sc(t,e[0],r),i=sc(t,e[1],r);return [Math.min(A[0],i[0]),Math.min(A[1],i[1]),Math.max(A[2],i[2]),Math.max(A[3],i[3])]}function aB(t,e,r){return r?oo(t,r).map(i=>i*e/Zr):t.map(A=>A*e/Zr)}function oc(t,e){return Math.pow(2,t)*Zr/e}function so(t,e,r){let A=oc(r,Zr),i=t/A*360-180,c=Math.PI-2*Math.PI*e/A,d=180/Math.PI*Math.atan(.5*(Math.exp(c)-Math.exp(-c)));return [i,d]}function vp(t,e,r,A){let i=oc(r,A);return [t/i*Zr,e/i*Zr]}function ac(t,e,r,A,i=Zr){if(t.isGeospatial){let[_,E]=so(e,r,A),[x,v]=so(e+1,r+1,A);return {west:_,north:E,east:x,south:v}}let[c,d]=vp(e,r,A,i),[m,y]=vp(e+1,r+1,A,i);return {left:c,top:d,right:m,bottom:y}}function cB(t,e,r,A,i){let c=oB(t,null,A),d=oc(e,r),[m,y,_,E]=aB(c,d,i),x=[];for(let v=Math.floor(m);v<_;v++)for(let F=Math.floor(y);F<E;F++)x.push({x:v,y:F,z:e});return x}function cc({viewport:t,maxZoom:e,minZoom:r,zRange:A,extent:i,tileSize:c=Zr,modelMatrix:d,modelMatrixInverse:m,zoomOffset:y=0,visibleMinZoom:_,visibleMaxZoom:E}){let x=t.isGeospatial?Math.round(t.zoom+Math.log2(Zr/c)+y):Math.ceil(t.zoom+y);if(typeof r=="number"&&Number.isFinite(r)&&x<r){if(!i)return [];x=r;}if(typeof e=="number"&&Number.isFinite(e)&&x>e&&(x=e),_!=null&&t.zoom<_)return [];if(E!=null&&t.zoom>E)return [];let v=i;return d&&m&&i&&!t.isGeospatial&&(v=oo(i,d)),t.isGeospatial?Bp(t,x,A,i):cB(t,x,c,v||iB,m)}function lc(t){return /(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function uc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Sp(t){let e={},r;return A=>{for(let i in A)if(!lB(A[i],e[i])){r=t(A),e=A;break}return r}}function lB(t,e){if(t===e)return true;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return false;for(let A=0;A<r;A++)if(t[A]!==e[A])return false;return true}return false}var Ip=1,ao=2,uB="never",fB="no-overlap",Ri="best-available",hB=5,dB={[Ri]:mB,[fB]:gB,[uB]:()=>{}},pB={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:()=>{}},wA=class{constructor(e){this._getCullBounds=Sp(Mp),this.opts=r$1(r$1({},pB),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 Mo$1({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=false,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new D,this._modelMatrixInverse=new D;}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:A}={zRange:null,modelMatrix:null}){let i=A?new D(A):new D,c=!i.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!De(this._zRange,r)||c){c&&(this._modelMatrixInverse=i.clone().invert(),this._modelMatrix=i),this._viewport=e,this._zRange=r;let m=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=m.map(y=>this._getTile(y,true)),this._dirty&&this._rebuildTree();}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(m=>this._getTile(m.index,true)));let d=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),d&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,A){if(!e.isVisible)return false;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:c}=e;for(let[d,m,y,_]of i){let E;if("west"in c)E=c.west<y&&c.east>d&&c.south<_&&c.north>m;else {if(A&&!D.IDENTITY.equals(A)){let[F,N,U,q]=oo([c.left,c.top,c.right,c.bottom],A);c={left:F,top:N,right:U,bottom:q};}let x=Math.min(c.top,c.bottom),v=Math.max(c.top,c.bottom);E=c.left<y&&c.right>d&&x<_&&v>m;}if(E)return true}return false}return true}getTileIndices({viewport:e,maxZoom:r,minZoom:A,zRange:i,modelMatrix:c,modelMatrixInverse:d}){let{tileSize:m,extent:y,zoomOffset:_,visibleMinZoom:E,visibleMaxZoom:x}=this.opts;return cc({viewport:e,maxZoom:r,minZoom:A,zRange:i,tileSize:m,extent:y,modelMatrix:c,modelMatrixInverse:d,zoomOffset:_,visibleMinZoom:E,visibleMaxZoom:x})}getTileId(e){return `${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return {bbox:ac(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),A=Math.floor(e.y/2),i=e.z-1;return {x:r,y:A,z:i}}updateTileStates(){let e=this.opts.refinementStrategy||Ri,r=new Array(this._cache.size),A=0;for(let i of this._cache.values())r[A++]=i.isVisible,i.isSelected=false,i.isVisible=false;for(let i of this._selectedTiles)i.isSelected=true,i.isVisible=true;(typeof e=="function"?e:dB[e])(Array.from(this._cache.values())),A=0;for(let i of this._cache.values())if(r[A++]!==i.isVisible)return true;return false}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],A=0;for(let i of this._cache.values())i.isLoading&&(A++,!i.isSelected&&!i.isVisible&&r.push(i));for(;e>0&&A>e&&r.length>0;)r.shift().abort(),A--;}_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 A=this._getNearestAncestor(r);r.parent=A,A?.children&&A.children.push(r);}}_resizeCache(){let{_cache:e,opts:r}=this,A=r.maxCacheSize??(r.maxCacheByteSize!==null?1/0:hB*this.selectedTiles.length),i=r.maxCacheByteSize??1/0;if(e.size>A||this._cacheByteSize>i){for(let[d,m]of e)if(!m.isVisible&&!m.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?m.byteLength:0,e.delete(d),this.opts.onTileUnload?.(m)),e.size<=A&&this._cacheByteSize<=i)break;this._rebuildTree(),this._dirty=true;}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((d,m)=>d.zoom-m.zoom),this._dirty=false);}_getTile(e,r){let A=this.getTileId(e),i=this._cache.get(A),c=false;return !i&&r?(i=new EA(e),Object.assign(i,this.getTileMetadata(i.index)),Object.assign(i,{id:A,zoom:this.getTileZoom(i.index)}),c=true,this._cache.set(A,i),this._dirty=true):i&&i.needsReload&&(c=true),i&&c&&i.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),i}_getNearestAncestor(e){let{_minZoom:r=0}=this,A=e.index;for(;this.getTileZoom(A)>r;){A=this.getParentIndex(A);let i=this._getTile(A);if(i)return i}return null}};function mB(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Fp(e)&&fc(e);for(let e of t)e.isVisible=!!(e.state&ao);}function gB(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Fp(r);let e=Array.from(t).sort((r,A)=>r.zoom-A.zoom);for(let r of e)if(r.isVisible=!!(r.state&ao),r.children&&(r.isVisible||r.state&Ip))for(let A of r.children)A.state=Ip;else r.isSelected&&fc(r);}function Fp(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=ao,true;e=e.parent;}return false}function fc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=ao:fc(e);}var yB={TilesetClass:wA,data:{type:"data",value:[]},dataComparator:mn.equal,renderSubLayers:{type:"function",value:t=>new Ks$1(t)},getTileData:{type:"function",optional:true,value:null},onViewportLoad:{type:"function",optional:true,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:true,value:null,compare:true},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Ri,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},TB=(()=>{class t extends Dv$1{initializeState(){this.state={tileset:null,isLoaded:false};}finalizeState(){this.state?.tileset?.finalize();}get isLoaded(){return !!this.state?.tileset?.selectedTiles?.every(r=>r.isLoaded&&(!r.content||!r.layers||r.layers.every(A=>A.isLoaded)))}shouldUpdateState({changeFlags:r}){return r.somethingChanged}updateState({changeFlags:r}){let{tileset:A}=this.state,i=r.propsOrDataChanged||r.updateTriggersChanged,c=r.dataChanged||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged.getTileData);A?i&&(A.setOptions(this._getTilesetOptions()),c?A.reloadAll():A.tiles.forEach(d=>{d.layers=null;})):(A=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:A})),this._updateTileset();}_getTilesetOptions(){let{tileSize:r,maxCacheSize:A,maxCacheByteSize:i,refinementStrategy:c,extent:d,maxZoom:m,minZoom:y,maxRequests:_,debounceTime:E,zoomOffset:x,visibleMinZoom:v,visibleMaxZoom:F}=this.props;return {maxCacheSize:A,maxCacheByteSize:i,maxZoom:m,minZoom:y,tileSize:r,refinementStrategy:c,extent:d,maxRequests:_,debounceTime:E,zoomOffset:x,visibleMinZoom:v,visibleMaxZoom:F,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let r=this.state.tileset,{zRange:A,modelMatrix:i}=this.props,c=r.update(this.context.viewport,{zRange:A,modelMatrix:i}),{isLoaded:d}=r,m=this.state.isLoaded!==d,y=this.state.frameNumber!==c;d&&(m||y)&&this._onViewportLoad(),y&&this.setState({frameNumber:c}),this.state.isLoaded=d;}_onViewportLoad(){let{tileset:r}=this.state,{onViewportLoad:A}=this.props;A&&A(r.selectedTiles);}_onTileLoad(r){this.props.onTileLoad(r),r.layers=null,this.setNeedsUpdate();}_onTileError(r,A){this.props.onTileError(r),A.layers=null,this.setNeedsUpdate();}_onTileUnload(r){this.props.onTileUnload(r);}getTileData(r){let{data:A,getTileData:i,fetch:c}=this.props,{signal:d}=r;return r.url=typeof A=="string"||Array.isArray(A)?$r(A,r):null,i?i(r):c&&r.url?c(r.url,{propName:"data",layer:this,signal:d}):null}renderSubLayers(r){return this.props.renderSubLayers(r)}getSubLayerPropsByTile(r){return null}getPickingInfo(r){let A=r.sourceLayer,i=A.props.tile,c=r.info;return c.picked&&(c.tile=i),c.sourceTile=i,c.sourceTileSubLayer=A,c}_updateAutoHighlight(r){r.sourceTileSubLayer.updateAutoHighlight(r);}renderLayers(){let{visibleMinZoom:r,visibleMaxZoom:A,minZoom:i,extent:c}=this.props,d=this.context.viewport.zoom;if(r!=null&&d<r||A!=null&&d>A||i!=null&&!c&&d<i){for(let y of this.state.tileset.tiles)y.layers=null;return []}return this.state.tileset.tiles.map(y=>{let _=this.getSubLayerPropsByTile(y);if(!(!y.isLoaded&&!y.content))if(y.layers)_&&y.layers[0]&&Object.keys(_).some(E=>y.layers[0].props[E]!==_[E])&&(y.layers=y.layers.map(E=>E.clone(_)));else {let E=this.renderSubLayers(s$1(r$1(r$1({},this.props),this.getSubLayerProps({id:y.id,updateTriggers:this.props.updateTriggers})),{data:y.content,_offset:0,tile:y}));y.layers=Mt(E,Boolean).map(x=>x.clone(r$1({tile:y},_)));}return y.layers})}filterSubLayer({layer:r,cullRect:A}){let{tile:i}=r.props,{modelMatrix:c}=this.props;return this.state.tileset.isTileVisible(i,A,c?new D(c):null)}}return t.defaultProps=yB,t.layerName="TileLayer",t})(),BA=TB;var Lp=`layout(std140) uniform tripsUniforms {
|
|
5
|
-
bool fadeTrail;
|
|
6
|
-
float trailLength;
|
|
7
|
-
float currentTime;
|
|
8
|
-
} trips;
|
|
9
|
-
`,Rp={name:"trips",vs:Lp,fs:Lp,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};var _B={fadeTrail:true,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},bB=(()=>{class t extends ye$1{getShaders(){let r=super.getShaders();return r.inject={"vs:#decl":`in float instanceTimestamps;
|
|
10
|
-
in float instanceNextTimestamps;
|
|
11
|
-
out float vTime;
|
|
12
|
-
`,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;
|
|
13
|
-
`,"fs:#decl":`in float vTime;
|
|
14
|
-
`,"fs:#main-start":`if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) {
|
|
15
|
-
discard;
|
|
16
|
-
}
|
|
17
|
-
`,"fs:DECKGL_FILTER_COLOR":`if(trips.fadeTrail) {
|
|
18
|
-
color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;
|
|
19
|
-
}
|
|
20
|
-
`},r.modules=[...r.modules,Rp],r}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}});}draw(r){let{fadeTrail:A,trailLength:i,currentTime:c}=this.props,d={fadeTrail:A,trailLength:i,currentTime:c};this.state.model.shaderInputs.setProps({trips:d}),super.draw(r);}}return t.layerName="TripsLayer",t.defaultProps=_B,t})(),EB=bB;var xB=10;function CB(t,e){let r;return t==null?r=e:typeof t=="object"?r=s$1(r$1({},t),{coverage:e}):r={getHexagon:t,coverage:e},r}var wB=s$1(r$1({},_s$1.defaultProps),{highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:true}),BB=(()=>{class t extends Dv$1{initializeState(){t._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1};}shouldUpdateState({changeFlags:r}){return this._shouldUseHighPrecision()?r.propsOrDataChanged:r.somethingChanged}updateState({props:r,changeFlags:A}){if(r.highPrecision!==true&&(A.dataChanged||A.updateTriggersChanged&&A.updateTriggersChanged.getHexagon)){let i=this._calculateH3DataProps();this.setState(i);}this._updateVertices(this.context.viewport);}_calculateH3DataProps(){let r=-1,A=false,i=false,{iterable:c,objectInfo:d}=fi$1(this.props.data);for(let m of c){d.index++;let y=this.props.getHexagon(m,d),_=Ed(y);if(r<0){if(r=_,!this.props.highPrecision)break}else if(r!==_){i=true;break}if(bd(y)){A=true;break}}return {resolution:r,edgeLengthKM:r>=0?vd(r,"km"):0,hasMultipleRes:i,hasPentagon:A}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:r,hasPentagon:A,hasMultipleRes:i}=this.state,{viewport:c}=this.context;return !!c?.resolution||i||A||r>=0&&r<=5}return this.props.highPrecision}_updateVertices(r){if(this._shouldUseHighPrecision())return;let{resolution:A,edgeLengthKM:i,centerHex:c}=this.state;if(A<0)return;let d=this.props.centerHexagon||xd(r.latitude,r.longitude,A);if(c===d)return;if(c)try{if(Bd(c,d)*i<xB)return}catch{}let{unitsPerMeter:m}=r.distanceScales,y=B0(d),[_,E]=mi(d),[x,v]=r.projectFlat([E,_]);y=y.map(F=>{let N=r.projectFlat(F);return [(N[0]-x)/m[0],(N[1]-v)/m[1]]}),this.setState({centerHex:d,vertices:y});}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:r,material:A,coverage:i,extruded:c,wireframe:d,stroked:m,filled:y,lineWidthUnits:_,lineWidthScale:E,lineWidthMinPixels:x,lineWidthMaxPixels:v,getFillColor:F,getElevation:N,getLineColor:U,getLineWidth:q,transitions:X,updateTriggers:W}=this.props;return {elevationScale:r,extruded:c,coverage:i,wireframe:d,stroked:m,filled:y,lineWidthUnits:_,lineWidthScale:E,lineWidthMinPixels:x,lineWidthMaxPixels:v,material:A,getElevation:N,getFillColor:F,getLineColor:U,getLineWidth:q,transitions:X,updateTriggers:{getFillColor:W.getFillColor,getElevation:W.getElevation,getLineColor:W.getLineColor,getLineWidth:W.getLineWidth}}}_renderPolygonLayer(){let{data:r,getHexagon:A,updateTriggers:i,coverage:c}=this.props,d=this.getSubLayerClass("hexagon-cell-hifi",_s$1),m=this._getForwardProps();return m.updateTriggers.getPolygon=CB(i.getHexagon,c),new d(m,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:m.updateTriggers}),{data:r,_normalize:false,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(y,_)=>{let E=A(y,_);return Us(B0(E,c))}})}_renderColumnLayer(){let{data:r,getHexagon:A,updateTriggers:i}=this.props,c=this.getSubLayerClass("hexagon-cell",dt$1),d=this._getForwardProps();return d.updateTriggers.getPosition=i.getHexagon,new c(d,this.getSubLayerProps({id:"hexagon-cell",flatShading:true,updateTriggers:d.updateTriggers}),{data:r,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Md.bind(null,A)})}}return t.defaultProps=wB,t.layerName="H3HexagonLayer",t._checkH3Lib=()=>{},t})(),hc=BB;var vB={getHexagons:{type:"accessor",value:t=>t.hexagons}},MB=(()=>{class t extends Sr{initializeState(){hc._checkH3Lib();}updateState({props:r,changeFlags:A}){if(A.dataChanged||A.updateTriggersChanged&&A.updateTriggersChanged.getHexagons){let{data:i,getHexagons:c}=r,d=[],{iterable:m,objectInfo:y}=fi$1(i);for(let _ of m){y.index++;let E=c(_,y),x=wd(E,true);for(let v of x){for(let F of v)ks(F);d.push(this.getSubLayerRow({polygon:v},_,y.index));}}this.setState({polygons:d});}}indexToBounds(){let{getElevation:r,getFillColor:A,getLineColor:i,getLineWidth:c}=this.props;return {data:this.state.polygons,getPolygon:d=>d.polygon,getElevation:this.getSubLayerAccessor(r),getFillColor:this.getSubLayerAccessor(A),getLineColor:this.getSubLayerAccessor(i),getLineWidth:this.getSubLayerAccessor(c)}}}return t.layerName="H3ClusterLayer",t.defaultProps=vB,t})(),SB=MB;var dc=Math.PI/180,co=new Float32Array(16),Pp=new Float32Array(12);function Dp(t,e,r){let A=e[0]*dc,i=e[1]*dc,c=e[2]*dc,d=Math.sin(c),m=Math.sin(A),y=Math.sin(i),_=Math.cos(c),E=Math.cos(A),x=Math.cos(i),v=r[0],F=r[1],N=r[2];t[0]=v*x*E,t[1]=v*y*E,t[2]=v*-m,t[3]=F*(-y*_+x*m*d),t[4]=F*(x*_+y*m*d),t[5]=F*E*d,t[6]=N*(y*d+x*m*_),t[7]=N*(-x*d+y*m*_),t[8]=N*E*_;}function Np(t){return t[0]=t[0],t[1]=t[1],t[2]=t[2],t[3]=t[4],t[4]=t[5],t[5]=t[6],t[6]=t[8],t[7]=t[9],t[8]=t[10],t[9]=t[12],t[10]=t[13],t[11]=t[14],t.subarray(0,12)}var lo={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrixCol0:{size:3,elementOffset:0},instanceModelMatrixCol1:{size:3,elementOffset:3},instanceModelMatrixCol2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update(t,{startRow:e,endRow:r}){let{data:A,getOrientation:i,getScale:c,getTranslation:d,getTransformMatrix:m}=this.props,y=Array.isArray(m),_=y&&m.length===16,E=Array.isArray(c),x=Array.isArray(i),v=Array.isArray(d),F=_||!y&&!!m(A[0]);F?t.constant=_:t.constant=x&&E&&v;let N=t.value;if(t.constant){let U;F?(co.set(m),U=Np(co)):(U=Pp,Dp(U,i,c),U.set(d,9)),t.value=new Float32Array(U);}else {let U=e*t.size,{iterable:q,objectInfo:X}=fi$1(A,e,r);for(let W of q){X.index++;let he;if(F)co.set(_?m:m(W,X)),he=Np(co);else {he=Pp;let _e=x?i:i(W,X),be=E?c:c(W,X);Dp(he,_e,be),he.set(v?d:d(W,X),9);}N[U++]=he[0],N[U++]=he[1],N[U++]=he[2],N[U++]=he[3],N[U++]=he[4],N[U++]=he[5],N[U++]=he[6],N[U++]=he[7],N[U++]=he[8],N[U++]=he[9],N[U++]=he[10],N[U++]=he[11];}}}};function uo(t,e){return e==="cartesian"||e==="meter-offsets"||e==="default"&&!t.isGeospatial}var Op=`layout(std140) uniform simpleMeshUniforms {
|
|
21
|
-
float sizeScale;
|
|
22
|
-
bool composeModelMatrix;
|
|
23
|
-
bool hasTexture;
|
|
24
|
-
bool flatShading;
|
|
25
|
-
} simpleMesh;
|
|
26
|
-
`,Gp={name:"simpleMesh",vs:Op,fs:Op,uniformTypes:{sizeScale:"f32",composeModelMatrix:"f32",hasTexture:"f32",flatShading:"f32"}};var kp=`#version 300 es
|
|
27
|
-
#define SHADER_NAME simple-mesh-layer-vs
|
|
28
|
-
in vec3 positions;
|
|
29
|
-
in vec3 normals;
|
|
30
|
-
in vec3 colors;
|
|
31
|
-
in vec2 texCoords;
|
|
32
|
-
in vec3 instancePositions;
|
|
33
|
-
in vec3 instancePositions64Low;
|
|
34
|
-
in vec4 instanceColors;
|
|
35
|
-
in vec3 instancePickingColors;
|
|
36
|
-
in vec3 instanceModelMatrixCol0;
|
|
37
|
-
in vec3 instanceModelMatrixCol1;
|
|
38
|
-
in vec3 instanceModelMatrixCol2;
|
|
39
|
-
in vec3 instanceTranslation;
|
|
40
|
-
out vec2 vTexCoord;
|
|
41
|
-
out vec3 cameraPosition;
|
|
42
|
-
out vec3 normals_commonspace;
|
|
43
|
-
out vec4 position_commonspace;
|
|
44
|
-
out vec4 vColor;
|
|
45
|
-
void main(void) {
|
|
46
|
-
geometry.worldPosition = instancePositions;
|
|
47
|
-
geometry.uv = texCoords;
|
|
48
|
-
geometry.pickingColor = instancePickingColors;
|
|
49
|
-
vTexCoord = texCoords;
|
|
50
|
-
cameraPosition = project.cameraPosition;
|
|
51
|
-
vColor = vec4(colors * instanceColors.rgb, instanceColors.a);
|
|
52
|
-
mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
|
|
53
|
-
vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale + instanceTranslation;
|
|
54
|
-
if (simpleMesh.composeModelMatrix) {
|
|
55
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
56
|
-
normals_commonspace = project_normal(instanceModelMatrix * normals);
|
|
57
|
-
geometry.worldPosition += pos;
|
|
58
|
-
gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);
|
|
59
|
-
geometry.position = position_commonspace;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
pos = project_size(pos);
|
|
63
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
64
|
-
gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);
|
|
65
|
-
geometry.position = position_commonspace;
|
|
66
|
-
normals_commonspace = project_normal(instanceModelMatrix * normals);
|
|
67
|
-
}
|
|
68
|
-
geometry.normal = normals_commonspace;
|
|
69
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
70
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
71
|
-
}
|
|
72
|
-
`;var Up=`#version 300 es
|
|
73
|
-
#define SHADER_NAME simple-mesh-layer-fs
|
|
74
|
-
precision highp float;
|
|
75
|
-
uniform sampler2D sampler;
|
|
76
|
-
in vec2 vTexCoord;
|
|
77
|
-
in vec3 cameraPosition;
|
|
78
|
-
in vec3 normals_commonspace;
|
|
79
|
-
in vec4 position_commonspace;
|
|
80
|
-
in vec4 vColor;
|
|
81
|
-
out vec4 fragColor;
|
|
82
|
-
void main(void) {
|
|
83
|
-
geometry.uv = vTexCoord;
|
|
84
|
-
vec3 normal;
|
|
85
|
-
if (simpleMesh.flatShading) {
|
|
86
|
-
normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
|
|
87
|
-
} else {
|
|
88
|
-
normal = normals_commonspace;
|
|
89
|
-
}
|
|
90
|
-
vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;
|
|
91
|
-
DECKGL_FILTER_COLOR(color, geometry);
|
|
92
|
-
vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
|
|
93
|
-
fragColor = vec4(lightColor, color.a * layer.opacity);
|
|
94
|
-
}
|
|
95
|
-
`;function pc(t){let e=1/0,r=1/0,A=1/0,i=-1/0,c=-1/0,d=-1/0,m=t.POSITION?t.POSITION.value:[],y=m&&m.length;for(let _=0;_<y;_+=3){let E=m[_],x=m[_+1],v=m[_+2];e=E<e?E:e,r=x<r?x:r,A=v<A?v:A,i=E>i?E:i,c=x>c?x:c,d=v>d?v:d;}return [[e,r,A],[i,c,d]]}function mc(t){let e=t.positions||t.POSITION;C.assert(e,'no "postions" or "POSITION" attribute in mesh');let r=e.value.length/e.size,A=t.COLOR_0||t.colors;A||(A={size:3,value:new Float32Array(r*3).fill(1)});let i=t.NORMAL||t.normals;i||(i={size:3,value:new Float32Array(r*3).fill(0)});let c=t.TEXCOORD_0||t.texCoords;return c||(c={size:2,value:new Float32Array(r*2).fill(0)}),{positions:e,colors:A,normals:i,texCoords:c}}function Hp(t){return t instanceof Zr$1?(t.attributes=mc(t.attributes),t):t.attributes?new Zr$1(s$1(r$1({},t),{topology:"triangle-list",attributes:mc(t.attributes)})):new Zr$1({topology:"triangle-list",attributes:mc(t)})}var IB=[0,0,0,255],FB={mesh:{type:"object",value:null,async:true},texture:{type:"image",value:null,async:true},sizeScale:{type:"number",value:1,min:0},_instanced:true,wireframe:false,material:true,getPosition:{type:"accessor",value:t=>t.position},getColor:{type:"accessor",value:IB},getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},textureParameters:{type:"object",ignore:true,value:null}},LB=(()=>{class t extends mc$1{getShaders(){return super.getShaders({vs:kp,fs:Up,modules:[Jh$1,rn$1,nu$1,Gp]})}getBounds(){if(this.props._instanced)return super.getBounds();let r=this.state.positionBounds;if(r)return r;let{mesh:A}=this.props;if(!A)return null;if(r=A.header?.boundingBox,!r){let{attributes:i}=Hp(A);i.POSITION=i.POSITION||i.positions,r=pc(i);}return this.state.positionBounds=r,r}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{transition:true,type:"float64",fp64:this.use64bitPositions(),size:3,accessor:"getPosition"},instanceColors:{type:"unorm8",transition:true,size:this.props.colorFormat.length,accessor:"getColor",defaultValue:[0,0,0,255]},instanceModelMatrix:lo}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})});}updateState(r){super.updateState(r);let{props:A,oldProps:i,changeFlags:c}=r;if(A.mesh!==i.mesh||c.extensionsChanged){if(this.state.positionBounds=null,this.state.model?.destroy(),A.mesh){this.state.model=this.getModel(A.mesh);let d=A.mesh.attributes||A.mesh;this.setState({hasNormals:!!(d.NORMAL||d.normals)});}this.getAttributeManager().invalidateAll();}A.texture!==i.texture&&A.texture instanceof N&&this.setTexture(A.texture),this.state.model&&this.state.model.setTopology(this.props.wireframe?"line-strip":"triangle-list");}finalizeState(r){super.finalizeState(r),this.state.emptyTexture.delete();}draw({uniforms:r}){let{model:A}=this.state;if(!A)return;let{viewport:i,renderPass:c}=this.context,{sizeScale:d,coordinateSystem:m,_instanced:y}=this.props,_={sizeScale:d,composeModelMatrix:!y||uo(i,m),flatShading:!this.state.hasNormals};A.shaderInputs.setProps({simpleMesh:_}),A.draw(c);}get isLoaded(){return !!(this.state?.model&&super.isLoaded)}getModel(r){let A=new Kt$1(this.context.device,s$1(r$1({},this.getShaders()),{id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:Hp(r),isInstanced:true})),{texture:i}=this.props,{emptyTexture:c}=this.state,d={sampler:i||c,hasTexture:!!i};return A.shaderInputs.setProps({simpleMesh:d}),A}setTexture(r){let{emptyTexture:A,model:i}=this.state;if(i){let c={sampler:r||A,hasTexture:!!r};i.shaderInputs.setProps({simpleMesh:c});}}}return t.defaultProps=FB,t.layerName="SimpleMeshLayer",t})(),vA=LB;var Vp="4.4.4";var fo={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},jp;async function yc(t){Oc$1(t.modules);let e=Kp$1("basis");return e||(jp||=RB(t),await jp)}async function RB(t){let e=null,r=null;return [e,r]=await Promise.all([await id$1(fo.TRANSCODER,"textures",t),await id$1(fo.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await PB(e,r)}function PB(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(A=>{t(r).then(i=>{let{BasisFile:c,initializeBasis:d}=i;d(),A({BasisFile:c});});})}var gc;async function Tc(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(gc=gc||DB(t),await gc)}async function DB(t){let e=null,r=null;return [e,r]=await Promise.all([await id$1(fo.ENCODER,"textures",t),await id$1(fo.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await NB(e,r)}function NB(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(A=>{t(r).then(i=>{let{BasisFile:c,KTX2File:d,initializeBasis:m,BasisEncoder:y}=i;m(),A({BasisFile:c,KTX2File:d,BasisEncoder:y});});})}var OB=["","WEBKIT_","MOZ_"],Qp={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 ho=null;function zp(t){if(!ho){t=t||GB()||void 0,ho=new Set;for(let e of OB)for(let r in Qp)if(t&&t.getExtension(`${e}${r}`))for(let A of Qp[r])ho.add(A);}return ho}function GB(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var lr=[171,75,84,88,32,50,48,187,13,10,26,10];function Jp(t){let e=new Uint8Array(t);return !(e.byteLength<lr.length||e[0]!==lr[0]||e[1]!==lr[1]||e[2]!==lr[2]||e[3]!==lr[3]||e[4]!==lr[4]||e[5]!==lr[5]||e[6]!==lr[6]||e[7]!==lr[7]||e[8]!==lr[8]||e[9]!==lr[9]||e[10]!==lr[10]||e[11]!==lr[11])}var qp=Promise.resolve(),Xp={etc1:{basisFormat:0,compressed:true,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:true,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:true,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:true,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:true,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:true,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:true,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:true,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:true,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:true,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:true,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:true,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:true,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:false,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:false,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:false,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:false,format:32854,textureFormat:"rgba4unorm-webgl"}};Object.freeze(Object.keys(Xp));async function HB(t){let e=qp,r;qp=new Promise(A=>{r=A;}),await e;try{return await t()}finally{r();}}async function Yp(t,e={}){let r=rd$1(e);return await HB(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Jp(t)){let i=await Tc(r);return Kp(i.KTX2File,t,e)}let{BasisFile:A}=await yc(r);return _c(A,t,e)}if(e.basis.module==="encoder"){let A=await Tc(r);return e.basis.containerFormat==="ktx2"?Kp(A.KTX2File,t,e):_c(A.BasisFile,t,e)}else {let{BasisFile:i}=await yc(r);return _c(i,t,e)}})}function _c(t,e,r){let A=new t(new Uint8Array(e));try{if(!A.startTranscoding())throw new Error("Failed to start basis transcoding");let i=A.getNumImages(),c=[];for(let d=0;d<i;d++){let m=A.getNumLevels(d),y=[];for(let _=0;_<m;_++)y.push(VB(A,d,_,r));c.push(y);}return c}finally{A.close(),A.delete();}}function VB(t,e,r,A){let i=t.getImageWidth(e,r),c=t.getImageHeight(e,r),d=t.getHasAlpha(),{compressed:m,format:y,basisFormat:_,textureFormat:E}=Wp(A,d),x=t.getImageTranscodedSizeInBytes(e,r,_),v=new Uint8Array(x);if(!t.transcodeImage(v,e,r,_,0,0))throw new Error("failed to start Basis transcoding");return s$1(r$1(r$1({shape:"texture-level",width:i,height:c,data:v,compressed:m},y!==void 0?{format:y}:{}),E!==void 0?{textureFormat:E}:{}),{hasAlpha:d})}function Kp(t,e,r){let A=new t(new Uint8Array(e));try{if(!A.startTranscoding())throw new Error("failed to start KTX2 transcoding");let i=A.getLevels(),c=[];for(let d=0;d<i;d++)c.push(jB(A,d,r));return [c]}finally{A.close(),A.delete();}}function jB(t,e,r){let{alphaFlag:A,height:i,width:c}=t.getImageLevelInfo(e,0,0),{compressed:d,format:m,basisFormat:y,textureFormat:_}=Wp(r,A),E=t.getImageTranscodedSizeInBytes(e,0,0,y),x=new Uint8Array(E);if(!t.transcodeImage(x,e,0,0,y,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return s$1(r$1(r$1({shape:"texture-level",width:c,height:i,data:x,compressed:d},m!==void 0?{format:m}:{}),_!==void 0?{textureFormat:_}:{}),{levelSize:E,hasAlpha:A})}function Wp(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?Pi(t.basis.supportedTextureFormats):Pi()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let A=r.toLowerCase(),i=Xp[A];if(!i)throw new Error(`Unknown Basis format ${r}`);return i}function Pi(t=zp()){let e=new Set(t);return MA(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":MA(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:MA(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"}:MA(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:MA(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":MA(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function MA(t,e){return e.some(r=>t.has(r))}var Zp={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Vp,worker:true,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:true,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},bc=s$1(r$1({},Zp),{parse:Yp});var Ze=(function(t){return 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",t})(Ze||{});function em(t){return r$1({addressModeU:$p(t.wrapS),addressModeV:$p(t.wrapT),magFilter:QB(t.magFilter)},zB(t.minFilter))}function $p(t){switch(t){case Ze.CLAMP_TO_EDGE:return "clamp-to-edge";case Ze.REPEAT:return "repeat";case Ze.MIRRORED_REPEAT:return "mirror-repeat";default:return}}function QB(t){switch(t){case Ze.NEAREST:return "nearest";case Ze.LINEAR:return "linear";default:return}}function zB(t){switch(t){case Ze.NEAREST:return {minFilter:"nearest"};case Ze.LINEAR:return {minFilter:"linear"};case Ze.NEAREST_MIPMAP_NEAREST:return {minFilter:"nearest",mipmapFilter:"nearest"};case Ze.LINEAR_MIPMAP_NEAREST:return {minFilter:"linear",mipmapFilter:"nearest"};case Ze.NEAREST_MIPMAP_LINEAR:return {minFilter:"nearest",mipmapFilter:"linear"};case Ze.LINEAR_MIPMAP_LINEAR:return {minFilter:"linear",mipmapFilter:"linear"};default:return {}}}var Ec=[Gt("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),Gt("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),Gt("normal","pbr_normalSampler","normalTexture",["normalTexture"]),Gt("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),Gt("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),Gt("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),Gt("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),Gt("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),Gt("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),Gt("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),Gt("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),Gt("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),Gt("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),Gt("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),Gt("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),Gt("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),Gt("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"])],JB=new Map(Ec.map(t=>[t.slot,t]));function Gt(t,e,r,A){return {slot:t,binding:e,displayName:r,pathSegments:A,uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function tm(){return Ec}function mo(t){let e=JB.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function go(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 xc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function rm(t){return Ec.find(e=>e.pathSegments.length===t.length&&e.pathSegments.every((r,A)=>t[A]===r))||null}function po(t){let e=new Tr$1().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new Tr$1().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),A=new Tr$1().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(A))}function nm(t,e){let r=new Tr$1(po(t)),A=new Tr$1(po(e)),i=new Tr$1(r).invert();return Array.from(A.multiplyRight(i))}function SA(t,e,r,A){let i={defines:{MANUAL_SRGB:true,SRGB_FAST_APPROXIMATION:true},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};i.defines.USE_TEX_LOD=true;let{imageBasedLightingEnvironment:c}=A;return c&&(i.bindings.pbr_diffuseEnvSampler=c.diffuseEnvSampler.texture,i.bindings.pbr_specularEnvSampler=c.specularEnvSampler.texture,i.bindings.pbr_brdfLUT=c.brdfLutTexture.texture,i.uniforms.IBLenabled=true,i.uniforms.scaleIBLAmbient=[1,1]),A?.pbrDebug&&(i.defines.PBR_DEBUG=true,i.uniforms.scaleDiffBaseMR=[0,0,0,0],i.uniforms.scaleFGDSpec=[0,0,0,0]),r.NORMAL&&(i.defines.HAS_NORMALS=true),r.TANGENT&&A?.useTangents&&(i.defines.HAS_TANGENTS=true),r.TEXCOORD_0&&(i.defines.HAS_UV=true),r.TEXCOORD_1&&(i.defines.HAS_UV_1=true),r.JOINTS_0&&r.WEIGHTS_0&&(i.defines.HAS_SKIN=true),r.COLOR_0&&(i.defines.HAS_COLORS=true),A?.imageBasedLightingEnvironment&&(i.defines.USE_IBL=true),A?.lights&&(i.defines.USE_LIGHTS=true),e&&(A.validateAttributes!==false&&qB(e,r),XB(t,e,i,r,A.gltf)),i}function qB(t,e){let r=Am(t,0);r.length>0&&!e.TEXCOORD_0&&d.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let A=Am(t,1);if(A.length>0&&!e.TEXCOORD_1&&d.warn(`glTF material uses ${A.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),!!(t.unlit||t.extensions?.KHR_materials_unlit)||e.NORMAL)return;let c=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";d.warn(`glTF primitive is missing NORMAL while using ${c}; shading will fall back to geometric normals`)();}function Am(t,e){let r=[];for(let A of tm()){let i=KB(t,A.pathSegments);i&&xc(i)===e&&r.push(A.displayName);}return r}function KB(t,e){let r=t;for(let A of e)if(r=r?.[A],!r)return null;return r}function XB(t,e,r,A,i){if(r.uniforms.unlit=!!(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&ZB(t,e.pbrMetallicRoughness,r,A,i),e.normalTexture){kt(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:i,attributes:A,textureTransformSlot:"normal"});let{scale:c=1}=e.normalTexture;r.uniforms.normalScale=c;}if(e.occlusionTexture){kt(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:i,attributes:A,textureTransformSlot:"occlusion"});let{strength:c=1}=e.occlusionTexture;r.uniforms.occlusionStrength=c;}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&kt(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:i,attributes:A,textureTransformSlot:"emissive"}),$B(t,e.extensions,r,i,A),e.alphaMode||"OPAQUE"){case "OPAQUE":break;case "MASK":{let{alphaCutoff:c=.5}=e;r.defines.ALPHA_CUTOFF=true,r.uniforms.alphaCutoffEnabled=true,r.uniforms.alphaCutoff=c;break}case "BLEND":d.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),YB(r);break}}function YB(t){t.parameters.blend=true,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=true,t.glParameters.blendEquation=Ze.FUNC_ADD,t.glParameters.blendFunc=[Ze.SRC_ALPHA,Ze.ONE_MINUS_SRC_ALPHA,Ze.ONE,Ze.ONE_MINUS_SRC_ALPHA];}function WB(t){t.parameters.blend=true,t.parameters.depthWriteEnabled=false,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=true,t.glParameters.depthMask=false,t.glParameters.blendEquation=Ze.FUNC_ADD,t.glParameters.blendFunc=[Ze.ONE,Ze.ONE_MINUS_SRC_ALPHA,Ze.ONE,Ze.ONE_MINUS_SRC_ALPHA];}function ZB(t,e,r,A,i){e.baseColorTexture&&kt(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:i,attributes:A,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&kt(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:i,attributes:A,textureTransformSlot:"metallicRoughness"});let{metallicFactor:c=1,roughnessFactor:d=1}=e;r.uniforms.metallicRoughnessValues=[c,d];}function $B(t,e,r,A,i={}){e&&(e3(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=true),t3(t,e.KHR_materials_specular,r,A,i),r3(e.KHR_materials_ior,r),n3(t,e.KHR_materials_transmission,r,A,i),A3(t,e.KHR_materials_volume,r,A,i),i3(t,e.KHR_materials_clearcoat,r,A,i),s3(t,e.KHR_materials_sheen,r,A,i),o3(t,e.KHR_materials_iridescence,r,A,i),a3(t,e.KHR_materials_anisotropy,r,A,i),c3(e.KHR_materials_emissive_strength,r));}function e3(t){return !!(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 t3(t,e,r,A,i={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&kt(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"specularColor"}),e.specularTexture&&kt(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"specularIntensity"}));}function r3(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior);}function n3(t,e,r,A,i={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&kt(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(d.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),WB(r)));}function A3(t,e,r,A,i={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&kt(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:A,attributes:i,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor));}function i3(t,e,r,A,i={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&kt(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&kt(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&kt(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:A,attributes:i,textureTransformSlot:"clearcoatNormal"}));}function s3(t,e,r,A,i={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&kt(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&kt(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"sheenRoughness"}));}function o3(t,e,r,A,i={}){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&&kt(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&kt(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:A,attributes:i,textureTransformSlot:"iridescenceThickness"}));}function a3(t,e,r,A,i={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&kt(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:A,attributes:i,textureTransformSlot:"anisotropy"}));}function c3(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength);}function kt(t,e,r,A,i={}){let{featureOptions:c={},gltf:d$1,attributes:m={},textureTransformSlot:y}=i,{define:_,enabledUniformName:E}=c,x=xc(e);if(x>1){d.warn(`Skipping ${String(r)} because ${x} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(x===1&&!m.TEXCOORD_1){d.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let v=l3(e,d$1),F=v.texture?.source?.image;if(!F){d.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let N=r$1({wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729},v?.texture?.sampler),U={id:v.uniformName||v.id,sampler:em(N)},q;if(F.compressed)q=f3(t,F,U);else {let{width:X,height:W}=t.getExternalImageSize(F);q=t.createTexture(s$1(r$1({},U),{width:X,height:W,data:F}));}if(A.bindings[r]=q,_&&(A.defines[_]=true),E&&(A.uniforms[E]=true),y){let X=mo(y);A.uniforms[X.uvSetUniform]=x,A.uniforms[X.uvTransformUniform]=po(go(e));}A.generatedTextures.push(q);}function l3(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?s$1(r$1(r$1({},r),t),{texture:r.texture}):"source"in r?s$1(r$1({},t),{texture:r}):t:t}function Cc(t,e){return t.createTexture(s$1(r$1({},e),{format:"rgba8unorm",width:1,height:1,mipLevels:1}))}function im(t){return t.textureFormat}function u3(t,e,r){let{blockWidth:A=1,blockHeight:i=1}=I.getInfo(r),c=1;for(let d=1;;d++){let m=Math.max(1,t>>d),y=Math.max(1,e>>d);if(m<A||y<i)break;c++;}return c}function f3(t,e,r){let A;if(Array.isArray(e.data)&&e.data[0]?.data?A=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?A=e.mipmaps:A=[],A.length===0||!A[0]?.data)return d.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),Cc(t,r);let i=A[0],c=i.width??e.width??0,d$1=i.height??e.height??0;if(c<=0||d$1<=0)return d.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),Cc(t,r);let m=im(i);if(!m)return d.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),Cc(t,r);let y=u3(c,d$1,m),_=Math.min(A.length,y),E=1;for(let v=1;v<_;v++){let F=A[v];if(!F.data||F.width<=0||F.height<=0){d.warn(`createCompressedTexture: mip level ${v} has invalid data/dimensions, truncating`)();break}let N=im(F);if(N&&N!==m){d.warn(`createCompressedTexture: mip level ${v} format '${N}' differs from base '${m}', truncating`)();break}let U=Math.max(1,c>>v),q=Math.max(1,d$1>>v);if(F.width!==U||F.height!==q){d.warn(`createCompressedTexture: mip level ${v} dimensions ${F.width}x${F.height} don't match expected ${U}x${q}, truncating`)();break}E++;}let x=t.createTexture(s$1(r$1({},r),{format:m,usage:N.TEXTURE|N.COPY_DST,width:c,height:d$1,mipLevels:E,data:i.data}));for(let v=1;v<E;v++)x.writeData(A[v].data,{width:A[v].width,height:A[v].height,mipLevel:v});return x}function sm(t,e={}){let r=t.lights||t.extensions?.KHR_lights_punctual?.lights;if(!r||!Array.isArray(r)||r.length===0)return [];let A=[],i=g3(t.nodes||[]),c=new Map;for(let d of t.nodes||[]){let m=d.light??d.extensions?.KHR_lights_punctual?.light;if(typeof m!="number")continue;let y=r[m];if(!y)continue;let _=h3(y.color||[1,1,1],e.useByteColors??true),E=y.intensity??1,x=y.range,v=om(d,i,c);switch(y.type){case "directional":A.push(p3(v,_,E));break;case "point":A.push(d3(v,_,E,x));break;case "spot":A.push(m3(v,_,E,x,y.spot));break;}}return A}function h3(t,e){return e?t.map(r=>r*255):Xi(t,false)}function d3(t,e,r,A){let i=am(t),c=[1,0,0];return A!==void 0&&A>0&&(c=[1,0,1/(A*A)]),{type:"point",position:i,color:e,intensity:r,attenuation:c}}function p3(t,e,r){return {type:"directional",direction:cm(t),color:e,intensity:r}}function m3(t,e,r,A,i={}){let c=am(t),d=cm(t),m=[1,0,0];return A!==void 0&&A>0&&(m=[1,0,1/(A*A)]),{type:"spot",position:c,direction:d,color:e,intensity:r,attenuation:m,innerConeAngle:i.innerConeAngle??0,outerConeAngle:i.outerConeAngle??Math.PI/4}}function g3(t){let e=new Map;for(let r of t)for(let A of r.children||[])e.set(A.id,r);return e}function om(t,e,r){let A=r.get(t.id);if(A)return A;let i=y3(t),c=e.get(t.id),d=c?new D(om(c,e,r)).multiplyRight(i):i;return r.set(t.id,d),d}function y3(t){if(t.matrix)return new D(t.matrix);let e=new D;return t.translation&&e.translate(t.translation),t.rotation&&e.multiplyRight(new D().fromQuaternion(t.rotation)),t.scale&&e.scale(t.scale),e}function am(t){return t.transformAsPoint([0,0,0])}function cm(t){return t.transformDirection([0,0,-1])}function lm(t){switch(t){case Ze.POINTS:return "point-list";case Ze.LINES:return "line-list";case Ze.LINE_STRIP:return "line-strip";case Ze.TRIANGLES:return "triangle-list";case Ze.TRIANGLE_STRIP:return "triangle-strip";default:throw new Error(String(t))}}var T3=`
|
|
96
|
-
struct VertexInputs {
|
|
97
|
-
@location(0) positions: vec3f,
|
|
98
|
-
#ifdef HAS_NORMALS
|
|
99
|
-
@location(1) normals: vec3f,
|
|
100
|
-
#endif
|
|
101
|
-
#ifdef HAS_TANGENTS
|
|
102
|
-
@location(2) TANGENT: vec4f,
|
|
103
|
-
#endif
|
|
104
|
-
#ifdef HAS_UV
|
|
105
|
-
@location(3) texCoords: vec2f,
|
|
106
|
-
#endif
|
|
107
|
-
#ifdef HAS_UV_1
|
|
108
|
-
@location(4) texCoords1: vec2f,
|
|
109
|
-
#endif
|
|
110
|
-
#ifdef HAS_SKIN
|
|
111
|
-
@location(5) JOINTS_0: vec4u,
|
|
112
|
-
@location(6) WEIGHTS_0: vec4f,
|
|
113
|
-
#endif
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
struct FragmentInputs {
|
|
117
|
-
@builtin(position) position: vec4f,
|
|
118
|
-
@location(0) pbrPosition: vec3f,
|
|
119
|
-
@location(1) pbrUV0: vec2f,
|
|
120
|
-
@location(2) pbrUV1: vec2f,
|
|
121
|
-
@location(3) pbrNormal: vec3f,
|
|
122
|
-
#ifdef HAS_TANGENTS
|
|
123
|
-
@location(4) pbrTangent: vec4f,
|
|
124
|
-
#endif
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
@vertex
|
|
128
|
-
fn vertexMain(inputs: VertexInputs) -> FragmentInputs {
|
|
129
|
-
var outputs: FragmentInputs;
|
|
130
|
-
var position = vec4f(inputs.positions, 1.0);
|
|
131
|
-
var normal = vec3f(0.0, 0.0, 1.0);
|
|
132
|
-
var tangent = vec4f(1.0, 0.0, 0.0, 1.0);
|
|
133
|
-
var uv0 = vec2f(0.0, 0.0);
|
|
134
|
-
var uv1 = vec2f(0.0, 0.0);
|
|
135
|
-
|
|
136
|
-
#ifdef HAS_NORMALS
|
|
137
|
-
normal = inputs.normals;
|
|
138
|
-
#endif
|
|
139
|
-
#ifdef HAS_UV
|
|
140
|
-
uv0 = inputs.texCoords;
|
|
141
|
-
#endif
|
|
142
|
-
#ifdef HAS_UV_1
|
|
143
|
-
uv1 = inputs.texCoords1;
|
|
144
|
-
#endif
|
|
145
|
-
#ifdef HAS_TANGENTS
|
|
146
|
-
tangent = inputs.TANGENT;
|
|
147
|
-
#endif
|
|
148
|
-
#ifdef HAS_SKIN
|
|
149
|
-
let skinMatrix = getSkinMatrix(inputs.WEIGHTS_0, inputs.JOINTS_0);
|
|
150
|
-
position = skinMatrix * position;
|
|
151
|
-
normal = normalize((skinMatrix * vec4f(normal, 0.0)).xyz);
|
|
152
|
-
#ifdef HAS_TANGENTS
|
|
153
|
-
tangent = vec4f(normalize((skinMatrix * vec4f(tangent.xyz, 0.0)).xyz), tangent.w);
|
|
154
|
-
#endif
|
|
155
|
-
#endif
|
|
156
|
-
|
|
157
|
-
let worldPosition = pbrProjection.modelMatrix * position;
|
|
158
|
-
|
|
159
|
-
#ifdef HAS_NORMALS
|
|
160
|
-
normal = normalize((pbrProjection.normalMatrix * vec4f(normal, 0.0)).xyz);
|
|
161
|
-
#endif
|
|
162
|
-
#ifdef HAS_TANGENTS
|
|
163
|
-
let worldTangent = normalize((pbrProjection.modelMatrix * vec4f(tangent.xyz, 0.0)).xyz);
|
|
164
|
-
outputs.pbrTangent = vec4f(worldTangent, tangent.w);
|
|
165
|
-
#endif
|
|
166
|
-
|
|
167
|
-
outputs.position = pbrProjection.modelViewProjectionMatrix * position;
|
|
168
|
-
outputs.pbrPosition = worldPosition.xyz / worldPosition.w;
|
|
169
|
-
outputs.pbrUV0 = uv0;
|
|
170
|
-
outputs.pbrUV1 = uv1;
|
|
171
|
-
outputs.pbrNormal = normal;
|
|
172
|
-
return outputs;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
@fragment
|
|
176
|
-
fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
|
|
177
|
-
fragmentInputs.pbr_vPosition = inputs.pbrPosition;
|
|
178
|
-
fragmentInputs.pbr_vUV0 = inputs.pbrUV0;
|
|
179
|
-
fragmentInputs.pbr_vUV1 = inputs.pbrUV1;
|
|
180
|
-
fragmentInputs.pbr_vNormal = inputs.pbrNormal;
|
|
181
|
-
#ifdef HAS_TANGENTS
|
|
182
|
-
let tangent = normalize(inputs.pbrTangent.xyz);
|
|
183
|
-
let bitangent = normalize(cross(inputs.pbrNormal, tangent)) * inputs.pbrTangent.w;
|
|
184
|
-
fragmentInputs.pbr_vTBN = mat3x3f(tangent, bitangent, inputs.pbrNormal);
|
|
185
|
-
#endif
|
|
186
|
-
return pbr_filterColor(vec4f(1.0));
|
|
187
|
-
}
|
|
188
|
-
`,_3=`#version 300 es
|
|
189
|
-
|
|
190
|
-
// in vec4 POSITION;
|
|
191
|
-
in vec4 positions;
|
|
192
|
-
|
|
193
|
-
#ifdef HAS_NORMALS
|
|
194
|
-
// in vec4 NORMAL;
|
|
195
|
-
in vec4 normals;
|
|
196
|
-
#endif
|
|
197
|
-
|
|
198
|
-
#ifdef HAS_TANGENTS
|
|
199
|
-
in vec4 TANGENT;
|
|
200
|
-
#endif
|
|
201
|
-
|
|
202
|
-
#ifdef HAS_UV
|
|
203
|
-
// in vec2 TEXCOORD_0;
|
|
204
|
-
in vec2 texCoords;
|
|
205
|
-
#endif
|
|
206
|
-
|
|
207
|
-
#ifdef HAS_UV_1
|
|
208
|
-
in vec2 texCoords1;
|
|
209
|
-
#endif
|
|
210
|
-
|
|
211
|
-
#ifdef HAS_SKIN
|
|
212
|
-
in uvec4 JOINTS_0;
|
|
213
|
-
in vec4 WEIGHTS_0;
|
|
214
|
-
#endif
|
|
215
|
-
|
|
216
|
-
void main(void) {
|
|
217
|
-
vec4 _NORMAL = vec4(0.);
|
|
218
|
-
vec4 _TANGENT = vec4(0.);
|
|
219
|
-
vec2 _TEXCOORD_0 = vec2(0.);
|
|
220
|
-
vec2 _TEXCOORD_1 = vec2(0.);
|
|
221
|
-
|
|
222
|
-
#ifdef HAS_NORMALS
|
|
223
|
-
_NORMAL = normals;
|
|
224
|
-
#endif
|
|
225
|
-
|
|
226
|
-
#ifdef HAS_TANGENTS
|
|
227
|
-
_TANGENT = TANGENT;
|
|
228
|
-
#endif
|
|
229
|
-
|
|
230
|
-
#ifdef HAS_UV
|
|
231
|
-
_TEXCOORD_0 = texCoords;
|
|
232
|
-
#endif
|
|
233
|
-
|
|
234
|
-
#ifdef HAS_UV_1
|
|
235
|
-
_TEXCOORD_1 = texCoords1;
|
|
236
|
-
#endif
|
|
237
|
-
|
|
238
|
-
vec4 pos = positions;
|
|
239
|
-
|
|
240
|
-
#ifdef HAS_SKIN
|
|
241
|
-
mat4 skinMat = getSkinMatrix(WEIGHTS_0, JOINTS_0);
|
|
242
|
-
pos = skinMat * pos;
|
|
243
|
-
_NORMAL = skinMat * _NORMAL;
|
|
244
|
-
_TANGENT = vec4((skinMat * vec4(_TANGENT.xyz, 0.)).xyz, _TANGENT.w);
|
|
245
|
-
#endif
|
|
246
|
-
|
|
247
|
-
pbr_setPositionNormalTangentUV(pos, _NORMAL, _TANGENT, _TEXCOORD_0, _TEXCOORD_1);
|
|
248
|
-
gl_Position = pbrProjection.modelViewProjectionMatrix * pos;
|
|
249
|
-
}
|
|
250
|
-
`,b3=`#version 300 es
|
|
251
|
-
out vec4 fragmentColor;
|
|
252
|
-
|
|
253
|
-
void main(void) {
|
|
254
|
-
vec3 pos = pbr_vPosition;
|
|
255
|
-
fragmentColor = pbr_filterColor(vec4(1.0));
|
|
256
|
-
}
|
|
257
|
-
`;function wc(t,e){let r=e.materialFactory||new Jr(t,{modules:[mb$1]}),A=r$1({},e.parsedPPBRMaterial.uniforms);delete A.camera;let i=Object.fromEntries(Object.entries(r$1(r$1({},A),e.parsedPPBRMaterial.bindings)).filter(([d,m])=>r.ownsBinding(d)&&E3(m))),c=r.createMaterial({id:e.id,bindings:i});return c.setProps({pbrMaterial:A}),c}function um(t,e){let{id:r,geometry:A,parsedPPBRMaterial:i,vertexCount:c,modelOptions:d$1={}}=e;d.info(4,"createGLTFModel defines: ",i.defines)();let m=[],y={depthWriteEnabled:true,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back"},_=s$1(r$1({id:r,source:T3,vs:_3,fs:b3,geometry:A,topology:A.topology,vertexCount:c,modules:[mb$1,ub$1]},d$1),{defines:r$1(r$1({},i.defines),d$1.defines),parameters:r$1(r$1(r$1({},y),i.parameters),d$1.parameters)}),E=e.material||wc(t,{id:r?`${r}-material`:void 0,parsedPPBRMaterial:i});_.material=E;let x=new Kt$1(t,_),v=r$1(r$1(r$1(r$1({},i.uniforms),d$1.uniforms),i.bindings),d$1.bindings),F=x3(x.shaderInputs.getModules(),E,v);return x.shaderInputs.setProps(F),new Fa({managedResources:m,model:x})}function E3(t){return t instanceof y||t instanceof xe$1||t instanceof re$1||t instanceof N||t instanceof xe$2}function x3(t,e,r){let A=new Map;for(let c of t){for(let d of Object.keys(c.uniformTypes||{}))A.set(d,c.name);for(let d of c.bindingLayout||[])A.set(d.name,c.name);}let i={};for(let[c,d]of Object.entries(r)){if(d===void 0)continue;let m=A.get(c);!m||e.ownsModule(m)||(i[m]||={},i[m][c]=d);}return i}var C3={modelOptions:{},pbrDebug:false,imageBasedLightingEnvironment:void 0,lights:true,useTangents:false,useByteColors:true};function fm(t,e,r={}){let A=r$1(r$1({},C3),r),i=new Jr(t,{modules:[mb$1]}),c=(e.materials||[]).map((x,v)=>wc(t,{id:I3(x,v),parsedPPBRMaterial:SA(t,x,{},s$1(r$1({},A),{gltf:e,validateAttributes:false})),materialFactory:i})),d=new Map;(e.materials||[]).forEach((x,v)=>{d.set(x.id,c[v]);});let m=new Map;e.meshes.forEach((x,v)=>{let F=B3(t,x,e,d,A);m.set(x.id,F);});let y=new Map,_=new Map;return e.nodes.forEach((x,v)=>{let F=w3(t,x);y.set(v,F),_.set(x.id,F);}),e.nodes.forEach((x,v)=>{if(y.get(v).add((x.children??[]).map(({id:F})=>{let N=_.get(F);if(!N)throw new Error(`Cannot find child ${F} of node ${v}`);return N})),x.mesh){let F=m.get(x.mesh.id);if(!F)throw new Error(`Cannot find mesh child ${x.mesh.id} of node ${v}`);y.get(v).add(F);}}),{scenes:e.scenes.map(x=>{let v=(x.nodes||[]).map(({id:F})=>{let N=_.get(F);if(!N)throw new Error(`Cannot find child ${F} of scene ${x.name||x.id}`);return N});return new Da({id:x.name||x.id,children:v})}),materials:c,gltfMeshIdToNodeMap:m,gltfNodeIdToNodeMap:_,gltfNodeIndexToNodeMap:y}}function w3(t,e,r){return new Da({id:e.name||e.id,children:[],matrix:e.matrix,position:e.translation,rotation:e.rotation,scale:e.scale})}function B3(t,e,r,A,i){let d=(e.primitives||[]).map((y,_)=>v3({device:t,gltfPrimitive:y,primitiveIndex:_,gltfMesh:e,gltf:r,gltfMaterialIdToMaterialMap:A,options:i}));return new Da({id:e.name||e.id,children:d})}function v3({device:t,gltfPrimitive:e,primitiveIndex:r,gltfMesh:A,gltf:i,gltfMaterialIdToMaterialMap:c,options:d}){let m=e.name||`${A.name||A.id}-primitive-${r}`,y=lm(e.mode??4),_=e.indices?e.indices.count:M3(e.attributes),E=S3(m,e,y),x=SA(t,e.material,E.attributes,s$1(r$1({},d),{gltf:i})),v=um(t,{id:m,geometry:E,material:e.material&&c.get(e.material.id)||null,parsedPPBRMaterial:x,modelOptions:d.modelOptions,vertexCount:_});return v.bounds=[e.attributes.POSITION.min,e.attributes.POSITION.max],v}function M3(t){let e=1/0;for(let r of Object.values(t))if(r){let{value:A,size:i,components:c}=r,d=i??c;A?.length!==void 0&&d>=1&&(e=Math.min(e,A.length/d));}if(!Number.isFinite(e))throw new Error("Could not determine vertex count from attributes");return e}function S3(t,e,r){let A={};for(let[i,c]of Object.entries(e.attributes)){let{components:d,size:m,value:y,normalized:_}=c;A[i]={size:m??d,value:y,normalized:_};}return new Zr$1({id:t,topology:r,indices:e.indices?.value,attributes:A})}function I3(t,e){return t.name||t.id||`material-${e}`}function F3(t,e,r){switch(e){case "translation":return t.setPosition(r).updateMatrix();case "rotation":return t.setRotation(r).updateMatrix();case "scale":return t.setScale(r).updateMatrix();default:return d.warn(`Bad animation path ${e}`)(),null}}function hm(t,{input:e,interpolation:r,output:A},i,c){let d=Bc(t,{input:e,interpolation:r,output:A},c);d&&F3(i,c,d);}function Bc(t,{input:e,interpolation:r,output:A},i){let c=e[e.length-1];if(!Number.isFinite(c)||c<=0)return A[0]||null;let d$1=t%c,m=e.findIndex(x=>x>=d$1);if(m<0)return A[A.length-1]||null;let y=Math.max(0,m-1),_=e[y],E=e[m];switch(r){case "STEP":return A[y];case "LINEAR":if(E>_){let x=(d$1-_)/(E-_);return L3(i,A[y],A[m],x)}return A[y]||null;case "CUBICSPLINE":if(E>_){let x=(d$1-_)/(E-_),v=E-_,F=A[3*y+1],N=A[3*y+2],U=A[3*m+0],q=A[3*m+1];return R3({p0:F,outTangent0:N,inTangent1:U,p1:q,tDiff:v,ratio:x})}return A[3*y+1]||null;default:return d.warn(`Interpolation ${r} not supported`)(),null}}function L3(t,e,r,A){if(t==="rotation")return new Vs$1().slerp({start:e,target:r,ratio:A});let i=[];for(let c=0;c<e.length;c++)i[c]=A*r[c]+(1-A)*e[c];return i}function R3({p0:t,outTangent0:e,inTangent1:r,p1:A,tDiff:i,ratio:c}){let d=[];for(let m=0;m<t.length;m++){let y=e[m]*i,_=r[m]*i;d[m]=(2*Math.pow(c,3)-3*Math.pow(c,2)+1)*t[m]+(Math.pow(c,3)-2*Math.pow(c,2)+c)*y+(-2*Math.pow(c,3)+3*Math.pow(c,2))*A[m]+(Math.pow(c,3)-Math.pow(c,2))*_;}return d}var vc=class{animation;gltfNodeIdToNodeMap;materials;startTime=0;playing=true;speed=1;materialTextureTransformState=new Map;constructor(e){if(this.animation=e.animation,this.gltfNodeIdToNodeMap=e.gltfNodeIdToNodeMap,this.materials=e.materials||[],this.animation.name||="unnamed",Object.assign(this,e),this.animation.channels.some(r=>r.type!=="node")&&!this.materials.length)throw new Error(`Animation ${this.animation.name} targets materials, but GLTFAnimator was created without a materials array`)}setTime(e){if(!this.playing)return;let A=(e/1e3-this.startTime)*this.speed;this.animation.channels.forEach(i=>{if(i.type==="node"){let{sampler:m,targetNodeId:y,path:_}=i,E=this.gltfNodeIdToNodeMap.get(y);if(!E)throw new Error(`Cannot find animation target node ${y}`);hm(A,m,E,_);return}let c=this.materials[i.targetMaterialIndex];if(!c)throw new Error(`Cannot find animation target material ${i.targetMaterialIndex} for ${i.pointer}`);let d=Bc(A,i.sampler);d&&(i.type==="material"?P3(c,i,d):O3(c,i,d,this.materialTextureTransformState));});}},yo=class{animations;constructor(e){this.animations=e.animations.map((r,A)=>{let i=r.name||`Animation-${A}`;return new vc({gltfNodeIdToNodeMap:e.gltfNodeIdToNodeMap,materials:e.materials,animation:{name:i,channels:r.channels}})});}animate(e){d.warn("GLTFAnimator#animate is deprecated. Use GLTFAnimator#setTime instead")(),this.setTime(e);}setTime(e){this.animations.forEach(r=>r.setTime(e));}getAnimations(){return this.animations}};function P3(t,e,r){let A=e.component!==void 0?{[e.property]:N3(D3(t,e.property),e.component,r[0])}:{[e.property]:r.length===1?r[0]:r};t.setProps({pbrMaterial:A});}function D3(t,e){let A=t.shaderInputs.getUniformValues().pbrMaterial?.[e];return Array.isArray(A)?[...A]:[]}function N3(t,e,r){let A=[...t];return A[e]=r,A}function O3(t,e,r,A){let i=mo(e.textureSlot),c=G3(A,t,e);switch(e.path){case "offset":e.component!==void 0?c.offset[e.component]=r[0]:c.offset=[r[0],r[1]];break;case "rotation":c.rotation=r[0];break;case "scale":e.component!==void 0?c.scale[e.component]=r[0]:c.scale=[r[0],r[1]];break}t.setProps({pbrMaterial:{[i.uvTransformUniform]:nm(e.baseTransform,c)}});}function G3(t,e,r){let A=t.get(e)||{},i=A[r.textureSlot];return i||(i={offset:[...r.baseTransform.offset],rotation:r.baseTransform.rotation,scale:[...r.baseTransform.scale]},A[r.textureSlot]=i,t.set(e,A)),i}var k3={supportLevel:"none",comment:"Not currently listed in the luma.gl glTF extension support registry."},dm={KHR_draco_mesh_compression:{supportLevel:"built-in",comment:"Decoded by loaders.gl before luma.gl builds the scenegraph."},EXT_meshopt_compression:{supportLevel:"built-in",comment:"Meshopt-compressed primitives are decoded during load."},KHR_mesh_quantization:{supportLevel:"built-in",comment:"Quantized accessors are unpacked before geometry creation."},KHR_lights_punctual:{supportLevel:"built-in",comment:"Parsed into luma.gl Light objects."},KHR_materials_unlit:{supportLevel:"built-in",comment:"Unlit materials bypass the default lighting path."},KHR_materials_emissive_strength:{supportLevel:"built-in",comment:"Applied by the stock PBR shader."},KHR_texture_basisu:{supportLevel:"built-in",comment:"BasisU / KTX2 textures pass through when the device supports them."},KHR_texture_transform:{supportLevel:"built-in",comment:"UV transforms are applied during load."},EXT_texture_webp:{supportLevel:"loader-only",comment:"Texture source is resolved during load; final support depends on browser and device decode support."},EXT_texture_avif:{supportLevel:"loader-only",comment:"Texture source is resolved during load; final support depends on browser and device decode support."},KHR_materials_specular:{supportLevel:"built-in",comment:"The stock shader now applies specular factors and textures to the dielectric F0 term."},KHR_materials_ior:{supportLevel:"built-in",comment:"The stock shader now drives dielectric reflectance from the glTF IOR value."},KHR_materials_transmission:{supportLevel:"built-in",comment:"The stock shader now applies transmission to the base layer and exposes transparency through alpha, without a scene-color refraction buffer."},KHR_materials_volume:{supportLevel:"built-in",comment:"Thickness and attenuation now tint transmitted light in the stock shader."},KHR_materials_clearcoat:{supportLevel:"built-in",comment:"The stock shader now adds a secondary clearcoat specular lobe."},KHR_materials_sheen:{supportLevel:"built-in",comment:"The stock shader now adds a sheen lobe for cloth-like materials."},KHR_materials_iridescence:{supportLevel:"built-in",comment:"The stock shader now tints specular response with a view-dependent thin-film iridescence approximation."},KHR_materials_anisotropy:{supportLevel:"built-in",comment:"The stock shader now shapes highlights and IBL response with an anisotropy-direction approximation."},KHR_materials_pbrSpecularGlossiness:{supportLevel:"loader-only",comment:"Extension data can be loaded, but it is not translated into the default metallic-roughness material path."},KHR_materials_variants:{supportLevel:"loader-only",comment:"Variant metadata can be loaded, but applications must choose and apply variants."},EXT_mesh_gpu_instancing:{supportLevel:"none",comment:"GPU instancing data is not yet converted into luma.gl instanced draw setup."},KHR_node_visibility:{supportLevel:"none",comment:"Node-visibility animations and toggles are not mapped onto runtime scenegraph state."},KHR_animation_pointer:{supportLevel:"parsed-and-wired",comment:"Selected node TRS, material factor, and KHR_texture_transform offset/rotation/scale pointers are wired to runtime updates; unsupported targets are skipped."},KHR_materials_diffuse_transmission:{supportLevel:"none",comment:"Diffuse-transmission shading is not implemented in the stock PBR shader."},KHR_materials_dispersion:{supportLevel:"none",comment:"Chromatic dispersion is not implemented in the stock PBR shader."},KHR_materials_volume_scatter:{supportLevel:"none",comment:"Volume scattering is not implemented in the stock PBR shader."},KHR_xmp:{supportLevel:"none",comment:"Metadata payloads remain in the loaded glTF, but luma.gl does not interpret them."},KHR_xmp_json_ld:{supportLevel:"none",comment:"Metadata is preserved in the glTF, but luma.gl does not interpret it."},EXT_lights_image_based:{supportLevel:"none",comment:"Use loadPBREnvironment() or custom environment setup instead."},EXT_texture_video:{supportLevel:"none",comment:"Video textures are not created automatically by the stock pipeline."},MSFT_lod:{supportLevel:"none",comment:"Level-of-detail switching is not implemented in the stock scenegraph loader."}};function pm(t){let r=Array.from(U3(t)).sort().map(A=>{let i=dm[A]||k3;return [A,{extensionName:A,supported:i.supportLevel==="built-in"||i.supportLevel==="parsed-and-wired",supportLevel:i.supportLevel,comment:i.comment}]});return new Map(r)}function Mc(t){return dm[t]||null}function U3(t){let e=t,r=new Set;return To(r,t.extensionsUsed),To(r,t.extensionsRequired),To(r,e.extensionsRemoved),To(r,Object.keys(t.extensions||{})),(e.lights?.length||(t.nodes||[]).some(A=>"light"in A))&&r.add("KHR_lights_punctual"),(t.materials||[]).some(A=>{let i=A;return i.unlit||i.extensions?.KHR_materials_unlit})&&r.add("KHR_materials_unlit"),r}function To(t,e=[]){for(let r of e)t.add(r);}var H3={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},V3={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Sc(t){let e=V3[t.componentType],r=H3[t.type],A=r*t.count,{buffer:i,byteOffset:c=0}=t.bufferView?.data??{};return {typedArray:new e(i,c+(t.byteOffset||0),A),components:r}}function mm(t){let e=t.animations||[],r=new Map,A=new Map;return e.flatMap((i,c)=>{let d=i.name||`Animation-${c}`,m=new Map,y=i.channels.flatMap(({sampler:_,target:E})=>{let x=m.get(_);if(!x){let F=i.samplers[_];if(!F)throw new Error(`Cannot find animation sampler ${_}`);let{input:N,interpolation:U="LINEAR",output:q}=F;x={input:Z3(t.accessors[N],r),interpolation:U,output:$3(t.accessors[q],A)},m.set(_,x);}let v=j3(t,E,x);return v?[v]:[]});return y.length?[{name:d,channels:y}]:[]})}function j3(t,e,r){if(e.path==="pointer")return Q3(t,e,r);let A=gm(e.path);if(!A)return null;let i=t.nodes[e.node??0];if(!i)throw new Error(`Cannot find animation target ${e.node}`);return {type:"node",sampler:r,targetNodeId:i.id,path:A}}function Q3(t,e,r){let A=e.extensions?.KHR_animation_pointer?.pointer;if(typeof A!="string"||!A.startsWith("/"))return d.warn("KHR_animation_pointer channel is missing a valid JSON pointer and will be skipped")(),null;let i=Y3(A);switch(i[0]){case "nodes":return z3(t,i,r,A);case "materials":return J3(t,i,r,A);default:return Di(A,`top-level target "${i[0]}" has no runtime animation mapping`),null}}function z3(t,e,r,A){if(e.length!==3)return Di(A,"node pointers must use /nodes/{index}/{translation|rotation|scale|weights}"),null;let i=Number(e[1]),c=t.nodes[i];if(!Number.isInteger(i)||!c)return d.warn(`KHR_animation_pointer target ${A} references a missing node and will be skipped`)(),null;let d$1=gm(e[2]);return d$1?d$1==="weights"?(d.warn(`KHR_animation_pointer target ${A} will be skipped because morph weights are not implemented in GLTFAnimator`)(),null):{type:"node",sampler:r,targetNodeId:c.id,path:d$1}:(Di(A,`node property "${e[2]}" has no runtime animation mapping`),null)}function J3(t,e,r,A){if(e.length<3)return Di(A,"material pointers must include a material index and target property path"),null;let i=Number(e[1]),c=t.materials[i];if(!Number.isInteger(i)||!c)return d.warn(`KHR_animation_pointer target ${A} references a missing material and will be skipped`)(),null;let d$1=q3(c,e.slice(2));return "reason"in d$1?(Di(A,d$1.reason),null):r$1({sampler:r,pointer:A,targetMaterialIndex:i},d$1)}function gm(t){switch(t){case "translation":case "rotation":case "scale":case "weights":return t;default:return null}}function q3(t,e){let r=K3(t,e);if(!("reason"in r)||r.reason!=="not-a-texture-transform-target")return r;switch(e.join("/")){case "pbrMetallicRoughness/baseColorFactor":return t.pbrMetallicRoughness?{type:"material",property:"baseColorFactor"}:{reason:ft(e)};case "pbrMetallicRoughness/metallicFactor":return t.pbrMetallicRoughness?{type:"material",property:"metallicRoughnessValues",component:0}:{reason:ft(e)};case "pbrMetallicRoughness/roughnessFactor":return t.pbrMetallicRoughness?{type:"material",property:"metallicRoughnessValues",component:1}:{reason:ft(e)};case "normalTexture/scale":return t.normalTexture?{type:"material",property:"normalScale"}:{reason:ft(e)};case "occlusionTexture/strength":return t.occlusionTexture?{type:"material",property:"occlusionStrength"}:{reason:ft(e)};case "emissiveFactor":return {type:"material",property:"emissiveFactor"};case "alphaCutoff":return {type:"material",property:"alphaCutoff"};case "extensions/KHR_materials_specular/specularFactor":return t.extensions?.KHR_materials_specular?{type:"material",property:"specularIntensityFactor"}:{reason:ft(e)};case "extensions/KHR_materials_specular/specularColorFactor":return t.extensions?.KHR_materials_specular?{type:"material",property:"specularColorFactor"}:{reason:ft(e)};case "extensions/KHR_materials_ior/ior":return t.extensions?.KHR_materials_ior?{type:"material",property:"ior"}:{reason:ft(e)};case "extensions/KHR_materials_transmission/transmissionFactor":return t.extensions?.KHR_materials_transmission?{type:"material",property:"transmissionFactor"}:{reason:ft(e)};case "extensions/KHR_materials_volume/thicknessFactor":return t.extensions?.KHR_materials_volume?{type:"material",property:"thicknessFactor"}:{reason:ft(e)};case "extensions/KHR_materials_volume/attenuationDistance":return t.extensions?.KHR_materials_volume?{type:"material",property:"attenuationDistance"}:{reason:ft(e)};case "extensions/KHR_materials_volume/attenuationColor":return t.extensions?.KHR_materials_volume?{type:"material",property:"attenuationColor"}:{reason:ft(e)};case "extensions/KHR_materials_clearcoat/clearcoatFactor":return t.extensions?.KHR_materials_clearcoat?{type:"material",property:"clearcoatFactor"}:{reason:ft(e)};case "extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor":return t.extensions?.KHR_materials_clearcoat?{type:"material",property:"clearcoatRoughnessFactor"}:{reason:ft(e)};case "extensions/KHR_materials_sheen/sheenColorFactor":return t.extensions?.KHR_materials_sheen?{type:"material",property:"sheenColorFactor"}:{reason:ft(e)};case "extensions/KHR_materials_sheen/sheenRoughnessFactor":return t.extensions?.KHR_materials_sheen?{type:"material",property:"sheenRoughnessFactor"}:{reason:ft(e)};case "extensions/KHR_materials_iridescence/iridescenceFactor":return t.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceFactor"}:{reason:ft(e)};case "extensions/KHR_materials_iridescence/iridescenceIor":return t.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceIor"}:{reason:ft(e)};case "extensions/KHR_materials_iridescence/iridescenceThicknessMinimum":return t.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceThicknessRange",component:0}:{reason:ft(e)};case "extensions/KHR_materials_iridescence/iridescenceThicknessMaximum":return t.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceThicknessRange",component:1}:{reason:ft(e)};case "extensions/KHR_materials_anisotropy/anisotropyStrength":return t.extensions?.KHR_materials_anisotropy?{type:"material",property:"anisotropyStrength"}:{reason:ft(e)};case "extensions/KHR_materials_anisotropy/anisotropyRotation":return t.extensions?.KHR_materials_anisotropy?{type:"material",property:"anisotropyRotation"}:{reason:ft(e)};case "extensions/KHR_materials_emissive_strength/emissiveStrength":return t.extensions?.KHR_materials_emissive_strength?{type:"material",property:"emissiveStrength"}:{reason:ft(e)};default:return {reason:ft(e)}}}function K3(t,e){let r=e.lastIndexOf("extensions");if(r<0||e[r+1]!=="KHR_texture_transform"||r<1)return {reason:"not-a-texture-transform-target"};let A=rm(e.slice(0,r));if(!A)return {reason:W3(e.slice(0,r))};let i=X3(t,A.pathSegments);if(!i)return {reason:`texture-transform target "${e.slice(0,r).join("/")}" does not exist on the referenced material`};let c=e[r+2];if(c==="texCoord")return {reason:"animated KHR_texture_transform.texCoord is unsupported because texCoord selection is structural, not a runtime float/vector update"};if(c!=="offset"&&c!=="rotation"&&c!=="scale")return {reason:`KHR_texture_transform property "${c}" is not animatable; supported properties are offset, rotation, and scale`};let d=e[r+3];if(e.length>r+4)return {reason:`KHR_texture_transform.${c} does not support nested property paths`};let m;if(d!==void 0){if(m=Number(d),c==="rotation")return {reason:"KHR_texture_transform.rotation does not support component indices"};if(!Number.isInteger(m)||m<0||m>1)return {reason:`KHR_texture_transform.${c} component index "${d}" is invalid; only 0 and 1 are supported`}}return {type:"textureTransform",textureSlot:A.slot,path:c,component:m,baseTransform:go(i)}}function X3(t,e){let r=t;for(let A of e)if(r=r?.[A],!r)return null;return r}function Y3(t){return t.slice(1).split("/").map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function ft(t){let e=ym(t);if(e){let r=Mc(e);if(r?.supportLevel==="none")return `${e} is referenced by this pointer, but ${r.comment.charAt(0).toLowerCase()}${r.comment.slice(1)}`}return `no runtime target exists for material property "${t.join("/")}"`}function W3(t){let e=ym(t);if(e){let r=Mc(e);if(r?.supportLevel==="none")return `${e} is referenced by this pointer, but ${r.comment.charAt(0).toLowerCase()}${r.comment.slice(1)}`}return `texture-transform target "${t.join("/")}" has no runtime texture-slot mapping`}function ym(t){let e=t.indexOf("extensions"),r=t[e+1];return e>=0&&r?r:null}function Di(t,e){d.warn(`KHR_animation_pointer target ${t} will be skipped because ${e}`)();}function Z3(t,e){if(e.has(t))return e.get(t);let{typedArray:r,components:A}=Sc(t);Tm(A===1,"accessorToJsArray1D must have exactly 1 component");let i=Array.from(r);return e.set(t,i),i}function $3(t,e){if(e.has(t))return e.get(t);let{typedArray:r,components:A}=Sc(t);Tm(A>=1,"accessorToJsArray2D must have at least 1 component");let i=[];for(let c=0;c<r.length;c+=A)i.push(Array.from(r.slice(c,c+A)));return e.set(t,i),i}function Tm(t,e){if(!t)throw new Error(e)}function Ic(t,e,r){let{scenes:A,materials:i,gltfMeshIdToNodeMap:c,gltfNodeIdToNodeMap:d,gltfNodeIndexToNodeMap:m}=fm(t,e,r),y=mm(e),_=new yo({animations:y,gltfNodeIdToNodeMap:d,materials:i}),E=sm(e,{useByteColors:r?.useByteColors??true}),x=pm(e),v=A.map(N=>_m(N.getBounds())),F=ev(v);return {scenes:A,materials:i,animator:_,lights:E,extensionSupport:x,sceneBounds:v,modelBounds:F,gltfMeshIdToNodeMap:c,gltfNodeIdToNodeMap:d,gltfNodeIndexToNodeMap:m,gltf:e}}function _m(t){if(!t)return {bounds:null,center:[0,0,0],size:[0,0,0],radius:.5,recommendedOrbitDistance:1};let e=[[t[0][0],t[0][1],t[0][2]],[t[1][0],t[1][1],t[1][2]]],r=[e[1][0]-e[0][0],e[1][1]-e[0][1],e[1][2]-e[0][2]],A=[e[0][0]+r[0]*.5,e[0][1]+r[1]*.5,e[0][2]+r[2]*.5],i=Math.max(r[0],r[1],r[2])*.5,c=Math.max(.5*Math.hypot(r[0],r[1],r[2]),.001);return {bounds:e,center:A,size:r,radius:c,recommendedOrbitDistance:Math.max(Math.max(i,.001)/Math.tan(Math.PI/6)*1.15,c*1.1)}}function ev(t){let e=null;for(let r of t)if(r.bounds){if(!e){e=[[...r.bounds[0]],[...r.bounds[1]]];continue}for(let A=0;A<3;A++)e[0][A]=Math.min(e[0][A],r.bounds[0][A]),e[1][A]=Math.max(e[1][A],r.bounds[1][A]);}return _m(e)}var Fc={};w(Fc,{createExtMeshFeatures:()=>gv,decode:()=>fv,encode:()=>hv,name:()=>uv});function vt(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var _o={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},bo={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var tv=1.33,bm=["SCALAR","VEC2","VEC3","VEC4"],rv=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],nv=new Map(rv),Av={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},iv={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},sv={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Eo(t){return bm[t-1]||bm[0]}function gn(t){let e=nv.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function IA(t,e){let r=sv[t.componentType],A=Av[t.type],i=iv[t.componentType],c=t.count*A,d=t.count*A*i;vt(d>=0&&d<=e.byteLength);let m=bo[t.componentType],y=_o[t.type];return {ArrayType:r,length:c,byteLength:d,componentByteSize:m,numberOfComponentsInElement:y}}function Ni(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let A=e.map(d=>d.bufferView);r=r.filter(d=>!A.includes(d));let i=r.reduce((d,m)=>d+m.byteLength,0),c=e.reduce((d,m)=>{let{width:y,height:_}=m.image;return d+y*_},0);return i+Math.ceil(4*c*tv)}function Em(t,e,r){let A=t.bufferViews[r];vt(A);let i=A.buffer,c=e[i];vt(c);let d=(A.byteOffset||0)+c.byteOffset;return new Uint8Array(c.arrayBuffer,d,A.byteLength)}function xm(t,e,r){let A=typeof r=="number"?t.accessors?.[r]:r;if(!A)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let i=t.bufferViews?.[A.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);let{arrayBuffer:c,byteOffset:d}=e[i.buffer],m=(d||0)+(A.byteOffset||0)+(i.byteOffset||0),{ArrayType:y,length:_,componentByteSize:E,numberOfComponentsInElement:x}=IA(A,i),v=E*x,F=i.byteStride||v;if(typeof i.byteStride>"u"||i.byteStride===v)return new y(c,m,_);let N=new y(_);for(let U=0;U<A.count;U++){let q=new y(c,m+U*F,x);N.set(q,U*x);}return N}function ov(){return {asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var Je=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||ov(),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(i=>i===e),A=this.getRequiredExtensions().find(i=>i===e);return typeof r=="string"||typeof A=="string"}getExtension(e){let r=this.getUsedExtensions().find(i=>i===e),A=this.json.extensions||{};return r?A[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(A=>A===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 A=this.json[e]&&this.json[e][r];if(!A)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return A}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,A=this.gltf.buffers[r];vt(A);let i=(e.byteOffset||0)+A.byteOffset;return new Uint8Array(A.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return xm(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),i=this.getBuffer(r.buffer).data,c=r.byteOffset||0;return new Uint8Array(i,c,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,A){return e.extensions=e.extensions||{},e.extensions[r]=A,this.registerUsedExtension(r),this}setObjectExtension(e,r,A){let i=e.extensions||{};i[r]=A;}removeObjectExtension(e,r){let A=e?.extensions||{};if(A[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let i=this.json.extensionsRemoved;i.includes(r)||i.push(r);}delete A[r];}addExtension(e,r={}){return vt(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return vt(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:A}=e;this.json.nodes=this.json.nodes||[];let i={mesh:r};return A&&(i.matrix=A),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:A,material:i,mode:c=4}=e,m={primitives:[{attributes:this._addAttributes(r),mode:c}]};if(A){let y=this._addIndices(A);m.primitives[0].indices=y;}return Number.isFinite(i)&&(m.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(m),this.json.meshes.length-1}addPointCloud(e){let A={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(A),this.json.meshes.length-1}addImage(e,r){let A=ci(e),i=r||A?.mimeType,d={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(d),this.json.images.length-1}addBufferView(e,r=0,A=this.byteLength){let i=e.byteLength;vt(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let c={buffer:r,byteOffset:A,byteLength:i};return this.byteLength+=Wc$1(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(c),this.json.bufferViews.length-1}addAccessor(e,r){let A={bufferView:e,type:Eo(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(A),this.json.accessors.length-1}addBinaryBuffer(e,r={size:3}){let A=this.addBufferView(e),i={min:r.min,max:r.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,r.size));let c={size:r.size,componentType:gn(e),count:Math.round(e.length/r.size),min:i.min,max:i.max};return this.addAccessor(A,Object.assign(c,r))}addTexture(e){let{imageIndex:r}=e,A={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(A),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),A=new Uint8Array(r),i=0;for(let c of this.sourceBuffers||[])i=ud$1(c,A,i);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 A=true;for(;A;){let i=e.indexOf(r);i>-1?e.splice(i,1):A=false;}}_addAttributes(e={}){let r={};for(let A in e){let i=e[A],c=this._getGltfAttributeName(A),d=this.addBinaryBuffer(i.value,i);r[c]=d;}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 A={min:null,max:null};if(e.length<r)return A;A.min=[],A.max=[];let i=e.subarray(0,r);for(let c of i)A.min.push(c),A.max.push(c);for(let c=r;c<e.length;c+=r)for(let d=0;d<r;d++)A.min[0+d]=Math.min(A.min[0+d],e[c+d]),A.max[0+d]=Math.max(A.max[0+d],e[c+d]);return A}};function Cm(t){return (t%1+1)%1}var wm={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},av={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Bm={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function Oi(t,e){return Bm[e]*wm[t]}function FA(t,e,r,A){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let i=t.getTypedArrayForBufferView(e),c=LA(i,"SCALAR",r,A+1);return c instanceof BigInt64Array||c instanceof BigUint64Array?null:c}function LA(t,e,r,A=1){let i=wm[e],c=av[r],d=Bm[r],m=A*i,y=m*d,_=t.buffer,E=t.byteOffset;return E%d!==0&&(_=new Uint8Array(_).slice(E,E+y).buffer,E=0),new c(mr(_),E,m)}function RA(t,e,r){let A=`TEXCOORD_${e.texCoord||0}`,i=r.attributes[A],c=t.getTypedArrayForAccessor(i),d=t.gltf.json,m=e.index,y=d.textures?.[m]?.source;if(typeof y<"u"){let _=d.images?.[y]?.mimeType,E=t.gltf.images?.[y];if(E&&typeof E.width<"u"){let x=[];for(let v=0;v<c.length;v+=2){let F=cv(E,_,c,v,e.channels);x.push(F);}return x}}return []}function xo(t,e,r,A,i){if(!r?.length)return;let c=[];for(let E of r){let x=A.findIndex(v=>v===E);x===-1&&(x=A.push(E)-1),c.push(x);}let d=new Uint32Array(c),m=t.gltf.buffers.push({arrayBuffer:d.buffer,byteOffset:d.byteOffset,byteLength:d.byteLength})-1,y=t.addBufferView(d,m,0),_=t.addAccessor(y,{size:1,componentType:gn(d),count:d.length});i.attributes[e]=_;}function cv(t,e,r,A,i=[0]){let c={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},d=r[A],m=r[A+1],y=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(y=4);let _=lv(d,m,t,y),E=0;for(let x of i){let v=typeof x=="number"?Object.values(c)[x]:c[x],F=_+v.offset,N=rc$1(t);if(N.data.length<=F)throw new Error(`${N.data.length} <= ${F}`);let U=N.data[F];E|=U<<v.shift;}return E}function lv(t,e,r,A=1){let i=r.width,c=Cm(t)*(i-1),d=Math.round(c),m=r.height,y=Cm(e)*(m-1),_=Math.round(y),E=r.components?r.components:A;return (_*i+d)*E}function Co(t,e,r,A,i){let c=[];for(let d=0;d<e;d++){let m=r[d],y=r[d+1]-r[d];if(y+m>A)break;let _=m/i,E=y/i;c.push(t.slice(_,_+E));}return c}function wo(t,e,r){let A=[];for(let i=0;i<e;i++){let c=i*r;A.push(t.slice(c,c+r));}return A}function Bo(t,e,r,A){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(A){let i=[],c=new TextDecoder("utf8"),d=0;for(let m=0;m<t;m++){let y=A[m+1]-A[m];if(y+d<=e.length){let _=e.subarray(d,y+d),E=c.decode(_);i.push(E),d+=y;}}return i}return []}var PA="EXT_mesh_features",uv=PA;async function fv(t,e){let r=new Je(t);dv(r,e);}function hv(t,e){let r=new Je(t);return mv(r),r.createBinaryChunk(),r.gltf}function dv(t,e){let r=t.gltf.json;if(r.meshes)for(let A of r.meshes)for(let i of A.primitives)pv(t,i,e);}function pv(t,e,r){if(!r?.gltf?.loadBuffers)return;let i=e.extensions?.[PA]?.featureIds;if(i)for(let c of i){let d;if(typeof c.attribute<"u"){let m=`_FEATURE_ID_${c.attribute}`,y=e.attributes[m];d=t.getTypedArrayForAccessor(y);}else typeof c.texture<"u"&&r?.gltf?.loadImages?d=RA(t,c.texture,e):d=[];c.data=d;}}function mv(t,e){let r=t.gltf.json.meshes;if(r)for(let A of r)for(let i of A.primitives)yv(t,i);}function gv(t,e,r,A){e.extensions||(e.extensions={});let i=e.extensions[PA];i||(i={featureIds:[]},e.extensions[PA]=i);let{featureIds:c}=i,d={featureCount:r.length,propertyTable:A,data:r};c.push(d),t.addObjectExtension(e,PA,i);}function yv(t,e){let r=e.extensions?.[PA];if(!r)return;let A=r.featureIds;A.forEach((i,c)=>{if(i.data){let{accessorKey:d,index:m}=Tv(e.attributes),y=new Uint32Array(i.data);A[c]={featureCount:y.length,propertyTable:i.propertyTable,attribute:m},t.gltf.buffers.push({arrayBuffer:y.buffer,byteOffset:y.byteOffset,byteLength:y.byteLength});let _=t.addBufferView(y),E=t.addAccessor(_,{size:1,componentType:gn(y),count:y.length});e.attributes[d]=E;}});}function Tv(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(c=>c.indexOf(e)===0),A=-1;for(let c of r){let d=Number(c.substring(e.length));d>A&&(A=d);}return A++,{accessorKey:`${e}${A}`,index:A}}var Pc={};w(Pc,{createExtStructuralMetadata:()=>Hv,decode:()=>bv,encode:()=>Ev,name:()=>_v});var DA="EXT_structural_metadata",_v=DA;async function bv(t,e){let r=new Je(t);xv(r,e);}function Ev(t,e){let r=new Je(t);return kv(r),r.createBinaryChunk(),r.gltf}function xv(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(DA);r&&(e.gltf?.loadImages&&Cv(t,r),wv(t,r));}function Cv(t,e){let r=e.propertyTextures,A=t.gltf.json;if(r&&A.meshes)for(let i of A.meshes)for(let c of i.primitives)vv(t,r,c,e);}function wv(t,e){let r=e.schema;if(!r)return;let A=r.classes,i=e.propertyTables;if(A&&i)for(let c in A){let d=Bv(i,c);d&&Sv(t,r,d);}}function Bv(t,e){for(let r of t)if(r.class===e)return r;return null}function vv(t,e,r,A){if(!e)return;let c=r.extensions?.[DA]?.propertyTextures;if(c)for(let d of c){let m=e[d];Mv(t,m,r,A);}}function Mv(t,e,r,A){if(!e.properties)return;A.dataAttributeNames||(A.dataAttributeNames=[]);let i=e.class;for(let c in e.properties){let d=`${i}_${c}`,m=e.properties?.[c];if(!m)continue;m.data||(m.data=[]);let y=m.data,_=RA(t,m,r);_!==null&&(xo(t,d,_,y,r),m.data=y,A.dataAttributeNames.push(d));}}function Sv(t,e,r){let A=e.classes?.[r.class];if(!A)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let c in A.properties){let d=A.properties[c],m=r.properties?.[c];if(m){let y=Iv(t,e,d,i,m);m.data=y;}}}function Iv(t,e,r,A,i){let c=[],d=i.values,m=t.getTypedArrayForBufferView(d),y=Fv(t,r,i,A),_=Lv(t,i,A);switch(r.type){case "SCALAR":case "VEC2":case "VEC3":case "VEC4":case "MAT2":case "MAT3":case "MAT4":{c=Rv(r,A,m,y);break}case "BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case "STRING":{c=Bo(A,m,y,_);break}case "ENUM":{c=Pv(e,r,A,m,y);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return c}function Fv(t,e,r,A){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?FA(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",A):null}function Lv(t,e,r){return typeof e.stringOffsets<"u"?FA(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function Rv(t,e,r,A){let i=t.array,c=t.count,d=Oi(t.type,t.componentType),m=r.byteLength/d,y;return t.componentType?y=LA(r,t.type,t.componentType,m):y=r,i?A?Co(y,e,A,r.length,d):c?wo(y,e,c):[]:y}function Pv(t,e,r,A,i){let c=e.enumType;if(!c)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let d=t.enums?.[c];if(!d)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${c}`);let m=d.valueType||"UINT16",y=Oi(e.type,m),_=A.byteLength/y,E=LA(A,e.type,m,_);if(E||(E=A),e.array){if(i)return Dv({valuesData:E,numberOfElements:r,arrayOffsets:i,valuesDataBytesLength:A.length,elementSize:y,enumEntry:d});let x=e.count;return x?Nv(E,r,x,d):[]}return Rc(E,0,r,d)}function Dv(t){let{valuesData:e,numberOfElements:r,arrayOffsets:A,valuesDataBytesLength:i,elementSize:c,enumEntry:d}=t,m=[];for(let y=0;y<r;y++){let _=A[y],E=A[y+1]-A[y];if(E+_>i)break;let x=_/c,v=E/c,F=Rc(e,x,v,d);m.push(F);}return m}function Nv(t,e,r,A){let i=[];for(let c=0;c<e;c++){let d=r*c,m=Rc(t,d,r,A);i.push(m);}return i}function Rc(t,e,r,A){let i=[];for(let c=0;c<r;c++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)i.push("");else {let d=t[e+c],m=Ov(A,d);m?i.push(m.name):i.push("");}return i}function Ov(t,e){for(let r of t.values)if(r.value===e)return r;return null}var Gv="schemaClassId";function kv(t,e){let r=t.getExtension(DA);if(r&&r.propertyTables)for(let A of r.propertyTables){let i=A.class,c=r.schema?.classes?.[i];A.properties&&c&&Uv(A,c,t);}}function Uv(t,e,r){for(let A in t.properties){let i=t.properties[A].data;if(i){let c=e.properties[A];if(c){let d=Qv(i,c,r);t.properties[A]=d;}}}}function Hv(t,e,r=Gv){let A=t.getExtension(DA);A||(A=t.addExtension(DA)),A.schema=Vv(e,r,A.schema);let i=jv(e,r,A.schema);return A.propertyTables||(A.propertyTables=[]),A.propertyTables.push(i)-1}function Vv(t,e,r){let A=r??{id:"schema_id"},i={properties:{}};for(let c of t){let d={type:c.elementType,componentType:c.componentType};i.properties[c.name]=d;}return A.classes={},A.classes[e]=i,A}function jv(t,e,r){let A={class:e,count:0},i=0,c=r.classes?.[e];for(let d of t){if(i===0&&(i=d.values.length),i!==d.values.length&&d.values.length)throw new Error("Illegal values in attributes");c?.properties[d.name]&&(A.properties||(A.properties={}),A.properties[d.name]={values:0,data:d.values});}return A.count=i,A}function Qv(t,e,r){let A={values:0};if(e.type==="STRING"){let{stringData:i,stringOffsets:c}=qv(t);A.stringOffsets=Lc(c,r),A.values=Lc(i,r);}else if(e.type==="SCALAR"&&e.componentType){let i=Jv(t,e.componentType);A.values=Lc(i,r);}return A}var zv={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function Jv(t,e){let r=[];for(let i of t)r.push(Number(i));let A=zv[e];if(!A)throw new Error("Illegal component type");return new A(r)}function qv(t){let e=new TextEncoder,r=[],A=0;for(let y of t){let _=e.encode(y);A+=_.length,r.push(_);}let i=new Uint8Array(A),c=[],d=0;for(let y of r)i.set(y,d),c.push(d),d+=y.length;c.push(d);let m=new Uint32Array(c);return {stringData:i,stringOffsets:m}}function Lc(t,e){return e.gltf.buffers.push({arrayBuffer:mr(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var Dc={};w(Dc,{decode:()=>Xv,name:()=>Kv});var vm="EXT_feature_metadata",Kv=vm;async function Xv(t,e){let r=new Je(t);Yv(r,e);}function Yv(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(vm);r&&(e.gltf?.loadImages&&Wv(t,r),Zv(t,r));}function Wv(t,e){let r=e.schema;if(!r)return;let A=r.classes,{featureTextures:i}=e;if(A&&i)for(let c in A){let d=A[c],m=eM(i,c);m&&rM(t,m,d);}}function Zv(t,e){let r=e.schema;if(!r)return;let A=r.classes,i=e.featureTables;if(A&&i)for(let c in A){let d=$v(i,c);d&&tM(t,r,d);}}function $v(t,e){for(let r in t){let A=t[r];if(A.class===e)return A}return null}function eM(t,e){for(let r in t){let A=t[r];if(A.class===e)return A}return null}function tM(t,e,r){if(!r.class)return;let A=e.classes?.[r.class];if(!A)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let c in A.properties){let d=A.properties[c],m=r.properties?.[c];if(m){let y=nM(t,e,d,i,m);m.data=y;}}}function rM(t,e,r){let A=e.class;for(let i in r.properties){let c=e?.properties?.[i];if(c){let d=aM(t,c,A);c.data=d;}}}function nM(t,e,r,A,i){let c=[],d=i.bufferView,m=t.getTypedArrayForBufferView(d),y=AM(t,r,i,A),_=iM(t,r,i,A);return r.type==="STRING"||r.componentType==="STRING"?c=Bo(A,m,y,_):sM(r)&&(c=oM(r,A,m,y)),c}function AM(t,e,r,A){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?FA(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",A):null}function iM(t,e,r,A){return typeof r.stringOffsetBufferView<"u"?FA(t,r.stringOffsetBufferView,r.offsetType||"UINT32",A):null}function sM(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 oM(t,e,r,A){let i=t.type==="ARRAY",c=t.componentCount,d="SCALAR",m=t.componentType||t.type,y=Oi(d,m),_=r.byteLength/y,E=LA(r,d,m,_);return i?A?Co(E,e,A,r.length,y):c?wo(E,e,c):[]:E}function aM(t,e,r){let A=t.gltf.json;if(!A.meshes)return [];let i=[];for(let c of A.meshes)for(let d of c.primitives)cM(t,r,e,i,d);return i}function cM(t,e,r,A,i){let c=r$1({channels:r.channels},r.texture),d=RA(t,c,i);d&&xo(t,e,d,A,i);}var Mm="4.4.4";var NA=true,Sm=1735152710,Gc=12,vo=8,lM=1313821514,uM=5130562,fM=0,hM=0,dM=1;function pM(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 Im(t,e=0,r={}){let A=new DataView(t),{magic:i=Sm}=r,c=A.getUint32(e,false);return c===i||c===Sm}function Fm(t,e,r=0,A={}){let i=new DataView(e),c=pM(i,r+0),d=i.getUint32(r+4,NA),m=i.getUint32(r+8,NA);switch(Object.assign(t,{header:{byteOffset:r,byteLength:m,hasBinChunk:false},type:c,version:d,json:{},binChunks:[]}),r+=Gc,t.version){case 1:return mM(t,i,r);case 2:return gM(t,i,r,A={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function mM(t,e,r){ge(t.header.byteLength>Gc+vo);let A=e.getUint32(r+0,NA),i=e.getUint32(r+4,NA);return r+=vo,ge(i===fM),Nc(t,e,r,A),r+=A,r+=Oc(t,e,r,t.header.byteLength),r}function gM(t,e,r,A){return ge(t.header.byteLength>Gc+vo),yM(t,e,r,A),r+t.header.byteLength}function yM(t,e,r,A){for(;r+8<=t.header.byteLength;){let i=e.getUint32(r+0,NA),c=e.getUint32(r+4,NA);switch(r+=vo,c){case lM:Nc(t,e,r,i);break;case uM:Oc(t,e,r,i);break;case hM:A.strict||Nc(t,e,r,i);break;case dM:A.strict||Oc(t,e,r,i);break;}r+=Wc$1(i,4);}return r}function Nc(t,e,r,A){let i=new Uint8Array(e.buffer,r,A),d=new TextDecoder("utf8").decode(i);return t.json=JSON.parse(d),Wc$1(A,4)}function Oc(t,e,r,A){return t.header.hasBinChunk=true,t.binChunks.push({byteOffset:r,byteLength:A,arrayBuffer:e.buffer}),Wc$1(A,4)}function kc(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let i=r?.baseUrl||TM(e?.core?.baseUrl);if(!i)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return i.endsWith("/")?`${i}${t}`:`${i}/${t}`}function TM(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var Hc={};w(Hc,{decode:()=>FM,name:()=>IM});var _M="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",bM="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",EM=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]),xM=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]),CM={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},wM={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Lm(t,e,r,A,i,c="NONE"){let d=await BM();SM(d,d.exports[wM[i]],t,e,r,A,d.exports[CM[c||"NONE"]]);}var Uc;async function BM(){return Uc||(Uc=vM()),Uc}async function vM(){let t=_M;WebAssembly.validate(EM)&&(t=bM,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(MM(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function MM(t){let e=new Uint8Array(t.length);for(let A=0;A<t.length;++A){let i=t.charCodeAt(A);e[A]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62;}let r=0;for(let A=0;A<t.length;++A)e[r++]=e[A]<60?xM[e[A]]:(e[A]-60)*64+e[++A];return e.buffer.slice(0,r)}function SM(t,e,r,A,i,c,d){let m=t.exports.sbrk,y=A+3&-4,_=m(y*i),E=m(c.length),x=new Uint8Array(t.exports.memory.buffer);x.set(c,E);let v=e(_,A,i,E,c.length);if(v===0&&d&&d(_,y,i),r.set(x.subarray(_,_+A*i)),m(_-m(0)),v!==0)throw new Error(`Malformed buffer data: ${v}`)}var Mo="EXT_meshopt_compression",IM=Mo;async function FM(t,e){let r=new Je(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let A=[];for(let i of t.json.bufferViews||[])A.push(LM(r,i));await Promise.all(A),r.removeExtension(Mo);}async function LM(t,e){let r=t.getObjectExtension(e,Mo);if(r){let{byteOffset:A=0,byteLength:i=0,byteStride:c,count:d,mode:m,filter:y="NONE",buffer:_}=r,E=t.gltf.buffers[_],x=new Uint8Array(E.arrayBuffer,E.byteOffset+A,i),v=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Lm(v,d,c,x,m,y),t.removeObjectExtension(e,Mo);}}var Vc={};w(Vc,{name:()=>RM,preprocess:()=>PM});var OA="EXT_texture_webp",RM=OA;function PM(t,e){let r=new Je(t);if(!Mx$1("image/webp")){if(r.getRequiredExtensions().includes(OA))throw new Error(`gltf: Required extension ${OA} not supported by browser`);return}let{json:A}=r;for(let i of A.textures||[]){let c=r.getObjectExtension(i,OA);c&&(i.source=c.source),r.removeObjectExtension(i,OA);}r.removeExtension(OA);}var jc={};w(jc,{name:()=>DM,preprocess:()=>NM});var So="KHR_texture_basisu",DM=So;function NM(t,e){let r=new Je(t),{json:A}=r;for(let i of A.textures||[]){let c=r.getObjectExtension(i,So);c&&(i.source=c.source,r.removeObjectExtension(i,So));}r.removeExtension(So);}var qc={};w(qc,{decode:()=>ZM,encode:()=>$M,name:()=>YM,preprocess:()=>WM});var OM="1.5.6",GM="1.4.1",Qc=`https://www.gstatic.com/draco/versioned/decoders/${OM}`,Lt={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},Gi={[Lt.DECODER]:`${Qc}/${Lt.DECODER}`,[Lt.DECODER_WASM]:`${Qc}/${Lt.DECODER_WASM}`,[Lt.FALLBACK_DECODER]:`${Qc}/${Lt.FALLBACK_DECODER}`,[Lt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${GM}/javascript/${Lt.ENCODER}`},zc;async function Pm(t={},e){let r=t.modules||{};return r.draco3d?zc||=r.draco3d.createDecoderModule({}).then(A=>({draco:A})):zc||=kM(t,e),await zc}function Rm(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function kM(t,e){let r,A;switch(e){case "js":r=await id$1(Gi[Lt.FALLBACK_DECODER],"draco",t,Lt.FALLBACK_DECODER);break;default:try{[r,A]=await Promise.all([await id$1(Gi[Lt.DECODER],"draco",t,Lt.DECODER),await id$1(Gi[Lt.DECODER_WASM],"draco",t,Lt.DECODER_WASM)]);}catch{r=null,A=null;}}return r=Rm(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!J&&([r,A]=await Promise.all([await id$1(Gi[Lt.DECODER],"draco",s$1(r$1({},t),{useLocalLibraries:true}),Lt.DECODER),await id$1(Gi[Lt.DECODER_WASM],"draco",s$1(r$1({},t),{useLocalLibraries:true}),Lt.DECODER_WASM)]),r=Rm(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await UM(r,A)}function UM(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(A=>{t(s$1(r$1({},r),{onModuleLoaded:i=>A({draco:i})}));})}var Dm="4.4.4";function Om(t,e,r){let A=Gm(e.metadata),i=[],c=HM(e.attributes);for(let d in t){let m=t[d],y=Nm(d,m,c[d]);i.push(y);}if(r){let d=Nm("indices",r);i.push(d);}return {fields:i,metadata:A}}function HM(t){let e={};for(let r in t){let A=t[r];e[A.name||"undefined"]=A;}return e}function Nm(t,e,r){let A=r?Gm(r.metadata):void 0;return s0(t,e,A)}function Gm(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var km={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},VM={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},jM=4,Io=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 A=new this.draco.DecoderBuffer;A.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let i=this.decoder.GetEncodedGeometryType(A),c=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let d;switch(i){case this.draco.TRIANGULAR_MESH:d=this.decoder.DecodeBufferToMesh(A,c);break;case this.draco.POINT_CLOUD:d=this.decoder.DecodeBufferToPointCloud(A,c);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!d.ok()||!c.ptr){let v=`DRACO decompression failed: ${d.error_msg()}`;throw new Error(v)}let m=this._getDracoLoaderData(c,i,r),y=this._getMeshData(c,m,r),_=In(y.attributes),E=Om(y.attributes,m,y.indices);return s$1(r$1({loader:"draco",loaderData:m,header:{vertexCount:c.num_points(),boundingBox:_}},y),{schema:E})}finally{this.draco.destroy(A),c&&this.draco.destroy(c);}}_getDracoLoaderData(e,r,A){let i=this._getTopLevelMetadata(e),c=this._getDracoAttributes(e,A);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:i,attributes:c}}_getDracoAttributes(e,r){let A={};for(let i=0;i<e.num_attributes();i++){let c=this.decoder.GetAttribute(e,i),d=this._getAttributeMetadata(e,i);A[c.unique_id()]={unique_id:c.unique_id(),attribute_type:c.attribute_type(),data_type:c.data_type(),num_components:c.num_components(),byte_offset:c.byte_offset(),byte_stride:c.byte_stride(),normalized:c.normalized(),attribute_index:i,metadata:d};let m=this._getQuantizationTransform(c,r);m&&(A[c.unique_id()].quantization_transform=m);let y=this._getOctahedronTransform(c,r);y&&(A[c.unique_id()].octahedron_transform=y);}return A}_getMeshData(e,r,A){let i=this._getMeshAttributes(r,e,A);if(!i.POSITION)throw new Error("DRACO: No position attribute found.");return e instanceof this.draco.Mesh?A.topology==="triangle-strip"?{topology:"triangle-strip",mode:4,attributes:i,indices:{value:this._getTriangleStripIndices(e),size:1}}:{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}:{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,r,A){let i={};for(let c of Object.values(e.attributes)){let d=this._deduceAttributeName(c,A);c.name=d;let m=this._getAttributeValues(r,c);if(m){let{value:y,size:_}=m;i[d]={value:y,size:_,byteOffset:c.byte_offset,byteStride:c.byte_stride,normalized:c.normalized};}}return i}_getTriangleListIndices(e){let A=e.num_faces()*3,i=A*jM,c=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,c),new Uint32Array(this.draco.HEAPF32.buffer,c,A).slice()}finally{this.draco._free(c);}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),JM(r)}finally{this.draco.destroy(r);}}_getAttributeValues(e,r){let A=VM[r.data_type];if(!A)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let i=r.num_components,d=e.num_points()*i,m=d*A.BYTES_PER_ELEMENT,y=QM(this.draco,A),_,E=this.draco._malloc(m);try{let x=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,x,y,m,E),_=new A(this.draco.HEAPF32.buffer,E,d).slice();}finally{this.draco._free(E);}return {value:_,size:i}}_deduceAttributeName(e,r){let A=e.unique_id;for(let[d,m]of Object.entries(r.extraAttributes||{}))if(m===A)return d;let i=e.attribute_type;for(let d in km)if(this.draco[d]===i)return km[d];let c=r.attributeNameEntry||"name";return e.metadata[c]?e.metadata[c].string:`CUSTOM_ATTRIBUTE_${A}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let A=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(A)}_getDracoMetadata(e){if(!e||!e.ptr)return {};let r={},A=this.metadataQuerier.NumEntries(e);for(let i=0;i<A;i++){let c=this.metadataQuerier.GetEntryName(e,i);r[c]=this._getDracoMetadataField(e,c);}return r}_getDracoMetadataField(e,r){let A=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,A);let i=zM(A);return {int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:i}}finally{this.draco.destroy(A);}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:A=[]}=e,i=[...r,...A];for(let c of i)this.decoder.SkipAttributeTransform(this.draco[c]);}_getQuantizationTransform(e,r){let{quantizedAttributes:A=[]}=r,i=e.attribute_type();if(A.map(d=>this.decoder[d]).includes(i)){let d=new this.draco.AttributeQuantizationTransform;try{if(d.InitFromAttribute(e))return {quantization_bits:d.quantization_bits(),range:d.range(),min_values:new Float32Array([1,2,3]).map(m=>d.min_value(m))}}finally{this.draco.destroy(d);}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:A=[]}=r,i=e.attribute_type();if(A.map(d=>this.decoder[d]).includes(i)){let d=new this.draco.AttributeQuantizationTransform;try{if(d.InitFromAttribute(e))return {quantization_bits:d.quantization_bits()}}finally{this.draco.destroy(d);}}return null}};function QM(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 zM(t){let e=t.size(),r=new Int32Array(e);for(let A=0;A<e;A++)r[A]=t.GetValue(A);return r}function JM(t){let e=t.size(),r=new Int32Array(e);for(let A=0;A<e;A++)r[A]=t.GetValue(A);return r}var Um={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:Dm,worker:true,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:true,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},ki=s$1(r$1({},Um),{parse:qM});async function qM(t,e){let{draco:r}=await Pm(rd$1(e),e?.draco?.decoderType||"wasm"),A=new Io(r);try{return A.parseSync(t,e?.draco)}finally{A.destroy();}}function Hm(t){let e={};for(let r in t){let A=t[r];if(r!=="indices"){let i=Jc(A);e[r]=i;}}return e}function Jc(t){let{buffer:e,size:r,count:A}=KM(t);return {value:e,size:r,byteOffset:0,count:A,type:Eo(r),componentType:gn(e)}}function KM(t){let e=t,r=1,A=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=XM(e,Float32Array)),A=e.length/r),{buffer:e,size:r,count:A}}function XM(t,e,r=false){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var yn="KHR_draco_mesh_compression",YM=yn;function WM(t,e,r){let A=new Je(t);for(let i of Vm(A))A.getObjectExtension(i,yn);}async function ZM(t,e,r){if(!e?.gltf?.decompressMeshes)return;let A=new Je(t),i=[];for(let c of Vm(A))A.getObjectExtension(c,yn)&&i.push(e4(A,c,e,r));await Promise.all(i),A.removeExtension(yn);}function $M(t,e={}){let r=new Je(t);for(let A of r.json.meshes||[])t4(A),r.addRequiredExtension(yn);}async function e4(t,e,r,A){let i=t.getObjectExtension(e,yn);if(!i)return;let c=t.getTypedArrayForBufferView(i.bufferView),d=hd$1(c.buffer,c.byteOffset),m=r$1({},r);delete m["3d-tiles"];let y=await jp$1(d,ki,m,A),_=Hm(y.attributes);for(let[E,x]of Object.entries(_))if(E in e.attributes){let v=e.attributes[E],F=t.getAccessor(v);F?.min&&F?.max&&(x.min=F.min,x.max=F.max);}e.attributes=_,y.indices&&(e.indices=Jc(y.indices)),t.removeObjectExtension(e,yn),r4(e);}function t4(t,e,r=4,A,i){if(!A.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let c=A.DracoWriter.encodeSync({attributes:t}),d=i?.parseSync?.({attributes:t}),m=A._addFauxAttributes(d.attributes),y=A.addBufferView(c);return {primitives:[{attributes:m,mode:r,extensions:{[yn]:{bufferView:y,attributes:m}}}]}}function r4(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Vm(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r;}var Kc={};w(Kc,{decode:()=>s4,name:()=>n4});var Lo="KHR_texture_transform",n4=Lo,Fo=new H,A4=new Tr$1,i4=new Tr$1;async function s4(t,e){if(!new Je(t).hasExtension(Lo)||!e.gltf?.loadBuffers)return;let i=t.json.materials||[];for(let c=0;c<i.length;c++)o4(c,t);}function o4(t,e){let r=e.json.materials?.[t],A=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],i=[];for(let c of A)c&&c?.extensions?.[Lo]&&a4(e,t,c,i);}function a4(t,e,r,A){let i=c4(r,A);if(!i)return;let c=t.json.meshes||[];for(let d of c)for(let m of d.primitives){let y=m.material;Number.isFinite(y)&&e===y&&l4(t,m,i);}}function c4(t,e){let r=t.extensions?.[Lo],{texCoord:A=0}=t,{texCoord:i=A}=r;if(!(e.findIndex(([d,m])=>d===A&&m===i)!==-1)){let d=h4(r);return A!==i&&(t.texCoord=i),e.push([A,i]),{originalTexCoord:A,texCoord:i,matrix:d}}return null}function l4(t,e,r){let{originalTexCoord:A,texCoord:i,matrix:c}=r,d=e.attributes[`TEXCOORD_${A}`];if(Number.isFinite(d)){let m=t.json.accessors?.[d];if(m&&m.bufferView!==void 0){let y=t.json.bufferViews?.[m.bufferView];if(y){let{arrayBuffer:_,byteOffset:E}=t.buffers[y.buffer],x=(E||0)+(m.byteOffset||0)+(y.byteOffset||0),{ArrayType:v,length:F}=IA(m,y),N=bo[m.componentType],U=_o[m.type],q=y.byteStride||N*U,X=new Float32Array(F);for(let W=0;W<m.count;W++){let he=new v(_,x+W*q,2);Fo.set(he[0],he[1],1),Fo.transformByMatrix3(c),X.set([Fo[0],Fo[1]],W*U);}A===i?u4(m,t,X,m.bufferView):f4(i,m,e,t,X);}}}}function u4(t,e,r,A){t.componentType=5126,t.byteOffset=0;let d=(e.json.accessors||[]).reduce((_,E)=>E.bufferView===A?_+1:_,0)>1;e.buffers.push({arrayBuffer:mr(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let m=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],d){e.json.bufferViews.push({buffer:m,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let y=e.json.bufferViews[A];y&&(y.buffer=m,y.byteOffset=0,y.byteLength=r.buffer.byteLength,y.byteStride!==void 0&&delete y.byteStride);}function f4(t,e,r,A,i){A.buffers.push({arrayBuffer:mr(i.buffer),byteOffset:0,byteLength:i.buffer.byteLength}),A.json.bufferViews=A.json.bufferViews||[];let c=A.json.bufferViews;c.push({buffer:A.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});let d=A.json.accessors;d&&(d.push({bufferView:c?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=d.length-1);}function h4(t){let{offset:e=[0,0],rotation:r=0,scale:A=[1,1]}=t,i=new Tr$1().set(1,0,0,0,1,0,e[0],e[1],1),c=A4.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),d=i4.set(A[0],0,0,0,A[1],0,0,0,1);return i.multiplyRight(c).multiplyRight(d)}var Xc={};w(Xc,{decode:()=>p4,encode:()=>m4,name:()=>d4});var Un="KHR_lights_punctual",d4=Un;async function p4(t){let e=new Je(t),{json:r}=e,A=e.getExtension(Un);A&&(e.json.lights=A.lights,e.removeExtension(Un));for(let i of r.nodes||[]){let c=e.getObjectExtension(i,Un);c&&(i.light=c.light),e.removeObjectExtension(i,Un);}}async function m4(t){let e=new Je(t),{json:r}=e;if(r.lights){let A=e.addExtension(Un);vt(!A.lights),A.lights=r.lights,delete r.lights;}if(e.json.lights){for(let A of e.json.lights){let i=A.node;e.addObjectExtension(i,Un,A);}delete e.json.lights;}}var Yc={};w(Yc,{decode:()=>y4,encode:()=>T4,name:()=>g4});var Ui="KHR_materials_unlit",g4=Ui;async function y4(t){let e=new Je(t),{json:r}=e;for(let A of r.materials||[])A.extensions&&A.extensions.KHR_materials_unlit&&(A.unlit=true),e.removeObjectExtension(A,Ui);e.removeExtension(Ui);}function T4(t){let e=new Je(t),{json:r}=e;if(e.materials)for(let A of r.materials||[])A.unlit&&(delete A.unlit,e.addObjectExtension(A,Ui,{}),e.addExtension(Ui));}var Wc={};w(Wc,{decode:()=>b4,encode:()=>E4,name:()=>_4});var Hi="KHR_techniques_webgl",_4=Hi;async function b4(t){let e=new Je(t),{json:r}=e,A=e.getExtension(Hi);if(A){let i=x4(A,e);for(let c of r.materials||[]){let d=e.getObjectExtension(c,Hi);d&&(c.technique=Object.assign({},d,i[d.technique]),c.technique.values=C4(c.technique,e)),e.removeObjectExtension(c,Hi);}e.removeExtension(Hi);}}async function E4(t,e){}function x4(t,e){let{programs:r=[],shaders:A=[],techniques:i=[]}=t,c=new TextDecoder;return A.forEach(d=>{if(Number.isFinite(d.bufferView))d.code=c.decode(e.getTypedArrayForBufferView(d.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(d=>{d.fragmentShader=A[d.fragmentShader],d.vertexShader=A[d.vertexShader];}),i.forEach(d=>{d.program=r[d.program];}),i}function C4(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(A=>{t.uniforms[A].value&&!(A in r)&&(r[A]=t.uniforms[A].value);}),Object.keys(r).forEach(A=>{typeof r[A]=="object"&&r[A].index!==void 0&&(r[A].texture=e.getTexture(r[A].index));}),r}var jm=[Pc,Fc,Hc,Vc,jc,qc,Xc,Yc,Wc,Kc,Dc];function Qm(t,e={},r){let A=jm.filter(i=>Jm(i.name,e));for(let i of A)i.preprocess?.(t,e,r);}async function zm(t,e={},r){let A=jm.filter(i=>Jm(i.name,e));for(let i of A)await i.decode?.(t,e,r);}function Jm(t,e){let r=e?.gltf?.excludeExtensions||{};return !(t in r&&!r[t])}var Zc="KHR_binary_glTF";function qm(t){let e=new Je(t),{json:r}=e;for(let A of r.images||[]){let i=e.getObjectExtension(A,Zc);i&&Object.assign(A,i),e.removeObjectExtension(A,Zc);}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(Zc);}var Km={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},B4={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},$c=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,r){this.json=e.json;let A=e.json;switch(A.asset&&A.asset.version){case "2.0":return;case void 0:case "1.0":break;default:console.warn(`glTF: Unknown version ${A.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(A),this._convertTopLevelObjectsToArrays(A),qm(e),this._convertObjectIdsToArrayIndices(A),this._updateObjects(A),this._updateMaterial(A);}_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 Km)this._convertTopLevelObjectToArray(e,r);}_convertTopLevelObjectToArray(e,r){let A=e[r];if(!(!A||Array.isArray(A))){e[r]=[];for(let i in A){let c=A[i];c.id=c.id||i;let d=e[r].length;e[r].push(c),this.idToIndexMap[r][i]=d;}}}_convertObjectIdsToArrayIndices(e){for(let r in Km)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:A,indices:i,material:c}=r;for(let d in A)A[d]=this._convertIdToIndex(A[d],"accessor");i&&(r.indices=this._convertIdToIndex(i,"accessor")),c&&(r.material=this._convertIdToIndex(c,"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 A of e[r])for(let i in A){let c=A[i],d=this._convertIdToIndex(c,i);A[i]=d;}}_convertIdToIndex(e,r){let A=B4[r];if(A in this.idToIndexMap){let i=this.idToIndexMap[A][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return i}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 A=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,i=e.textures.findIndex(c=>c.id===A);i!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:i});}}};function Xm(t,e={}){return new $c().normalize(t,e)}function v4(t,e){let r=t.basis,A=r?.format;return s$1(r$1({},t),{core:s$1(r$1({},t.core),{mimeType:e}),basis:s$1(r$1({},r),{format:A&&A!=="auto"?A:Pi(r?.supportedTextureFormats)})})}async function Ym(t,e,r=0,A,i){return M4(t,e,r,A),Xm(t,{normalize:A?.gltf?.normalize}),Qm(t,A,i),A?.gltf?.loadBuffers&&t.json.buffers&&await S4(t,A,i),A?.gltf?.loadImages&&await I4(t,A,i),await zm(t,A,i),t}function M4(t,e,r,A){if(A.core?.baseUrl&&(t.baseUri=A.core?.baseUrl),e instanceof ArrayBuffer&&!Im(e,r,A.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=ld$1(e);else if(e instanceof ArrayBuffer){let d={};r=Fm(d,e,r,A.glb),vt(d.type==="glTF",`Invalid GLB magic string ${d.type}`),t._glb=d,t.json=d.json;}else vt(false,"GLTF: must be ArrayBuffer or string");let i=t.json.buffers||[];if(t.buffers=new Array(i.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:d}=t._glb;t.buffers[0]={arrayBuffer:d[0].arrayBuffer,byteOffset:d[0].byteOffset,byteLength:d[0].byteLength};}let c=t.json.images||[];t.images=new Array(c.length).fill({});}async function S4(t,e,r){let A=t.json.buffers||[];for(let i=0;i<A.length;++i){let c=A[i];if(c.uri){let{fetch:d}=r;vt(d);let m=kc(c.uri,e,r),_=await(await r?.fetch?.(m))?.arrayBuffer?.();t.buffers[i]={arrayBuffer:_,byteOffset:0,byteLength:_.byteLength},delete c.uri;}else t.buffers[i]===null&&(t.buffers[i]={arrayBuffer:new ArrayBuffer(c.byteLength),byteOffset:0,byteLength:c.byteLength});}}async function I4(t,e,r){let A=F4(t),i=t.json.images||[],c=[];for(let d of A)c.push(L4(t,i[d],d,e,r));return await Promise.all(c)}function F4(t){let e=new Set,r=t.json.textures||[];for(let A of r)A.source!==void 0&&e.add(A.source);return Array.from(e).sort()}async function L4(t,e,r,A,i){let c;if(e.uri&&!e.hasOwnProperty("bufferView")){let y=kc(e.uri,A,i),{fetch:_}=i;c=await(await _(y)).arrayBuffer(),e.bufferView={data:c};}if(Number.isFinite(e.bufferView)){let y=Em(t.json,t.buffers,e.bufferView);c=hd$1(y.buffer,y.byteOffset,y.byteLength);}vt(c,"glTF image has no data");let d=v4(A,e.mimeType),m=await jp$1(c,[nc$1,bc],d,i);m&&m[0]&&(m={compressed:true,mipmaps:false,width:m[0].width,height:m[0].height,data:m[0]}),t.images=t.images||[],t.images[r]=m;}var en={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Mm,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:true,binary:true,tests:["glTF"],parse:R4,options:{gltf:{normalize:true,loadBuffers:true,loadImages:true,decompressMeshes:true}}};async function R4(t,e={},r){let A=r$1(r$1({},en.options),e);A.gltf=r$1(r$1({},en.options.gltf),A.gltf);let i=e?.glb?.byteOffset||0;return await Ym({},t,i,A,r)}var P4={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},D4={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Tr={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},N4={magFilter:Tr.TEXTURE_MAG_FILTER,minFilter:Tr.TEXTURE_MIN_FILTER,wrapS:Tr.TEXTURE_WRAP_S,wrapT:Tr.TEXTURE_WRAP_T},O4={[Tr.TEXTURE_MAG_FILTER]:Tr.LINEAR,[Tr.TEXTURE_MIN_FILTER]:Tr.NEAREST_MIPMAP_LINEAR,[Tr.TEXTURE_WRAP_S]:Tr.REPEAT,[Tr.TEXTURE_WRAP_T]:Tr.REPEAT};function G4(){return {id:"default-sampler",parameters:O4}}function k4(t){return D4[t]}function U4(t){return P4[t]}var el=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:A,buffers:i=[],images:c=[]}=e,{baseUri:d=""}=e;return vt(A),this.baseUri=d,this.buffers=i,this.images=c,this.jsonUnprocessed=A,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let A=r$1({},e);return this.json=A,e.bufferViews&&(A.bufferViews=e.bufferViews.map((i,c)=>this._resolveBufferView(i,c))),e.images&&(A.images=e.images.map((i,c)=>this._resolveImage(i,c))),e.samplers&&(A.samplers=e.samplers.map((i,c)=>this._resolveSampler(i,c))),e.textures&&(A.textures=e.textures.map((i,c)=>this._resolveTexture(i,c))),e.accessors&&(A.accessors=e.accessors.map((i,c)=>this._resolveAccessor(i,c))),e.materials&&(A.materials=e.materials.map((i,c)=>this._resolveMaterial(i,c))),e.meshes&&(A.meshes=e.meshes.map((i,c)=>this._resolveMesh(i,c))),e.nodes&&(A.nodes=e.nodes.map((i,c)=>this._resolveNode(i,c)),A.nodes=A.nodes.map((i,c)=>this._resolveNodeChildren(i))),e.skins&&(A.skins=e.skins.map((i,c)=>this._resolveSkin(i,c))),e.scenes&&(A.scenes=e.scenes.map((i,c)=>this._resolveScene(i,c))),typeof this.json.scene=="number"&&A.scenes&&(A.scene=A.scenes[this.json.scene]),A}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 A=e&&e[r];return A||console.warn(`glTF file error: Could not find ${e}[${r}]`),A}_resolveScene(e,r){return s$1(r$1({},e),{id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(A=>this.getNode(A))})}_resolveNode(e,r){let A=s$1(r$1({},e),{id:e?.id||`node-${r}`});return e.mesh!==void 0&&(A.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(A.camera=this.getCamera(e.camera)),e.skin!==void 0&&(A.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(A.mesh=e.meshes.reduce((i,c)=>{let d=this.getMesh(c);return i.id=d.id,i.primitives=i.primitives.concat(d.primitives),i},{primitives:[]})),A}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let A=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return s$1(r$1({},e),{id:e.id||`skin-${r}`,inverseBindMatrices:A})}_resolveMesh(e,r){let A=s$1(r$1({},e),{id:e.id||`mesh-${r}`,primitives:[]});return e.primitives&&(A.primitives=e.primitives.map(i=>{let c=s$1(r$1({},i),{attributes:{},indices:void 0,material:void 0}),d=i.attributes;for(let m in d)c.attributes[m]=this.getAccessor(d[m]);return i.indices!==void 0&&(c.indices=this.getAccessor(i.indices)),i.material!==void 0&&(c.material=this.getMaterial(i.material)),c})),A}_resolveMaterial(e,r){let A=s$1(r$1({},e),{id:e.id||`material-${r}`});if(A.normalTexture&&(A.normalTexture=r$1({},A.normalTexture),A.normalTexture.texture=this.getTexture(A.normalTexture.index)),A.occlusionTexture&&(A.occlusionTexture=r$1({},A.occlusionTexture),A.occlusionTexture.texture=this.getTexture(A.occlusionTexture.index)),A.emissiveTexture&&(A.emissiveTexture=r$1({},A.emissiveTexture),A.emissiveTexture.texture=this.getTexture(A.emissiveTexture.index)),A.emissiveFactor||(A.emissiveFactor=A.emissiveTexture?[1,1,1]:[0,0,0]),A.pbrMetallicRoughness){A.pbrMetallicRoughness=r$1({},A.pbrMetallicRoughness);let i=A.pbrMetallicRoughness;i.baseColorTexture&&(i.baseColorTexture=r$1({},i.baseColorTexture),i.baseColorTexture.texture=this.getTexture(i.baseColorTexture.index)),i.metallicRoughnessTexture&&(i.metallicRoughnessTexture=r$1({},i.metallicRoughnessTexture),i.metallicRoughnessTexture.texture=this.getTexture(i.metallicRoughnessTexture.index));}return A}_resolveAccessor(e,r){let A=k4(e.componentType),i=U4(e.type),c=A*i,d=s$1(r$1({},e),{id:e.id||`accessor-${r}`,bytesPerComponent:A,components:i,bytesPerElement:c,value:void 0,bufferView:void 0,sparse:void 0});if(e.bufferView!==void 0&&(d.bufferView=this.getBufferView(e.bufferView)),d.bufferView){let m=d.bufferView.buffer,{ArrayType:y,byteLength:_}=IA(d,d.bufferView),E=(d.bufferView.byteOffset||0)+(d.byteOffset||0)+m.byteOffset,x=Mi$1(m.arrayBuffer,E,_);d.bufferView.byteStride&&(x=this._getValueFromInterleavedBuffer(m,E,d.bufferView.byteStride,d.bytesPerElement,d.count)),d.value=new y(x);}return d}_getValueFromInterleavedBuffer(e,r,A,i,c){let d=new Uint8Array(c*i);for(let m=0;m<c;m++){let y=r+m*A;d.set(new Uint8Array(e.arrayBuffer.slice(y,y+i)),m*i);}return d.buffer}_resolveTexture(e,r){return s$1(r$1({},e),{id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):G4(),source:typeof e.source=="number"?this.getImage(e.source):void 0})}_resolveSampler(e,r){let A=s$1(r$1({id:e.id||`sampler-${r}`},e),{parameters:{}});for(let i in A){let c=this._enumSamplerParameter(i);c!==void 0&&(A.parameters[c]=A[i]);}return A}_enumSamplerParameter(e){return N4[e]}_resolveImage(e,r){let A=s$1(r$1({},e),{id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0}),i=this.images[r];return i&&(A.image=i),A}_resolveBufferView(e,r){let A=e.buffer,i=this.buffers[A].arrayBuffer,c=this.buffers[A].byteOffset||0;return e.byteOffset&&(c+=e.byteOffset),s$1(r$1({id:`bufferView-${r}`},e),{buffer:this.buffers[A],data:new Uint8Array(i,c,e.byteLength)})}_resolveCamera(e,r){let A=s$1(r$1({},e),{id:e.id||`camera-${r}`});return A.perspective,A.orthographic,A}};function Hn(t,e){return new el().postProcess(t,e)}async function Wm(t){let e=[];return t.scenes.forEach(r=>{r.traverse(A=>{});}),await H4(()=>e.some(r=>!r.loaded))}async function H4(t){for(;t();)await new Promise(e=>requestAnimationFrame(e));}var Zm=`layout(std140) uniform scenegraphUniforms {
|
|
258
|
-
float sizeScale;
|
|
259
|
-
float sizeMinPixels;
|
|
260
|
-
float sizeMaxPixels;
|
|
261
|
-
mat4 sceneModelMatrix;
|
|
262
|
-
bool composeModelMatrix;
|
|
263
|
-
} scenegraph;
|
|
264
|
-
`,$m={name:"scenegraph",vs:Zm,fs:Zm,uniformTypes:{sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",sceneModelMatrix:"mat4x4<f32>",composeModelMatrix:"f32"}};var e2=`#version 300 es
|
|
265
|
-
#define SHADER_NAME scenegraph-layer-vertex-shader
|
|
266
|
-
in vec3 instancePositions;
|
|
267
|
-
in vec3 instancePositions64Low;
|
|
268
|
-
in vec4 instanceColors;
|
|
269
|
-
in vec3 instancePickingColors;
|
|
270
|
-
in vec3 instanceModelMatrixCol0;
|
|
271
|
-
in vec3 instanceModelMatrixCol1;
|
|
272
|
-
in vec3 instanceModelMatrixCol2;
|
|
273
|
-
in vec3 instanceTranslation;
|
|
274
|
-
in vec3 positions;
|
|
275
|
-
#ifdef HAS_UV
|
|
276
|
-
in vec2 texCoords;
|
|
277
|
-
#endif
|
|
278
|
-
#ifdef LIGHTING_PBR
|
|
279
|
-
#ifdef HAS_NORMALS
|
|
280
|
-
in vec3 normals;
|
|
281
|
-
#endif
|
|
282
|
-
#endif
|
|
283
|
-
out vec4 vColor;
|
|
284
|
-
#ifndef LIGHTING_PBR
|
|
285
|
-
#ifdef HAS_UV
|
|
286
|
-
out vec2 vTEXCOORD_0;
|
|
287
|
-
#endif
|
|
288
|
-
#endif
|
|
289
|
-
void main(void) {
|
|
290
|
-
#if defined(HAS_UV) && !defined(LIGHTING_PBR)
|
|
291
|
-
vTEXCOORD_0 = texCoords;
|
|
292
|
-
geometry.uv = texCoords;
|
|
293
|
-
#endif
|
|
294
|
-
geometry.worldPosition = instancePositions;
|
|
295
|
-
geometry.pickingColor = instancePickingColors;
|
|
296
|
-
mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
|
|
297
|
-
vec3 normal = vec3(0.0, 0.0, 1.0);
|
|
298
|
-
#ifdef LIGHTING_PBR
|
|
299
|
-
#ifdef HAS_NORMALS
|
|
300
|
-
normal = instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(normals, 0.0)).xyz;
|
|
301
|
-
#endif
|
|
302
|
-
#endif
|
|
303
|
-
float originalSize = project_size_to_pixel(scenegraph.sizeScale);
|
|
304
|
-
float clampedSize = clamp(originalSize, scenegraph.sizeMinPixels, scenegraph.sizeMaxPixels);
|
|
305
|
-
vec3 pos = (instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(positions, 1.0)).xyz) * scenegraph.sizeScale * (clampedSize / originalSize) + instanceTranslation;
|
|
306
|
-
if(scenegraph.composeModelMatrix) {
|
|
307
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
308
|
-
geometry.normal = project_normal(normal);
|
|
309
|
-
geometry.worldPosition += pos;
|
|
310
|
-
gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position);
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
pos = project_size(pos);
|
|
314
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
315
|
-
gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position);
|
|
316
|
-
geometry.normal = project_normal(normal);
|
|
317
|
-
}
|
|
318
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
319
|
-
#ifdef LIGHTING_PBR
|
|
320
|
-
pbr_vPosition = geometry.position.xyz;
|
|
321
|
-
#ifdef HAS_NORMALS
|
|
322
|
-
pbr_vNormal = geometry.normal;
|
|
323
|
-
#endif
|
|
324
|
-
#ifdef HAS_UV
|
|
325
|
-
pbr_vUV0 = texCoords;
|
|
326
|
-
#else
|
|
327
|
-
pbr_vUV0 = vec2(0., 0.);
|
|
328
|
-
#endif
|
|
329
|
-
pbr_vUV1 = vec2(0., 0.);
|
|
330
|
-
geometry.uv = pbr_vUV0;
|
|
331
|
-
#endif
|
|
332
|
-
vColor = instanceColors;
|
|
333
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
334
|
-
}
|
|
335
|
-
`;var t2=`#version 300 es
|
|
336
|
-
#define SHADER_NAME scenegraph-layer-fragment-shader
|
|
337
|
-
in vec4 vColor;
|
|
338
|
-
out vec4 fragColor;
|
|
339
|
-
#ifndef LIGHTING_PBR
|
|
340
|
-
#if defined(HAS_UV) && defined(HAS_BASECOLORMAP)
|
|
341
|
-
in vec2 vTEXCOORD_0;
|
|
342
|
-
uniform sampler2D pbr_baseColorSampler;
|
|
343
|
-
#endif
|
|
344
|
-
#endif
|
|
345
|
-
void main(void) {
|
|
346
|
-
#ifdef LIGHTING_PBR
|
|
347
|
-
fragColor = vColor * pbr_filterColor(vec4(0));
|
|
348
|
-
geometry.uv = pbr_vUV0;
|
|
349
|
-
#else
|
|
350
|
-
#if defined(HAS_UV) && defined(HAS_BASECOLORMAP)
|
|
351
|
-
fragColor = vColor * texture(pbr_baseColorSampler, vTEXCOORD_0);
|
|
352
|
-
geometry.uv = vTEXCOORD_0;
|
|
353
|
-
#else
|
|
354
|
-
fragColor = vColor;
|
|
355
|
-
#endif
|
|
356
|
-
#endif
|
|
357
|
-
fragColor.a *= layer.opacity;
|
|
358
|
-
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
359
|
-
}
|
|
360
|
-
`;var r2=[255,255,255,255],V4={scenegraph:{type:"object",value:null,async:true},getScene:t=>t&&t.scenes?typeof t.scene=="object"?t.scene:t.scenes[t.scene||0]:t,getAnimator:t=>t&&t.animator,_animations:null,onFirstDraw:{type:"function",value:()=>{}},sizeScale:{type:"number",value:1,min:0},sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:t=>t.position},getColor:{type:"accessor",value:r2},_lighting:"flat",_imageBasedLightingEnvironment:void 0,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[en]},j4=(()=>{class t extends mc$1{getShaders(){let r={},A;this.props._lighting==="pbr"?(A=mb$1,r.LIGHTING_PBR=1):A={name:"pbrMaterial"};let i=[Jh$1,nu$1,$m,A];return super.getShaders({defines:r,vs:e2,fs:t2,modules:i})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),accessor:"getPosition",transition:true},instanceColors:{type:"unorm8",size:this.props.colorFormat.length,accessor:"getColor",defaultValue:r2,transition:true},instanceModelMatrix:lo});}updateState(r){super.updateState(r);let{props:A,oldProps:i}=r;A.scenegraph!==i.scenegraph?this._updateScenegraph():A._animations!==i._animations&&this._applyAnimationsProp(this.state.animator,A._animations);}finalizeState(r){super.finalizeState(r),this._destroyScenegraphAssets();}get isLoaded(){return !!(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){let r=this.props,{device:A}=this.context,i=null;if(r.scenegraph instanceof nt)i={scenes:[r.scenegraph]};else if(r.scenegraph&&typeof r.scenegraph=="object"){let y=r.scenegraph,_=y.json?Hn(y):y,E=Ic(A,_,this._getModelOptions());i=E,Wm(E).then(()=>this.setNeedsRedraw()).catch(x=>{this.raiseError(x,"loading glTF");});}let c={layer:this,device:this.context.device},d=r.getScene(i,c),m=r.getAnimator(i,c);if(d instanceof Da){this._destroyScenegraphAssets(),this._applyAnimationsProp(m,r._animations);let y=[];d.traverse(_=>{_ instanceof Fa&&y.push(_.model);}),this.setState({scenegraph:d,animator:m,materials:i?.materials||null,models:y,firstDrawSignaled:false}),this.getAttributeManager().invalidateAll();}else d!==null&&C.warn("invalid scenegraph:",d)();}_destroyScenegraphAssets(){this.state.scenegraph?.destroy(),this.state.materials?.forEach(r=>r.destroy()),this.state.scenegraph=null,this.state.animator=null,this.state.materials=null,this.state.models=[];}_applyAnimationsProp(r,A){if(!r||!A)return;let i=r.getAnimations();Object.keys(A).sort().forEach(c=>{let d=A[c];if(c==="*")i.forEach(m=>{Object.assign(m,d);});else if(Number.isFinite(Number(c))){let m=Number(c);m>=0&&m<i.length?Object.assign(i[m],d):C.warn(`animation ${c} not found`)();}else {let m=i.find(({animation:y})=>y.name===c);m?Object.assign(m,d):C.warn(`animation ${c} not found`)();}});}_getModelOptions(){let{_imageBasedLightingEnvironment:r}=this.props,A;return r&&(typeof r=="function"?A=r({gl:this.context.gl,layer:this}):A=r),{imageBasedLightingEnvironment:A,modelOptions:r$1({id:this.props.id,isInstanced:true,bufferLayout:this.getAttributeManager().getBufferLayouts()},this.getShaders()),useTangents:false}}draw({context:r}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.setTime(r.timeline.getTime()),this.setNeedsRedraw());let{viewport:A,renderPass:i}=this.context,{sizeScale:c,sizeMinPixels:d,sizeMaxPixels:m,coordinateSystem:y}=this.props,_={camera:A.cameraPosition},E=this.getNumInstances();this.state.scenegraph.traverse((x,{worldMatrix:v})=>{if(x instanceof Fa){let{model:F}=x;F.setInstanceCount(E);let N={sizeScale:c,sizeMinPixels:d,sizeMaxPixels:m,composeModelMatrix:uo(A,y),sceneModelMatrix:v};F.shaderInputs.setProps({pbrProjection:_,scenegraph:N}),F.draw(i);}}),this.state.firstDrawSignaled||(this.state.firstDrawSignaled=true,this.props.onFirstDraw?.());}}return t.defaultProps=V4,t.layerName="ScenegraphLayer",t})(),tl=j4;var n2=`layout(std140) uniform meshUniforms {
|
|
361
|
-
bool pickFeatureIds;
|
|
362
|
-
} mesh;
|
|
363
|
-
`,A2={name:"mesh",vs:n2,fs:n2,uniformTypes:{pickFeatureIds:"f32"}};var i2=`#version 300 es
|
|
364
|
-
#define SHADER_NAME simple-mesh-layer-vs
|
|
365
|
-
in vec3 positions;
|
|
366
|
-
in vec3 normals;
|
|
367
|
-
in vec3 colors;
|
|
368
|
-
in vec2 texCoords;
|
|
369
|
-
in vec4 uvRegions;
|
|
370
|
-
in vec3 featureIdsPickingColors;
|
|
371
|
-
in vec4 instanceColors;
|
|
372
|
-
in vec3 instancePickingColors;
|
|
373
|
-
in vec3 instanceModelMatrixCol0;
|
|
374
|
-
in vec3 instanceModelMatrixCol1;
|
|
375
|
-
in vec3 instanceModelMatrixCol2;
|
|
376
|
-
out vec2 vTexCoord;
|
|
377
|
-
out vec3 cameraPosition;
|
|
378
|
-
out vec3 normals_commonspace;
|
|
379
|
-
out vec4 position_commonspace;
|
|
380
|
-
out vec4 vColor;
|
|
381
|
-
vec2 applyUVRegion(vec2 uv) {
|
|
382
|
-
#ifdef HAS_UV_REGIONS
|
|
383
|
-
return fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;
|
|
384
|
-
#else
|
|
385
|
-
return uv;
|
|
386
|
-
#endif
|
|
387
|
-
}
|
|
388
|
-
void main(void) {
|
|
389
|
-
vec2 uv = applyUVRegion(texCoords);
|
|
390
|
-
geometry.uv = uv;
|
|
391
|
-
if (mesh.pickFeatureIds) {
|
|
392
|
-
geometry.pickingColor = featureIdsPickingColors;
|
|
393
|
-
} else {
|
|
394
|
-
geometry.pickingColor = instancePickingColors;
|
|
395
|
-
}
|
|
396
|
-
mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
|
|
397
|
-
vTexCoord = uv;
|
|
398
|
-
cameraPosition = project.cameraPosition;
|
|
399
|
-
vColor = vec4(colors * instanceColors.rgb, instanceColors.a);
|
|
400
|
-
vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;
|
|
401
|
-
vec3 projectedPosition = project_position(positions);
|
|
402
|
-
position_commonspace = vec4(projectedPosition, 1.0);
|
|
403
|
-
gl_Position = project_common_position_to_clipspace(position_commonspace);
|
|
404
|
-
geometry.position = position_commonspace;
|
|
405
|
-
normals_commonspace = project_normal(instanceModelMatrix * normals);
|
|
406
|
-
geometry.normal = normals_commonspace;
|
|
407
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
408
|
-
#ifdef MODULE_PBRMATERIAL
|
|
409
|
-
pbr_vPosition = geometry.position.xyz;
|
|
410
|
-
#ifdef HAS_NORMALS
|
|
411
|
-
pbr_vNormal = geometry.normal;
|
|
412
|
-
#endif
|
|
413
|
-
#ifdef HAS_UV
|
|
414
|
-
pbr_vUV0 = uv;
|
|
415
|
-
#else
|
|
416
|
-
pbr_vUV0 = vec2(0., 0.);
|
|
417
|
-
#endif
|
|
418
|
-
pbr_vUV1 = vec2(0., 0.);
|
|
419
|
-
geometry.uv = pbr_vUV0;
|
|
420
|
-
#endif
|
|
421
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
422
|
-
}
|
|
423
|
-
`;var s2=`#version 300 es
|
|
424
|
-
#define SHADER_NAME simple-mesh-layer-fs
|
|
425
|
-
precision highp float;
|
|
426
|
-
uniform sampler2D sampler;
|
|
427
|
-
in vec2 vTexCoord;
|
|
428
|
-
in vec3 cameraPosition;
|
|
429
|
-
in vec3 normals_commonspace;
|
|
430
|
-
in vec4 position_commonspace;
|
|
431
|
-
in vec4 vColor;
|
|
432
|
-
out vec4 fragColor;
|
|
433
|
-
void main(void) {
|
|
434
|
-
#ifdef MODULE_PBRMATERIAL
|
|
435
|
-
fragColor = vColor * pbr_filterColor(vec4(0));
|
|
436
|
-
geometry.uv = pbr_vUV0;
|
|
437
|
-
fragColor.a *= layer.opacity;
|
|
438
|
-
#else
|
|
439
|
-
geometry.uv = vTexCoord;
|
|
440
|
-
vec3 normal;
|
|
441
|
-
if (simpleMesh.flatShading) {
|
|
442
|
-
normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
|
|
443
|
-
} else {
|
|
444
|
-
normal = normals_commonspace;
|
|
445
|
-
}
|
|
446
|
-
vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;
|
|
447
|
-
vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
|
|
448
|
-
fragColor = vec4(lightColor, color.a * layer.opacity);
|
|
449
|
-
#endif
|
|
450
|
-
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
451
|
-
}
|
|
452
|
-
`;function Q4(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:true});}var z4={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:true}},J4=(()=>{class t extends vA{getShaders(){let r=super.getShaders();return r.modules.push(mb$1,A2),s$1(r$1({},r),{vs:i2,fs:s2})}initializeState(){let{featureIds:r}=this.props;super.initializeState();let A=this.getAttributeManager();r&&A.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:true,update:this.calculateFeatureIdsPickingColors}});}updateState(r){super.updateState(r);let{props:A,oldProps:i}=r;A.pbrMaterial!==i.pbrMaterial&&this.updatePbrMaterialUniforms(A.pbrMaterial);}draw(r){let{featureIds:A}=this.props,{model:i}=this.state;if(!i)return;let c={pickFeatureIds:!!A},d={camera:this.context.viewport.cameraPosition};i.shaderInputs.setProps({pbrProjection:d,mesh:c}),super.draw(r);}getModel(r){let{id:A}=this.props,i=this.parseMaterial(this.props.pbrMaterial,r);this.setState({parsedPBRMaterial:i});let c=this.getShaders();return Q4(r.attributes),new Kt$1(this.context.device,s$1(r$1({},this.getShaders()),{id:A,geometry:r,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:s$1(r$1(r$1({},c.defines),i?.defines),{HAS_UV_REGIONS:r.attributes.uvRegions?1:0}),parameters:i?.parameters,isInstanced:true}))}updatePbrMaterialUniforms(r){let{model:A}=this.state;if(A){let{mesh:c}=this.props,d=this.parseMaterial(r,c);this.setState({parsedPBRMaterial:d});let{pbr_baseColorSampler:m}=d.bindings,{emptyTexture:y}=this.state,_={sampler:m||y,hasTexture:!!m},i=r$1(r$1({},d.bindings),d.uniforms),{camera:E}=i,x=u(i,["camera"]);A.shaderInputs.setProps({simpleMesh:_,pbrMaterial:x});}}parseMaterial(r,A){let i=!!(r.pbrMetallicRoughness&&r.pbrMetallicRoughness.baseColorTexture);return SA(this.context.device,r$1({unlit:i},r),{NORMAL:A.attributes.normals,TEXCOORD_0:A.attributes.texCoords},{pbrDebug:false,lights:true,useTangents:false})}calculateFeatureIdsPickingColors(r){let A=this.props.featureIds,i=new Uint8ClampedArray(A.length*r.size),c=[];for(let d=0;d<A.length;d++)this.encodePickingColor(A[d],c),i[d*3]=c[0],i[d*3+1]=c[1],i[d*3+2]=c[2];r.value=i;}finalizeState(r){super.finalizeState(r),this.state.parsedPBRMaterial?.generatedTextures.forEach(A=>A.destroy()),this.setState({parsedPBRMaterial:null});}}return t.layerName="MeshLayer",t.defaultProps=z4,t})(),o2=J4;var tn=6356752314245179e-9;function Ro(t){return t}new H;function K4(t,e=[],r=Ro){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 a2(t,e=[]){return K4(t,e,W._cartographicRadians?Ro:om$1)}function X4(t,e,r=Ro){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 c2(t,e){return X4(t,e,W._cartographicRadians?Ro:sm$1)}var l2=1e-14,Y4=new H,u2={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]},Vi={east:new H,north:new H,up:new H,west:new H,south:new H,down:new H},W4=new H,Z4=new H,$4=new H;function nl(t,e,r,A,i,c){let d=u2[e]&&u2[e][r];ji$1(d&&(!A||A===d));let m,y,_,E=Y4.copy(i);if(De(E.x,0,l2)&&De(E.y,0,l2)){let v=Math.sign(E.z);m=W4.fromArray(rl[e]),e!=="east"&&e!=="west"&&m.scale(v),y=Z4.fromArray(rl[r]),r!=="east"&&r!=="west"&&y.scale(v),_=$4.fromArray(rl[A]),A!=="east"&&A!=="west"&&_.scale(v);}else {let{up:v,east:F,north:N}=Vi;F.set(-E.y,E.x,0).normalize(),t.geodeticSurfaceNormal(E,v),N.copy(v).cross(F);let{down:U,west:q,south:X}=Vi;U.copy(v).scale(-1),q.copy(F).scale(-1),X.copy(N).scale(-1),m=Vi[e],y=Vi[r],_=Vi[A];}return c[0]=m.x,c[1]=m.y,c[2]=m.z,c[3]=0,c[4]=y.x,c[5]=y.y,c[6]=y.z,c[7]=0,c[8]=_.x,c[9]=_.y,c[10]=_.z,c[11]=0,c[12]=E.x,c[13]=E.y,c[14]=E.z,c[15]=1,c}var GA=new H,eS=new H,tS=new H;function f2(t,e,r=[]){let{oneOverRadii:A,oneOverRadiiSquared:i,centerToleranceSquared:c}=e;GA.from(t);let d=GA.x,m=GA.y,y=GA.z,_=A.x,E=A.y,x=A.z,v=d*d*_*_,F=m*m*E*E,N=y*y*x*x,U=v+F+N,q=Math.sqrt(1/U);if(!Number.isFinite(q))return;let X=eS;if(X.copy(t).scale(q),U<c)return X.to(r);let W=i.x,he=i.y,_e=i.z,be=tS;be.set(X.x*W*2,X.y*he*2,X.z*_e*2);let Te=(1-q)*GA.len()/(.5*be.len()),Ee=0,se,Y,k,ge;do{Te-=Ee,se=1/(1+Te*W),Y=1/(1+Te*he),k=1/(1+Te*_e);let Me=se*se,Se=Y*Y,ve=k*k,ke=Me*se,rt=Se*Y,qe=ve*k;ge=v*Me+F*Se+N*ve-1;let at=-2*(v*ke*W+F*rt*he+N*qe*_e);Ee=ge/at;}while(Math.abs(ge)>Of.EPSILON12);return GA.scale([se,Y,k]).to(r)}var Po=new H,h2=new H,AS=new H,Lr=new H,iS=new H,Do=new H,Ne=class{constructor(e=0,r=0,A=0){this.centerToleranceSquared=Of.EPSILON1,ji$1(e>=0),ji$1(r>=0),ji$1(A>=0),this.radii=new H(e,r,A),this.radiiSquared=new H(e*e,r*r,A*A),this.radiiToTheFourth=new H(e*e*e*e,r*r*r*r,A*A*A*A),this.oneOverRadii=new H(e===0?0:1/e,r===0?0:1/r,A===0?0:1/A),this.oneOverRadiiSquared=new H(e===0?0:1/(e*e),r===0?0:1/(r*r),A===0?0:1/(A*A)),this.minimumRadius=Math.min(e,r,A),this.maximumRadius=Math.max(e,r,A),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this);}equals(e){return this===e||!!(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let A=h2,i=AS,[,,c]=e;this.geodeticSurfaceNormalCartographic(e,A),i.copy(this.radiiSquared).scale(A);let d=Math.sqrt(A.dot(i));return i.scale(1/d),A.scale(c),i.add(A),i.to(r)}cartesianToCartographic(e,r=[0,0,0]){Do.from(e);let A=this.scaleToGeodeticSurface(Do,Lr);if(!A)return;let i=this.geodeticSurfaceNormal(A,h2),c=iS;c.copy(Do).subtract(A);let d=Math.atan2(i.y,i.x),m=Math.asin(i.z),y=Math.sign(re.dot(c,Do))*re.length(c);return c2([d,m,y],r)}eastNorthUpToFixedFrame(e,r=new D){return nl(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,A,i,c=new D){return nl(this,e,r,A,i,c)}geocentricSurfaceNormal(e,r=[0,0,0]){return Po.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let A=a2(e),i=A[0],c=A[1],d=Math.cos(c);return Po.set(d*Math.cos(i),d*Math.sin(i),Math.sin(c)).normalize(),Po.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return Po.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return f2(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){Lr.from(e);let A=Lr.x,i=Lr.y,c=Lr.z,d=this.oneOverRadiiSquared,m=1/Math.sqrt(A*A*d.x+i*i*d.y+c*c*d.z);return Lr.multiplyScalar(m).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return Lr.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return Lr.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,A=[0,0,0]){ji$1(De(this.radii.x,this.radii.y,Of.EPSILON15)),ji$1(this.radii.z>0),Lr.from(e);let i=Lr.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(i)>=this.radii.z-r))return Lr.set(0,0,i).to(A)}};Ne.WGS84=new Ne(6378137,6378137,tn);var No=class{item;previous;next;constructor(e,r,A){this.item=e,this.previous=r,this.next=A;}};var Oo=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new No(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 A=e.next;e.next=r,this.tail===e?this.tail=r:A.previous=r,r.next=A,r.previous=e,++this._length;}};var Go=class{_list;_sentinel;_trimTiles;constructor(){this._list=new Oo,this._sentinel=this._list.add("sentinel"),this._trimTiles=false;}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,A){r._cacheNode||(r._cacheNode=this._list.add(r),A&&A(e,r));}unloadTile(e,r,A){let i=r._cacheNode;i&&(this._list.remove(i),r._cacheNode=null,A&&A(e,r));}unloadTiles(e,r){let A=this._trimTiles;this._trimTiles=false;let i=this._list,c=e.maximumMemoryUsage*1024*1024,d=this._sentinel,m=i.head;for(;m!==d&&(e.gpuMemoryUsageInBytes>c||A);){let y=m.item;m=m.next,this.unloadTile(e,y,r);}}trim(){this._trimTiles=true;}};function d2(t,e){ge(t),ge(e);let{rtcCenter:r,gltfUpAxis:A}=e,{computedTransform:i,boundingVolume:{center:c}}=t,d=new D(i);switch(r&&d.translate(r),A){case "Z":break;case "Y":let v=new D().rotateX(Math.PI/2);d=d.multiplyRight(v);break;case "X":let F=new D().rotateY(-Math.PI/2);d=d.multiplyRight(F);break;}e.isQuantized&&d.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let m=new H(c);e.cartesianModelMatrix=d,e.cartesianOrigin=m;let y=Ne.WGS84.cartesianToCartographic(m,new H),E=Ne.WGS84.eastNorthUpToFixedFrame(m).invert();e.cartographicModelMatrix=E.multiplyRight(d),e.cartographicOrigin=y;let x=oS(e);x&&(e.cartesianModelMatrix=new D(d).multiplyRight(x.matrix),e.cartographicModelMatrix.multiplyRight(x.matrix),x.matrix=D.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix);}var sS=1e6**2;function oS(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,i=e.scenes?.[r]?.nodes?.[0];if(!i?.matrix)return null;let c=i.matrix;return c[12]*c[12]+c[13]*c[13]+c[14]*c[14]<=sS?null:i}var p2=new H,Al=new H,il=new Ur([new Ht,new Ht,new Ht,new Ht,new Ht,new Ht]);function g2(t,e){let{cameraDirection:r,cameraUp:A,height:i}=t,{metersPerUnit:c}=t.distanceScales,d=ko(t,t.center),m=Ne.WGS84.eastNorthUpToFixedFrame(d),y=t.unprojectPosition(t.cameraPosition),_=Ne.WGS84.cartographicToCartesian(y,new H),E=new H(m.transformAsVector(new H(r).scale(c))).normalize(),x=new H(m.transformAsVector(new H(A).scale(c))).normalize();aS(t);let v=t.constructor,{longitude:F,latitude:N,width:U,bearing:q,zoom:X}=t,W=new v({longitude:F,latitude:N,height:i,width:U,bearing:q,zoom:X,pitch:0});return {camera:{position:_,direction:E,up:x},viewport:t,topDownViewport:W,height:i,cullingVolume:il,frameNumber:e,sseDenominator:1.15}}function y2(t,e,r){if(r===0||t.length<=r)return [t,[]];let A=[],{longitude:i,latitude:c}=e.viewport;for(let[_,E]of t.entries()){let[x,v]=E.header.mbs,F=Math.abs(i-x),N=Math.abs(c-v),U=Math.sqrt(N*N+F*F);A.push([_,U]);}let d=A.sort((_,E)=>_[1]-E[1]),m=[];for(let _=0;_<r;_++)m.push(t[d[_][0]]);let y=[];for(let _=r;_<d.length;_++)y.push(t[d[_][0]]);return [m,y]}function aS(t){let e=t.getFrustumPlanes(),r=m2(e.near,t.cameraPosition),A=ko(t,r),i=ko(t,t.cameraPosition,Al),c=0;il.planes[c++].fromPointNormal(A,p2.copy(A).subtract(i));for(let d in e){if(d==="near")continue;let m=e[d],y=m2(m,r,Al),_=ko(t,y,Al);il.planes[c++].fromPointNormal(_,p2.copy(A).subtract(_));}}function m2(t,e,r=new H){let A=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-A).add(e),r}function ko(t,e,r=new H){let A=t.unprojectPosition(e);return Ne.WGS84.cartographicToCartesian(A,r)}var cS=6378137,lS=6378137,sl=6356752314245179e-9,kA=new H;function T2(t,e){if(t instanceof Wr){let{halfAxes:r}=t,A=uS(r);return Math.log2(sl/(A+e[2]))}else if(t instanceof kr){let{radius:r}=t;return Math.log2(sl/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:A}=t,i=Math.log2(cS/r),c=Math.log2(lS/A);return (i+c)/2}return 1}function ol(t,e,r){Ne.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],kA);let A=Math.sqrt(Math.pow(kA[0]-r[0],2)+Math.pow(kA[1]-r[1],2)+Math.pow(kA[2]-r[2],2));return Math.log2(sl/(A+e[2]))}function _2(t,e,r){let[A,i,c,d]=t;return ol({xmax:c,ymax:d,zmax:0},e,r)}function uS(t){t.getColumn(0,kA);let e=t.getColumn(1),r=t.getColumn(2);return kA.add(e).add(r).len()}var Xt={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Yt=(function(t){return t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE",t})(Yt||{}),Rr=(function(t){return t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh",t})(Rr||{}),Ut=(function(t){return t.I3S="I3S",t.TILES3D="TILES3D",t})(Ut||{}),Tn=(function(t){return t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold",t})(Tn||{}),b2={USE_OPTIMIZATION:1};function w2(t){return t!=null}var Vt=new H,Uo=new H,fS=new H,hS=new H,Vn=new H,E2=new H,x2=new H,C2=new H;function Ho(t,e,r){if(ge(t,"3D Tile: boundingVolume must be defined"),t.box)return v2(t.box,e,r);if(t.region)return pS(t.region);if(t.sphere)return dS(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function B2(t,e){if(t.box)return mS(e);if(t.region){let[r,A,i,c,d,m]=t.region;return [[Ml$1(r),Ml$1(A),d],[Ml$1(i),Ml$1(c),m]]}if(t.sphere)return gS(e);throw new Error("Unkown boundingVolume type")}function v2(t,e,r){let A=new H(t[0],t[1],t[2]);e.transform(A,A);let i=[];if(t.length===10){let _=t.slice(3,6),E=new Vs$1;E.fromArray(t,6);let x=new H([1,0,0]),v=new H([0,1,0]),F=new H([0,0,1]);x.transformByQuaternion(E),x.scale(_[0]),v.transformByQuaternion(E),v.scale(_[1]),F.transformByQuaternion(E),F.scale(_[2]),i=[...x.toArray(),...v.toArray(),...F.toArray()];}else i=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let c=e.transformAsVector(i.slice(0,3)),d=e.transformAsVector(i.slice(3,6)),m=e.transformAsVector(i.slice(6,9)),y=new Tr$1([c[0],c[1],c[2],d[0],d[1],d[2],m[0],m[1],m[2]]);return w2(r)?(r.center=A,r.halfAxes=y,r):new Wr(A,y)}function dS(t,e,r){let A=new H(t[0],t[1],t[2]);e.transform(A,A);let i=e.getScale(Uo),c=Math.max(Math.max(i[0],i[1]),i[2]),d=t[3]*c;return w2(r)?(r.center=A,r.radius=d,r):new kr(A,d)}function pS(t){let[e,r,A,i,c,d]=t,m=Ne.WGS84.cartographicToCartesian([Ml$1(e),Ml$1(i),c],fS),y=Ne.WGS84.cartographicToCartesian([Ml$1(A),Ml$1(r),d],hS),_=new H().addVectors(m,y).multiplyByScalar(.5);return Ne.WGS84.cartesianToCartographic(_,Vn),Ne.WGS84.cartographicToCartesian([Ml$1(A),Vn[1],Vn[2]],E2),Ne.WGS84.cartographicToCartesian([Vn[0],Ml$1(i),Vn[2]],x2),Ne.WGS84.cartographicToCartesian([Vn[0],Vn[1],d],C2),v2([..._,...E2.subtract(_),...x2.subtract(_),...C2.subtract(_)],new D)}function mS(t){let e=M2(),{halfAxes:r}=t,A=new H(r.getColumn(0)),i=new H(r.getColumn(1)),c=new H(r.getColumn(2));for(let d=0;d<2;d++){for(let m=0;m<2;m++){for(let y=0;y<2;y++)Vt.copy(t.center),Vt.add(A),Vt.add(i),Vt.add(c),S2(e,Vt),c.negate();i.negate();}A.negate();}return e}function gS(t){let e=M2(),{center:r,radius:A}=t,i=Ne.WGS84.scaleToGeodeticSurface(r,Vt),c;i?c=Ne.WGS84.geodeticSurfaceNormal(i):c=new H(0,0,1);let d=new H(c[2],-c[1],0);d.len()>0?d.normalize():d=new H(0,1,0);let m=d.clone().cross(c);for(let y of [d,m,c]){Uo.copy(y).scale(A);for(let _=0;_<2;_++)Vt.copy(r),Vt.add(Uo),S2(e,Vt),Uo.negate();}return e}function M2(){return [[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function S2(t,e){Ne.WGS84.cartesianToCartographic(e,Vt),t[0][0]=Math.min(t[0][0],Vt[0]),t[0][1]=Math.min(t[0][1],Vt[1]),t[0][2]=Math.min(t[0][2],Vt[2]),t[1][0]=Math.max(t[1][0],Vt[0]),t[1][1]=Math.max(t[1][1],Vt[1]),t[1][2]=Math.max(t[1][2],Vt[2]);}new H;new H;new D;new H;new H;new H;function yS(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function TS(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,A=t.dynamicScreenSpaceErrorFactor;return yS(e,r)*A}return 0}function I2(t,e,r){let A=t.tileset,i=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,c=r?i:t.lodMetricValue;if(c===0)return 0;let d=Math.max(t._distanceToCamera,1e-7),{height:m,sseDenominator:y}=e,{viewDistanceScale:_}=A.options,E=c*m*(_||1)/(d*y);return E-=TS(A,d),E}var al=new H,F2=new H,_n=new H,L2=new H,_S=new H,cl=new D,R2=new D;function P2(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return "DIG";let r=2*ll(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function ll(t,e){let{topDownViewport:r}=e,A=t.header.mbs[1],i=t.header.mbs[0],c=t.header.mbs[2],d=t.header.mbs[3],m=[...t.boundingVolume.center],y=r.unprojectPosition(r.cameraPosition);Ne.WGS84.cartographicToCartesian(y,al),F2.copy(al).subtract(m).normalize(),Ne.WGS84.eastNorthUpToFixedFrame(m,cl),R2.copy(cl).invert(),_n.copy(al).transform(R2);let _=Math.sqrt(_n[0]*_n[0]+_n[1]*_n[1]),E=_*_/_n[2];L2.copy([_n[0],_n[1],E]);let v=L2.transform(cl).subtract(m).normalize(),N=F2.cross(v).normalize().scale(d).add(m),U=Ne.WGS84.cartesianToCartographic(N),q=r.project([i,A,c]),X=r.project(U);return _S.copy(q).subtract(X).magnitude()}function D2(t){return {assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var ji=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 ge(e<this._array.length),this._array[e]}set(e,r){ge(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){ge(e>=0),e>this._array.length&&(this._array.length=e);}resize(e){ge(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 bS={loadSiblings:false,skipLevelOfDetail:false,updateTransforms:true,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},Vr=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new ji;_emptyTraversalStack=new ji;_frameNumber=null;traversalFinished(e){return true}constructor(e){this.options=r$1(r$1({},bS),e);}traverse(e,r,A){this.root=e,this.options=r$1(r$1({},this.options),A),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 A=this._traversalStack;for(e._selectionDepth=1,A.push(e);A.length>0;){let c=A.pop(),d=false;this.canTraverse(c,r)&&(this.updateChildTiles(c,r),d=this.updateAndPushChildren(c,r,A,c.hasRenderContent?c._selectionDepth+1:c._selectionDepth));let m=c.parent,y=!!(!m||m._shouldRefine),_=!d;c.hasRenderContent?c.refine===Yt.ADD?(this.loadTile(c,r),this.selectTile(c,r)):c.refine===Yt.REPLACE&&(this.loadTile(c,r),_&&this.selectTile(c,r)):(this.emptyTiles[c.id]=c,this.loadTile(c,r),_&&this.selectTile(c,r)),this.touchTile(c,r),c._shouldRefine=d&&y;}let i=new Date().getTime();(this.traversalFinished(r)||i-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=i,this.options.onTraversalEnd(r));}updateChildTiles(e,r){let A=e.children;for(let i of A)this.updateTile(i,r);}updateAndPushChildren(e,r,A,i){let{loadSiblings:c,skipLevelOfDetail:d}=this.options,m=e.children;m.sort(this.compareDistanceToCamera.bind(this));let y=e.refine===Yt.REPLACE&&e.hasRenderContent&&!d,_=false,E=true;for(let x of m)if(x._selectionDepth=i,x.isVisibleAndInRequestVolume?(A.find(x)&&A.delete(x),A.push(x),_=true):(y||c)&&(this.loadTile(x,r),this.touchTile(x,r)),y){let v;if(x._inRequestVolume?x.hasRenderContent?v=x.contentAvailable:v=this.executeEmptyTraversal(x,r):v=false,E=E&&v,!E)return false}return _||(E=false),E}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):false}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,A=false){let i=e._screenSpaceError;return A&&(i=e.getScreenSpaceError(r,true)),i>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let A=[];if(this.options.viewportTraversersMap)for(let i in this.options.viewportTraversersMap)this.options.viewportTraversersMap[i]===r.viewport.id&&A.push(i);else A.push(r.viewport.id);e.updateVisibility(r,A);}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let A=false;for(let i of e.children)i.updateVisibility(r),A=A||i.isVisibleAndInRequestVolume;return A}executeEmptyTraversal(e,r){let A=true,i=this._emptyTraversalStack;for(i.push(e);i.length>0;){let c=i.pop(),d=!c.hasRenderContent&&this.canTraverse(c,r),m=!c.hasRenderContent&&c.children.length===0;if(!d&&!c.contentAvailable&&!m&&(A=false),this.updateTile(c,r),c.isVisibleAndInRequestVolume||(this.loadTile(c,r),this.touchTile(c,r)),d){let y=c.children;for(let _ of y)i.push(_);}}return e.hasEmptyContent||A}};var N2=new H;function ES(t){return t!=null}var jn=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Xt.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new D;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=false;hasTilesetContent=false;traverser=new Vr({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new D;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=false;_stackLength=0;_visitedFrame=0;_inRequestVolume=false;_lodJudge=null;tileDrawn=true;constructor(e,r,A,i=""){this.header=r,this.tileset=e,this.id=i||r.id,this.url=r.url,this.parent=A,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===Xt.READY||this.hasEmptyContent}get contentAvailable(){return !!(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===Xt.UNLOADED}get contentExpired(){return this.contentState===Xt.EXPIRED}get contentFailed(){return this.contentState===Xt.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=B2(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case Ut.I3S:return ll(this,e);case Ut.TILES3D:return I2(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,A=this.refine===Yt.ADD||r;if(A&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Xt.UNLOADED)return -1;let i=this.parent,d=i&&(!A||this._screenSpaceError===0||i.hasTilesetContent)?i._screenSpaceError:this._screenSpaceError,m=e.root?e.root._screenSpaceError:0;return Math.max(m-d,0)}async loadContent(){if(this.hasEmptyContent)return false;if(this.content)return true;this.contentExpired&&(this._expireDate=null),this.contentState=Xt.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Xt.UNLOADED,false;try{let A=this.tileset.getTileUrl(this.contentUrl),i=this.tileset.loader,c=this.tileset.loadOptions[i.id]||{},d=s$1(r$1({},this.tileset.loadOptions),{[i.id]:r$1(s$1(r$1({},c),{isTileset:this.type==="json"}),this._getLoaderSpecificOptions(i.id))});return this.content=await Nt$1(A,i,d),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Xt.READY,this._onContentLoaded(),!0}catch(A){throw this.contentState=Xt.FAILED,A}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=Xt.UNLOADED,this.tileDrawn=true,true}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let A=this.parent,i=A?A._visibilityPlaneMask:Ur.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let c=A?A.computedTransform:this.tileset.modelMatrix;this._updateTransform(c);}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,false),this._visibilityPlaneMask=this.visibility(e,i),this._visible=this._visibilityPlaneMask!==Ur.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r;}visibility(e,r){let{cullingVolume:A}=e,{boundingVolume:i}=this;return A.computeVisibilityWithPlaneMask(i,r)}contentVisibility(){return true}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 N2.subVectors(r.center,e.position),e.direction.dot(N2)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return !r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(ES(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Xt.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 D(e.transform):new D;let r=this.parent,A=this.tileset,i=r&&r.computedTransform?r.computedTransform.clone():A.modelMatrix.clone();this.computedTransform=new D(i).multiplyRight(this.transform);let c=r&&r._initialTransform?r._initialTransform.clone():new D;this._initialTransform=new D(c).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=true,this.contentState=Xt.UNLOADED,this.hasTilesetContent=false,e.contentUrl&&(this.content=null,this.hasEmptyContent=false);}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=false,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=Ur.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=false,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||Yt.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case "vctr":case "geom":this.tileset._traverser.disableSkipLevelOfDetail=true;break;}this._isTileset()?this.hasTilesetContent=true:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes();}_updateBoundingVolume(e){this.boundingVolume=Ho(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=Ho(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=Ho(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)));}_updateTransform(e=new D){let r=e.clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header));}_getLoaderSpecificOptions(e){return e==="i3s"?s$1(r$1({},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:false}):D2(this.tileset.tileset)}};var Vo=class extends Vr{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 A=e.children.length>0;if(e.hasTilesetContent&&A){let d=e.children[0];this.updateTileVisibility(d,r),e._visible=d._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=false;return}let i=e.refine===Yt.REPLACE,c=e._optimChildrenWithinParent===b2.USE_OPTIMIZATION;if(i&&c&&A&&!this.anyChildrenVisible(e,r)){e._visible=false;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:A}=e;return !A||A.hasTilesetContent||A.refine!==Yt.ADD?false:!this.shouldRefine(e,r,true)}};var jo=class{frameNumberMap=new Map;register(e,r){let A=this.frameNumberMap.get(e)||new Map,i=A.get(r)||0;A.set(r,i+1),this.frameNumberMap.set(e,A);}deregister(e,r){let A=this.frameNumberMap.get(e);if(!A)return;let i=A.get(r)||1;A.set(r,i-1);}isZero(e,r){return (this.frameNumberMap.get(e)?.get(r)||0)===0}};var ul={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},Qo=class{_statusMap;pendingTilesRegister=new jo;constructor(){this._statusMap={};}add(e,r,A,i){if(!this._statusMap[r]){let{frameNumber:c,viewport:{id:d}}=i;this._statusMap[r]={request:e,callback:A,key:r,frameState:i,status:ul.REQUESTED},this.pendingTilesRegister.register(d,c),e().then(m=>{this._statusMap[r].status=ul.COMPLETED;let{frameNumber:y,viewport:{id:_}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(_,y),this._statusMap[r].callback(m,i);}).catch(m=>{this._statusMap[r].status=ul.ERROR;let{frameNumber:y,viewport:{id:_}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(_,y),A(m);});}}update(e,r){if(this._statusMap[e]){let{frameNumber:A,viewport:{id:i}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(i,A);let{frameNumber:c,viewport:{id:d}}=r;this.pendingTilesRegister.register(d,c),this._statusMap[e].frameState=r;}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return !this.pendingTilesRegister.isZero(e,r)}};var zo=class extends Vr{_tileManager;constructor(e){super(e),this._tileManager=new Qo;}traversalFinished(e){return !this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=P2(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let A=e.header.children||[],i=e.children,c=e.tileset;for(let d of A){let m=`${d.id}-${r.viewport.id}`,y=i&&i.find(_=>_.id===m);if(y)y&&this.updateTile(y,r);else {let _=()=>this._loadTile(d.id,c);this._tileManager.find(m)?this._tileManager.update(m,r):(c.tileset.nodePages&&(_=()=>c.tileset.nodePagesTile.formTileFromNodePages(d.id)),this._tileManager.add(_,m,x=>this._onTileLoad(x,e,m),r));}}return false}async _loadTile(e,r){let{loader:A}=r,i=r.getTileUrl(`${r.url}/nodes/${e}`),c=s$1(r$1({},r.loadOptions),{i3s:s$1(r$1({},r.loadOptions.i3s),{isTileHeader:true})});return await Nt$1(i,A,c)}_onTileLoad(e,r,A){let i=new jn(r.tileset,e,r,A);r.children.push(i);let c=this._tileManager.find(i.id).frameState;this.updateTile(i,c),this._frameNumber===c.frameNumber&&(this.traversalFinished(c)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(i,c);}};var xS={description:"",ellipsoid:Ne.WGS84,modelMatrix:new D,throttleRequests:true,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:false,loadTiles:true,updateTransforms:true,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},Jo="Tiles In Tileset(s)",fl="Tiles In Memory",O2="Tiles In View",G2="Tiles To Render",k2="Tiles Loaded",hl="Tiles Loading",U2="Tiles Unloaded",H2="Failed Tile Loads",V2="Points/Vertices",dl="Tile Memory Use",j2="Maximum Screen Space Error",Qi=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:false,meshopt:false,dds:false,ktx2:false};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 Go;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options=r$1(r$1({},xS),r),this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Ue.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 Mo$1({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 Ae({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=r$1(r$1({},this.options),e);}getTileUrl(e){if(e.startsWith("data:"))return e;let A=e;return this.queryParams.length&&(A=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),A}hasExtension(e){return 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 A=[];for(let i of r){let c=i.id;this._needTraverse(c)?A.push(c):this.traverseCounter--;}for(let i of r){let c=i.id;if(this.roots[c]||(this.roots[c]=this._initializeTileHeaders(this.tileset,null)),!A.includes(c))continue;let d=g2(i,this._frameNumber);this._traverser.traverse(this.roots[c],d,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 A=this.frameStateData[r],i=Object.values(this._traverser.selectedTiles),[c,d]=y2(i,e,this.options.maximumTilesSelected);A.selectedTiles=c;for(let m of d)m.unselect();A._requestedTiles=Object.values(this._traverser.requestedTiles),A._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 c in this.frameStateData){let d=this.frameStateData[c];this.selectedTiles=this.selectedTiles.concat(d.selectedTiles),this._requestedTiles=this._requestedTiles.concat(d._requestedTiles),this._emptyTiles=this._emptyTiles.concat(d._emptyTiles);}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(c=>c.id)),A=this.selectedTiles.some(c=>!c.tileDrawn),i=0;if(A){for(let c of r)this._heldTiles.add(c);for(let c of this._heldTiles){if(r.has(c))continue;let d=this._tiles[c];d&&d.contentAvailable?(d._selectedFrame=this._frameNumber,this.selectedTiles.push(d),i++):this._heldTiles.delete(c);}}else this._heldTiles=r;i>0&&setTimeout(()=>{this.selectTiles();},0);for(let c of this.selectedTiles)this._tiles[c.id]=c;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate();}_tilesChanged(e,r){if(e.length!==r.length)return true;let A=new Set(e.map(d=>d.id)),i=new Set(r.map(d=>d.id)),c=e.filter(d=>!i.has(d.id)).length>0;return c=c||r.filter(d=>!A.has(d.id)).length>0,c}_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 A of this.selectedTiles)A.contentAvailable&&A.content&&(e++,A.content.pointCount?r+=A.content.pointCount:r+=A.content.vertexCount);this.stats.get(O2).count=this.selectedTiles.length,this.stats.get(G2).count=e,this.stats.get(V2).count=r,this.stats.get(j2).count=this.memoryAdjustedScreenSpaceError;}async _initializeTileSet(e){this.type===Ut.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===Ut.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===Ut.I3S&&this._initializeI3STileset();}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:A,xmax:i,ymin:c,ymax:d,zmin:m,zmax:y}=e;this.cartographicCenter=new H(A+(i-A)/2,c+(d-c)/2,m+(y-m)/2),this.cartesianCenter=new H,Ne.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=ol(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[A,i,c,d]=r;this.cartographicCenter=new H(A+(c-A)/2,i+(d-i)/2,0),this.cartesianCenter=new H,Ne.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=_2(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new H,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 H,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new H,Ne.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new H(0,0,-Ne.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=T2(e.boundingVolume,this.cartographicCenter);}_initializeStats(){this.stats.get(Jo),this.stats.get(hl),this.stats.get(fl),this.stats.get(O2),this.stats.get(G2),this.stats.get(k2),this.stats.get(U2),this.stats.get(H2),this.stats.get(V2),this.stats.get(dl,"memory"),this.stats.get(j2);}_initializeTileHeaders(e,r){let A=new jn(this,e.root,r);if(r&&(r.children.push(A),A.depth=r.depth+1),this.type===Ut.TILES3D){let i=[];for(i.push(A);i.length>0;){let c=i.pop();this.stats.get(Jo).incrementCount();let d=c.header.children||[];for(let m of d){let y=new jn(this,m,c);if(y.contentUrl?.includes("?session=")){let E=new URL(y.contentUrl).searchParams.get("session");E&&(this._queryParams.session=E);}c.children.push(y),y.depth=c.depth+1,i.push(y);}}}return A}_initializeTraverser(){let e;switch(this.type){case Ut.TILES3D:e=Vo;break;case Ut.I3S:e=zo;break;default:e=Vr;}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(A){this._onTileLoadError(e,A instanceof Error?A:new Error("load failed"));}finally{this._onEndTileLoading(),this._onTileLoad(e,r);}}_onTileLoadError(e,r){this.stats.get(H2).incrementCount();let A=r.message||r.toString(),i=e.url;console.error(`A 3D tile failed to load: ${e.url} ${A}`),this.options.onTileError(e,A,i);}_onTileLoad(e,r){if(r){if(this.type===Ut.I3S){let A=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(Jo).reset(),this.stats.get(Jo).addCount(A);}e&&e.content&&d2(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e);}}updateContentTypes(e){if(this.type===Ut.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=true),e.header.textureFormat){case "dds":this.contentFormats.dds=true;break;case "ktx2":this.contentFormats.ktx2=true;break;}else if(this.type===Ut.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=true),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=true),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=true);}}_onStartTileLoading(){this._pendingCount++,this.stats.get(hl).incrementCount();}_onEndTileLoading(){this._pendingCount--,this.stats.get(hl).decrementCount();}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e));}_updateCacheStats(e){this.stats.get(k2).incrementCount(),this.stats.get(fl).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(fl).decrementCount(),this.stats.get(U2).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 A of r.children)e.push(A);this._destroyTile(r);}this.root=null;}_destroySubtree(e){let r=e,A=[];for(A.push(r);A.length>0;){e=A.pop();for(let i of e.children)A.push(i);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),A=Object.fromEntries(r.entries());this._queryParams=r$1(r$1({},this._queryParams),A);}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 qo="4.4.4";var Qn={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GLTF:"glTF"};function pl(t,e,r){ge(t instanceof ArrayBuffer);let A=new TextDecoder("utf8"),i=new Uint8Array(t,e,r);return A.decode(i)}function Q2(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 CS={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},_t={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},Pe=r$1(r$1({},CS),_t);var ml={[_t.DOUBLE]:Float64Array,[_t.FLOAT]:Float32Array,[_t.UNSIGNED_SHORT]:Uint16Array,[_t.UNSIGNED_INT]:Uint32Array,[_t.UNSIGNED_BYTE]:Uint8Array,[_t.BYTE]:Int8Array,[_t.SHORT]:Int16Array,[_t.INT]:Int32Array},wS={DOUBLE:_t.DOUBLE,FLOAT:_t.FLOAT,UNSIGNED_SHORT:_t.UNSIGNED_SHORT,UNSIGNED_INT:_t.UNSIGNED_INT,UNSIGNED_BYTE:_t.UNSIGNED_BYTE,BYTE:_t.BYTE,SHORT:_t.SHORT,INT:_t.INT},gl="Failed to convert GL type",ur=class t{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in ml)if(ml[r]===e)return r;throw new Error(gl)}static fromName(e){let r=wS[e];if(!r)throw new Error(gl);return r}static getArrayType(e){switch(e){case _t.UNSIGNED_SHORT_5_6_5:case _t.UNSIGNED_SHORT_4_4_4_4:case _t.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=ml[e];if(!r)throw new Error(gl);return r}}static getByteSize(e){return t.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return !!t.getArrayType(e)}static createTypedArray(e,r,A=0,i){i===void 0&&(i=(r.byteLength-A)/t.getByteSize(e));let c=ArrayBuffer.isView(r)?r.buffer:r,d=t.getArrayType(e);return new d(c,A,i)}};function z2(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function yl(t,e=[0,0,0]){let r=t>>11&31,A=t>>5&63,i=t&31;return e[0]=r<<3,e[1]=A<<2,e[2]=i<<3,e}new Os$1;new H;new Os$1;new Os$1;function J2(t,e=255){return Y(t,0,e)/e*2-1}function q2(t){return t<0?-1:1}function K2(t,e,r,A){if(z2(A),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(A.x=J2(t,r),A.y=J2(e,r),A.z=1-(Math.abs(A.x)+Math.abs(A.y)),A.z<0){let i=A.x;A.x=(1-Math.abs(A.y))*q2(i),A.y=(1-Math.abs(i))*q2(A.y);}return A.normalize()}function Tl(t,e,r){return K2(t,e,255,r)}var bn=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 !!this.json[e]}getGlobalProperty(e,r=Pe.UNSIGNED_INT,A=1){let i=this.json[e];return i&&Number.isFinite(i.byteOffset)?this._getTypedArrayFromBinary(e,r,A,1,i.byteOffset):i}getPropertyArray(e,r,A){let i=this.json[e];return i&&Number.isFinite(i.byteOffset)?("componentType"in i&&(r=ur.fromName(i.componentType)),this._getTypedArrayFromBinary(e,r,A,this.featuresLength,i.byteOffset)):this._getTypedArrayFromArray(e,r,i)}getProperty(e,r,A,i,c){let d=this.json[e];if(!d)return d;let m=this.getPropertyArray(e,r,A);if(A===1)return m[i];for(let y=0;y<A;++y)c[y]=m[A*i+y];return c}_getTypedArrayFromBinary(e,r,A,i,c){let d=this._cachedTypedArrays,m=d[e];return m||(m=ur.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+c,i*A),d[e]=m),m}_getTypedArrayFromArray(e,r,A){let i=this._cachedTypedArrays,c=i[e];if(!c){if(ArrayBuffer.isView(A)){let d=A.byteOffset,y=A.byteLength/ur.getByteSize(r);c=ur.createTypedArray(r,A.buffer,d,y);}else if(A instanceof ArrayBuffer)c=ur.createTypedArray(r,A);else {let d=ur.getArrayType(r);c=new d(A);}i[e]=c;}return c}};var BS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},vS={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]]},MS={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 X2(t,e,r,A){let{componentType:i}=t;ge(t.componentType);let c=typeof i=="string"?ur.fromName(i):i,d=BS[t.type],m=vS[t.type],y=MS[t.type];return r+=t.byteOffset,{values:ur.createTypedArray(c,e,r,d*A),type:c,size:d,unpacker:m,packer:y}}var jr=t=>t!==void 0;function Y2(t,e,r){if(!e)return null;let A=t.getExtension("3DTILES_batch_table_hierarchy"),i=e.HIERARCHY;return i&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=i,A=i),A?SS(A,r):null}function SS(t,e){let r,A,i,c=t.instancesLength,d=t.classes,m=t.classIds,y=t.parentCounts,_=t.parentIds,E=c;jr(m.byteOffset)&&(m.componentType=defaultValue(m.componentType,GL.UNSIGNED_SHORT),m.type=AttributeType.SCALAR,i=getBinaryAccessor(m),m=i.createArrayBufferView(e.buffer,e.byteOffset+m.byteOffset,c));let x;if(jr(y))for(jr(y.byteOffset)&&(y.componentType=defaultValue(y.componentType,GL.UNSIGNED_SHORT),y.type=AttributeType.SCALAR,i=getBinaryAccessor(y),y=i.createArrayBufferView(e.buffer,e.byteOffset+y.byteOffset,c)),x=new Uint16Array(c),E=0,r=0;r<c;++r)x[r]=E,E+=y[r];jr(_)&&jr(_.byteOffset)&&(_.componentType=defaultValue(_.componentType,GL.UNSIGNED_SHORT),_.type=AttributeType.SCALAR,i=getBinaryAccessor(_),_=i.createArrayBufferView(e.buffer,e.byteOffset+_.byteOffset,E));let v=d.length;for(r=0;r<v;++r){let q=d[r].length,X=d[r].instances,W=getBinaryProperties(q,X,e);d[r].instances=combine(W,X);}let F=new Array(v).fill(0),N=new Uint16Array(c);for(r=0;r<c;++r)A=m[r],N[r]=F[A],++F[A];let U={classes:d,classIds:m,classIndexes:N,parentCounts:y,parentIndexes:x,parentIds:_};return LS(U),U}function UA(t,e,r){if(!t)return;let A=t.parentCounts;return t.parentIds?r(t,e):A>0?IS(t,e,r):FS(t,e,r)}function IS(t,e,r){let A=t.classIds,i=t.parentCounts,c=t.parentIds,d=t.parentIndexes,m=A.length,y=scratchVisited;y.length=Math.max(y.length,m);let _=++marker,E=scratchStack;for(E.length=0,E.push(e);E.length>0;){if(e=E.pop(),y[e]===_)continue;y[e]=_;let x=r(t,e);if(jr(x))return x;let v=i[e],F=d[e];for(let N=0;N<v;++N){let U=c[F+N];U!==e&&E.push(U);}}return null}function FS(t,e,r){let A=true;for(;A;){let i=r(t,e);if(jr(i))return i;let c=t.parentIds[e];A=c!==e,e=c;}throw new Error("traverseHierarchySingleParent")}function LS(t){let A=t.classIds.length;for(let i=0;i<A;++i)W2(t,i,stack);}function W2(t,e,r){let A=t.parentCounts,i=t.parentIds,c=t.parentIndexes,m=t.classIds.length;if(!jr(i))return;assert(e<m,`Parent index ${e} exceeds the total number of instances: ${m}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let y=jr(A)?A[e]:1,_=jr(A)?c[e]:e;for(let E=0;E<y;++E){let x=i[_+E];x!==e&&W2(t,x,r);}r.pop(e);}function Ar(t){return t!=null}var Ko=(t,e)=>t,RS={HIERARCHY:true,extensions:true,extras:true},HA=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,A,i={}){ge(A>=0),this.json=e||{},this.binary=r,this.featureCount=A,this._extensions=this.json?.extensions||{},this._properties={};for(let c in this.json)RS[c]||(this._properties[c]=this.json[c]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Y2(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),ge(typeof r=="string",r),this._hierarchy){let A=UA(this._hierarchy,e,(i,c)=>{let d=i.classIds[c];return i.classes[d].name===r});return Ar(A)}return false}isExactClass(e,r){return ge(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),ge(typeof r=="string",r),Ar(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=Ar(r)?r:[],r.length=0;let A=Object.keys(this._properties);return r.push(...A),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),ge(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(Ar(i))return this._getBinaryProperty(i,e)}let A=this._properties[r];if(Ar(A))return Ko(A[e]);if(this._hierarchy){let i=this._getHierarchyProperty(e,r);if(Ar(i))return i}}setProperty(e,r,A){let i=this.featureCount;if(this._checkBatchId(e),ge(typeof r=="string",r),this._binaryProperties){let d=this._binaryProperties[r];if(d){this._setBinaryProperty(d,e,A);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,A))return;let c=this._properties[r];Ar(c)||(this._properties[r]=new Array(i),c=this._properties[r]),c[e]=Ko(A);}_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,A){e.pack(A,e.typedArray,r);}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let A=this._properties[r],i=this._initializeBinaryProperty(r,A);i&&(e=e||{},e[r]=i);}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let A=r;ge(this.binary,`Property ${e} requires a batch table binary.`),ge(A.type,`Property ${e} requires a type.`);let i=X2(A,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return {typedArray:i.values,componentCount:i.size,unpack:i.unpacker,pack:i.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return false;let A=UA(this._hierarchy,e,(i,c)=>{let d=i.classIds[c],m=i.classes[d].instances;return Ar(m[r])});return Ar(A)}_getPropertyNamesInHierarchy(e,r){UA(this._hierarchy,e,(A,i)=>{let c=A.classIds[i],d=A.classes[c].instances;for(let m in d)d.hasOwnProperty(m)&&r.indexOf(m)===-1&&r.push(m);});}_getHierarchyProperty(e,r){return UA(this._hierarchy,e,(A,i)=>{let c=A.classIds[i],d=A.classes[c],m=A.classIndexes[i],y=d.instances[r];return Ar(y)?Ar(y.typedArray)?this._getBinaryProperty(y,m):Ko(y[m]):null})}_setHierarchyProperty(e,r,A,i){let c=UA(this._hierarchy,r,(d,m)=>{let y=d.classIds[m],_=d.classes[y],E=d.classIndexes[m],x=_.instances[A];return Ar(x)?(ge(m===r,`Inherited property "${A}" is read-only.`),Ar(x.typedArray)?this._setBinaryProperty(x,E,i):x[E]=Ko(i),true):false});return Ar(c)}};function En(t,e,r=0){let A=new DataView(e);if(t.magic=A.getUint32(r,true),r+=4,t.version=A.getUint32(r,true),r+=4,t.byteLength=A.getUint32(r,true),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var VA=4,Z2="b3dm tile in legacy format.";function jA(t,e,r){let A=new DataView(e),i;t.header=t.header||{};let c=A.getUint32(r,true);r+=VA;let d=A.getUint32(r,true);r+=VA;let m=A.getUint32(r,true);r+=VA;let y=A.getUint32(r,true);return r+=VA,m>=570425344?(r-=VA*2,i=c,m=d,y=0,c=0,d=0,console.warn(Z2)):y>=570425344&&(r-=VA,i=m,m=c,y=d,c=0,d=0,console.warn(Z2)),t.header.featureTableJsonByteLength=c,t.header.featureTableBinaryByteLength=d,t.header.batchTableJsonByteLength=m,t.header.batchTableBinaryByteLength=y,t.header.batchLength=i,r}function QA(t,e,r,A){return r=PS(t,e,r),r=DS(t,e,r),r}function PS(t,e,r,A){let{featureTableJsonByteLength:i,featureTableBinaryByteLength:c,batchLength:d}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:d||0},i&&i>0){let m=pl(e,r,i);t.featureTableJson=JSON.parse(m);}return r+=i||0,t.featureTableBinary=new Uint8Array(e,r,c),r+=c||0,r}function DS(t,e,r,A){let{batchTableJsonByteLength:i,batchTableBinaryByteLength:c}=t.header||{};if(i&&i>0){let d=pl(e,r,i);t.batchTableJson=JSON.parse(d),r+=i,c&&c>0&&(t.batchTableBinary=new Uint8Array(e,r,c),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=c);}return r}function _l(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:A,isRGB565:i,pointCount:c=0}=t;if(A&&r){let d=new Uint8ClampedArray(c*3);for(let m=0;m<c;m++){let y=A[m],E=r.getProperty(y,"dimensions").map(x=>x*255);d[m*3]=E[0],d[m*3+1]=E[1],d[m*3+2]=E[2];}return {type:Pe.UNSIGNED_BYTE,value:d,size:3,normalized:true}}if(e&&i){let d=new Uint8ClampedArray(c*3);for(let m=0;m<c;m++){let y=yl(e[m]);d[m*3]=y[0],d[m*3+1]=y[1],d[m*3+2]=y[2];}return {type:Pe.UNSIGNED_BYTE,value:d,size:3,normalized:true}}return e&&e.length===c*3?{type:Pe.UNSIGNED_BYTE,value:e,size:3,normalized:true}:{type:Pe.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:true}}var $2=new H;function e1(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let A=0;A<(t.pointsLength||0);A++)Tl(e[A*2],e[A*2+1],$2),$2.toArray(r,A*3);return {type:Pe.FLOAT,size:2,value:r}}return {type:Pe.FLOAT,size:2,value:e}}function t1(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=false,NS(t,e)):{type:Pe.UNSIGNED_SHORT,value:e,size:3,normalized:true}:e}function NS(t,e){let r=new H,A=new Float32Array(t.pointCount*3);for(let i=0;i<t.pointCount;i++)r.set(e[i*3],e[i*3+1],e[i*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(A,i*3);return A}async function r1(t,e,r,A,i){r=En(t,e,r),r=jA(t,e,r),r=QA(t,e,r),OS(t);let{featureTable:c,batchTable:d}=GS(t);return await jS(t,c,d,A,i),kS(t,c,A),US(t,c,d),HS(t,c),r}function OS(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=false,t.isTranslucent=false,t.isRGB565=false,t.isOctEncoded16P=false;}function GS(t){let e=new bn(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",Pe.FLOAT,3);let A=VS(t,e);return {featureTable:e,batchTable:A}}function kS(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",Pe.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let A=e.getPropertyArray("POSITION_QUANTIZED",Pe.UNSIGNED_SHORT,3);if(t.isQuantized=true,t.quantizedRange=65535,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Pe.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Pe.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=t1(t,A,r);}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function US(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let A=null;e.hasProperty("RGBA")?(A=e.getPropertyArray("RGBA",Pe.UNSIGNED_BYTE,4),t.isTranslucent=true):e.hasProperty("RGB")?A=e.getPropertyArray("RGB",Pe.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(A=e.getPropertyArray("RGB565",Pe.UNSIGNED_SHORT,1),t.isRGB565=true),t.attributes.colors=_l(t,A,r);}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",Pe.UNSIGNED_BYTE,4));}function HS(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",Pe.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",Pe.UNSIGNED_BYTE,2),t.isOctEncoded16P=true),t.attributes.normals=e1(t,r);}}function VS(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",Pe.UNSIGNED_SHORT,1),t.batchIds)){let A=e.getGlobalProperty("BATCH_LENGTH");if(!A)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:i,batchTableBinary:c}=t;r=new HA(i,c,A);}return r}async function jS(t,e,r,A,i){let c,d,m,y=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];y&&(m=y.properties);let _=e.getExtension("3DTILES_draco_point_compression");if(_){d=_.properties;let x=_.byteOffset,v=_.byteLength;if(!d||!Number.isFinite(x)||!v)throw new Error("Draco properties, byteOffset, and byteLength must be defined");c=(t.featureTableBinary||[]).slice(x,x+v),t.hasPositions=Number.isFinite(d.POSITION),t.hasColors=Number.isFinite(d.RGB)||Number.isFinite(d.RGBA),t.hasNormals=Number.isFinite(d.NORMAL),t.hasBatchIds=Number.isFinite(d.BATCH_ID),t.isTranslucent=Number.isFinite(d.RGBA);}if(!c)return true;let E={buffer:c,properties:r$1(r$1({},d),m),batchTableProperties:m};return await QS(t,E,A,i)}async function QS(t,e,r,A){if(!A)return;let i=s$1(r$1({},r),{draco:s$1(r$1({},r?.draco),{extraAttributes:e.batchTableProperties||{}})});delete i["3d-tiles"];let c=await jp$1(e.buffer,ki,i,A),d=c.attributes.POSITION&&c.attributes.POSITION.value,m=c.attributes.COLOR_0&&c.attributes.COLOR_0.value,y=c.attributes.NORMAL&&c.attributes.NORMAL.value,_=c.attributes.BATCH_ID&&c.attributes.BATCH_ID.value,E=d&&c.attributes.POSITION.value.quantization,x=y&&c.attributes.NORMAL.value.quantization;if(E){let F=c.POSITION.data.quantization,N=F.range;t.quantizedVolumeScale=new H(N,N,N),t.quantizedVolumeOffset=new H(F.minValues),t.quantizedRange=(1<<F.quantizationBits)-1,t.isQuantizedDraco=true;}x&&(t.octEncodedRange=(1<<c.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=true);let v={};if(e.batchTableProperties)for(let F of Object.keys(e.batchTableProperties))c.attributes[F]&&c.attributes[F].value&&(v[F.toLowerCase()]=c.attributes[F].value);t.attributes=r$1({positions:d,colors:_l(t,m,void 0),normals:y,batchIds:_},v);}var Xo={URI:0,EMBEDDED:1};function Yo(t,e,r,A){t.rotateYtoZ=true;let i=(t.byteOffset||0)+(t.byteLength||0)-r;if(i===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=A?.["3d-tiles"]&&A["3d-tiles"].assetGltfUpAxis?A["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=hd$1(e,r,i),t.gltfByteOffset=0,t.gltfByteLength=i,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 Wo(t,e,r,A){let i=r?.["3d-tiles"]||{};if(zS(t,e),i.loadGLTF){if(!A)return;if(t.gltfUrl){let{fetch:c}=A,d=await c(t.gltfUrl,r?.core);t.gltfArrayBuffer=await d.arrayBuffer(),t.gltfByteOffset=0;}if(t.gltfArrayBuffer){let c=await jp$1(t.gltfArrayBuffer,en,r,A);t.gltf=Hn(c),t.gpuMemoryUsageInBytes=Ni(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;}}}function zS(t,e,r){switch(e){case Xo.URI:if(t.gltfArrayBuffer){let A=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),c=new TextDecoder().decode(A);t.gltfUrl=c.replace(/[\s\0]+$/,"");}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Xo.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function n1(t,e,r,A,i){r=JS(t,e,r,A),await Wo(t,Xo.EMBEDDED,A,i);let c=t?.gltf?.extensions;return c&&c.CESIUM_RTC&&(t.rtcCenter=c.CESIUM_RTC.center),r}function JS(t,e,r,A,i){r=En(t,e,r),r=jA(t,e,r),r=QA(t,e,r),r=Yo(t,e,r,A);let c=new bn(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=c.getGlobalProperty("RTC_CENTER",Pe.FLOAT,3),r}async function A1(t,e,r,A,i){return r=qS(t,e,r,A),await Wo(t,t.gltfFormat||0,A,i),r}function qS(t,e,r,A,i){if(r=En(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=jA(t,e,r);let c=new DataView(e);if(t.gltfFormat=c.getUint32(r,true),r+=4,r=QA(t,e,r),r=Yo(t,e,r,A),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let d=new bn(t.featureTableJson,t.featureTableBinary),m=d.getGlobalProperty("INSTANCES_LENGTH");if(d.featuresLength=m,!Number.isFinite(m))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=d.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=d.getGlobalProperty("RTC_CENTER",Pe.FLOAT,3);let y=new HA(t.batchTableJson,t.batchTableBinary,m);return KS(t,d,y,m),r}function KS(t,e,r,A){let i=new Array(A),c=new H;new H;new H;new H;let _=new Tr$1,E=new Vs$1,x=new H,v={},F=new D,N=[],U=[],q=[],X=[];for(let W=0;W<A;W++){let he;if(e.hasProperty("POSITION"))he=e.getProperty("POSITION",Pe.FLOAT,3,W,c);else if(e.hasProperty("POSITION_QUANTIZED")){he=e.getProperty("POSITION_QUANTIZED",Pe.UNSIGNED_SHORT,3,W,c);let k=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Pe.FLOAT,3);if(!k)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let ge=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Pe.FLOAT,3);if(!ge)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let Me=65535;for(let Se=0;Se<3;Se++)he[Se]=he[Se]/Me*ge[Se]+k[Se];}if(!he)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");c.copy(he),v.translation=c,t.normalUp=e.getProperty("NORMAL_UP",Pe.FLOAT,3,W,N),t.normalRight=e.getProperty("NORMAL_RIGHT",Pe.FLOAT,3,W,U);if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=true;}else {if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",Pe.UNSIGNED_SHORT,2,W,N),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",Pe.UNSIGNED_SHORT,2,W,U),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?(Ne.WGS84.eastNorthUpToFixedFrame(c,F),F.getRotationMatrix3(_)):_.identity();}E.fromMatrix3(_),v.rotation=E,x.set(1,1,1);let be=e.getProperty("SCALE",Pe.FLOAT,1,W,q);Number.isFinite(be)&&x.multiplyByScalar(be);let Te=e.getProperty("SCALE_NON_UNIFORM",Pe.FLOAT,3,W,N);Te&&x.scale(Te),v.scale=x;let Ee=e.getProperty("BATCH_ID",Pe.UNSIGNED_SHORT,1,W,X);Ee===void 0&&(Ee=W);let se=new D().fromQuaternion(v.rotation);F.identity(),F.translate(v.translation),F.multiplyRight(se),F.scale(v.scale);let Y=F.clone();i[W]={modelMatrix:Y,batchId:Ee};}t.instances=i;}async function i1(t,e,r,A,i,c){r=En(t,e,r);let d=new DataView(e);for(t.tilesLength=d.getUint32(r,true),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let m={shape:"tile3d"};t.tiles.push(m),r=await c(e,r,A,i,m);}return r}async function s1(t,e,r,A){if(t.rotateYtoZ=true,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!A)return e.byteLength;let i=await jp$1(e,en,r,A);t.gltf=Hn(i),t.gpuMemoryUsageInBytes=Ni(t.gltf);}else t.gltfArrayBuffer=e;return e.byteLength}async function bl(t,e=0,r,A,i={shape:"tile3d"}){switch(i.byteOffset=e,i.type=Q2(t,e),i.type){case Qn.COMPOSITE:return await i1(i,t,e,r,A,bl);case Qn.BATCHED_3D_MODEL:return await n1(i,t,e,r,A);case Qn.GLTF:return await s1(i,t,r,A);case Qn.INSTANCED_3D_MODEL:return await A1(i,t,e,r,A);case Qn.POINT_CLOUD:return await r1(i,t,e,r,A);default:throw new Error(`3DTileLoader: unknown type ${i.type}`)}}async function El(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 c=o1(t.slice(8,16)),d=new Uint8Array(t,24,c),y=new TextDecoder("utf8").decode(d),_=JSON.parse(y),E=o1(t.slice(16,24)),x=new ArrayBuffer(0);if(E&&(x=t.slice(24+c)),await Zo(_,_.tileAvailability,x,r),Array.isArray(_.contentAvailability))for(let v of _.contentAvailability)await Zo(_,v,x,r);else await Zo(_,_.contentAvailability,x,r);return await Zo(_,_.childSubtreeAvailability,x,r),_}async function Zo(t,e,r,A){let i=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof i!="number")return;let c=t.bufferViews[i],d=t.buffers[c.buffer];if(!A?.baseUrl)throw new Error("Url is not provided");if(!A.fetch)throw new Error("fetch is not provided");if(d.uri){let y=`${A?.baseUrl||""}/${d.uri}`,E=await(await A.fetch(y)).arrayBuffer();e.explicitBitstream=new Uint8Array(E,c.byteOffset,c.byteLength);return}let m=t.buffers.slice(0,c.buffer).reduce((y,_)=>y+_.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(m,m+d.byteLength),c.byteOffset,c.byteLength);}function o1(t){let e=new DataView(t),r=e.getUint32(0,true),A=e.getUint32(4,true);return r+2**32*A}var $o={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:qo,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:El,options:{}};var _r=null;try{_r=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 tt(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r;}tt.prototype.__isLong__;Object.defineProperty(tt.prototype,"__isLong__",{value:true});function jt(t){return (t&&t.__isLong__)===true}function a1(t){var e=Math.clz32(t&-t);return t?31-e:e}tt.isLong=jt;var c1={},l1={};function zn(t,e){var r,A,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(A=l1[t],A)?A:(r=Qe(t,0,true),i&&(l1[t]=r),r)):(t|=0,(i=-128<=t&&t<128)&&(A=c1[t],A)?A:(r=Qe(t,t<0?-1:0,false),i&&(c1[t]=r),r))}tt.fromInt=zn;function br(t,e){if(isNaN(t))return e?rn:Pr;if(e){if(t<0)return rn;if(t>=d1)return g1}else {if(t<=-f1)return ir;if(t+1>=f1)return m1}return t<0?br(-t,e).neg():Qe(t%JA|0,t/JA|0,e)}tt.fromNumber=br;function Qe(t,e,r){return new tt(t,e,r)}tt.fromBits=Qe;var ea=Math.pow;function Cl(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=false):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?rn:Pr;if(r=r||10,r<2||36<r)throw RangeError("radix");var A;if((A=t.indexOf("-"))>0)throw Error("interior hyphen");if(A===0)return Cl(t.substring(1),e,r).neg();for(var i=br(ea(r,8)),c=Pr,d=0;d<t.length;d+=8){var m=Math.min(8,t.length-d),y=parseInt(t.substring(d,d+m),r);if(m<8){var _=br(ea(r,m));c=c.mul(_).add(br(y));}else c=c.mul(i),c=c.add(br(y));}return c.unsigned=e,c}tt.fromString=Cl;function Er(t,e){return typeof t=="number"?br(t,e):typeof t=="string"?Cl(t,e):Qe(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}tt.fromValue=Er;var u1=65536,XS=1<<24,JA=u1*u1,d1=JA*JA,f1=d1/2,h1=zn(XS),Pr=zn(0);tt.ZERO=Pr;var rn=zn(0,true);tt.UZERO=rn;var zA=zn(1);tt.ONE=zA;var p1=zn(1,true);tt.UONE=p1;var xl=zn(-1);tt.NEG_ONE=xl;var m1=Qe(-1,2147483647,false);tt.MAX_VALUE=m1;var g1=Qe(-1,-1,true);tt.MAX_UNSIGNED_VALUE=g1;var ir=Qe(0,-2147483648,false);tt.MIN_VALUE=ir;var ue=tt.prototype;ue.toInt=function(){return this.unsigned?this.low>>>0:this.low};ue.toNumber=function(){return this.unsigned?(this.high>>>0)*JA+(this.low>>>0):this.high*JA+(this.low>>>0)};ue.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(ir)){var r=br(e),A=this.div(r),i=A.mul(r).sub(this);return A.toString(e)+i.toInt().toString(e)}else return "-"+this.neg().toString(e);for(var c=br(ea(e,6),this.unsigned),d=this,m="";;){var y=d.div(c),_=d.sub(y.mul(c)).toInt()>>>0,E=_.toString(e);if(d=y,d.isZero())return E+m;for(;E.length<6;)E="0"+E;m=""+E+m;}};ue.getHighBits=function(){return this.high};ue.getHighBitsUnsigned=function(){return this.high>>>0};ue.getLowBits=function(){return this.low};ue.getLowBitsUnsigned=function(){return this.low>>>0};ue.getNumBitsAbs=function(){if(this.isNegative())return this.eq(ir)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&(e&1<<r)==0;r--);return this.high!=0?r+33:r+1};ue.isSafeInteger=function(){var e=this.high>>21;return e?this.unsigned?false:e===-1&&!(this.low===0&&this.high===-2097152):true};ue.isZero=function(){return this.high===0&&this.low===0};ue.eqz=ue.isZero;ue.isNegative=function(){return !this.unsigned&&this.high<0};ue.isPositive=function(){return this.unsigned||this.high>=0};ue.isOdd=function(){return (this.low&1)===1};ue.isEven=function(){return (this.low&1)===0};ue.equals=function(e){return jt(e)||(e=Er(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?false:this.high===e.high&&this.low===e.low};ue.eq=ue.equals;ue.notEquals=function(e){return !this.eq(e)};ue.neq=ue.notEquals;ue.ne=ue.notEquals;ue.lessThan=function(e){return this.comp(e)<0};ue.lt=ue.lessThan;ue.lessThanOrEqual=function(e){return this.comp(e)<=0};ue.lte=ue.lessThanOrEqual;ue.le=ue.lessThanOrEqual;ue.greaterThan=function(e){return this.comp(e)>0};ue.gt=ue.greaterThan;ue.greaterThanOrEqual=function(e){return this.comp(e)>=0};ue.gte=ue.greaterThanOrEqual;ue.ge=ue.greaterThanOrEqual;ue.compare=function(e){if(jt(e)||(e=Er(e)),this.eq(e))return 0;var r=this.isNegative(),A=e.isNegative();return r&&!A?-1:!r&&A?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};ue.comp=ue.compare;ue.negate=function(){return !this.unsigned&&this.eq(ir)?ir:this.not().add(zA)};ue.neg=ue.negate;ue.add=function(e){jt(e)||(e=Er(e));var r=this.high>>>16,A=this.high&65535,i=this.low>>>16,c=this.low&65535,d=e.high>>>16,m=e.high&65535,y=e.low>>>16,_=e.low&65535,E=0,x=0,v=0,F=0;return F+=c+_,v+=F>>>16,F&=65535,v+=i+y,x+=v>>>16,v&=65535,x+=A+m,E+=x>>>16,x&=65535,E+=r+d,E&=65535,Qe(v<<16|F,E<<16|x,this.unsigned)};ue.subtract=function(e){return jt(e)||(e=Er(e)),this.add(e.neg())};ue.sub=ue.subtract;ue.multiply=function(e){if(this.isZero())return this;if(jt(e)||(e=Er(e)),_r){var r=_r.mul(this.low,this.high,e.low,e.high);return Qe(r,_r.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?rn:Pr;if(this.eq(ir))return e.isOdd()?ir:Pr;if(e.eq(ir))return this.isOdd()?ir:Pr;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(h1)&&e.lt(h1))return br(this.toNumber()*e.toNumber(),this.unsigned);var A=this.high>>>16,i=this.high&65535,c=this.low>>>16,d=this.low&65535,m=e.high>>>16,y=e.high&65535,_=e.low>>>16,E=e.low&65535,x=0,v=0,F=0,N=0;return N+=d*E,F+=N>>>16,N&=65535,F+=c*E,v+=F>>>16,F&=65535,F+=d*_,v+=F>>>16,F&=65535,v+=i*E,x+=v>>>16,v&=65535,v+=c*_,x+=v>>>16,v&=65535,v+=d*y,x+=v>>>16,v&=65535,x+=A*E+i*_+c*y+d*m,x&=65535,Qe(F<<16|N,x<<16|v,this.unsigned)};ue.mul=ue.multiply;ue.divide=function(e){if(jt(e)||(e=Er(e)),e.isZero())throw Error("division by zero");if(_r){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?_r.div_u:_r.div_s)(this.low,this.high,e.low,e.high);return Qe(r,_r.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?rn:Pr;var A,i,c;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return rn;if(e.gt(this.shru(1)))return p1;c=rn;}else {if(this.eq(ir)){if(e.eq(zA)||e.eq(xl))return ir;if(e.eq(ir))return zA;var d=this.shr(1);return A=d.div(e).shl(1),A.eq(Pr)?e.isNegative()?zA:xl:(i=this.sub(e.mul(A)),c=A.add(i.div(e)),c)}else if(e.eq(ir))return this.unsigned?rn:Pr;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();c=Pr;}for(i=this;i.gte(e);){A=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var m=Math.ceil(Math.log(A)/Math.LN2),y=m<=48?1:ea(2,m-48),_=br(A),E=_.mul(e);E.isNegative()||E.gt(i);)A-=y,_=br(A,this.unsigned),E=_.mul(e);_.isZero()&&(_=zA),c=c.add(_),i=i.sub(E);}return c};ue.div=ue.divide;ue.modulo=function(e){if(jt(e)||(e=Er(e)),_r){var r=(this.unsigned?_r.rem_u:_r.rem_s)(this.low,this.high,e.low,e.high);return Qe(r,_r.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};ue.mod=ue.modulo;ue.rem=ue.modulo;ue.not=function(){return Qe(~this.low,~this.high,this.unsigned)};ue.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};ue.clz=ue.countLeadingZeros;ue.countTrailingZeros=function(){return this.low?a1(this.low):a1(this.high)+32};ue.ctz=ue.countTrailingZeros;ue.and=function(e){return jt(e)||(e=Er(e)),Qe(this.low&e.low,this.high&e.high,this.unsigned)};ue.or=function(e){return jt(e)||(e=Er(e)),Qe(this.low|e.low,this.high|e.high,this.unsigned)};ue.xor=function(e){return jt(e)||(e=Er(e)),Qe(this.low^e.low,this.high^e.high,this.unsigned)};ue.shiftLeft=function(e){return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Qe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Qe(0,this.low<<e-32,this.unsigned)};ue.shl=ue.shiftLeft;ue.shiftRight=function(e){return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Qe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Qe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};ue.shr=ue.shiftRight;ue.shiftRightUnsigned=function(e){return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Qe(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?Qe(this.high,0,this.unsigned):Qe(this.high>>>e-32,0,this.unsigned)};ue.shru=ue.shiftRightUnsigned;ue.shr_u=ue.shiftRightUnsigned;ue.rotateLeft=function(e){var r;return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Qe(this.high,this.low,this.unsigned):e<32?(r=32-e,Qe(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,Qe(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};ue.rotl=ue.rotateLeft;ue.rotateRight=function(e){var r;return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Qe(this.high,this.low,this.unsigned):e<32?(r=32-e,Qe(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,Qe(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};ue.rotr=ue.rotateRight;ue.toSigned=function(){return this.unsigned?Qe(this.low,this.high,false):this};ue.toUnsigned=function(){return this.unsigned?this:Qe(this.low,this.high,true)};ue.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};ue.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]};ue.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]};tt.fromBytes=function(e,r,A){return A?tt.fromBytesLE(e,r):tt.fromBytesBE(e,r)};tt.fromBytesLE=function(e,r){return new tt(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};tt.fromBytesBE=function(e,r){return new tt(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};typeof BigInt=="function"&&(tt.fromBigInt=function(e,r){var A=Number(BigInt.asIntN(32,e)),i=Number(BigInt.asIntN(32,e>>BigInt(32)));return Qe(A,i,r)},tt.fromValue=function(e,r){return typeof e=="bigint"?tt.fromBigInt(e,r):Er(e,r)},ue.toBigInt=function(){var e=BigInt(this.low>>>0),r=BigInt(this.unsigned?this.high>>>0:this.high);return r<<BigInt(32)|e});var qA=tt;var YS=16;function zi(t){t==="X"&&(t="");let e=t.padEnd(YS,"0");return qA.fromString(e,true,16)}function wl(t){if(t.isZero())return "X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let A=e;e*=4;let c=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-A-c.length).join("0")+c}function Bl(t,e){let r=WS(t).shiftRightUnsigned(2);return t.add(qA.fromNumber(2*e+1-4).multiply(r))}function WS(t){return t.and(t.not().add(1))}var ZS=3,$S=30,eI=2*$S+1,y1=180/Math.PI;function _1(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),A=e[1],i=A.length,c=0,d=[0,0];for(let m=i-1;m>=0;m--){c=i-m;let y=A[m],_=0,E=0;y==="1"?E=1:y==="2"?(_=1,E=1):y==="3"&&(_=1);let x=Math.pow(2,c-1);tI(x,d,_,E),d[0]+=x*_,d[1]+=x*E;}if(r%2===1){let m=d[0];d[0]=d[1],d[1]=m;}return {face:r,ij:d,level:c}}function b1(t){if(t.isZero())return "";let e=t.toString(2);for(;e.length<ZS+eI;)e="0"+e;let r=e.lastIndexOf("1"),A=e.substring(0,3),i=e.substring(3,r),c=i.length/2,d=qA.fromString(A,true,2).toString(10),m="";if(c!==0)for(m=qA.fromString(i,true,2).toString(4);m.length<c;)m="0"+m;return `${d}/${m}`}function vl(t,e,r){let A=1<<e;return [(t[0]+r[0])/A,(t[1]+r[1])/A]}function T1(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Ml(t){return [T1(t[0]),T1(t[1])]}function Sl(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 Il([t,e,r]){let A=Math.atan2(r,Math.sqrt(t*t+e*e));return [Math.atan2(e,t)*y1,A*y1]}function tI(t,e,r,A){if(A===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let i=e[0];e[0]=e[1],e[1]=i;}}function E1(t){let e=vl(t.ij,t.level,[.5,.5]),r=Ml(e),A=Sl(t.face,r);return Il(A)}var rI=100;function Fl(t){let{face:e,ij:r,level:A}=t,i=[[0,0],[0,1],[1,1],[1,0],[0,0]],c=Math.max(1,Math.ceil(rI*Math.pow(2,-A))),d=new Float64Array(4*c*2+2),m=0,y=0;for(let _=0;_<4;_++){let E=i[_].slice(0),x=i[_+1],v=(x[0]-E[0])/c,F=(x[1]-E[1])/c;for(let N=0;N<c;N++){E[0]+=v,E[1]+=F;let U=vl(r,A,E),q=Ml(U),X=Sl(e,q),W=Il(X);Math.abs(W[1])>89.999&&(W[0]=y);let he=W[0]-y;W[0]+=he>180?-360:he<-180?360:0,d[m++]=W[0],d[m++]=W[1],y=W[0];}}return d[m++]=d[0],d[m++]=d[1],d}function KA(t){let e=nI(t);return _1(e)}function nI(t){if(t.indexOf("/")>0)return t;let e=zi(t);return b1(e)}function Ll(t){let e=KA(t);return E1(e)}function C1(t){let e;if(t.face===2||t.face===5){let r=null,A=0;for(let i=0;i<4;i++){let c=`${t.face}/${i}`,d=KA(c),m=Fl(d);(typeof r>"u"||r===null)&&(r=new Float64Array(4*m.length)),r.set(m,A),A+=m.length;}e=x1(r);}else {let r=Fl(t);e=x1(r);}return e}function x1(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let A=0;A<t.length;A+=2)e.push(t[A]),r.push(t[A+1]);return e.sort((A,i)=>A-i),r.sort((A,i)=>A-i),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Rl(t,e){let r=e?.minimumHeight||0,A=e?.maximumHeight||0,i=KA(t),c=C1(i),d=c.west,m=c.south,y=c.east,_=c.north,E=[];return E.push(new H(d,_,r)),E.push(new H(y,_,r)),E.push(new H(y,m,r)),E.push(new H(d,m,r)),E.push(new H(d,_,A)),E.push(new H(y,_,A)),E.push(new H(y,m,A)),E.push(new H(d,m,A)),E}function ta(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},A=Rl(e,r),i=Ll(e),c=i[0],d=i[1],m=Ne.WGS84.cartographicToCartesian([c,d,r.maximumHeight]),y=new H(m[0],m[1],m[2]);A.push(y);let _=Li(A);return [..._.center,..._.halfAxes]}var AI=4,iI=8,sI={QUADTREE:AI,OCTREE:iI};function oI(t,e,r){if(t?.box){let A=zi(t.s2VolumeInfo.token),i=Bl(A,e),c=wl(i),d=r$1({},t.s2VolumeInfo);if(d.token=c,r==="OCTREE"){let _=t.s2VolumeInfo,E=_.maximumHeight-_.minimumHeight,x=E/2,v=_.minimumHeight+E/2;_.minimumHeight=v-x,_.maximumHeight=v+x;}return {box:ta(d),s2VolumeInfo:d}}}async function Dl(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:A={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:i=0,implicitOptions:c,loaderOptions:d,s2VolumeBox:m}=t,{subdivisionScheme:y,subtreeLevels:_,maximumLevel:E,contentUrlTemplate:x,subtreesUriTemplate:v,basePath:F}=c,N={children:[],lodMetricValue:0,contentUrl:""};if(typeof E!="number"||!Number.isFinite(E))return ka.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${x} won't be loaded...`),N;let U=A.localLevel+1,q=r.level+U;if(q>E)return N;let X=sI[y],W=Math.log2(X),he=i&1,_e=i>>1&1,be=i>>2&1,Te=Jn(A.localX,he,1),Ee=Jn(A.localY,_e,1),se=Jn(A.localZ,be,1),Y=Jn(r.x,Te,U),k=Jn(r.y,Ee,U),ge=Jn(r.z,se,U),Me=Jn(A.mortonIndex,i,W),Se=U===_&&Pl(e.childSubtreeAvailability,Me),ve,ke,rt,qe;if(Se){let Ve=`${F}/${v}`,nt=ra(Ve,q,Y,k,ge);ve=await Nt$1(nt,$o,d),qe=0,ke={level:q,x:Y,y:k,z:ge},rt={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0};}else ve=e,qe=(X**U-1)/(X-1)+Me,ke=r,rt={mortonIndex:Me,localLevel:U,localX:Te,localY:Ee,localZ:se};if(!Pl(ve.tileAvailability,qe))return N;Pl(ve.contentAvailability,qe)&&(N.contentUrl=ra(x,q,Y,k,ge));for(let Ve=0;Ve<X;Ve++){let nt=oI(m,Ve,y),Rt=await Dl({subtree:ve,subtreeData:ke,parentData:rt,childIndex:Ve,implicitOptions:c,loaderOptions:d,s2VolumeBox:nt});(Rt.contentUrl||Rt.children.length)&&N.children.push(Rt);}return N.contentUrl||N.children.length?aI(N,{level:q,x:Y,y:k,z:ge},c,m):N}function Pl(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&ka.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?!!r.constant:r.explicitBitstream?uI(e,r.explicitBitstream):false}function aI(t,e,r,A){let{basePath:i,refine:c,getRefine:d,lodMetricType:m,getTileType:y,rootLodMetricValue:_,rootBoundingVolume:E}=r,x=t.contentUrl&&t.contentUrl.replace(`${i}/`,""),v=_/2**e.level,F=A?.box?{box:A.box}:E,N=cI(F,e,r.subdivisionScheme);return {children:t.children,contentUrl:t.contentUrl,content:{uri:x},id:t.contentUrl,refine:d(c),type:y(t),lodMetricType:m,lodMetricValue:v,geometricError:v,transform:t.transform,boundingVolume:N}}function cI(t,e,r){if(t.region){let{level:A,x:i,y:c,z:d}=e,[m,y,_,E,x,v]=t.region,F=2**A,N=(_-m)/F,[U,q]=[m+N*i,m+N*(i+1)],X=(E-y)/F,[W,he]=[y+X*c,y+X*(c+1)],_e,be;if(r==="OCTREE"){let Te=(v-x)/F;[_e,be]=[x+Te*d,x+Te*(d+1)];}else [_e,be]=[x,v];return {region:[U,W,q,he,_e,be]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function Jn(t,e,r){return (t<<r)+e}function ra(t,e,r,A,i){let c=lI({level:e,x:r,y:A,z:i});return t.replace(/{level}|{x}|{y}|{z}/gi,d=>c[d])}function lI(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function uI(t,e){let r=Math.floor(t/8),A=t%8;return (e[r]>>A&1)===1}function Ol(t,e=""){if(!e)return Rr.EMPTY;let A=e.split("?")[0].split(".").pop();switch(A){case "pnts":return Rr.POINTCLOUD;case "i3dm":case "b3dm":case "glb":case "gltf":return Rr.SCENEGRAPH;default:return A||Rr.EMPTY}}function Gl(t){switch(t){case "REPLACE":case "replace":return Yt.REPLACE;case "ADD":case "add":return Yt.ADD;default:return t}}function Nl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let A=new URL(t,`${e}/`);return decodeURI(A.toString())}else if(t.startsWith("/"))return t;return Ue.resolve(e,t)}function w1(t,e){if(!t)return null;let r;if(t.content){let i=t.content.uri||t.content?.url;typeof i<"u"&&(r=Nl(i,e));}return s$1(r$1({},t),{id:r,contentUrl:r,lodMetricType:Tn.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:Ol(t,r),refine:Gl(t.refine)})}async function M1(t,e,r){let A=null,i=v1(t.root);i&&t.root?A=await B1(t.root,t,e,i,r):A=w1(t.root,e);let c=[];for(c.push(A);c.length>0;){let d=c.pop()||{},m=d.children||[],y=[];for(let _ of m){let E=v1(_),x;E?x=await B1(_,t,e,E,r):x=w1(_,e),x&&(y.push(x),c.push(x));}d.children=y;}return A}async function B1(t,e,r,A,i){let{subdivisionScheme:c,maximumLevel:d,availableLevels:m,subtreeLevels:y,subtrees:{uri:_}}=A,E=ra(_,0,0,0,0),x=Nl(E,r),v=await Nt$1(x,$o,i),F=t.content?.uri,N=F?Nl(F,r):"",U=e?.root?.refine,q=t.geometricError,X=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(X){let be={box:ta(X),s2VolumeInfo:X};t.boundingVolume=be;}let W=t.boundingVolume,he={contentUrlTemplate:N,subtreesUriTemplate:_,subdivisionScheme:c,subtreeLevels:y,maximumLevel:Number.isFinite(m)?m-1:d,refine:U,basePath:r,lodMetricType:Tn.GEOMETRIC_ERROR,rootLodMetricValue:q,rootBoundingVolume:W,getTileType:Ol,getRefine:Gl};return await fI(t,r,v,he,i)}async function fI(t,e,r,A,i){if(!t)return null;let{children:c,contentUrl:d}=await Dl({subtree:r,implicitOptions:A,loaderOptions:i}),m,y=null;return d&&(m=d,y={uri:d.replace(`${e}/`,"")}),s$1(r$1({},t),{id:m,contentUrl:m,lodMetricType:Tn.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:Ol(t,m),refine:Gl(t.refine),content:y||t.content,children:c})}function v1(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var na={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:qo,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:hI,options:{"3d-tiles":{loadGLTF:true,decodeQuantizedPositions:false,isTileset:"auto",assetGltfUpAxis:null}}};async function hI(t,e={},r){let A=e["3d-tiles"]||{},i;return A.isTileset==="auto"?i=r?.url&&r.url.indexOf(".json")!==-1:i=A.isTileset,i?dI(t,e,r):pI(t,e,r)}async function dI(t,e,r){let A=JSON.parse(new TextDecoder().decode(t)),i=r?.url||"",c=mI(i),d=await M1(A,c,e||{});return s$1(r$1({},A),{shape:"tileset3d",loader:na,url:i,queryString:r?.queryString||"",basePath:c,root:d||A.root,type:Ut.TILES3D,lodMetricType:Tn.GEOMETRIC_ERROR,lodMetricValue:A.root?.geometricError||0})}async function pI(t,e,r){let A={content:{shape:"tile3d",featureIds:null}};return await bl(t,0,e,r,A.content),A.content}function mI(t){return Ue.dirname(t)}var S1=[0],gI={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:na,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]}},yI=(()=>{class t extends Dv$1{initializeState(){"onTileLoadFail"in this.props&&C.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null};}get isLoaded(){return !!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:r}){return r.somethingChanged}updateState({props:r,oldProps:A,changeFlags:i}){if(r.data&&r.data!==A.data&&this._loadTileset(r.data),i.viewportChanged){let{activeViewports:c}=this.state;Object.keys(c).length&&(this._updateTileset(c),this.state.lastUpdatedViewports=c,this.state.activeViewports={});}if(i.propsChanged){let{layerMap:c}=this.state;for(let d in c)c[d].needsUpdate=true;}}finalizeState(r){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(r);}activateViewport(r){let{activeViewports:A,lastUpdatedViewports:i}=this.state;this.internalState.viewport=r,A[r.id]=r;let c=i?.[r.id];(!c||!r.equals(c))&&(this.setChangeFlags({viewportChanged:true}),this.setNeedsUpdate());}getPickingInfo({info:r,sourceLayer:A}){let i=A&&A.props.tile;return r.picked&&(r.object=i),r.sourceTile=i,r}filterSubLayer({layer:r,viewport:A,cullRect:i,isPicking:c}){let{tile:d}=r.props,{id:m}=A;if(!d.selected||!d.viewportIds.includes(m))return false;if(c&&i&&d.content?.cartographicOrigin){let[y,_]=A.project(d.content.cartographicOrigin),E=i.x+i.width/2,x=i.y+i.height/2,v=Math.max(A.width,A.height)/4,F=y-E,N=_-x;if(F*F+N*N>v*v)return false}return true}_updateAutoHighlight(r){let A=r.sourceTile,i=this.state.layerMap[A?.id];i&&i.layer&&i.layer.updateAutoHighlight(r);}async _loadTileset(r){let A=this.props.loadOptions||{},i=this.props.loaders?.length?this.props.loaders:this.props.loader,c=Array.isArray(i)?i[0]:i,v=A,{tileset:d}=v,m=u(v,["tileset"]),y=r$1({loadOptions:r$1({},m)},d),_=r;if("preload"in c&&typeof c.preload=="function"){let F=await c.preload(r,A);F.url&&(_=F.url),F.headers&&(y.loadOptions.core=s$1(r$1({},y.loadOptions.core),{fetch:s$1(r$1({},y.loadOptions.core?.fetch),{headers:F.headers})})),Object.assign(y,F);}let E=await Nt$1(_,c,y.loadOptions),x=new Qi(E,r$1({onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate()},y));this.setState({tileset3d:x,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(x);}_onTileLoad(r){let{lastUpdatedViewports:A}=this.state;r.tileDrawn=false,this.props.onTileLoad(r),this._updateTileset(A),this.setNeedsUpdate();}_onTileUnload(r){delete this.state.layerMap[r.id],this.props.onTileUnload(r);}_updateTileset(r){if(!r)return;let{tileset3d:A}=this.state,{timeline:i}=this.context,c=Object.keys(r).length;!i||!c||!A||A.selectTiles(Object.values(r)).then(d=>{this.state.frameNumber!==d&&this.setState({frameNumber:d});});}_getSubLayer(r,A){if(!r.content)return null;switch(r.type){case Rr.POINTCLOUD:return this._makePointCloudLayer(r,A);case Rr.SCENEGRAPH:return this._make3DModelLayer(r);case Rr.MESH:return this._makeSimpleMeshLayer(r,A);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${r.content.type}`)}}_makePointCloudLayer(r,A){let{attributes:i,pointCount:c,constantRGBA:d,cartographicOrigin:m,modelMatrix:y}=r.content,{positions:_,normals:E,colors:x}=i;if(!_)return null;let v=A&&A.props.data||{header:{vertexCount:c},attributes:{POSITION:_,NORMAL:E,COLOR_0:x}},{pointSize:F,getPointColor:N}=this.props,U=this.getSubLayerClass("pointcloud",dn$1);return new U({pointSize:F},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${r.id}`,tile:r,data:v,coordinateSystem:pa$1.METER_OFFSETS,coordinateOrigin:m,modelMatrix:y,getColor:d||N,_offset:0})}_make3DModelLayer(r){let{gltf:A,instances:i,cartographicOrigin:c,modelMatrix:d}=r.content,m=this.getSubLayerClass("scenegraph",tl);return new m({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${r.id}`,tile:r,data:i||S1,scenegraph:A,coordinateSystem:pa$1.METER_OFFSETS,coordinateOrigin:c,modelMatrix:d,getTransformMatrix:y=>y.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{r.tileDrawn=true;}})}_makeSimpleMeshLayer(r,A){let i=r.content,{attributes:c,indices:d,modelMatrix:m,cartographicOrigin:y,coordinateSystem:_=pa$1.METER_OFFSETS,material:E,featureIds:x}=i,{_getMeshColor:v}=this.props,F=A&&A.props.mesh||new Zr$1({topology:"triangle-list",attributes:_I(c),indices:d}),N=this.getSubLayerClass("mesh",o2);return new N(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${r.id}`,tile:r,mesh:F,data:S1,getColor:v(r),pbrMaterial:E,modelMatrix:m,coordinateOrigin:y,coordinateSystem:_,featureIds:x,_offset:0})}renderLayers(){let{tileset3d:r,layerMap:A}=this.state;return r?r.tiles.map(i=>{let c=A[i.id]=A[i.id]||{tile:i},{layer:d}=c;return i.selected&&(d?c.needsUpdate&&(d=this._getSubLayer(i,d),c.needsUpdate=false):d=this._getSubLayer(i)),c.layer=d,d}).filter(Boolean):null}}return t.defaultProps=gI,t.layerName="Tile3DLayer",t})(),TI=yI;function _I(t){let e={};return e.positions=s$1(r$1({},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 bI=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 kl(t){return t>>1^-(t&1)}function EI(t){let e=0,r={};for(let[A,i]of bI){let c=i===8?t.getFloat64:t.getFloat32;r[A]=c.call(t,e,true),e+=i;}return {header:r,headerEndPosition:e}}function xI(t,e){let r=e,A=3,i=t.getUint32(r,true),c=new Uint16Array(i*A);r+=Uint32Array.BYTES_PER_ELEMENT;let d=Uint16Array.BYTES_PER_ELEMENT,m=i*d,y=r,_=y+m,E=_+m,x=0,v=0,F=0;for(let N=0;N<i;N++)x+=kl(t.getUint16(y+d*N,true)),v+=kl(t.getUint16(_+d*N,true)),F+=kl(t.getUint16(E+d*N,true)),c[N]=x,c[N+i]=v,c[N+i*2]=F;return r+=m*3,{vertexData:c,vertexDataEndPosition:r}}function Ji(t,e,r,A,i=true){let c;if(A===2?c=new Uint16Array(t,e,r):c=new Uint32Array(t,e,r),!i)return c;let d=0;for(let m=0;m<c.length;++m){let y=c[m];c[m]=d-y,y===0&&++d;}return c}function CI(t,e,r){let A=r,d=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;A%d!==0&&(A+=d-A%d);let m=t.getUint32(A,true);A+=Uint32Array.BYTES_PER_ELEMENT;let y=m*3,_=Ji(t.buffer,A,y,d);return A+=y*d,{triangleIndicesEndPosition:A,triangleIndices:_}}function wI(t,e,r){let A=r,d=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,m=t.getUint32(A,true);A+=Uint32Array.BYTES_PER_ELEMENT;let y=Ji(t.buffer,A,m,d,false);A+=m*d;let _=t.getUint32(A,true);A+=Uint32Array.BYTES_PER_ELEMENT;let E=Ji(t.buffer,A,_,d,false);A+=_*d;let x=t.getUint32(A,true);A+=Uint32Array.BYTES_PER_ELEMENT;let v=Ji(t.buffer,A,x,d,false);A+=x*d;let F=t.getUint32(A,true);A+=Uint32Array.BYTES_PER_ELEMENT;let N=Ji(t.buffer,A,F,d,false);return A+=F*d,{edgeIndicesEndPosition:A,westIndices:y,southIndices:E,eastIndices:v,northIndices:N}}function BI(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function vI(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function MI(t,e){let r={};if(t.byteLength<=e)return {extensions:r,extensionsEndPosition:e};let A=e;for(;A<t.byteLength;){let i=t.getUint8(A,true);A+=Uint8Array.BYTES_PER_ELEMENT;let c=t.getUint32(A,true);A+=Uint32Array.BYTES_PER_ELEMENT;let d=new DataView(t.buffer,A,c);switch(i){case 1:{r.vertexNormals=BI(d);break}case 2:{r.waterMask=vI(d);break}}A+=c;}return {extensions:r,extensionsEndPosition:A}}var qn={vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},SI={maxDecodingStep:qn.extensions};function Ul(t,e){let r=Object.assign({},SI,e),A=new DataView(t),{header:i,headerEndPosition:c}=EI(A);if(r.maxDecodingStep<qn.vertices)return {header:i};let{vertexData:d,vertexDataEndPosition:m}=xI(A,c);if(r.maxDecodingStep<qn.triangleIndices)return {header:i,vertexData:d};let{triangleIndices:y,triangleIndicesEndPosition:_}=CI(A,d,m);if(r.maxDecodingStep<qn.edgeIndices)return {header:i,vertexData:d,triangleIndices:y};let{westIndices:E,southIndices:x,eastIndices:v,northIndices:F,edgeIndicesEndPosition:N}=wI(A,d,_);if(r.maxDecodingStep<qn.extensions)return {header:i,vertexData:d,triangleIndices:y,westIndices:E,northIndices:F,eastIndices:v,southIndices:x};let{extensions:U}=MI(A,N);return {header:i,vertexData:d,triangleIndices:y,westIndices:E,northIndices:F,eastIndices:v,southIndices:x,extensions:U}}function Aa(t,e,r,A){let i=A?FI(A,t.POSITION.value):II(e),c=new t.POSITION.value.constructor(i.length*6),d=new t.TEXCOORD_0.value.constructor(i.length*4),m=new e.constructor(i.length*6);for(let _=0;_<i.length;_++){let E=i[_];LI({edge:E,edgeIndex:_,attributes:t,skirtHeight:r,newPosition:c,newTexcoord0:d,newTriangles:m});}t.POSITION.value=fd$1(t.POSITION.value,c),t.TEXCOORD_0.value=fd$1(t.TEXCOORD_0.value,d);let y=e instanceof Array?e.concat(m):fd$1(e,m);return {attributes:t,triangles:y}}function II(t){let e=[];for(let i=0;i<t.length;i+=3)e.push([t[i],t[i+1]]),e.push([t[i+1],t[i+2]]),e.push([t[i+2],t[i]]);e.sort((i,c)=>Math.min(...i)-Math.min(...c)||Math.max(...i)-Math.max(...c));let r=[],A=0;for(;A<e.length;)e[A][0]===e[A+1]?.[1]&&e[A][1]===e[A+1]?.[0]?A+=2:(r.push(e[A]),A++);return r}function FI(t,e){t.westIndices.sort((A,i)=>e[3*A+1]-e[3*i+1]),t.eastIndices.sort((A,i)=>e[3*i+1]-e[3*A+1]),t.southIndices.sort((A,i)=>e[3*i]-e[3*A]),t.northIndices.sort((A,i)=>e[3*A]-e[3*i]);let r=[];for(let A in t){let i=t[A];for(let c=0;c<i.length-1;c++)r.push([i[c],i[c+1]]);}return r}function LI({edge:t,edgeIndex:e,attributes:r,skirtHeight:A,newPosition:i,newTexcoord0:c,newTriangles:d}){let m=r.POSITION.value.length,y=e*2,_=e*2+1;i.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),y*3),i[y*3+2]=i[y*3+2]-A,i.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),_*3),i[_*3+2]=i[_*3+2]-A,c.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),y*2),c.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),_*2);let E=e*2*3;d[E]=t[0],d[E+1]=m/3+_,d[E+2]=t[1],d[E+3]=m/3+_,d[E+4]=t[0],d[E+5]=m/3+y;}function Hl(t,e={}){let{bounds:r}=e,{header:A,vertexData:i,triangleIndices:c,westIndices:d,northIndices:m,eastIndices:y,southIndices:_}=Ul(t,qn.triangleIndices),E=c,x=RI(i,A,r),v=In(x);if(e?.skirtHeight){let{attributes:F,triangles:N}=Aa(x,E,e.skirtHeight,{westIndices:d,northIndices:m,eastIndices:y,southIndices:_});x=F,E=N;}return {loaderData:{header:{}},header:{vertexCount:E.length,boundingBox:v},schema:void 0,topology:"triangle-list",mode:4,indices:{value:E,size:1},attributes:x}}function RI(t,e,r){let{minHeight:A,maxHeight:i}=e,[c,d,m,y]=r||[0,0,1,1],_=m-c,E=y-d,x=i-A,v=t.length/3,F=new Float32Array(v*3),N=new Float32Array(v*2);for(let U=0;U<v;U++){let q=t[U]/32767,X=t[U+v]/32767,W=t[U+v*2]/32767;F[3*U+0]=q*_+c,F[3*U+1]=X*E+d,F[3*U+2]=W*x+A,N[2*U+0]=q,N[2*U+1]=X;}return {POSITION:{value:F,size:3},TEXCOORD_0:{value:N,size:2}}}var ia=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 A=0;A<this.numTriangles;A++){let i=A+2,c=0,d=0,m=0,y=0,_=0,E=0;for(i&1?m=y=_=r:c=d=E=r;(i>>=1)>1;){let v=c+m>>1,F=d+y>>1;i&1?(m=c,y=d,c=_,d=E):(c=m,d=y,m=_,y=E),_=v,E=F;}let x=A*4;this.coords[x+0]=c,this.coords[x+1]=d,this.coords[x+2]=m,this.coords[x+3]=y;}}createTile(e){return new Vl(e,this)}};var Vl=class{constructor(e,r){let A=r.gridSize;if(e.length!==A*A)throw new Error(`Expected terrain data of length ${A*A} (${A} x ${A}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update();}update(){let{numTriangles:e,numParentTriangles:r,coords:A,gridSize:i}=this.martini,{terrain:c,errors:d}=this;for(let m=e-1;m>=0;m--){let y=m*4,_=A[y+0],E=A[y+1],x=A[y+2],v=A[y+3],F=_+x>>1,N=E+v>>1,U=F+N-E,q=N+_-F,X=(c[E*i+_]+c[v*i+x])/2,W=N*i+F,he=Math.abs(X-c[W]);if(d[W]=Math.max(d[W],he),m<r){let _e=(E+q>>1)*i+(_+U>>1),be=(v+q>>1)*i+(x+U>>1);d[W]=Math.max(d[W],d[_e],d[be]);}}}getMesh(e=0){let{gridSize:r,indices:A}=this.martini,{errors:i}=this,c=0,d=0,m=r-1;A.fill(0);function y(F,N,U,q,X,W){let he=F+U>>1,_e=N+q>>1;Math.abs(F-X)+Math.abs(N-W)>1&&i[_e*r+he]>e?(y(X,W,F,N,he,_e),y(U,q,X,W,he,_e)):(A[N*r+F]=A[N*r+F]||++c,A[q*r+U]=A[q*r+U]||++c,A[W*r+X]=A[W*r+X]||++c,d++);}y(0,0,m,m,m,0),y(m,m,0,0,0,m);let _=new Uint16Array(c*2),E=new Uint32Array(d*3),x=0;function v(F,N,U,q,X,W){let he=F+U>>1,_e=N+q>>1;if(Math.abs(F-X)+Math.abs(N-W)>1&&i[_e*r+he]>e)v(X,W,F,N,he,_e),v(U,q,X,W,he,_e);else {let be=A[N*r+F]-1,Te=A[q*r+U]-1,Ee=A[W*r+X]-1;_[2*be]=F,_[2*be+1]=N,_[2*Te]=U,_[2*Te+1]=q,_[2*Ee]=X,_[2*Ee+1]=W,E[x++]=be,E[x++]=Te,E[x++]=Ee;}}return v(0,0,m,m,m,0),v(m,m,0,0,0,m),{vertices:_,triangles:E}}};var sa=class{constructor(e,r,A=r){this.data=e,this.width=r,this.height=A,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 i=r-1,c=A-1,d=this._addPoint(0,0),m=this._addPoint(i,0),y=this._addPoint(0,c),_=this._addPoint(i,c),E=this._addTriangle(_,d,y,-1,-1,-1);this._addTriangle(d,_,m,E,-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 A=this._pending[r],i=2*this.triangles[A*3+0],c=2*this.triangles[A*3+1],d=2*this.triangles[A*3+2];this._findCandidate(e[i],e[i+1],e[c],e[c+1],e[d],e[d+1],A);}this._pendingLen=0;}_findCandidate(e,r,A,i,c,d,m){let y=Math.min(e,A,c),_=Math.min(r,i,d),E=Math.max(e,A,c),x=Math.max(r,i,d),v=Kn(A,i,c,d,y,_),F=Kn(c,d,e,r,y,_),N=Kn(e,r,A,i,y,_),U=i-r,q=e-A,X=d-i,W=A-c,he=r-d,_e=c-e,be=Kn(e,r,A,i,c,d),Te=this.heightAt(e,r)/be,Ee=this.heightAt(A,i)/be,se=this.heightAt(c,d)/be,Y=0,k=0,ge=0,Me=0;for(let Se=_;Se<=x;Se++){let ve=0;v<0&&X!==0&&(ve=Math.max(ve,Math.floor(-v/X))),F<0&&he!==0&&(ve=Math.max(ve,Math.floor(-F/he))),N<0&&U!==0&&(ve=Math.max(ve,Math.floor(-N/U)));let ke=v+X*ve,rt=F+he*ve,qe=N+U*ve,$e=false;for(let at=y+ve;at<=E;at++){if(ke>=0&&rt>=0&&qe>=0){$e=true;let Ve=Te*ke+Ee*rt+se*qe,nt=Math.abs(Ve-this.heightAt(at,Se));Me+=nt*nt,nt>Y&&(Y=nt,k=at,ge=Se);}else if($e)break;ke+=X,rt+=he,qe+=U;}v+=W,F+=_e,N+=q;}(k===e&&ge===r||k===A&&ge===i||k===c&&ge===d)&&(Y=0),this._candidates[2*m]=k,this._candidates[2*m+1]=ge,this._rms[m]=Me,this._queuePush(m,Y,Me);}_step(){let e=this._queuePop(),r=e*3+0,A=e*3+1,i=e*3+2,c=this.triangles[r],d=this.triangles[A],m=this.triangles[i],y=this.coords[2*c],_=this.coords[2*c+1],E=this.coords[2*d],x=this.coords[2*d+1],v=this.coords[2*m],F=this.coords[2*m+1],N=this._candidates[2*e],U=this._candidates[2*e+1],q=this._addPoint(N,U);if(Kn(y,_,E,x,N,U)===0)this._handleCollinear(q,r);else if(Kn(E,x,v,F,N,U)===0)this._handleCollinear(q,A);else if(Kn(v,F,y,_,N,U)===0)this._handleCollinear(q,i);else {let X=this._halfedges[r],W=this._halfedges[A],he=this._halfedges[i],_e=this._addTriangle(c,d,q,X,-1,-1,r),be=this._addTriangle(d,m,q,W,-1,_e+1),Te=this._addTriangle(m,c,q,he,_e+2,be+1);this._legalize(_e),this._legalize(be),this._legalize(Te);}}_addPoint(e,r){let A=this.coords.length>>1;return this.coords.push(e,r),A}_addTriangle(e,r,A,i,c,d,m=this.triangles.length){let y=m/3;return this.triangles[m+0]=e,this.triangles[m+1]=r,this.triangles[m+2]=A,this._halfedges[m+0]=i,this._halfedges[m+1]=c,this._halfedges[m+2]=d,i>=0&&(this._halfedges[i]=m+0),c>=0&&(this._halfedges[c]=m+1),d>=0&&(this._halfedges[d]=m+2),this._candidates[2*y+0]=0,this._candidates[2*y+1]=0,this._queueIndices[y]=-1,this._rms[y]=0,this._pending[this._pendingLen++]=y,m}_legalize(e){let r=this._halfedges[e];if(r<0)return;let A=e-e%3,i=r-r%3,c=A+(e+1)%3,d=A+(e+2)%3,m=i+(r+2)%3,y=i+(r+1)%3,_=this.triangles[d],E=this.triangles[e],x=this.triangles[c],v=this.triangles[m],F=this.coords;if(!PI(F[2*_],F[2*_+1],F[2*E],F[2*E+1],F[2*x],F[2*x+1],F[2*v],F[2*v+1]))return;let N=this._halfedges[c],U=this._halfedges[d],q=this._halfedges[m],X=this._halfedges[y];this._queueRemove(A/3),this._queueRemove(i/3);let W=this._addTriangle(_,v,x,-1,q,N,A),he=this._addTriangle(v,_,E,W,U,X,i);this._legalize(W+1),this._legalize(he+2);}_handleCollinear(e,r){let A=r-r%3,i=A+(r+1)%3,c=A+(r+2)%3,d=this.triangles[c],m=this.triangles[r],y=this.triangles[i],_=this._halfedges[i],E=this._halfedges[c],x=this._halfedges[r];if(x<0){let Te=this._addTriangle(e,d,m,-1,E,-1,A),Ee=this._addTriangle(d,e,y,Te,-1,_);this._legalize(Te+1),this._legalize(Ee+2);return}let v=x-x%3,F=v+(x+2)%3,N=v+(x+1)%3,U=this.triangles[F],q=this._halfedges[F],X=this._halfedges[N];this._queueRemove(v/3);let W=this._addTriangle(d,m,e,E,-1,-1,A),he=this._addTriangle(m,U,e,X,-1,W+1,v),_e=this._addTriangle(U,y,e,q,-1,he+1),be=this._addTriangle(y,d,e,_,W+2,_e+1);this._legalize(W),this._legalize(he),this._legalize(_e),this._legalize(be);}_queuePush(e,r,A){let i=this._queue.length;this._queueIndices[e]=i,this._queue.push(e),this._errors.push(r),this._rmsSum+=A,this._queueUp(i);}_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 i=this._pending.indexOf(e);if(i!==-1)this._pending[i]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let A=this._queue.length-1;A!==r&&(this._queueSwap(r,A),this._queueDown(r,A)||this._queueUp(r)),this._queuePopBack();}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let A=this._queue[e],i=this._queue[r];this._queue[e]=i,this._queue[r]=A,this._queueIndices[A]=r,this._queueIndices[i]=e;let c=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=c;}_queueUp(e){let r=e;for(;;){let A=r-1>>1;if(A===r||!this._queueLess(r,A))break;this._queueSwap(A,r),r=A;}}_queueDown(e,r){let A=e;for(;;){let i=2*A+1;if(i>=r||i<0)break;let c=i+1,d=i;if(c<r&&this._queueLess(c,i)&&(d=c),!this._queueLess(d,A))break;this._queueSwap(A,d),A=d;}return A>e}};function Kn(t,e,r,A,i,c){return (r-i)*(e-c)-(A-c)*(t-i)}function PI(t,e,r,A,i,c,d,m){let y=t-d,_=e-m,E=r-d,x=A-m,v=i-d,F=c-m,N=y*y+_*_,U=E*E+x*x,q=v*v+F*F;return y*(x*q-U*F)-_*(E*q-U*v)+N*(E*F-x*v)<0}function L1(t,e){let{meshMaxError:r,bounds:A,elevationDecoder:i}=e,{data:c,width:d,height:m}=t,y,_;switch(e.tesselator){case "martini":y=oa(c,d,m,i,e.tesselator),_=I1(r,d,y);break;case "delatin":y=oa(c,d,m,i,e.tesselator),_=F1(r,d,m,y);break;default:d===m&&!(m&d-1)?(y=oa(c,d,m,i,"martini"),_=I1(r,d,y)):(y=oa(c,d,m,i,"delatin"),_=F1(r,d,m,y));break}let{vertices:E}=_,{triangles:x}=_,v=DI(E,y,d,m,A),F=In(v);if(e.skirtHeight){let{attributes:N,triangles:U}=Aa(v,x,e.skirtHeight);v=N,x=U;}return {loaderData:{header:{}},header:{vertexCount:x.length,boundingBox:F},mode:4,indices:{value:Uint32Array.from(x),size:1},attributes:v}}function I1(t,e,r){let A=e+1,c=new ia(A).createTile(r),{vertices:d,triangles:m}=c.getMesh(t);return {vertices:d,triangles:m}}function F1(t,e,r,A){let i=new sa(A,e+1,r+1);i.run(t);let{coords:c,triangles:d}=i;return {vertices:c,triangles:d}}function oa(t,e,r,A,i){let{rScaler:c,bScaler:d,gScaler:m,offset:y}=A,_=new Float32Array((e+1)*(r+1));for(let E=0,x=0;x<r;x++)for(let v=0;v<e;v++,E++){let F=E*4,N=t[F+0],U=t[F+1],q=t[F+2];_[E+x]=N*c+U*m+q*d+y;}if(i==="martini"){for(let E=(e+1)*e,x=0;x<e;x++,E++)_[E]=_[E-e-1];for(let E=r,x=0;x<r+1;x++,E+=r+1)_[E]=_[E-1];}return _}function DI(t,e,r,A,i){let c=r+1,d=t.length/2,m=new Float32Array(d*3),y=new Float32Array(d*2),[_,E,x,v]=i||[0,0,r,A],F=(x-_)/r,N=(v-E)/A;for(let U=0;U<d;U++){let q=t[U*2],X=t[U*2+1],W=X*c+q;m[3*U+0]=q*F+_,m[3*U+1]=-X*N+v,m[3*U+2]=e[W],y[2*U+0]=q/r,y[2*U+1]=X/A;}return {POSITION:{value:m,size:3},TEXCOORD_0:{value:y,size:2}}}var aa="4.4.4";var ca={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:aa,worker:true,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 R1={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:aa,worker:true,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var NI=s$1(r$1({},ca),{parse:OI});async function OI(t,e,r){let A=s$1(r$1({},e),{core:s$1(r$1({},e?.core),{mimeType:"application/x.image"}),image:s$1(r$1({},e?.image),{type:"data"})}),i=await jp$1(t,[],A,r),c=r$1(r$1({},NI.options.terrain),e?.terrain);return L1(i,c)}s$1(r$1({},R1),{parseSync:(t,e)=>Hl(t,e?.["quantized-mesh"]),parse:async(t,e)=>Hl(t,e?.["quantized-mesh"])});var P1=[1],GI=s$1(r$1({},BA.defaultProps),{elevationData:mn,texture:s$1(r$1({},mn),{optional:true}),meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:true,compare:true},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:false,material:true,loaders:[ca]});function D1(t){return Array.isArray(t)?t.join(";"):t||""}var kI=(()=>{class t extends Dv$1{updateState({props:r,oldProps:A}){let i=r.elevationData!==A.elevationData;if(i){let{elevationData:d}=r,m=d&&(Array.isArray(d)||HI(d));this.setState({isTiled:m});}let c=i||r.meshMaxError!==A.meshMaxError||r.elevationDecoder!==A.elevationDecoder||r.bounds!==A.bounds;if(!this.state.isTiled&&c){let d=this.loadTerrain(r);this.setState({terrain:d});}r.workerUrl&&C.removed("workerUrl","loadOptions.terrain.workerUrl")();}loadTerrain({elevationData:r,bounds:A,elevationDecoder:i,meshMaxError:c,signal:d}){if(!r)return null;let m=this.getLoadOptions();m=s$1(r$1({},m),{terrain:s$1(r$1({skirtHeight:this.state.isTiled?c*2:0},m?.terrain),{bounds:A,meshMaxError:c,elevationDecoder:i})});let{fetch:y}=this.props;return y(r,{propName:"elevationData",layer:this,loadOptions:m,signal:d})}getTiledTerrainData(r){let{elevationData:A,fetch:i,texture:c,elevationDecoder:d,meshMaxError:m}=this.props,{viewport:y}=this.context,_=$r(A,r),E=c&&$r(c,r),{signal:x}=r,v=[0,0],F=[0,0];if(y.isGeospatial){let X=r.bbox;v=y.projectFlat([X.west,X.south]),F=y.projectFlat([X.east,X.north]);}else {let X=r.bbox;v=[X.left,X.bottom],F=[X.right,X.top];}let N=[v[0],v[1],F[0],F[1]],U=this.loadTerrain({elevationData:_,bounds:N,elevationDecoder:d,meshMaxError:m,signal:x}),q=E?i(E,{propName:"texture",layer:this,loaders:[],signal:x}).catch(X=>null):Promise.resolve(null);return Promise.all([U,q])}renderSubLayers(r){let A=this.getSubLayerClass("mesh",vA),{color:i,wireframe:c,material:d}=this.props,{data:m}=r;if(!m)return null;let[y,_]=m;return new A(r,{data:P1,mesh:y,texture:_,_instanced:false,coordinateSystem:pa$1.CARTESIAN,getPosition:E=>[0,0,0],getColor:i,wireframe:c,material:d})}onViewportLoad(r){if(!r)return;let{zRange:A}=this.state,i=r.map(m=>m.content).filter(Boolean).map(m=>m[0].header.boundingBox.map(_=>_[2]));if(i.length===0)return;let c=Math.min(...i.map(m=>m[0])),d=Math.max(...i.map(m=>m[1]));(!A||c<A[0]||d>A[1])&&this.setState({zRange:[c,d]});}renderLayers(){let{color:r,material:A,elevationData:i,texture:c,wireframe:d,meshMaxError:m,elevationDecoder:y,tileSize:_,maxZoom:E,minZoom:x,extent:v,maxRequests:F,onTileLoad:N,onTileUnload:U,onTileError:q,maxCacheSize:X,maxCacheByteSize:W,refinementStrategy:he,zoomOffset:_e}=this.props;if(this.state.isTiled)return new BA(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:D1(i),texture:D1(c),meshMaxError:m,elevationDecoder:y,projectionMode:this.context.viewport.projectionMode,zoomOffset:_e}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:_,maxZoom:E,minZoom:x,extent:v,maxRequests:F,onTileLoad:N,onTileUnload:U,onTileError:q,maxCacheSize:X,maxCacheByteSize:W,refinementStrategy:he,zoomOffset:_e});if(!i)return null;let be=this.getSubLayerClass("mesh",vA);return new be(this.getSubLayerProps({id:"mesh"}),{data:P1,mesh:this.state.terrain,texture:c,_instanced:false,getPosition:Te=>[0,0,0],getColor:r,material:A,wireframe:d})}}return t.defaultProps=GI,t.layerName="TerrainLayer",t})(),UI=kI,HI=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var VI={clipBounds:[0,0,1,1],clipByInstance:void 0},N1=`
|
|
453
|
-
layout(std140) uniform clipUniforms {
|
|
454
|
-
vec4 bounds;
|
|
455
|
-
} clip;
|
|
456
|
-
|
|
457
|
-
bool clip_isInBounds(vec2 position) {
|
|
458
|
-
return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3];
|
|
459
|
-
}
|
|
460
|
-
`,jI={name:"clip",vs:N1,uniformTypes:{bounds:"vec4<f32>"}},QI={"vs:#decl":`
|
|
461
|
-
out float clip_isVisible;
|
|
462
|
-
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
463
|
-
clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
|
|
464
|
-
`,"fs:#decl":`
|
|
465
|
-
in float clip_isVisible;
|
|
466
|
-
`,"fs:DECKGL_FILTER_COLOR":`
|
|
467
|
-
if (clip_isVisible < 0.5) discard;
|
|
468
|
-
`},zI={name:"clip",fs:N1,uniformTypes:{bounds:"vec4<f32>"}},JI={"vs:#decl":`
|
|
469
|
-
out vec2 clip_commonPosition;
|
|
470
|
-
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
471
|
-
clip_commonPosition = geometry.position.xy;
|
|
472
|
-
`,"fs:#decl":`
|
|
473
|
-
in vec2 clip_commonPosition;
|
|
474
|
-
`,"fs:DECKGL_FILTER_COLOR":`
|
|
475
|
-
if (!clip_isInBounds(clip_commonPosition)) discard;
|
|
476
|
-
`},qI=(()=>{class t extends Wv$1{getShaders(){let r="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(r=!!this.props.clipByInstance),this.state.clipByInstance=r,r?{modules:[jI],inject:QI}:{modules:[zI],inject:JI}}draw(){let{clipBounds:r}=this.props,A={};if(this.state.clipByInstance)A.bounds=r;else {let i=this.projectPosition([r[0],r[1],0]),c=this.projectPosition([r[2],r[3],0]);A.bounds=[Math.min(i[0],c[0]),Math.min(i[1],c[1]),Math.max(i[0],c[0]),Math.max(i[1],c[1])];}this.setShaderModuleProps({clip:A});}}return t.defaultProps=VI,t.extensionName="ClipExtension",t})(),jl=qI;function O1(t,e,r){switch(t.type){case "Point":return XI(t,e,r);case "LineString":return KI(t,e,r);case "Polygon":return G1(t,e,r);default:let A=t;throw new Error(`Unsupported geometry type: ${A?.type}`)}}function G1(t,e=-1/0,r=1/0){let{positions:A}=t,i=t.polygonIndices.value.filter(y=>y>=e&&y<=r),c=t.primitivePolygonIndices.value.filter(y=>y>=e&&y<=r);if(!(i.length>2)){let y=[];for(let _=0;_<c.length-1;_++){let E=c[_],x=c[_+1],v=la(A,E,x);y.push(v);}return {type:"Polygon",coordinates:y}}let m=[];for(let y=0;y<i.length-1;y++){let _=i[y],E=i[y+1],x=G1(t,_,E).coordinates;m.push(x);}return {type:"MultiPolygon",coordinates:m}}function KI(t,e=-1/0,r=1/0){let{positions:A}=t,i=t.pathIndices.value.filter(m=>m>=e&&m<=r);if(!(i.length>2))return {type:"LineString",coordinates:la(A,i[0],i[1])};let d=[];for(let m=0;m<i.length-1;m++){let y=la(A,i[m],i[m+1]);d.push(y);}return {type:"MultiLineString",coordinates:d}}function XI(t,e,r){let{positions:A}=t,i=la(A,e,r);return i.length>1?{type:"MultiPoint",coordinates:i}:{type:"Point",coordinates:i[0]}}function la(t,e,r){e=e||0,r=r||t.value.length/t.size;let A=[];for(let i=e;i<r;i++){let c=Array();for(let d=i*t.size;d<(i+1)*t.size;d++)c.push(Number(t.value[d]));A.push(c);}return A}function ua(t,e,r){let A=YI(t),i=Object.keys(A).filter(c=>A[c]!==Array);return WI(t,r$1({propArrayTypes:A},e),{numericPropKeys:i,PositionDataType:Float32Array,triangulate:true})}function YI(t){let e={};for(let r of t)if(r.properties)for(let A in r.properties){let i=r.properties[A];e[A]=nF(i,e[A]);}return e}function WI(t,e,r){let{pointPositionsCount:A,pointFeaturesCount:i,linePositionsCount:c,linePathsCount:d,lineFeaturesCount:m,polygonPositionsCount:y,polygonObjectsCount:_,polygonRingsCount:E,polygonFeaturesCount:x,propArrayTypes:v,coordLength:F}=e,{numericPropKeys:N=[],PositionDataType:U=Float32Array,triangulate:q=true}=r,X=t[0]&&"id"in t[0],W=t.length>65535?Uint32Array:Uint16Array,he={type:"Point",positions:new U(A*F),globalFeatureIds:new W(A),featureIds:i>65535?new Uint32Array(A):new Uint16Array(A),numericProps:{},properties:[],fields:[]},_e={type:"LineString",pathIndices:c>65535?new Uint32Array(d+1):new Uint16Array(d+1),positions:new U(c*F),globalFeatureIds:new W(c),featureIds:m>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]},be={type:"Polygon",polygonIndices:y>65535?new Uint32Array(_+1):new Uint16Array(_+1),primitivePolygonIndices:y>65535?new Uint32Array(E+1):new Uint16Array(E+1),positions:new U(y*F),globalFeatureIds:new W(y),featureIds:x>65535?new Uint32Array(y):new Uint16Array(y),numericProps:{},properties:[],fields:[]};q&&(be.triangles=[]);for(let Ee of [he,_e,be])for(let se of N){let Y=v[se];Ee.numericProps[se]=new Y(Ee.positions.length/F);}_e.pathIndices[d]=c,be.polygonIndices[_]=y,be.primitivePolygonIndices[E]=y;let Te={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let Ee of t){let se=Ee.geometry,Y=Ee.properties||{};switch(se.type){case "Point":ZI(se,he,Te,F,Y),he.properties.push(zl(Y,N)),X&&he.fields.push({id:Ee.id}),Te.pointFeature++;break;case "LineString":$I(se,_e,Te,F,Y),_e.properties.push(zl(Y,N)),X&&_e.fields.push({id:Ee.id}),Te.lineFeature++;break;case "Polygon":eF(se,be,Te,F,Y),be.properties.push(zl(Y,N)),X&&be.fields.push({id:Ee.id}),Te.polygonFeature++;break;default:throw new Error("Invalid geometry type")}Te.feature++;}return rF(he,_e,be,F)}function ZI(t,e,r,A,i){e.positions.set(t.data,r.pointPosition*A);let c=t.data.length/A;Jl(e,i,r.pointPosition,c),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+c),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+c),r.pointPosition+=c;}function $I(t,e,r,A,i){e.positions.set(t.data,r.linePosition*A);let c=t.data.length/A;Jl(e,i,r.linePosition,c),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+c),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+c);for(let d=0,m=t.indices.length;d<m;++d){let y=t.indices[d],_=d===m-1?t.data.length:t.indices[d+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(_-y)/A;}}function eF(t,e,r,A,i){e.positions.set(t.data,r.polygonPosition*A);let c=t.data.length/A;Jl(e,i,r.polygonPosition,c),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+c),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+c);for(let d=0,m=t.indices.length;d<m;++d){let y=r.polygonPosition;e.polygonIndices[r.polygonObject++]=y;let _=t.areas[d],E=t.indices[d],x=t.indices[d+1];for(let F=0,N=E.length;F<N;++F){let U=E[F],q=F===N-1?x===void 0?t.data.length:x[0]:E[F+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(q-U)/A;}let v=r.polygonPosition;tF(e,_,E,{startPosition:y,endPosition:v,coordLength:A});}}function tF(t,e,r,{startPosition:A,endPosition:i,coordLength:c}){if(!t.triangles)return;let d=A*c,m=i*c,y=t.positions.subarray(d,m),_=r[0],E=r.slice(1).map(v=>(v-_)/c),x=mn$1(y,E,c,e);for(let v=0,F=x.length;v<F;++v)t.triangles.push(A+x[v]);}function Ql(t,e){let r={};for(let A in t)r[A]={value:t[A],size:e};return r}function rF(t,e,r,A){let i={shape:"binary-feature-collection",points:s$1(r$1({},t),{positions:{value:t.positions,size:A},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Ql(t.numericProps,1)}),lines:s$1(r$1({},e),{positions:{value:e.positions,size:A},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Ql(e.numericProps,1)}),polygons:s$1(r$1({},r),{positions:{value:r.positions,size:A},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:Ql(r.numericProps,1)})};return i.polygons&&r.triangles&&(i.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),i}function Jl(t,e,r,A){for(let i in t.numericProps)if(i in e){let c=e[i];t.numericProps[i].fill(c,r,r+A);}}function zl(t,e){let r={};for(let A in t)e.includes(A)||(r[A]=t[A]);return r}function nF(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function qi(t,e){let r=e?.globalFeatureId;return r!==void 0?AF(t,r):iF(t,e?.type)}function AF(t,e){let r=k1(t);for(let A of r){let i=0,c=A.featureIds.value[0];for(let d=0;d<A.featureIds.value.length;d++){let m=A.featureIds.value[d];if(m!==c){if(e===A.globalFeatureIds.value[i])return fa(A,i,d);i=d,c=m;}}if(e===A.globalFeatureIds.value[i])return fa(A,i,A.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function iF(t,e){let r=k1(t);return sF(r)}function k1(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 sF(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let A=0,i=r.featureIds.value[0];for(let c=0;c<r.featureIds.value.length;c++){let d=r.featureIds.value[c];d!==i&&(e.push(fa(r,A,c)),A=c,i=d);}e.push(fa(r,A,r.featureIds.value.length));}return e}function fa(t,e,r){let A=O1(t,e,r),i=aF(t,e),c=oF(t,e);return r$1({type:"Feature",geometry:A,properties:i},c)}function oF(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function aF(t,e=0,r){let A=Object.assign({},t.properties[t.featureIds.value[e]]);for(let i in t.numericProps)A[i]=t.numericProps[i].value[e];return A}var Zl=x(J1(),1);function BF(t){let e=0;for(let r=0,A=t.length-1,i,c;r<t.length;A=r++)i=t[r],c=t[A],e+=(c[0]-i[0])*(i[1]+c[1]);return e}function Xl(t,e){if(Array.isArray(t[0])){for(let A of t)Xl(A,e);return}let r=t;r[0]/=e,r[1]/=e;}function q1(t,e){for(let r=0;r<t.length;++r)t[r]/=e;}function Yl(t,e,r){if(typeof t[0][0]!="number"){for(let d of t)Yl(d,e,r);return}let A=r*Math.pow(2,e.z),i=r*e.x,c=r*e.y;for(let d=0;d<t.length;d++){let m=t[d];m[0]=(m[0]+i)*360/A-180;let y=180-(m[1]+c)*360/A;m[1]=360/Math.PI*Math.atan(Math.exp(y*Math.PI/180))-90;}}function K1(t,e,r){let{x:A,y:i,z:c}=e,d=r*Math.pow(2,c),m=r*A,y=r*i;for(let _=0,E=t.length;_<E;_+=2){t[_]=(t[_]+m)*360/d-180;let x=180-(t[_+1]+y)*360/d;t[_+1]=360/Math.PI*Math.atan(Math.exp(x*Math.PI/180))-90;}}function X1(t){let e=t.length;if(e<=1)return [t];let r=[],A,i;for(let c=0;c<e;c++){let d=BF(t[c]);d!==0&&(i===void 0&&(i=d<0),i===d<0?(A&&r.push(A),A=[t[c]]):A&&A.push(t[c]));}return A&&r.push(A),r}function Y1(t){let e=t.indices.length,r="Polygon";if(e<=1)return {type:r,data:t.data,areas:[[fe(t.data)]],indices:[t.indices]};let A=[],i=[],c=[],d=[],m,y=0;for(let _,E=0,x;E<e;E++){x=t.indices[E]-y,_=t.indices[E+1]-y||t.data.length;let v=t.data.slice(x,_),F=fe(v);if(F===0){let N=t.data.slice(0,x),U=t.data.slice(_);t.data=N.concat(U),y+=_-x;continue}m===void 0&&(m=F<0),m===F<0?(d.length&&(A.push(c),i.push(d)),d=[x],c=[F]):(c.push(F),d.push(x));}return c&&A.push(c),d.length&&i.push(d),{type:r,areas:A,indices:i,data:t.data}}var pa=(()=>{class t{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;static types=["Unknown","Point","LineString","Polygon"];constructor(r,A,i,c,d,m){this.properties={},this.extent=i,this.type=0,this.id=null,this._pbf=r,this._geometry=-1,this._keys=c,this._values=d,this._geometryInfo=m,r.readFields(vF,this,A);}toGeoJSONFeature(r,A){let i=this.loadGeometry();return r==="wgs84"?W1(this,i,c=>Yl(c,A,this.extent)):W1(this,i,Xl)}toBinaryFeature(r,A){let i=this.loadFlatGeometry();return r==="wgs84"?this._toBinaryCoordinates(i,c=>K1(c,A,this.extent)):this._toBinaryCoordinates(i,q1)}bbox(){let r=this._pbf;r.pos=this._geometry;let A=r.readVarint()+r.pos,i=1,c=0,d=0,m=0,y=1/0,_=-1/0,E=1/0,x=-1/0;for(;r.pos<A;){if(c<=0){let v=r.readVarint();i=v&7,c=v>>3;}if(c--,i===1||i===2)d+=r.readSVarint(),m+=r.readSVarint(),d<y&&(y=d),d>_&&(_=d),m<E&&(E=m),m>x&&(x=m);else if(i!==7)throw new Error(`unknown command ${i}`)}return [y,E,_,x]}_toBinaryCoordinates(r,A){let i;A(r.data,this.extent);let c=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,i=r$1({type:"Point"},r);break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/c,i=r$1({type:"LineString"},r);break;case 3:i=Y1(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=i.indices.length;for(let m of i.indices)this._geometryInfo.polygonRingsCount+=m.length;this._geometryInfo.polygonPositionsCount+=i.data.length/c;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let d={type:"Feature",geometry:i,properties:this.properties};return this.id!==null&&(d.id=this.id),d}loadGeometry(){let r=this._pbf;r.pos=this._geometry;let A=r.readVarint()+r.pos,i=1,c=0,d=0,m=0,y=[],_;for(;r.pos<A;){if(c<=0){let E=r.readVarint();i=E&7,c=E>>3;}switch(c--,i){case 1:case 2:d+=r.readSVarint(),m+=r.readSVarint(),i===1&&(_&&y.push(_),_=[]),_&&_.push([d,m]);break;case 7:_&&_.push(_[0].slice());break;default:throw new Error(`unknown command ${i}`)}}return _&&y.push(_),y}loadFlatGeometry(){let r=this._pbf;r.pos=this._geometry;let A=r.readVarint()+r.pos,i=1,c,d=0,m=0,y=0,_=0,E=[],x=[];for(;r.pos<A;)if(d<=0&&(c=r.readVarint(),i=c&7,d=c>>3),d--,i===1||i===2)m+=r.readSVarint(),y+=r.readSVarint(),i===1&&E.push(_),x.push(m,y),_+=2;else if(i===7){if(_>0){let v=E[E.length-1];x.push(x[v],x[v+1]),_+=2;}}else throw new Error(`unknown command ${i}`);return {data:x,indices:E}}}return t})();function W1(t,e,r){let A=pa.types[t.type],i,c,d;switch(t.type){case 1:let y=[];for(i=0;i<e.length;i++)y[i]=e[i][0];d=y,r(d,t.extent);break;case 2:for(d=e,i=0;i<d.length;i++)r(d[i],t.extent);break;case 3:for(d=X1(e),i=0;i<d.length;i++)for(c=0;c<d[i].length;c++)r(d[i][c],t.extent);break;default:throw new Error("illegal vector tile type")}d.length===1?d=d[0]:A=`Multi${A}`;let m={type:"Feature",geometry:{type:A,coordinates:d},properties:t.properties};return t.id!==null&&(m.properties||={},m.properties.id=t.id),m}function vF(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?MF(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos));}function MF(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let A=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[A]=i;}}var ma=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(SF,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 pa(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 A=this._pbf.readVarint()+this._pbf.pos;return new pa(this._pbf,A,this.extent,this._keys,this._values,r)}};function SF(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(IF(r)));}function IF(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let A=t.readVarint()>>3;e=A===1?t.readString():A===2?t.readFloat():A===3?t.readDouble():A===4?t.readVarint64():A===5?t.readVarint():A===6?t.readSVarint():A===7?t.readBoolean():null;}return e}var Ki=class{layers;constructor(e,r){this.layers=e.readFields(FF,{},r);}};function FF(t,e,r){if(t===3&&r){let A=new ma(r,r.readVarint()+r.pos);A.length&&e&&(e[A.name]=A);}}function $l(t,e){let r=RF(e),A=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(A){case "columnar-table":return {shape:"columnar-table",data:Wl(t,r)};case "geojson-table":return {shape:"geojson-table",type:"FeatureCollection",features:Z1(t,r)};case "geojson":return Z1(t,r);case "binary-geometry":return Wl(t,r);case "binary":return Wl(t,r);default:throw new Error(A||"undefined shape")}}function Wl(t,e){let[r,A]=LF(t,e),i=ua(r,A);return i.byteLength=t.byteLength,i}function LF(t,e){let r=[],A={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,A];let i=new Ki(new Zl.default(t));return (e&&Array.isArray(e.layers)?e.layers:Object.keys(i.layers)).forEach(d=>{let m=i.layers[d];if(m)for(let y=0;y<m.length;y++){let _=m.getBinaryFeature(y,A),E=DF(_,e,d);r.push(E);}}),[r,A]}function Z1(t,e){if(t.byteLength<=0)return [];let r=[],A=new Ki(new Zl.default(t));return (Array.isArray(e.layers)?e.layers:Object.keys(A.layers)).forEach(c=>{let d=A.layers[c];if(d)for(let m=0;m<d.length;m++){let y=d.getGeoJSONFeature(m),_=PF(y,e,c);r.push(_);}}),r}function RF(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&&Eo$1.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function PF(t,e,r){let A=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(A.properties||={},A.properties[e.layerProperty]=r),A}function DF(t,e,r){let A=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&A.properties&&(A.properties[e.layerProperty]=r),A}var $1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var NF="4.4.4",ga=s$1(r$1({},$1),{dataType:null,batchType:null,version:NF,worker:true,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}});s$1(r$1({},ga),{parse:async(t,e)=>$l(t,e),parseSync:$l,binary:true});var GF={Point:eg,MultiPoint:kF,LineString:tg,MultiLineString:UF,Polygon:rg,MultiPolygon:HF};function eg([t,e],[r,A],i){let c=ht(r[0],A[0],t),d=ht(r[1],A[1],e);return i.unprojectFlat([c,d])}function eu(t,e,r){return t.map(A=>eg(A,e,r))}function kF(t,e,r){return eu(t,e,r)}function tg(t,e,r){return eu(t,e,r)}function UF(t,e,r){return t.map(A=>tg(A,e,r))}function rg(t,e,r){return t.map(A=>eu(A,e,r))}function HF(t,e,r){return t.map(A=>rg(A,e,r))}function ng(t,e,r){let A=r.projectFlat([e.west,e.north]),i=r.projectFlat([e.east,e.south]),c=[A,i];return s$1(r$1({},t),{coordinates:GF[t.type](t.coordinates,c,r)})}var VF=["points","lines","polygons"];function tu(t,e,r,A){for(let i of VF){let c=t[i]&&jF(t[i],e,r,A);if(c>=0)return c}return -1}function jF(t,e,r,A){let i=t.featureIds.value;if(!i.length)return -1;let c=0,d=i[i.length-1]+1;if(A){let y=QF(t,A);if(y)c=y[0],d=y[1]+1;else return -1}let m=-1;if(e in t.numericProps){let y=t.numericProps[e].value.findIndex((_,E)=>_===r&&i[E]>=c&&i[E]<d);return y>=0?t.globalFeatureIds.value[y]:-1}else e?m=Ag(t.properties,y=>y[e]===r,c,d):t.fields&&(m=Ag(t.fields,y=>y.id===r,c,d));return m>=0?zF(t,m):-1}function QF(t,e){if(!t.__layers){let r={},{properties:A}=t;for(let i=0;i<A.length;i++){let{layerName:c}=A[i];c&&(r[c]?r[c][1]=i:r[c]=[i,i]);}t.__layers=r;}return t.__layers[e]}function zF(t,e){if(!t.__ids){let r=[],A=t.featureIds.value,i=t.globalFeatureIds.value;for(let c=0;c<A.length;c++)r[A[c]]=i[c];t.__ids=r;}return t.__ids[e]}function Ag(t,e,r,A){for(let i=r;i<A;i++)if(e(t[i],i))return i;return -1}var ru=512,JF=s$1(r$1({},Ks$1.defaultProps),{data:mn,onDataLoad:{type:"function",value:null,optional:true,compare:false},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[ga],binary:true}),qF=(()=>{class t extends BA{initializeState(){super.initializeState();let r=this.context.viewport.resolution!==void 0?false:this.props.binary;this.setState({binary:r,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null});}get isLoaded(){return !!(this.state?.data&&super.isLoaded)}updateState({props:r,oldProps:A,context:i,changeFlags:c}){c.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:r,oldProps:A,context:i,changeFlags:c}),this._setWGS84PropertyForTiles());let{highlightColor:d}=r;d!==A.highlightColor&&Array.isArray(d)&&this.setState({highlightColor:d});}async _updateTileData(){let r=this.props.data,A=null;if(typeof r=="string"&&!lc(r)){let{onDataLoad:i,fetch:c}=this.props;this.setState({data:null,tileJSON:null});try{A=await c(r,{propName:"data",layer:this,loaders:[]});}catch(d){this.raiseError(d,"loading TileJSON"),r=null;}i&&i(A,{propName:"data",layer:this});}else r&&typeof r=="object"&&"tilejson"in r&&(A=r);A&&(r=A.tiles),this.setState({data:r,tileJSON:A});}_getTilesetOptions(){let r=super._getTilesetOptions(),A=this.state.tileJSON,{minZoom:i,maxZoom:c}=this.props;return A&&(Number.isFinite(A.minzoom)&&A.minzoom>i&&(r.minZoom=A.minzoom),Number.isFinite(A.maxzoom)&&(!Number.isFinite(c)||A.maxzoom<c)&&(r.maxZoom=A.maxzoom)),r}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(r){let{data:A,binary:i}=this.state,{index:c,signal:d}=r,m=$r(A,r);if(!m)return Promise.reject("Invalid URL");let y=this.getLoadOptions(),{fetch:_}=this.props;return y=s$1(r$1({},y),{core:s$1(r$1({},y?.core),{mimeType:"application/x-protobuf"}),mvt:s$1(r$1({},y?.mvt),{shape:i?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:c})}),_(m,{propName:"data",layer:this,loadOptions:y,signal:d})}renderSubLayers(r){let{x:A,y:i,z:c}=r.tile.index,d=Math.pow(2,c),m=ru/d,y=-m,_=ru*A/d,E=ru*(1-i/d),x=new D().scale([m,y,1]);r.autoHighlight=false,this.context.viewport.resolution||(r.modelMatrix=x,r.coordinateOrigin=[_,E,0],r.coordinateSystem=pa$1.CARTESIAN,r.extensions=[...r.extensions||[],new jl]);let v=super.renderSubLayers(r);return this.state.binary&&!(v instanceof Ks$1)&&C.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),v}_updateAutoHighlight(r){let{uniqueIdProperty:A}=this.props,{hoveredFeatureId:i,hoveredFeatureLayerName:c}=this.state,d=r.object,m=null,y=null;d&&(m=nu(d,A),y=ig(d));let{highlightColor:_}=this.props;typeof _=="function"&&(_=_(r)),(i!==m||c!==y)&&this.setState({highlightColor:_,hoveredFeatureId:m,hoveredFeatureLayerName:y});}_isWGS84(){return !!this.context.viewport.resolution}getPickingInfo(r){let A=super.getPickingInfo(r);if(this.state.binary&&A.index!==-1){let{data:i}=r.sourceLayer.props;A.object=qi(i,{globalFeatureId:A.index});}return A.object&&!this._isWGS84()&&(A.object=og(A.object,A.tile.bbox,this.context.viewport)),A}getSubLayerPropsByTile(r){return {highlightedObjectIndex:this.getHighlightedObjectIndex(r),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(r){let{hoveredFeatureId:A,hoveredFeatureLayerName:i,binary:c}=this.state,{uniqueIdProperty:d,highlightedFeatureId:m}=this.props,y=r.content,_=sg(m);if(!(sg(A)||_))return -1;let x=_?m:A;return Array.isArray(y)?y.findIndex(v=>{let F=nu(v,d)===x,N=_||ig(v)===i;return F&&N}):y&&c?tu(y,d,x,_?"":i):-1}_pickObjects(r){let{deck:A,viewport:i}=this.context,c=i.width,d=i.height,m=i.x,y=i.y,_=[this.id];return A.pickObjects({x:m,y,width:c,height:d,layerIds:_,maxObjects:r})}getRenderedFeatures(r=null){let A=this._pickObjects(r),i=new Set,c=[];for(let d of A){let m=nu(d.object,this.props.uniqueIdProperty);m===void 0?c.push(d.object):i.has(m)||(i.add(m),c.push(d.object));}return c}_setWGS84PropertyForTiles(){let r="dataInWGS84";this.state.tileset.selectedTiles.forEach(i=>{i.hasOwnProperty(r)||Object.defineProperty(i,r,{get:()=>{if(!i.content)return null;if(this.state.binary&&Array.isArray(i.content)&&!i.content.length)return [];let{bbox:c}=i;if(i._contentWGS84===void 0&&uc(c)){let d=this.state.binary?qi(i.content):i.content;i._contentWGS84=d.map(m=>og(m,c,this.context.viewport));}return i._contentWGS84}});});}}return t.layerName="MVTLayer",t.defaultProps=JF,t})(),KF=qF;function nu(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function ig(t){return t.properties?.layerName||null}function sg(t){return t!=null&&t!==""}function og(t,e,r){let A=s$1(r$1({},t),{geometry:{type:t.geometry.type}});return Object.defineProperty(A.geometry,"coordinates",{get:()=>ng(t.geometry,e,r).coordinates}),A}var ag="0123456789bcdefghjkmnpqrstuvwxyz",cg={};for(let t=0;t<ag.length;t++)cg[ag.charAt(t)]=t;var XF=-90,YF=90,WF=-180,ZF=180;function $F(t){let e=true,r=YF,A=XF,i=ZF,c=WF,d,m=0;for(let y=0,_=t.length;y<_;y++){let E=t[y].toLowerCase();m=cg[E];for(let x=4;x>=0;x--){let v=m>>x&1;e?(d=(i+c)/2,v===1?c=d:i=d):(d=(r+A)/2,v===1?A=d:r=d),e=!e;}}return [A,c,r,i]}function lg(t){let[e,r,A,i]=$F(t);return [i,A,i,e,r,e,r,A,i,A]}var eL={getGeohash:{type:"accessor",value:t=>t.geohash}},tL=(()=>{class t extends Sr{indexToBounds(){let{data:r,getGeohash:A}=this.props;return {data:r,_normalize:false,positionFormat:"XY",getPolygon:(i,c)=>lg(A(i,c))}}}return t.layerName="GeohashLayer",t.defaultProps=eL,t})(),rL=tL;/*! Bundled license information:
|
|
477
|
-
|
|
478
|
-
long/dist/long.js:
|
|
479
|
-
(**
|
|
480
|
-
* @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
481
|
-
* Released under the Apache License, Version 2.0
|
|
482
|
-
* see: https://github.com/dcodeIO/long.js for details
|
|
483
|
-
*)
|
|
484
|
-
|
|
485
|
-
ieee754/index.js:
|
|
486
|
-
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
487
|
-
|
|
488
|
-
long/index.js:
|
|
489
|
-
(**
|
|
490
|
-
* @license
|
|
491
|
-
* Copyright 2009 The Closure Library Authors
|
|
492
|
-
* Copyright 2020 Daniel Wirtz / The long.js Authors.
|
|
493
|
-
*
|
|
494
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
495
|
-
* you may not use this file except in compliance with the License.
|
|
496
|
-
* You may obtain a copy of the License at
|
|
497
|
-
*
|
|
498
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
499
|
-
*
|
|
500
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
501
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
502
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
503
|
-
* See the License for the specific language governing permissions and
|
|
504
|
-
* limitations under the License.
|
|
505
|
-
*
|
|
506
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
507
|
-
*)
|
|
508
|
-
*/export{Hx as A5Layer,rL as GeohashLayer,Cw as GreatCircleLayer,SB as H3ClusterLayer,hc as H3HexagonLayer,KF as MVTLayer,kw as QuadkeyLayer,Dw as S2Layer,UI as TerrainLayer,TI as Tile3DLayer,BA as TileLayer,EB as TripsLayer,Sr as _GeoCellLayer,EA as _Tile2DHeader,wA as _Tileset2D,bw as _WMSLayer,$r as _getURLFromTemplate};
|