@jdultra/threedtiles 13.1.4 → 13.1.5

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.
@@ -2,7 +2,7 @@ var Zt = Object.defineProperty;
2
2
  var $t = (c, e, a) => e in c ? Zt(c, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : c[e] = a;
3
3
  var ge = (c, e, a) => $t(c, typeof e != "symbol" ? e + "" : e, a);
4
4
  import * as E from "three";
5
- import { Matrix3 as Fa, Vector3 as D, Box3 as Ra, Matrix4 as Se, Ray as eA, BufferGeometry as ea, LineBasicMaterial as It, LineSegments as mt, BufferAttribute as he, TrianglesDrawMode as aA, TriangleFanDrawMode as ya, TriangleStripDrawMode as Bt, Loader as Ma, LoaderUtils as Le, FileLoader as Ce, Color as le, LinearSRGBColorSpace as K, SpotLight as tA, PointLight as AA, DirectionalLight as iA, MeshBasicMaterial as Ge, SRGBColorSpace as re, MeshPhysicalMaterial as ae, Vector2 as Ct, Quaternion as pt, InstancedMesh as sA, InstancedBufferAttribute as wa, Object3D as Et, TextureLoader as rA, ImageBitmapLoader as nA, InterleavedBuffer as oA, InterleavedBufferAttribute as cA, LinearFilter as Be, LinearMipmapLinearFilter as $e, RepeatWrapping as ka, NearestFilter as v, PointsMaterial as bA, Material as ta, MeshStandardMaterial as Ha, DoubleSide as dA, PropertyBinding as hA, SkinnedMesh as lA, Mesh as xa, Line as gA, LineLoop as fA, Points as uA, Group as Aa, PerspectiveCamera as IA, MathUtils as mA, OrthographicCamera as Qt, Skeleton as BA, AnimationClip as CA, Bone as pA, InterpolateLinear as yt, ColorManagement as ja, NearestMipmapNearestFilter as EA, LinearMipmapNearestFilter as QA, NearestMipmapLinearFilter as yA, ClampToEdgeWrapping as wA, MirroredRepeatWrapping as kA, InterpolateDiscrete as xA, FrontSide as Ze, Texture as Na, VectorKeyframeTrack as La, NumberKeyframeTrack as Oa, QuaternionKeyframeTrack as Pa, Sphere as jA, Interpolant as SA, CompressedCubeTexture as DA, CompressedArrayTexture as vA, CompressedTexture as Ja, RGBAFormat as ee, RGBA_ASTC_4x4_Format as wt, RGB_BPTC_UNSIGNED_Format as FA, RGBA_BPTC_Format as RA, RGBA_ETC2_EAC_Format as MA, RGBA_PVRTC_4BPPV1_Format as TA, RGBA_S3TC_DXT5_Format as GA, RGB_ETC1_Format as UA, RGB_ETC2_Format as HA, RGB_PVRTC_4BPPV1_Format as NA, RGBA_S3TC_DXT1_Format as LA, UnsignedByteType as X, HalfFloatType as ke, FloatType as R, DataTexture as Ue, Data3DTexture as OA, NoColorSpace as PA, RGFormat as He, RedFormat as Ne, RGBA_ASTC_6x6_Format as qa, WebGL3DRenderTarget as ne, ShaderMaterial as ia, InstancedBufferGeometry as _a, DynamicDrawUsage as Ka, Scene as JA, PlaneGeometry as qA } from "three";
5
+ import { Matrix3 as Fa, Vector3 as D, Box3 as Ra, Matrix4 as Se, Ray as eA, BufferGeometry as ea, LineBasicMaterial as It, LineSegments as mt, BufferAttribute as he, TrianglesDrawMode as aA, TriangleFanDrawMode as ya, TriangleStripDrawMode as Bt, Loader as Ma, LoaderUtils as Le, FileLoader as Ce, Color as le, LinearSRGBColorSpace as K, SpotLight as tA, PointLight as AA, DirectionalLight as iA, MeshBasicMaterial as Ue, SRGBColorSpace as re, MeshPhysicalMaterial as ae, Vector2 as Ct, Quaternion as pt, InstancedMesh as sA, InstancedBufferAttribute as wa, Object3D as Et, TextureLoader as rA, ImageBitmapLoader as nA, InterleavedBuffer as oA, InterleavedBufferAttribute as cA, LinearFilter as Be, LinearMipmapLinearFilter as $e, RepeatWrapping as ka, NearestFilter as v, PointsMaterial as bA, Material as ta, MeshStandardMaterial as Ha, DoubleSide as dA, PropertyBinding as hA, SkinnedMesh as lA, Mesh as xa, Line as gA, LineLoop as fA, Points as uA, Group as Aa, PerspectiveCamera as IA, MathUtils as mA, OrthographicCamera as Qt, Skeleton as BA, AnimationClip as CA, Bone as pA, InterpolateLinear as yt, ColorManagement as ja, NearestMipmapNearestFilter as EA, LinearMipmapNearestFilter as QA, NearestMipmapLinearFilter as yA, ClampToEdgeWrapping as wA, MirroredRepeatWrapping as kA, InterpolateDiscrete as xA, FrontSide as Ze, Texture as Na, VectorKeyframeTrack as La, NumberKeyframeTrack as Oa, QuaternionKeyframeTrack as Pa, Sphere as jA, Interpolant as SA, CompressedCubeTexture as DA, CompressedArrayTexture as vA, CompressedTexture as Ja, RGBAFormat as ee, RGBA_ASTC_4x4_Format as wt, RGB_BPTC_UNSIGNED_Format as FA, RGBA_BPTC_Format as RA, RGBA_ETC2_EAC_Format as MA, RGBA_PVRTC_4BPPV1_Format as TA, RGBA_S3TC_DXT5_Format as UA, RGB_ETC1_Format as GA, RGB_ETC2_Format as HA, RGB_PVRTC_4BPPV1_Format as NA, RGBA_S3TC_DXT1_Format as LA, UnsignedByteType as X, HalfFloatType as ke, FloatType as R, DataTexture as Ge, Data3DTexture as OA, NoColorSpace as PA, RGFormat as He, RedFormat as Ne, RGBA_ASTC_6x6_Format as qa, WebGL3DRenderTarget as ne, ShaderMaterial as ia, InstancedBufferGeometry as _a, DynamicDrawUsage as Ka, Scene as JA, PlaneGeometry as qA } from "three";
6
6
  class es {
7
7
  constructor() {
8
8
  this.cullMap = [], this.cullMaterial = new E.MeshBasicMaterial({ vertexColors: !0 }), this.cullMaterial.side = E.FrontSide, this.cullTarget = this._createCullTarget(), this.cullPixels = new Uint8Array(4 * this.cullTarget.width * this.cullTarget.height);
@@ -26,7 +26,7 @@ class es {
26
26
  return this.cullMap[e];
27
27
  }
28
28
  }
29
- const _ = new Fa(), U = new D(), za = new D(), Va = new Ra(), Ke = new Se(), Ya = new Se(), Wa = new eA();
29
+ const _ = new Fa(), G = new D(), za = new D(), Va = new Ra(), Ke = new Se(), Ya = new Se(), Wa = new eA();
30
30
  class $ {
31
31
  constructor(e) {
32
32
  this.center = new D(e[0], e[1], e[2]), this.e1 = new D(e[3], e[4], e[5]), this.e2 = new D(e[6], e[7], e[8]), this.e3 = new D(e[9], e[10], e[11]), this.halfSize = new D(this.e1.length(), this.e2.length(), this.e3.length()), this.e1.normalize(), this.e2.normalize(), this.e3.normalize(), this.rotationMatrix = new Fa(), this.rotationMatrix.set(this.e1.x, this.e2.x, this.e3.x, this.e1.y, this.e2.y, this.e3.y, this.e1.z, this.e2.z, this.e3.z);
@@ -39,17 +39,17 @@ class $ {
39
39
  }
40
40
  applyMatrix4(e) {
41
41
  const a = e.elements;
42
- let t = U.set(a[0], a[1], a[2]).length();
43
- const A = U.set(a[4], a[5], a[6]).length(), i = U.set(a[8], a[9], a[10]).length();
42
+ let t = G.set(a[0], a[1], a[2]).length();
43
+ const A = G.set(a[4], a[5], a[6]).length(), i = G.set(a[8], a[9], a[10]).length();
44
44
  e.determinant() < 0 && (t = -t), _.setFromMatrix4(e);
45
45
  const s = 1 / t, r = 1 / A, o = 1 / i;
46
- return _.elements[0] *= s, _.elements[1] *= s, _.elements[2] *= s, _.elements[3] *= r, _.elements[4] *= r, _.elements[5] *= r, _.elements[6] *= o, _.elements[7] *= o, _.elements[8] *= o, this.rotationMatrix.multiply(_), this.halfSize.x *= t, this.halfSize.y *= A, this.halfSize.z *= i, U.setFromMatrixPosition(e), this.center.applyMatrix4(e), this.rotationMatrix.extractBasis(this.e1, this.e2, this.e3), this;
46
+ return _.elements[0] *= s, _.elements[1] *= s, _.elements[2] *= s, _.elements[3] *= r, _.elements[4] *= r, _.elements[5] *= r, _.elements[6] *= o, _.elements[7] *= o, _.elements[8] *= o, this.rotationMatrix.multiply(_), this.halfSize.x *= t, this.halfSize.y *= A, this.halfSize.z *= i, G.setFromMatrixPosition(e), this.center.applyMatrix4(e), this.rotationMatrix.extractBasis(this.e1, this.e2, this.e3), this;
47
47
  }
48
48
  intersectRay(e, a) {
49
- return this.getSize(za), Va.setFromCenterAndSize(U.set(0, 0, 0), za), Ke.setFromMatrix3(this.rotationMatrix), Ke.setPosition(this.center), Ya.copy(Ke).invert(), Wa.copy(e).applyMatrix4(Ya), Wa.intersectBox(Va, a) ? a.applyMatrix4(Ke) : null;
49
+ return this.getSize(za), Va.setFromCenterAndSize(G.set(0, 0, 0), za), Ke.setFromMatrix3(this.rotationMatrix), Ke.setPosition(this.center), Ya.copy(Ke).invert(), Wa.copy(e).applyMatrix4(Ya), Wa.intersectBox(Va, a) ? a.applyMatrix4(Ke) : null;
50
50
  }
51
51
  intersectsRay(e) {
52
- return this.intersectRay(e, U) !== null;
52
+ return this.intersectRay(e, G) !== null;
53
53
  }
54
54
  insidePlane(e) {
55
55
  e.normal.normalize();
@@ -64,8 +64,8 @@ class $ {
64
64
  return !0;
65
65
  }
66
66
  distanceToPoint(e) {
67
- U.copy(e), U.sub(this.center), U.applyMatrix3(this.rotationMatrix);
68
- let a = Math.max(0, Math.max(-this.halfSize.x - U.x, U.x - this.halfSize.x)), t = Math.max(0, Math.max(-this.halfSize.y - U.y, U.y - this.halfSize.y)), A = Math.max(0, Math.max(-this.halfSize.z - U.z, U.z - this.halfSize.z));
67
+ G.copy(e), G.sub(this.center), G.applyMatrix3(this.rotationMatrix);
68
+ let a = Math.max(0, Math.max(-this.halfSize.x - G.x, G.x - this.halfSize.x)), t = Math.max(0, Math.max(-this.halfSize.y - G.y, G.y - this.halfSize.y)), A = Math.max(0, Math.max(-this.halfSize.z - G.z, G.z - this.halfSize.z));
69
69
  return Math.sqrt(a * a + t * t + A * A);
70
70
  }
71
71
  helper() {
@@ -191,10 +191,10 @@ class xt {
191
191
  if (s instanceof Object) {
192
192
  if (Array.isArray(s)) return s;
193
193
  {
194
- const { buffer: r, binOffset: o, binLength: n } = this, d = s.byteOffset || 0, b = s.type || A, g = s.componentType || t;
194
+ const { buffer: r, binOffset: o, binLength: n } = this, b = s.byteOffset || 0, d = s.type || A, g = s.componentType || t;
195
195
  if ("type" in s && A && s.type !== A) throw new Error("FeatureTable: Specified type does not match expected type.");
196
196
  let l, h;
197
- switch (b) {
197
+ switch (d) {
198
198
  case "SCALAR":
199
199
  l = 1;
200
200
  break;
@@ -210,7 +210,7 @@ class xt {
210
210
  default:
211
211
  throw new Error(`FeatureTable : Feature type not provided for "${e}".`);
212
212
  }
213
- const f = o + d, I = a * l;
213
+ const f = o + b, I = a * l;
214
214
  switch (g) {
215
215
  case "BYTE":
216
216
  h = new Int8Array(r, f, I);
@@ -257,25 +257,25 @@ class KA extends xt {
257
257
  function Xa(c) {
258
258
  let e, a, t, A = -1, i = 0;
259
259
  for (let n = 0; n < c.length; ++n) {
260
- const d = c[n];
261
- if (e === void 0 && (e = d.array.constructor), e !== d.array.constructor) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
262
- if (a === void 0 && (a = d.itemSize), a !== d.itemSize) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
263
- if (t === void 0 && (t = d.normalized), t !== d.normalized) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
264
- if (A === -1 && (A = d.gpuType), A !== d.gpuType) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
265
- i += d.count * a;
260
+ const b = c[n];
261
+ if (e === void 0 && (e = b.array.constructor), e !== b.array.constructor) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."), null;
262
+ if (a === void 0 && (a = b.itemSize), a !== b.itemSize) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."), null;
263
+ if (t === void 0 && (t = b.normalized), t !== b.normalized) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."), null;
264
+ if (A === -1 && (A = b.gpuType), A !== b.gpuType) return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."), null;
265
+ i += b.count * a;
266
266
  }
267
267
  const s = new e(i), r = new he(s, a, t);
268
268
  let o = 0;
269
269
  for (let n = 0; n < c.length; ++n) {
270
- const d = c[n];
271
- if (d.isInterleavedBufferAttribute) {
272
- const b = o / a;
273
- for (let g = 0, l = d.count; g < l; g++) for (let h = 0; h < a; h++) {
274
- const f = d.getComponent(g, h);
275
- r.setComponent(g + b, h, f);
270
+ const b = c[n];
271
+ if (b.isInterleavedBufferAttribute) {
272
+ const d = o / a;
273
+ for (let g = 0, l = b.count; g < l; g++) for (let h = 0; h < a; h++) {
274
+ const f = b.getComponent(g, h);
275
+ r.setComponent(g + d, h, f);
276
276
  }
277
- } else s.set(d.array, o);
278
- o += d.count * a;
277
+ } else s.set(b.array, o);
278
+ o += b.count * a;
279
279
  }
280
280
  return A !== void 0 && (r.gpuType = A), r;
281
281
  }
@@ -312,14 +312,14 @@ class jt {
312
312
  console.assert(r === "b3dm");
313
313
  const o = s.getUint32(8, !0);
314
314
  console.assert(o === e.byteLength);
315
- const n = s.getUint32(12, !0), d = s.getUint32(16, !0), b = s.getUint32(20, !0), g = s.getUint32(24, !0), l = new xt(e, 28, n, d), h = 28 + n + d;
316
- new KA(e, l.getData("BATCH_LENGTH"), h, b, g);
317
- const f = h + b + g, I = new Uint8Array(e, f, o - f).slice().buffer;
315
+ const n = s.getUint32(12, !0), b = s.getUint32(16, !0), d = s.getUint32(20, !0), g = s.getUint32(24, !0), l = new xt(e, 28, n, b), h = 28 + n + b;
316
+ new KA(e, l.getData("BATCH_LENGTH"), h, d, g);
317
+ const f = h + d + g, I = new Uint8Array(e, f, o - f).slice().buffer;
318
318
  return new Promise(async (m, u) => {
319
319
  await this.checkLoaderInitialized(), this.gltfLoader.parse(I, null, (C) => {
320
320
  const B = l.getData("RTC_CENTER");
321
- B ? (this.tempMatrix.makeTranslation(B[0], B[1], B[2]), C.scene.applyMatrix4(this.tempMatrix)) : C.userData.gltfExtensions && C.userData.gltfExtensions.CESIUM_RTC && (this.tempMatrix.makeTranslation(C.userData.gltfExtensions.CESIUM_RTC.center[0], C.userData.gltfExtensions.CESIUM_RTC.center[1], C.userData.gltfExtensions.CESIUM_RTC.center[2]), C.scene.applyMatrix4(this.tempMatrix)), t && C.scene.applyMatrix4(i.zUpToYUpMatrix), C.scene.asset = C.asset, C.scene.traverse((y) => {
322
- y.isMesh && (A && y.applyMatrix4(i.zUpToYUpMatrix), a && a(y));
321
+ B ? (this.tempMatrix.makeTranslation(B[0], B[1], B[2]), C.scene.applyMatrix4(this.tempMatrix)) : C.userData.gltfExtensions && C.userData.gltfExtensions.CESIUM_RTC && (this.tempMatrix.makeTranslation(C.userData.gltfExtensions.CESIUM_RTC.center[0], C.userData.gltfExtensions.CESIUM_RTC.center[1], C.userData.gltfExtensions.CESIUM_RTC.center[2]), C.scene.applyMatrix4(this.tempMatrix)), t && C.scene.applyMatrix4(i.zUpToYUpMatrix), C.scene.asset = C.asset, C.scene.traverse((w) => {
322
+ w.isMesh && (A && w.applyMatrix4(i.zUpToYUpMatrix), a && a(w));
323
323
  }), m(C.scene);
324
324
  }, (C) => {
325
325
  console.error(C);
@@ -329,14 +329,14 @@ class jt {
329
329
  parseB3DMInstanced(e, a, t, A, i) {
330
330
  return this.parseB3DM(e, a, A, i).then((s) => {
331
331
  let r, o = [], n = [];
332
- s.updateWorldMatrix(!1, !0), s.traverse((b) => {
333
- b.isMesh && (b.geometry.applyMatrix4(b.matrixWorld), o.push(b.geometry), n.push(b.material));
332
+ s.updateWorldMatrix(!1, !0), s.traverse((d) => {
333
+ d.isMesh && (d.geometry.applyMatrix4(d.matrixWorld), o.push(d.geometry), n.push(d.material));
334
334
  });
335
- let d = function(b) {
335
+ let b = function(d) {
336
336
  let g = /* @__PURE__ */ new Set();
337
- return b.forEach((h) => {
337
+ return d.forEach((h) => {
338
338
  for (let f in h.attributes) g.add(f);
339
- }), b.forEach((h) => {
339
+ }), d.forEach((h) => {
340
340
  g.forEach((f) => {
341
341
  if (!h.attributes[f]) {
342
342
  const I = function(u) {
@@ -356,8 +356,8 @@ class jt {
356
356
  }
357
357
  });
358
358
  }), function(h, f = !1) {
359
- const I = h[0].index !== null, m = new Set(Object.keys(h[0].attributes)), u = new Set(Object.keys(h[0].morphAttributes)), C = {}, B = {}, y = h[0].morphTargetsRelative, k = new ea();
360
- let w = 0;
359
+ const I = h[0].index !== null, m = new Set(Object.keys(h[0].attributes)), u = new Set(Object.keys(h[0].morphAttributes)), C = {}, B = {}, w = h[0].morphTargetsRelative, k = new ea();
360
+ let y = 0;
361
361
  for (let p = 0; p < h.length; ++p) {
362
362
  const Q = h[p];
363
363
  let x = 0;
@@ -367,7 +367,7 @@ class jt {
367
367
  C[j] === void 0 && (C[j] = []), C[j].push(Q.attributes[j]), x++;
368
368
  }
369
369
  if (x !== m.size) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + p + ". Make sure all geometries have the same number of attributes."), null;
370
- if (y !== Q.morphTargetsRelative) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + p + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
370
+ if (w !== Q.morphTargetsRelative) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + p + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
371
371
  for (const j in Q.morphAttributes) {
372
372
  if (!u.has(j)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + p + ". .morphAttributes must be consistent throughout all geometries."), null;
373
373
  B[j] === void 0 && (B[j] = []), B[j].push(Q.morphAttributes[j]);
@@ -379,7 +379,7 @@ class jt {
379
379
  if (Q.attributes.position === void 0) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + p + ". The geometry must have either an index or a position attribute"), null;
380
380
  j = Q.attributes.position.count;
381
381
  }
382
- k.addGroup(w, j, p), w += j;
382
+ k.addGroup(y, j, p), y += j;
383
383
  }
384
384
  }
385
385
  if (I) {
@@ -410,9 +410,9 @@ class jt {
410
410
  }
411
411
  }
412
412
  return k;
413
- }(b, !0);
413
+ }(d, !0);
414
414
  }(o);
415
- return r = new E.InstancedMesh(d, n, t), r.baseMatrix = new E.Matrix4().identity(), r;
415
+ return r = new E.InstancedMesh(b, n, t), r.baseMatrix = new E.Matrix4().identity(), r;
416
416
  });
417
417
  }
418
418
  }
@@ -451,7 +451,7 @@ class XA {
451
451
  return new Promise(async (s, r) => {
452
452
  await i.checkLoaderInitialized(), i.gltfLoader.parse(e, null, (o) => {
453
453
  o.scene;
454
- const n = o.scene.children[0], d = n.geometry.attributes.position, b = n.geometry.attributes.color, g = n.geometry.attributes.cov_0, l = n.geometry.attributes.cov_1, h = A.addSplatsTile(d, b, g, l);
454
+ const n = o.scene.children[0], b = n.geometry.attributes.position, d = n.geometry.attributes.color, g = n.geometry.attributes.cov_0, l = n.geometry.attributes.cov_1, h = A.addSplatsTile(b, d, g, l);
455
455
  o.scene.traverse((f) => {
456
456
  f.dispose && f.dispose();
457
457
  }), s(h);
@@ -513,11 +513,11 @@ class Dt extends Ma {
513
513
  }, o = new Ce(this.manager);
514
514
  o.setPath(this.path), o.setResponseType("arraybuffer"), o.setRequestHeader(this.requestHeader), o.setWithCredentials(this.withCredentials), o.load(e, function(n) {
515
515
  try {
516
- i.parse(n, s, function(d) {
517
- a(d), i.manager.itemEnd(e);
516
+ i.parse(n, s, function(b) {
517
+ a(b), i.manager.itemEnd(e);
518
518
  }, r);
519
- } catch (d) {
520
- r(d);
519
+ } catch (b) {
520
+ r(b);
521
521
  }
522
522
  }, t, r);
523
523
  }
@@ -544,8 +544,8 @@ class Dt extends Ma {
544
544
  if (o.decode(new Uint8Array(e, 0, 4)) === vt) {
545
545
  try {
546
546
  s[S.KHR_BINARY_GLTF] = new Bi(e);
547
- } catch (d) {
548
- return void (A && A(d));
547
+ } catch (b) {
548
+ return void (A && A(b));
549
549
  }
550
550
  i = JSON.parse(s[S.KHR_BINARY_GLTF].content);
551
551
  } else i = JSON.parse(o.decode(e));
@@ -553,27 +553,27 @@ class Dt extends Ma {
553
553
  if (i.asset === void 0 || i.asset.version[0] < 2) return void (A && A(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));
554
554
  const n = new Fi(i, { path: a || this.resourcePath || "", crossOrigin: this.crossOrigin, requestHeader: this.requestHeader, manager: this.manager, ktx2Loader: this.ktx2Loader, meshoptDecoder: this.meshoptDecoder });
555
555
  n.fileLoader.setRequestHeader(this.requestHeader);
556
- for (let d = 0; d < this.pluginCallbacks.length; d++) {
557
- const b = this.pluginCallbacks[d](n);
558
- b.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[b.name] = b, s[b.name] = !0;
556
+ for (let b = 0; b < this.pluginCallbacks.length; b++) {
557
+ const d = this.pluginCallbacks[b](n);
558
+ d.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[d.name] = d, s[d.name] = !0;
559
559
  }
560
- if (i.extensionsUsed) for (let d = 0; d < i.extensionsUsed.length; ++d) {
561
- const b = i.extensionsUsed[d], g = i.extensionsRequired || [];
562
- switch (b) {
560
+ if (i.extensionsUsed) for (let b = 0; b < i.extensionsUsed.length; ++b) {
561
+ const d = i.extensionsUsed[b], g = i.extensionsRequired || [];
562
+ switch (d) {
563
563
  case S.KHR_MATERIALS_UNLIT:
564
- s[b] = new ei();
564
+ s[d] = new ei();
565
565
  break;
566
566
  case S.KHR_DRACO_MESH_COMPRESSION:
567
- s[b] = new Ci(i, this.dracoLoader);
567
+ s[d] = new Ci(i, this.dracoLoader);
568
568
  break;
569
569
  case S.KHR_TEXTURE_TRANSFORM:
570
- s[b] = new pi();
570
+ s[d] = new pi();
571
571
  break;
572
572
  case S.KHR_MESH_QUANTIZATION:
573
- s[b] = new Ei();
573
+ s[d] = new Ei();
574
574
  break;
575
575
  default:
576
- g.indexOf(b) >= 0 && r[b] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + b + '".');
576
+ g.indexOf(d) >= 0 && r[d] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + d + '".');
577
577
  }
578
578
  }
579
579
  n.setExtensions(s), n.setPlugins(r), n.parse(t, A);
@@ -648,7 +648,7 @@ class ei {
648
648
  this.name = S.KHR_MATERIALS_UNLIT;
649
649
  }
650
650
  getMaterialType() {
651
- return Ge;
651
+ return Ue;
652
652
  }
653
653
  extendParams(e, a, t) {
654
654
  const A = [];
@@ -923,12 +923,12 @@ class fi {
923
923
  return null;
924
924
  }
925
925
  return i.then(function(r) {
926
- const o = A.byteOffset || 0, n = A.byteLength || 0, d = A.count, b = A.byteStride, g = new Uint8Array(r, o, n);
927
- return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(d, b, g, A.mode, A.filter).then(function(l) {
926
+ const o = A.byteOffset || 0, n = A.byteLength || 0, b = A.count, d = A.byteStride, g = new Uint8Array(r, o, n);
927
+ return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(b, d, g, A.mode, A.filter).then(function(l) {
928
928
  return l.buffer;
929
929
  }) : s.ready.then(function() {
930
- const l = new ArrayBuffer(d * b);
931
- return s.decodeGltfBuffer(new Uint8Array(l), d, b, g, A.mode, A.filter), l;
930
+ const l = new ArrayBuffer(b * d);
931
+ return s.decodeGltfBuffer(new Uint8Array(l), b, d, g, A.mode, A.filter), l;
932
932
  });
933
933
  });
934
934
  }
@@ -947,10 +947,10 @@ class ui {
947
947
  const i = t.extensions[this.name].attributes, s = [], r = {};
948
948
  for (const o in i) s.push(this.parser.getDependency("accessor", i[o]).then((n) => (r[o] = n, r[o])));
949
949
  return s.length < 1 ? null : (s.push(this.parser.createNodeMesh(e)), Promise.all(s).then((o) => {
950
- const n = o.pop(), d = n.isGroup ? n.children : [n], b = o[0].count, g = [];
951
- for (const l of d) {
952
- const h = new Se(), f = new D(), I = new pt(), m = new D(1, 1, 1), u = new sA(l.geometry, l.material, b);
953
- for (let C = 0; C < b; C++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, C), r.ROTATION && I.fromBufferAttribute(r.ROTATION, C), r.SCALE && m.fromBufferAttribute(r.SCALE, C), u.setMatrixAt(C, h.compose(f, I, m));
950
+ const n = o.pop(), b = n.isGroup ? n.children : [n], d = o[0].count, g = [];
951
+ for (const l of b) {
952
+ const h = new Se(), f = new D(), I = new pt(), m = new D(1, 1, 1), u = new sA(l.geometry, l.material, d);
953
+ for (let C = 0; C < d; C++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, C), r.ROTATION && I.fromBufferAttribute(r.ROTATION, C), r.SCALE && m.fromBufferAttribute(r.SCALE, C), u.setMatrixAt(C, h.compose(f, I, m));
954
954
  for (const C in r) if (C === "_COLOR_0") {
955
955
  const B = r[C];
956
956
  u.instanceColor = new wa(B.array, B.itemSize, B.normalized);
@@ -993,25 +993,25 @@ class Ci {
993
993
  }
994
994
  decodePrimitive(e, a) {
995
995
  const t = this.json, A = this.dracoLoader, i = e.extensions[this.name].bufferView, s = e.extensions[this.name].attributes, r = {}, o = {}, n = {};
996
- for (const d in s) {
997
- const b = Sa[d] || d.toLowerCase();
998
- r[b] = s[d];
996
+ for (const b in s) {
997
+ const d = Sa[b] || b.toLowerCase();
998
+ r[d] = s[b];
999
999
  }
1000
- for (const d in e.attributes) {
1001
- const b = Sa[d] || d.toLowerCase();
1002
- if (s[d] !== void 0) {
1003
- const g = t.accessors[e.attributes[d]], l = xe[g.componentType];
1004
- n[b] = l.name, o[b] = g.normalized === !0;
1000
+ for (const b in e.attributes) {
1001
+ const d = Sa[b] || b.toLowerCase();
1002
+ if (s[b] !== void 0) {
1003
+ const g = t.accessors[e.attributes[b]], l = xe[g.componentType];
1004
+ n[d] = l.name, o[d] = g.normalized === !0;
1005
1005
  }
1006
1006
  }
1007
- return a.getDependency("bufferView", i).then(function(d) {
1008
- return new Promise(function(b, g) {
1009
- A.decodeDracoFile(d, function(l) {
1007
+ return a.getDependency("bufferView", i).then(function(b) {
1008
+ return new Promise(function(d, g) {
1009
+ A.decodeDracoFile(b, function(l) {
1010
1010
  for (const h in l.attributes) {
1011
1011
  const f = l.attributes[h], I = o[h];
1012
1012
  I !== void 0 && (f.normalized = I);
1013
1013
  }
1014
- b(l);
1014
+ d(l);
1015
1015
  }, r, n, K, g);
1016
1016
  });
1017
1017
  });
@@ -1040,10 +1040,10 @@ class Ft extends SA {
1040
1040
  return a;
1041
1041
  }
1042
1042
  interpolate_(e, a, t, A) {
1043
- const i = this.resultBuffer, s = this.sampleValues, r = this.valueSize, o = 2 * r, n = 3 * r, d = A - a, b = (t - a) / d, g = b * b, l = g * b, h = e * n, f = h - n, I = -2 * l + 3 * g, m = l - g, u = 1 - I, C = m - g + b;
1043
+ const i = this.resultBuffer, s = this.sampleValues, r = this.valueSize, o = 2 * r, n = 3 * r, b = A - a, d = (t - a) / b, g = d * d, l = g * d, h = e * n, f = h - n, I = -2 * l + 3 * g, m = l - g, u = 1 - I, C = m - g + d;
1044
1044
  for (let B = 0; B !== r; B++) {
1045
- const y = s[f + B + r], k = s[f + B + o] * d, w = s[h + B + r], p = s[h + B] * d;
1046
- i[B] = u * y + C * k + I * w + m * p;
1045
+ const w = s[f + B + r], k = s[f + B + o] * b, y = s[h + B + r], p = s[h + B] * b;
1046
+ i[B] = u * w + C * k + I * y + m * p;
1047
1047
  }
1048
1048
  return i;
1049
1049
  }
@@ -1154,7 +1154,7 @@ class Fi {
1154
1154
  const A = t.clone(), i = (s, r) => {
1155
1155
  const o = this.associations.get(s);
1156
1156
  o != null && this.associations.set(r, o);
1157
- for (const [n, d] of s.children.entries()) i(d, r.children[n]);
1157
+ for (const [n, b] of s.children.entries()) i(b, r.children[n]);
1158
1158
  };
1159
1159
  return i(t, A), A.name += "_instance_" + e.uses[a]++, A;
1160
1160
  }
@@ -1272,19 +1272,19 @@ class Fi {
1272
1272
  }
1273
1273
  const i = [];
1274
1274
  return A.bufferView !== void 0 ? i.push(this.getDependency("bufferView", A.bufferView)) : i.push(null), A.sparse !== void 0 && (i.push(this.getDependency("bufferView", A.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", A.sparse.values.bufferView))), Promise.all(i).then(function(s) {
1275
- const r = s[0], o = na[A.type], n = xe[A.componentType], d = n.BYTES_PER_ELEMENT, b = d * o, g = A.byteOffset || 0, l = A.bufferView !== void 0 ? t.bufferViews[A.bufferView].byteStride : void 0, h = A.normalized === !0;
1275
+ const r = s[0], o = na[A.type], n = xe[A.componentType], b = n.BYTES_PER_ELEMENT, d = b * o, g = A.byteOffset || 0, l = A.bufferView !== void 0 ? t.bufferViews[A.bufferView].byteStride : void 0, h = A.normalized === !0;
1276
1276
  let f, I;
1277
- if (l && l !== b) {
1277
+ if (l && l !== d) {
1278
1278
  const m = Math.floor(g / l), u = "InterleavedBuffer:" + A.bufferView + ":" + A.componentType + ":" + m + ":" + A.count;
1279
1279
  let C = a.cache.get(u);
1280
- C || (f = new n(r, m * l, A.count * l / d), C = new oA(f, l / d), a.cache.add(u, C)), I = new cA(C, o, g % l / d, h);
1280
+ C || (f = new n(r, m * l, A.count * l / b), C = new oA(f, l / b), a.cache.add(u, C)), I = new cA(C, o, g % l / b, h);
1281
1281
  } else f = r === null ? new n(A.count * o) : new n(r, g, A.count * o), I = new he(f, o, h);
1282
1282
  if (A.sparse !== void 0) {
1283
- const m = na.SCALAR, u = xe[A.sparse.indices.componentType], C = A.sparse.indices.byteOffset || 0, B = A.sparse.values.byteOffset || 0, y = new u(s[1], C, A.sparse.count * m), k = new n(s[2], B, A.sparse.count * o);
1283
+ const m = na.SCALAR, u = xe[A.sparse.indices.componentType], C = A.sparse.indices.byteOffset || 0, B = A.sparse.values.byteOffset || 0, w = new u(s[1], C, A.sparse.count * m), k = new n(s[2], B, A.sparse.count * o);
1284
1284
  r !== null && (I = new he(I.array.slice(), I.itemSize, I.normalized)), I.normalized = !1;
1285
- for (let w = 0, p = y.length; w < p; w++) {
1286
- const Q = y[w];
1287
- if (I.setX(Q, k[w * o]), o >= 2 && I.setY(Q, k[w * o + 1]), o >= 3 && I.setZ(Q, k[w * o + 2]), o >= 4 && I.setW(Q, k[w * o + 3]), o >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
1285
+ for (let y = 0, p = w.length; y < p; y++) {
1286
+ const Q = w[y];
1287
+ if (I.setX(Q, k[y * o]), o >= 2 && I.setY(Q, k[y * o + 1]), o >= 3 && I.setZ(Q, k[y * o + 2]), o >= 4 && I.setW(Q, k[y * o + 3]), o >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
1288
1288
  }
1289
1289
  I.normalized = h;
1290
1290
  }
@@ -1303,10 +1303,10 @@ class Fi {
1303
1303
  loadTextureImage(e, a, t) {
1304
1304
  const A = this, i = this.json, s = i.textures[e], r = i.images[a], o = (r.uri || r.bufferView) + ":" + s.sampler;
1305
1305
  if (this.textureCache[o]) return this.textureCache[o];
1306
- const n = this.loadImageSource(a, t).then(function(d) {
1307
- d.flipY = !1, d.name = s.name || r.name || "", d.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (d.name = r.uri);
1308
- const b = (i.samplers || {})[s.sampler] || {};
1309
- return d.magFilter = $a[b.magFilter] || Be, d.minFilter = $a[b.minFilter] || $e, d.wrapS = et[b.wrapS] || ka, d.wrapT = et[b.wrapT] || ka, d.generateMipmaps = !d.isCompressedTexture && d.minFilter !== v && d.minFilter !== Be, A.associations.set(d, { textures: e }), d;
1306
+ const n = this.loadImageSource(a, t).then(function(b) {
1307
+ b.flipY = !1, b.name = s.name || r.name || "", b.name === "" && typeof r.uri == "string" && r.uri.startsWith("data:image/") === !1 && (b.name = r.uri);
1308
+ const d = (i.samplers || {})[s.sampler] || {};
1309
+ return b.magFilter = $a[d.magFilter] || Be, b.minFilter = $a[d.minFilter] || $e, b.wrapS = et[d.wrapS] || ka, b.wrapT = et[d.wrapT] || ka, b.generateMipmaps = !b.isCompressedTexture && b.minFilter !== v && b.minFilter !== Be, A.associations.set(b, { textures: e }), b;
1310
1310
  }).catch(function() {
1311
1311
  return null;
1312
1312
  });
@@ -1314,30 +1314,30 @@ class Fi {
1314
1314
  }
1315
1315
  loadImageSource(e, a) {
1316
1316
  const t = this, A = this.json, i = this.options;
1317
- if (this.sourceCache[e] !== void 0) return this.sourceCache[e].then((b) => b.clone());
1317
+ if (this.sourceCache[e] !== void 0) return this.sourceCache[e].then((d) => d.clone());
1318
1318
  const s = A.images[e], r = self.URL || self.webkitURL;
1319
1319
  let o = s.uri || "", n = !1;
1320
- if (s.bufferView !== void 0) o = t.getDependency("bufferView", s.bufferView).then(function(b) {
1320
+ if (s.bufferView !== void 0) o = t.getDependency("bufferView", s.bufferView).then(function(d) {
1321
1321
  n = !0;
1322
- const g = new Blob([b], { type: s.mimeType });
1322
+ const g = new Blob([d], { type: s.mimeType });
1323
1323
  return o = r.createObjectURL(g), o;
1324
1324
  });
1325
1325
  else if (s.uri === void 0) throw new Error("THREE.GLTFLoader: Image " + e + " is missing URI and bufferView");
1326
- const d = Promise.resolve(o).then(function(b) {
1326
+ const b = Promise.resolve(o).then(function(d) {
1327
1327
  return new Promise(function(g, l) {
1328
1328
  let h = g;
1329
1329
  a.isImageBitmapLoader === !0 && (h = function(f) {
1330
1330
  const I = new Na(f);
1331
1331
  I.needsUpdate = !0, g(I);
1332
- }), a.load(Le.resolveURL(b, i.path), h, void 0, l);
1332
+ }), a.load(Le.resolveURL(d, i.path), h, void 0, l);
1333
1333
  });
1334
- }).then(function(b) {
1334
+ }).then(function(d) {
1335
1335
  var g;
1336
- return n === !0 && r.revokeObjectURL(o), se(b, s), b.userData.mimeType = s.mimeType || ((g = s.uri).search(/\.jpe?g($|\?)/i) > 0 || g.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : g.search(/\.webp($|\?)/i) > 0 || g.search(/^data\:image\/webp/) === 0 ? "image/webp" : g.search(/\.ktx2($|\?)/i) > 0 || g.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png"), b;
1337
- }).catch(function(b) {
1338
- throw console.error("THREE.GLTFLoader: Couldn't load texture", o), b;
1336
+ return n === !0 && r.revokeObjectURL(o), se(d, s), d.userData.mimeType = s.mimeType || ((g = s.uri).search(/\.jpe?g($|\?)/i) > 0 || g.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : g.search(/\.webp($|\?)/i) > 0 || g.search(/^data\:image\/webp/) === 0 ? "image/webp" : g.search(/\.ktx2($|\?)/i) > 0 || g.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png"), d;
1337
+ }).catch(function(d) {
1338
+ throw console.error("THREE.GLTFLoader: Couldn't load texture", o), d;
1339
1339
  });
1340
- return this.sourceCache[e] = d, d;
1340
+ return this.sourceCache[e] = b, b;
1341
1341
  }
1342
1342
  assignTexture(e, a, t, A) {
1343
1343
  const i = this;
@@ -1382,33 +1382,33 @@ class Fi {
1382
1382
  let s;
1383
1383
  const r = {}, o = [];
1384
1384
  if ((i.extensions || {})[S.KHR_MATERIALS_UNLIT]) {
1385
- const d = A[S.KHR_MATERIALS_UNLIT];
1386
- s = d.getMaterialType(), o.push(d.extendParams(r, i, a));
1385
+ const b = A[S.KHR_MATERIALS_UNLIT];
1386
+ s = b.getMaterialType(), o.push(b.extendParams(r, i, a));
1387
1387
  } else {
1388
- const d = i.pbrMetallicRoughness || {};
1389
- if (r.color = new le(1, 1, 1), r.opacity = 1, Array.isArray(d.baseColorFactor)) {
1390
- const b = d.baseColorFactor;
1391
- r.color.setRGB(b[0], b[1], b[2], K), r.opacity = b[3];
1388
+ const b = i.pbrMetallicRoughness || {};
1389
+ if (r.color = new le(1, 1, 1), r.opacity = 1, Array.isArray(b.baseColorFactor)) {
1390
+ const d = b.baseColorFactor;
1391
+ r.color.setRGB(d[0], d[1], d[2], K), r.opacity = d[3];
1392
1392
  }
1393
- d.baseColorTexture !== void 0 && o.push(a.assignTexture(r, "map", d.baseColorTexture, re)), r.metalness = d.metallicFactor !== void 0 ? d.metallicFactor : 1, r.roughness = d.roughnessFactor !== void 0 ? d.roughnessFactor : 1, d.metallicRoughnessTexture !== void 0 && (o.push(a.assignTexture(r, "metalnessMap", d.metallicRoughnessTexture)), o.push(a.assignTexture(r, "roughnessMap", d.metallicRoughnessTexture))), s = this._invokeOne(function(b) {
1394
- return b.getMaterialType && b.getMaterialType(e);
1395
- }), o.push(Promise.all(this._invokeAll(function(b) {
1396
- return b.extendMaterialParams && b.extendMaterialParams(e, r);
1393
+ b.baseColorTexture !== void 0 && o.push(a.assignTexture(r, "map", b.baseColorTexture, re)), r.metalness = b.metallicFactor !== void 0 ? b.metallicFactor : 1, r.roughness = b.roughnessFactor !== void 0 ? b.roughnessFactor : 1, b.metallicRoughnessTexture !== void 0 && (o.push(a.assignTexture(r, "metalnessMap", b.metallicRoughnessTexture)), o.push(a.assignTexture(r, "roughnessMap", b.metallicRoughnessTexture))), s = this._invokeOne(function(d) {
1394
+ return d.getMaterialType && d.getMaterialType(e);
1395
+ }), o.push(Promise.all(this._invokeAll(function(d) {
1396
+ return d.extendMaterialParams && d.extendMaterialParams(e, r);
1397
1397
  })));
1398
1398
  }
1399
1399
  i.doubleSided === !0 && (r.side = dA);
1400
1400
  const n = i.alphaMode || ki;
1401
- if (n === ji ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, n === xi && (r.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && s !== Ge && (o.push(a.assignTexture(r, "normalMap", i.normalTexture)), r.normalScale = new Ct(1, 1), i.normalTexture.scale !== void 0)) {
1402
- const d = i.normalTexture.scale;
1403
- r.normalScale.set(d, d);
1401
+ if (n === ji ? (r.transparent = !0, r.depthWrite = !1) : (r.transparent = !1, n === xi && (r.alphaTest = i.alphaCutoff !== void 0 ? i.alphaCutoff : 0.5)), i.normalTexture !== void 0 && s !== Ue && (o.push(a.assignTexture(r, "normalMap", i.normalTexture)), r.normalScale = new Ct(1, 1), i.normalTexture.scale !== void 0)) {
1402
+ const b = i.normalTexture.scale;
1403
+ r.normalScale.set(b, b);
1404
1404
  }
1405
- if (i.occlusionTexture !== void 0 && s !== Ge && (o.push(a.assignTexture(r, "aoMap", i.occlusionTexture)), i.occlusionTexture.strength !== void 0 && (r.aoMapIntensity = i.occlusionTexture.strength)), i.emissiveFactor !== void 0 && s !== Ge) {
1406
- const d = i.emissiveFactor;
1407
- r.emissive = new le().setRGB(d[0], d[1], d[2], K);
1405
+ if (i.occlusionTexture !== void 0 && s !== Ue && (o.push(a.assignTexture(r, "aoMap", i.occlusionTexture)), i.occlusionTexture.strength !== void 0 && (r.aoMapIntensity = i.occlusionTexture.strength)), i.emissiveFactor !== void 0 && s !== Ue) {
1406
+ const b = i.emissiveFactor;
1407
+ r.emissive = new le().setRGB(b[0], b[1], b[2], K);
1408
1408
  }
1409
- return i.emissiveTexture !== void 0 && s !== Ge && o.push(a.assignTexture(r, "emissiveMap", i.emissiveTexture, re)), Promise.all(o).then(function() {
1410
- const d = new s(r);
1411
- return i.name && (d.name = i.name), se(d, i), a.associations.set(d, { materials: e }), i.extensions && fe(A, d, i), d;
1409
+ return i.emissiveTexture !== void 0 && s !== Ue && o.push(a.assignTexture(r, "emissiveMap", i.emissiveTexture, re)), Promise.all(o).then(function() {
1410
+ const b = new s(r);
1411
+ return i.name && (b.name = i.name), se(b, i), a.associations.set(b, { materials: e }), i.extensions && fe(A, b, i), b;
1412
1412
  });
1413
1413
  }
1414
1414
  createUniqueName(e) {
@@ -1424,28 +1424,28 @@ class Fi {
1424
1424
  }
1425
1425
  const s = [];
1426
1426
  for (let r = 0, o = e.length; r < o; r++) {
1427
- const n = e[r], d = Di(n), b = A[d];
1428
- if (b) s.push(b.promise);
1427
+ const n = e[r], b = Di(n), d = A[b];
1428
+ if (d) s.push(d.promise);
1429
1429
  else {
1430
1430
  let g;
1431
- g = n.extensions && n.extensions[S.KHR_DRACO_MESH_COMPRESSION] ? i(n) : at(new ea(), n, a), A[d] = { primitive: n, promise: g }, s.push(g);
1431
+ g = n.extensions && n.extensions[S.KHR_DRACO_MESH_COMPRESSION] ? i(n) : at(new ea(), n, a), A[b] = { primitive: n, promise: g }, s.push(g);
1432
1432
  }
1433
1433
  }
1434
1434
  return Promise.all(s);
1435
1435
  }
1436
1436
  loadMesh(e) {
1437
1437
  const a = this, t = this.json, A = this.extensions, i = t.meshes[e], s = i.primitives, r = [];
1438
- for (let n = 0, d = s.length; n < d; n++) {
1439
- const b = s[n].material === void 0 ? ((o = this.cache).DefaultMaterial === void 0 && (o.DefaultMaterial = new Ha({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: Ze })), o.DefaultMaterial) : this.getDependency("material", s[n].material);
1440
- r.push(b);
1438
+ for (let n = 0, b = s.length; n < b; n++) {
1439
+ const d = s[n].material === void 0 ? ((o = this.cache).DefaultMaterial === void 0 && (o.DefaultMaterial = new Ha({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: Ze })), o.DefaultMaterial) : this.getDependency("material", s[n].material);
1440
+ r.push(d);
1441
1441
  }
1442
1442
  var o;
1443
1443
  return r.push(a.loadGeometries(s)), Promise.all(r).then(function(n) {
1444
- const d = n.slice(0, n.length - 1), b = n[n.length - 1], g = [];
1445
- for (let h = 0, f = b.length; h < f; h++) {
1446
- const I = b[h], m = s[h];
1444
+ const b = n.slice(0, n.length - 1), d = n[n.length - 1], g = [];
1445
+ for (let h = 0, f = d.length; h < f; h++) {
1446
+ const I = d[h], m = s[h];
1447
1447
  let u;
1448
- const C = d[h];
1448
+ const C = b[h];
1449
1449
  if (m.mode === P.TRIANGLES || m.mode === P.TRIANGLE_STRIP || m.mode === P.TRIANGLE_FAN || m.mode === void 0) u = i.isSkinnedMesh === !0 ? new lA(I, C) : new xa(I, C), u.isSkinnedMesh === !0 && u.normalizeSkinWeights(), m.mode === P.TRIANGLE_STRIP ? u.geometry = Za(u.geometry, Bt) : m.mode === P.TRIANGLE_FAN && (u.geometry = Za(u.geometry, ya));
1450
1450
  else if (m.mode === P.LINES) u = new mt(I, C);
1451
1451
  else if (m.mode === P.LINE_STRIP) u = new gA(I, C);
@@ -1475,10 +1475,10 @@ class Fi {
1475
1475
  for (let A = 0, i = a.joints.length; A < i; A++) t.push(this._loadNodeShallow(a.joints[A]));
1476
1476
  return a.inverseBindMatrices !== void 0 ? t.push(this.getDependency("accessor", a.inverseBindMatrices)) : t.push(null), Promise.all(t).then(function(A) {
1477
1477
  const i = A.pop(), s = A, r = [], o = [];
1478
- for (let n = 0, d = s.length; n < d; n++) {
1479
- const b = s[n];
1480
- if (b) {
1481
- r.push(b);
1478
+ for (let n = 0, b = s.length; n < b; n++) {
1479
+ const d = s[n];
1480
+ if (d) {
1481
+ r.push(d);
1482
1482
  const g = new Se();
1483
1483
  i !== null && g.fromArray(i.array, 16 * n), o.push(g);
1484
1484
  } else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', a.joints[n]);
@@ -1487,18 +1487,18 @@ class Fi {
1487
1487
  });
1488
1488
  }
1489
1489
  loadAnimation(e) {
1490
- const a = this.json, t = this, A = a.animations[e], i = A.name ? A.name : "animation_" + e, s = [], r = [], o = [], n = [], d = [];
1491
- for (let b = 0, g = A.channels.length; b < g; b++) {
1492
- const l = A.channels[b], h = A.samplers[l.sampler], f = l.target, I = f.node, m = A.parameters !== void 0 ? A.parameters[h.input] : h.input, u = A.parameters !== void 0 ? A.parameters[h.output] : h.output;
1493
- f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", m)), o.push(this.getDependency("accessor", u)), n.push(h), d.push(f));
1490
+ const a = this.json, t = this, A = a.animations[e], i = A.name ? A.name : "animation_" + e, s = [], r = [], o = [], n = [], b = [];
1491
+ for (let d = 0, g = A.channels.length; d < g; d++) {
1492
+ const l = A.channels[d], h = A.samplers[l.sampler], f = l.target, I = f.node, m = A.parameters !== void 0 ? A.parameters[h.input] : h.input, u = A.parameters !== void 0 ? A.parameters[h.output] : h.output;
1493
+ f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", m)), o.push(this.getDependency("accessor", u)), n.push(h), b.push(f));
1494
1494
  }
1495
- return Promise.all([Promise.all(s), Promise.all(r), Promise.all(o), Promise.all(n), Promise.all(d)]).then(function(b) {
1496
- const g = b[0], l = b[1], h = b[2], f = b[3], I = b[4], m = [];
1495
+ return Promise.all([Promise.all(s), Promise.all(r), Promise.all(o), Promise.all(n), Promise.all(b)]).then(function(d) {
1496
+ const g = d[0], l = d[1], h = d[2], f = d[3], I = d[4], m = [];
1497
1497
  for (let u = 0, C = g.length; u < C; u++) {
1498
- const B = g[u], y = l[u], k = h[u], w = f[u], p = I[u];
1498
+ const B = g[u], w = l[u], k = h[u], y = f[u], p = I[u];
1499
1499
  if (B === void 0) continue;
1500
1500
  B.updateMatrix && B.updateMatrix();
1501
- const Q = t._createAnimationTracks(B, y, k, w, p);
1501
+ const Q = t._createAnimationTracks(B, w, k, y, p);
1502
1502
  if (Q) for (let x = 0; x < Q.length; x++) m.push(Q[x]);
1503
1503
  }
1504
1504
  return new CA(i, void 0, m);
@@ -1518,11 +1518,11 @@ class Fi {
1518
1518
  for (let o = 0, n = s.length; o < n; o++) i.push(a.getDependency("node", s[o]));
1519
1519
  const r = t.skin === void 0 ? Promise.resolve(null) : a.getDependency("skin", t.skin);
1520
1520
  return Promise.all([A, Promise.all(i), r]).then(function(o) {
1521
- const n = o[0], d = o[1], b = o[2];
1522
- b !== null && n.traverse(function(g) {
1523
- g.isSkinnedMesh && g.bind(b, vi);
1521
+ const n = o[0], b = o[1], d = o[2];
1522
+ d !== null && n.traverse(function(g) {
1523
+ g.isSkinnedMesh && g.bind(d, vi);
1524
1524
  });
1525
- for (let g = 0, l = d.length; g < l; g++) n.add(d[g]);
1525
+ for (let g = 0, l = b.length; g < l; g++) n.add(b[g]);
1526
1526
  return n;
1527
1527
  });
1528
1528
  }
@@ -1539,13 +1539,13 @@ class Fi {
1539
1539
  }).forEach(function(n) {
1540
1540
  r.push(n);
1541
1541
  }), this.nodeCache[e] = Promise.all(r).then(function(n) {
1542
- let d;
1543
- if (d = i.isBone === !0 ? new pA() : n.length > 1 ? new Aa() : n.length === 1 ? n[0] : new Et(), d !== n[0]) for (let b = 0, g = n.length; b < g; b++) d.add(n[b]);
1544
- if (i.name && (d.userData.name = i.name, d.name = s), se(d, i), i.extensions && fe(t, d, i), i.matrix !== void 0) {
1545
- const b = new Se();
1546
- b.fromArray(i.matrix), d.applyMatrix4(b);
1547
- } else i.translation !== void 0 && d.position.fromArray(i.translation), i.rotation !== void 0 && d.quaternion.fromArray(i.rotation), i.scale !== void 0 && d.scale.fromArray(i.scale);
1548
- return A.associations.has(d) || A.associations.set(d, {}), A.associations.get(d).nodes = e, d;
1542
+ let b;
1543
+ if (b = i.isBone === !0 ? new pA() : n.length > 1 ? new Aa() : n.length === 1 ? n[0] : new Et(), b !== n[0]) for (let d = 0, g = n.length; d < g; d++) b.add(n[d]);
1544
+ if (i.name && (b.userData.name = i.name, b.name = s), se(b, i), i.extensions && fe(t, b, i), i.matrix !== void 0) {
1545
+ const d = new Se();
1546
+ d.fromArray(i.matrix), b.applyMatrix4(d);
1547
+ } else i.translation !== void 0 && b.position.fromArray(i.translation), i.rotation !== void 0 && b.quaternion.fromArray(i.rotation), i.scale !== void 0 && b.scale.fromArray(i.scale);
1548
+ return A.associations.has(b) || A.associations.set(b, {}), A.associations.get(b).nodes = e, b;
1549
1549
  }), this.nodeCache[e];
1550
1550
  }
1551
1551
  loadScene(e) {
@@ -1554,14 +1554,14 @@ class Fi {
1554
1554
  const s = t.nodes || [], r = [];
1555
1555
  for (let o = 0, n = s.length; o < n; o++) r.push(A.getDependency("node", s[o]));
1556
1556
  return Promise.all(r).then(function(o) {
1557
- for (let n = 0, d = o.length; n < d; n++) i.add(o[n]);
1557
+ for (let n = 0, b = o.length; n < b; n++) i.add(o[n]);
1558
1558
  return A.associations = ((n) => {
1559
- const d = /* @__PURE__ */ new Map();
1560
- for (const [b, g] of A.associations) (b instanceof ta || b instanceof Na) && d.set(b, g);
1561
- return n.traverse((b) => {
1562
- const g = A.associations.get(b);
1563
- g != null && d.set(b, g);
1564
- }), d;
1559
+ const b = /* @__PURE__ */ new Map();
1560
+ for (const [d, g] of A.associations) (d instanceof ta || d instanceof Na) && b.set(d, g);
1561
+ return n.traverse((d) => {
1562
+ const g = A.associations.get(d);
1563
+ g != null && b.set(d, g);
1564
+ }), b;
1565
1565
  })(i), i;
1566
1566
  });
1567
1567
  }
@@ -1584,9 +1584,9 @@ class Fi {
1584
1584
  default:
1585
1585
  t.itemSize === 1 ? n = Oa : n = La;
1586
1586
  }
1587
- const d = A.interpolation !== void 0 ? wi[A.interpolation] : yt, b = this._getArrayFromAccessor(t);
1587
+ const b = A.interpolation !== void 0 ? wi[A.interpolation] : yt, d = this._getArrayFromAccessor(t);
1588
1588
  for (let g = 0, l = o.length; g < l; g++) {
1589
- const h = new n(o[g] + "." + oe[i.path], a.array, b, d);
1589
+ const h = new n(o[g] + "." + oe[i.path], a.array, d, b);
1590
1590
  A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(h), s.push(h);
1591
1591
  }
1592
1592
  return s;
@@ -1624,45 +1624,45 @@ function at(c, e, a) {
1624
1624
  A.push(s);
1625
1625
  }
1626
1626
  return ja.workingColorSpace !== K && "COLOR_0" in t && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ja.workingColorSpace}" not supported.`), se(c, e), function(s, r, o) {
1627
- const n = r.attributes, d = new Ra();
1627
+ const n = r.attributes, b = new Ra();
1628
1628
  if (n.POSITION === void 0) return;
1629
1629
  {
1630
1630
  const l = o.json.accessors[n.POSITION], h = l.min, f = l.max;
1631
1631
  if (h === void 0 || f === void 0) return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
1632
- if (d.set(new D(h[0], h[1], h[2]), new D(f[0], f[1], f[2])), l.normalized) {
1632
+ if (b.set(new D(h[0], h[1], h[2]), new D(f[0], f[1], f[2])), l.normalized) {
1633
1633
  const I = Da(xe[l.componentType]);
1634
- d.min.multiplyScalar(I), d.max.multiplyScalar(I);
1634
+ b.min.multiplyScalar(I), b.max.multiplyScalar(I);
1635
1635
  }
1636
1636
  }
1637
- const b = r.targets;
1638
- if (b !== void 0) {
1637
+ const d = r.targets;
1638
+ if (d !== void 0) {
1639
1639
  const l = new D(), h = new D();
1640
- for (let f = 0, I = b.length; f < I; f++) {
1641
- const m = b[f];
1640
+ for (let f = 0, I = d.length; f < I; f++) {
1641
+ const m = d[f];
1642
1642
  if (m.POSITION !== void 0) {
1643
1643
  const u = o.json.accessors[m.POSITION], C = u.min, B = u.max;
1644
1644
  if (C !== void 0 && B !== void 0) {
1645
1645
  if (h.setX(Math.max(Math.abs(C[0]), Math.abs(B[0]))), h.setY(Math.max(Math.abs(C[1]), Math.abs(B[1]))), h.setZ(Math.max(Math.abs(C[2]), Math.abs(B[2]))), u.normalized) {
1646
- const y = Da(xe[u.componentType]);
1647
- h.multiplyScalar(y);
1646
+ const w = Da(xe[u.componentType]);
1647
+ h.multiplyScalar(w);
1648
1648
  }
1649
1649
  l.max(h);
1650
1650
  } else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
1651
1651
  }
1652
1652
  }
1653
- d.expandByVector(l);
1653
+ b.expandByVector(l);
1654
1654
  }
1655
- s.boundingBox = d;
1655
+ s.boundingBox = b;
1656
1656
  const g = new jA();
1657
- d.getCenter(g.center), g.radius = d.min.distanceTo(d.max) / 2, s.boundingSphere = g;
1657
+ b.getCenter(g.center), g.radius = b.min.distanceTo(b.max) / 2, s.boundingSphere = g;
1658
1658
  }(c, e, a), Promise.all(A).then(function() {
1659
1659
  return e.targets !== void 0 ? function(s, r, o) {
1660
- let n = !1, d = !1, b = !1;
1660
+ let n = !1, b = !1, d = !1;
1661
1661
  for (let f = 0, I = r.length; f < I; f++) {
1662
1662
  const m = r[f];
1663
- if (m.POSITION !== void 0 && (n = !0), m.NORMAL !== void 0 && (d = !0), m.COLOR_0 !== void 0 && (b = !0), n && d && b) break;
1663
+ if (m.POSITION !== void 0 && (n = !0), m.NORMAL !== void 0 && (b = !0), m.COLOR_0 !== void 0 && (d = !0), n && b && d) break;
1664
1664
  }
1665
- if (!n && !d && !b) return Promise.resolve(s);
1665
+ if (!n && !b && !d) return Promise.resolve(s);
1666
1666
  const g = [], l = [], h = [];
1667
1667
  for (let f = 0, I = r.length; f < I; f++) {
1668
1668
  const m = r[f];
@@ -1670,18 +1670,18 @@ function at(c, e, a) {
1670
1670
  const u = m.POSITION !== void 0 ? o.getDependency("accessor", m.POSITION) : s.attributes.position;
1671
1671
  g.push(u);
1672
1672
  }
1673
- if (d) {
1673
+ if (b) {
1674
1674
  const u = m.NORMAL !== void 0 ? o.getDependency("accessor", m.NORMAL) : s.attributes.normal;
1675
1675
  l.push(u);
1676
1676
  }
1677
- if (b) {
1677
+ if (d) {
1678
1678
  const u = m.COLOR_0 !== void 0 ? o.getDependency("accessor", m.COLOR_0) : s.attributes.color;
1679
1679
  h.push(u);
1680
1680
  }
1681
1681
  }
1682
1682
  return Promise.all([Promise.all(g), Promise.all(l), Promise.all(h)]).then(function(f) {
1683
1683
  const I = f[0], m = f[1], u = f[2];
1684
- return n && (s.morphAttributes.position = I), d && (s.morphAttributes.normal = m), b && (s.morphAttributes.color = u), s.morphTargetsRelative = !0, s;
1684
+ return n && (s.morphAttributes.position = I), b && (s.morphAttributes.normal = m), d && (s.morphAttributes.color = u), s.morphTargetsRelative = !0, s;
1685
1685
  });
1686
1686
  }(c, e.targets, a) : c;
1687
1687
  });
@@ -1723,8 +1723,8 @@ class Rt extends Ma {
1723
1723
  if (e.byteLength === 0) throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.");
1724
1724
  }
1725
1725
  let A;
1726
- const i = this.workerNextTaskID++, s = e.byteLength, r = this._getWorker(i, s).then((o) => (A = o, new Promise((n, d) => {
1727
- A._callbacks[i] = { resolve: n, reject: d }, A.postMessage({ type: "decode", id: i, taskConfig: a, buffer: e }, [e]);
1726
+ const i = this.workerNextTaskID++, s = e.byteLength, r = this._getWorker(i, s).then((o) => (A = o, new Promise((n, b) => {
1727
+ A._callbacks[i] = { resolve: n, reject: b }, A.postMessage({ type: "decode", id: i, taskConfig: a, buffer: e }, [e]);
1728
1728
  }))).then((o) => this._createGeometry(o.geometry));
1729
1729
  return r.catch(() => !0).then(() => {
1730
1730
  A && i && this._releaseTask(A, i);
@@ -1802,7 +1802,7 @@ class Rt extends Ma {
1802
1802
  function Ri() {
1803
1803
  let c, e;
1804
1804
  function a(t, A, i, s, r, o) {
1805
- const n = o.num_components(), d = i.num_points() * n, b = d * r.BYTES_PER_ELEMENT, g = function(f, I) {
1805
+ const n = o.num_components(), b = i.num_points() * n, d = b * r.BYTES_PER_ELEMENT, g = function(f, I) {
1806
1806
  switch (I) {
1807
1807
  case Float32Array:
1808
1808
  return f.DT_FLOAT32;
@@ -1819,9 +1819,9 @@ function Ri() {
1819
1819
  case Uint32Array:
1820
1820
  return f.DT_UINT32;
1821
1821
  }
1822
- }(t, r), l = t._malloc(b);
1823
- A.GetAttributeDataArrayForAllPoints(i, o, g, b, l);
1824
- const h = new r(t.HEAPF32.buffer, l, d).slice();
1822
+ }(t, r), l = t._malloc(d);
1823
+ A.GetAttributeDataArrayForAllPoints(i, o, g, d, l);
1824
+ const h = new r(t.HEAPF32.buffer, l, b).slice();
1825
1825
  return t._free(l), { name: s, array: h, itemSize: n };
1826
1826
  }
1827
1827
  onmessage = function(t) {
@@ -1839,7 +1839,7 @@ function Ri() {
1839
1839
  e.then((r) => {
1840
1840
  const o = r.draco, n = new o.Decoder();
1841
1841
  try {
1842
- const d = function(g, l, h, f) {
1842
+ const b = function(g, l, h, f) {
1843
1843
  const I = f.attributeIDs, m = f.attributeTypes;
1844
1844
  let u, C;
1845
1845
  const B = l.GetEncodedGeometryType(h);
@@ -1849,28 +1849,28 @@ function Ri() {
1849
1849
  u = new g.PointCloud(), C = l.DecodeArrayToPointCloud(h, h.byteLength, u);
1850
1850
  }
1851
1851
  if (!C.ok() || u.ptr === 0) throw new Error("THREE.DRACOLoader: Decoding failed: " + C.error_msg());
1852
- const y = { index: null, attributes: [] };
1852
+ const w = { index: null, attributes: [] };
1853
1853
  for (const k in I) {
1854
- const w = self[m[k]];
1854
+ const y = self[m[k]];
1855
1855
  let p, Q;
1856
1856
  if (f.useUniqueIDs) Q = I[k], p = l.GetAttributeByUniqueId(u, Q);
1857
1857
  else {
1858
1858
  if (Q = l.GetAttributeId(u, g[I[k]]), Q === -1) continue;
1859
1859
  p = l.GetAttribute(u, Q);
1860
1860
  }
1861
- const x = a(g, l, u, k, w, p);
1862
- k === "color" && (x.vertexColorSpace = f.vertexColorSpace), y.attributes.push(x);
1861
+ const x = a(g, l, u, k, y, p);
1862
+ k === "color" && (x.vertexColorSpace = f.vertexColorSpace), w.attributes.push(x);
1863
1863
  }
1864
- return B === g.TRIANGULAR_MESH && (y.index = function(k, w, p) {
1864
+ return B === g.TRIANGULAR_MESH && (w.index = function(k, y, p) {
1865
1865
  const Q = p.num_faces(), x = 3 * Q, j = 4 * x, M = k._malloc(j);
1866
- w.GetTrianglesUInt32Array(p, j, M);
1866
+ y.GetTrianglesUInt32Array(p, j, M);
1867
1867
  const O = new Uint32Array(k.HEAPF32.buffer, M, x).slice();
1868
1868
  return k._free(M), { array: O, itemSize: 1 };
1869
- }(g, l, u)), g.destroy(u), y;
1870
- }(o, n, new Int8Array(i), s), b = d.attributes.map((g) => g.array.buffer);
1871
- d.index && b.push(d.index.array.buffer), self.postMessage({ type: "decode", id: A.id, geometry: d }, b);
1872
- } catch (d) {
1873
- console.error(d), self.postMessage({ type: "error", id: A.id, error: d.message });
1869
+ }(g, l, u)), g.destroy(u), w;
1870
+ }(o, n, new Int8Array(i), s), d = b.attributes.map((g) => g.array.buffer);
1871
+ b.index && d.push(b.index.array.buffer), self.postMessage({ type: "decode", id: A.id, geometry: b }, d);
1872
+ } catch (b) {
1873
+ console.error(b), self.postMessage({ type: "error", id: A.id, error: b.message });
1874
1874
  } finally {
1875
1875
  o.destroy(n);
1876
1876
  }
@@ -1915,7 +1915,7 @@ class Mi {
1915
1915
  this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
1916
1916
  }
1917
1917
  }
1918
- const Mt = 9, Tt = 15, Gt = 16, Ut = 22, Ht = 37, Nt = 43, Lt = 76, Ot = 83, Pt = 97, Jt = 100, qt = 103, _t = 109, Kt = 165, zt = 166, Ta = 1000066e3;
1918
+ const Mt = 9, Tt = 15, Ut = 16, Gt = 22, Ht = 37, Nt = 43, Lt = 76, Ot = 83, Pt = 97, Jt = 100, qt = 103, _t = 109, Kt = 165, zt = 166, Ta = 1000066e3;
1919
1919
  class Ti {
1920
1920
  constructor() {
1921
1921
  this.vkFormat = 0, this.typeSize = 1, this.pixelWidth = 0, this.pixelHeight = 0, this.pixelDepth = 0, this.layerCount = 0, this.faceCount = 1, this.supercompressionScheme = 0, this.levels = [], this.dataFormatDescriptor = [{ vendorId: 0, descriptorType: 0, descriptorBlockSize: 0, versionNumber: 2, colorModel: 0, colorPrimaries: 1, transferFunction: 2, flags: 0, texelBlockDimension: [0, 0, 0, 0], bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0], samples: [] }], this.keyValue = {}, this.globalData = null;
@@ -1968,7 +1968,7 @@ let ba, ie, va;
1968
1968
  const da = { env: { emscripten_notify_memory_growth: function(c) {
1969
1969
  va = new Uint8Array(ie.exports.memory.buffer);
1970
1970
  } } };
1971
- class Gi {
1971
+ class Ui {
1972
1972
  init() {
1973
1973
  return ba || (ba = typeof fetch < "u" ? fetch("data:application/wasm;base64," + At).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, da)).then(this._init) : WebAssembly.instantiate(Buffer.from(At, "base64"), da).then(this._init), ba);
1974
1974
  }
@@ -2012,8 +2012,8 @@ class L extends Ma {
2012
2012
  const r = L.BasisWorker.toString(), o = ["/* constants */", "let _EngineFormat = " + JSON.stringify(L.EngineFormat), "let _EngineType = " + JSON.stringify(L.EngineType), "let _TranscoderFormat = " + JSON.stringify(L.TranscoderFormat), "let _BasisFormat = " + JSON.stringify(L.BasisFormat), "/* basis_transcoder.js */", i, "/* worker */", r.substring(r.indexOf("{") + 1, r.lastIndexOf("}"))].join(`
2013
2013
  `);
2014
2014
  this.workerSourceURL = URL.createObjectURL(new Blob([o])), this.transcoderBinary = s, this.workerPool.setWorkerCreator(() => {
2015
- const n = new Worker(this.workerSourceURL), d = this.transcoderBinary.slice(0);
2016
- return n.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: d }, [d]), n;
2015
+ const n = new Worker(this.workerSourceURL), b = this.transcoderBinary.slice(0);
2016
+ return n.postMessage({ type: "init", config: this.workerConfig, transcoderBinary: b }, [b]), n;
2017
2017
  });
2018
2018
  }), ga > 0 && console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."), ga++;
2019
2019
  }
@@ -2033,40 +2033,40 @@ class L extends Ma {
2033
2033
  this._createTexture(e).then((A) => a ? a(A) : null).catch(t);
2034
2034
  }
2035
2035
  _createTextureFrom(e, a) {
2036
- const { type: t, error: A, data: { faces: i, width: s, height: r, format: o, type: n, dfdFlags: d } } = e;
2036
+ const { type: t, error: A, data: { faces: i, width: s, height: r, format: o, type: n, dfdFlags: b } } = e;
2037
2037
  if (t === "error") return Promise.reject(A);
2038
- let b;
2039
- if (a.faceCount === 6) b = new DA(i, o, n);
2038
+ let d;
2039
+ if (a.faceCount === 6) d = new DA(i, o, n);
2040
2040
  else {
2041
2041
  const g = i[0].mipmaps;
2042
- b = a.layerCount > 1 ? new vA(g, s, r, a.layerCount, o, n) : new Ja(g, s, r, o, n);
2042
+ d = a.layerCount > 1 ? new vA(g, s, r, a.layerCount, o, n) : new Ja(g, s, r, o, n);
2043
2043
  }
2044
- return b.minFilter = i[0].mipmaps.length === 1 ? Be : $e, b.magFilter = Be, b.generateMipmaps = !1, b.needsUpdate = !0, b.colorSpace = it(a), b.premultiplyAlpha = !!(1 & d), b;
2044
+ return d.minFilter = i[0].mipmaps.length === 1 ? Be : $e, d.magFilter = Be, d.generateMipmaps = !1, d.needsUpdate = !0, d.colorSpace = it(a), d.premultiplyAlpha = !!(1 & b), d;
2045
2045
  }
2046
2046
  async _createTexture(e, a = {}) {
2047
2047
  const t = function(r) {
2048
2048
  const o = new Uint8Array(r.buffer, r.byteOffset, H.length);
2049
2049
  if (o[0] !== H[0] || o[1] !== H[1] || o[2] !== H[2] || o[3] !== H[3] || o[4] !== H[4] || o[5] !== H[5] || o[6] !== H[6] || o[7] !== H[7] || o[8] !== H[8] || o[9] !== H[9] || o[10] !== H[10] || o[11] !== H[11]) throw new Error("Missing KTX 2.0 identifier.");
2050
- const n = new Ti(), d = 17 * Uint32Array.BYTES_PER_ELEMENT, b = new Me(r, H.length, d, !0);
2051
- n.vkFormat = b._nextUint32(), n.typeSize = b._nextUint32(), n.pixelWidth = b._nextUint32(), n.pixelHeight = b._nextUint32(), n.pixelDepth = b._nextUint32(), n.layerCount = b._nextUint32(), n.faceCount = b._nextUint32();
2052
- const g = b._nextUint32();
2053
- n.supercompressionScheme = b._nextUint32();
2054
- const l = b._nextUint32(), h = b._nextUint32(), f = b._nextUint32(), I = b._nextUint32(), m = b._nextUint64(), u = b._nextUint64(), C = new Me(r, H.length + d, 3 * g * 8, !0);
2050
+ const n = new Ti(), b = 17 * Uint32Array.BYTES_PER_ELEMENT, d = new Me(r, H.length, b, !0);
2051
+ n.vkFormat = d._nextUint32(), n.typeSize = d._nextUint32(), n.pixelWidth = d._nextUint32(), n.pixelHeight = d._nextUint32(), n.pixelDepth = d._nextUint32(), n.layerCount = d._nextUint32(), n.faceCount = d._nextUint32();
2052
+ const g = d._nextUint32();
2053
+ n.supercompressionScheme = d._nextUint32();
2054
+ const l = d._nextUint32(), h = d._nextUint32(), f = d._nextUint32(), I = d._nextUint32(), m = d._nextUint64(), u = d._nextUint64(), C = new Me(r, H.length + b, 3 * g * 8, !0);
2055
2055
  for (let F = 0; F < g; F++) n.levels.push({ levelData: new Uint8Array(r.buffer, r.byteOffset + C._nextUint64(), C._nextUint64()), uncompressedByteLength: C._nextUint64() });
2056
- const B = new Me(r, l, h, !0), y = { vendorId: B._skip(4)._nextUint16(), descriptorType: B._nextUint16(), versionNumber: B._nextUint16(), descriptorBlockSize: B._nextUint16(), colorModel: B._nextUint8(), colorPrimaries: B._nextUint8(), transferFunction: B._nextUint8(), flags: B._nextUint8(), texelBlockDimension: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], bytesPlane: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], samples: [] }, k = (y.descriptorBlockSize / 4 - 6) / 4;
2056
+ const B = new Me(r, l, h, !0), w = { vendorId: B._skip(4)._nextUint16(), descriptorType: B._nextUint16(), versionNumber: B._nextUint16(), descriptorBlockSize: B._nextUint16(), colorModel: B._nextUint8(), colorPrimaries: B._nextUint8(), transferFunction: B._nextUint8(), flags: B._nextUint8(), texelBlockDimension: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], bytesPlane: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], samples: [] }, k = (w.descriptorBlockSize / 4 - 6) / 4;
2057
2057
  for (let F = 0; F < k; F++) {
2058
- const G = { bitOffset: B._nextUint16(), bitLength: B._nextUint8(), channelType: B._nextUint8(), samplePosition: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
2059
- 64 & G.channelType ? (G.sampleLower = B._nextInt32(), G.sampleUpper = B._nextInt32()) : (G.sampleLower = B._nextUint32(), G.sampleUpper = B._nextUint32()), y.samples[F] = G;
2058
+ const U = { bitOffset: B._nextUint16(), bitLength: B._nextUint8(), channelType: B._nextUint8(), samplePosition: [B._nextUint8(), B._nextUint8(), B._nextUint8(), B._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
2059
+ 64 & U.channelType ? (U.sampleLower = B._nextInt32(), U.sampleUpper = B._nextInt32()) : (U.sampleLower = B._nextUint32(), U.sampleUpper = B._nextUint32()), w.samples[F] = U;
2060
2060
  }
2061
- n.dataFormatDescriptor.length = 0, n.dataFormatDescriptor.push(y);
2062
- const w = new Me(r, f, I, !0);
2063
- for (; w._offset < I; ) {
2064
- const F = w._nextUint32(), G = w._scan(F), J = tt(G);
2065
- if (n.keyValue[J] = w._nextUint8Array(F - G.byteLength - 1), J.match(/^ktx/i)) {
2061
+ n.dataFormatDescriptor.length = 0, n.dataFormatDescriptor.push(w);
2062
+ const y = new Me(r, f, I, !0);
2063
+ for (; y._offset < I; ) {
2064
+ const F = y._nextUint32(), U = y._scan(F), J = tt(U);
2065
+ if (n.keyValue[J] = y._nextUint8Array(F - U.byteLength - 1), J.match(/^ktx/i)) {
2066
2066
  const V = tt(n.keyValue[J]);
2067
2067
  n.keyValue[J] = V.substring(0, V.lastIndexOf("\0"));
2068
2068
  }
2069
- w._skip(F % 4 ? 4 - F % 4 : 0);
2069
+ y._skip(F % 4 ? 4 - F % 4 : 0);
2070
2070
  }
2071
2071
  if (u <= 0) return n;
2072
2072
  const p = new Me(r, m, u, !0), Q = p._nextUint16(), x = p._nextUint16(), j = p._nextUint32(), M = p._nextUint32(), O = p._nextUint32(), aa = p._nextUint32(), De = [];
@@ -2079,10 +2079,10 @@ class L extends Ma {
2079
2079
  if (fa[o] === void 0) throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
2080
2080
  let n;
2081
2081
  r.supercompressionScheme === 2 && (la || (la = new Promise(async (g) => {
2082
- const l = new Gi();
2082
+ const l = new Ui();
2083
2083
  await l.init(), g(l);
2084
2084
  })), n = await la);
2085
- const d = [];
2085
+ const b = [];
2086
2086
  for (let g = 0; g < r.levels.length; g++) {
2087
2087
  const l = Math.max(1, r.pixelWidth >> g), h = Math.max(1, r.pixelHeight >> g), f = r.pixelDepth ? Math.max(1, r.pixelDepth >> g) : 0, I = r.levels[g];
2088
2088
  let m, u;
@@ -2091,15 +2091,15 @@ class L extends Ma {
2091
2091
  if (r.supercompressionScheme !== 2) throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
2092
2092
  m = n.decode(I.levelData, I.uncompressedByteLength);
2093
2093
  }
2094
- u = ua[o] === R ? new Float32Array(m.buffer, m.byteOffset, m.byteLength / Float32Array.BYTES_PER_ELEMENT) : ua[o] === ke ? new Uint16Array(m.buffer, m.byteOffset, m.byteLength / Uint16Array.BYTES_PER_ELEMENT) : m, d.push({ data: u, width: l, height: h, depth: f });
2094
+ u = ua[o] === R ? new Float32Array(m.buffer, m.byteOffset, m.byteLength / Float32Array.BYTES_PER_ELEMENT) : ua[o] === ke ? new Uint16Array(m.buffer, m.byteOffset, m.byteLength / Uint16Array.BYTES_PER_ELEMENT) : m, b.push({ data: u, width: l, height: h, depth: f });
2095
2095
  }
2096
- let b;
2097
- if (Ui.has(fa[o])) b = r.pixelDepth === 0 ? new Ue(d[0].data, r.pixelWidth, r.pixelHeight) : new OA(d[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth);
2096
+ let d;
2097
+ if (Gi.has(fa[o])) d = r.pixelDepth === 0 ? new Ge(b[0].data, r.pixelWidth, r.pixelHeight) : new OA(b[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth);
2098
2098
  else {
2099
2099
  if (r.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
2100
- b = new Ja(d, r.pixelWidth, r.pixelHeight), b.minFilter = d.length === 1 ? Be : $e, b.magFilter = Be;
2100
+ d = new Ja(b, r.pixelWidth, r.pixelHeight), d.minFilter = b.length === 1 ? Be : $e, d.magFilter = Be;
2101
2101
  }
2102
- return b.mipmaps = d, b.type = ua[o], b.format = fa[o], b.colorSpace = it(r), b.needsUpdate = !0, Promise.resolve(b);
2102
+ return d.mipmaps = b, d.type = ua[o], d.format = fa[o], d.colorSpace = it(r), d.needsUpdate = !0, Promise.resolve(d);
2103
2103
  }(t);
2104
2104
  const i = a, s = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: i }, [e])).then((r) => this._createTextureFrom(r.data, t));
2105
2105
  return ha.set(e, { promise: s }), s;
@@ -2108,11 +2108,11 @@ class L extends Ma {
2108
2108
  return this.workerPool.dispose(), this.workerSourceURL && URL.revokeObjectURL(this.workerSourceURL), ga--, this;
2109
2109
  }
2110
2110
  }
2111
- L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, L.EngineFormat = { RGBAFormat: ee, RGBA_ASTC_4x4_Format: wt, RGB_BPTC_UNSIGNED_Format: FA, RGBA_BPTC_Format: RA, RGBA_ETC2_EAC_Format: MA, RGBA_PVRTC_4BPPV1_Format: TA, RGBA_S3TC_DXT5_Format: GA, RGB_ETC1_Format: UA, RGB_ETC2_Format: HA, RGB_PVRTC_4BPPV1_Format: NA, RGBA_S3TC_DXT1_Format: LA }, L.EngineType = { UnsignedByteType: X, HalfFloatType: ke, FloatType: R }, L.BasisWorker = function() {
2111
+ L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC1: 0, ETC2: 1, BC1: 2, BC3: 3, BC4: 4, BC5: 5, BC7_M6_OPAQUE_ONLY: 6, BC7_M5: 7, PVRTC1_4_RGB: 8, PVRTC1_4_RGBA: 9, ASTC_4x4: 10, ATC_RGB: 11, ATC_RGBA_INTERPOLATED_ALPHA: 12, RGBA32: 13, RGB565: 14, BGR565: 15, RGBA4444: 16, BC6H: 22, RGB_HALF: 24, RGBA_HALF: 25 }, L.EngineFormat = { RGBAFormat: ee, RGBA_ASTC_4x4_Format: wt, RGB_BPTC_UNSIGNED_Format: FA, RGBA_BPTC_Format: RA, RGBA_ETC2_EAC_Format: MA, RGBA_PVRTC_4BPPV1_Format: TA, RGBA_S3TC_DXT5_Format: UA, RGB_ETC1_Format: GA, RGB_ETC2_Format: HA, RGB_PVRTC_4BPPV1_Format: NA, RGBA_S3TC_DXT1_Format: LA }, L.EngineType = { UnsignedByteType: X, HalfFloatType: ke, FloatType: R }, L.BasisWorker = function() {
2112
2112
  let c, e, a;
2113
2113
  const t = _EngineFormat, A = _EngineType, i = _TranscoderFormat, s = _BasisFormat;
2114
- self.addEventListener("message", function(b) {
2115
- const g = b.data;
2114
+ self.addEventListener("message", function(d) {
2115
+ const g = d.data;
2116
2116
  switch (g.type) {
2117
2117
  case "init":
2118
2118
  c = g.config, l = g.transcoderBinary, e = new Promise((h) => {
@@ -2124,52 +2124,52 @@ L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC
2124
2124
  case "transcode":
2125
2125
  e.then(() => {
2126
2126
  try {
2127
- const { faces: h, buffers: f, width: I, height: m, hasAlpha: u, format: C, type: B, dfdFlags: y } = function(k) {
2128
- const w = new a.KTX2File(new Uint8Array(k));
2127
+ const { faces: h, buffers: f, width: I, height: m, hasAlpha: u, format: C, type: B, dfdFlags: w } = function(k) {
2128
+ const y = new a.KTX2File(new Uint8Array(k));
2129
2129
  function p() {
2130
- w.close(), w.delete();
2130
+ y.close(), y.delete();
2131
2131
  }
2132
- if (!w.isValid()) throw p(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
2132
+ if (!y.isValid()) throw p(), new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");
2133
2133
  let Q;
2134
- if (w.isUASTC()) Q = s.UASTC;
2135
- else if (w.isETC1S()) Q = s.ETC1S;
2134
+ if (y.isUASTC()) Q = s.UASTC;
2135
+ else if (y.isETC1S()) Q = s.ETC1S;
2136
2136
  else {
2137
- if (!w.isHDR()) throw new Error("THREE.KTX2Loader: Unknown Basis encoding");
2137
+ if (!y.isHDR()) throw new Error("THREE.KTX2Loader: Unknown Basis encoding");
2138
2138
  Q = s.UASTC_HDR;
2139
2139
  }
2140
- const x = w.getWidth(), j = w.getHeight(), M = w.getLayers() || 1, O = w.getLevels(), aa = w.getFaces(), De = w.getHasAlpha(), Je = w.getDFDFlags(), { transcoderFormat: ve, engineFormat: Fe, engineType: Re } = function(z, pe, F, G) {
2140
+ const x = y.getWidth(), j = y.getHeight(), M = y.getLayers() || 1, O = y.getLevels(), aa = y.getFaces(), De = y.getHasAlpha(), Je = y.getDFDFlags(), { transcoderFormat: ve, engineFormat: Fe, engineType: Re } = function(z, pe, F, U) {
2141
2141
  const J = o[z];
2142
2142
  for (let V = 0; V < J.length; V++) {
2143
2143
  const q = J[V];
2144
- if (!(q.if && !c[q.if]) && q.basisFormat.includes(z) && !(G && q.transcoderFormat.length < 2) && !(q.needsPowerOfTwo && (!n(pe) || !n(F))))
2145
- return { transcoderFormat: q.transcoderFormat[G ? 1 : 0], engineFormat: q.engineFormat[G ? 1 : 0], engineType: q.engineType[0] };
2144
+ if (!(q.if && !c[q.if]) && q.basisFormat.includes(z) && !(U && q.transcoderFormat.length < 2) && !(q.needsPowerOfTwo && (!n(pe) || !n(F))))
2145
+ return { transcoderFormat: q.transcoderFormat[U ? 1 : 0], engineFormat: q.engineFormat[U ? 1 : 0], engineType: q.engineType[0] };
2146
2146
  }
2147
2147
  throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.");
2148
2148
  }(Q, x, j, De);
2149
2149
  if (!x || !j || !O) throw p(), new Error("THREE.KTX2Loader: Invalid texture");
2150
- if (!w.startTranscoding()) throw p(), new Error("THREE.KTX2Loader: .startTranscoding failed");
2150
+ if (!y.startTranscoding()) throw p(), new Error("THREE.KTX2Loader: .startTranscoding failed");
2151
2151
  const qe = [], _e = [];
2152
2152
  for (let z = 0; z < aa; z++) {
2153
2153
  const pe = [];
2154
2154
  for (let F = 0; F < O; F++) {
2155
- const G = [];
2155
+ const U = [];
2156
2156
  let J, V;
2157
2157
  for (let Ee = 0; Ee < M; Ee++) {
2158
- const Qe = w.getImageLevelInfo(F, Ee, z);
2158
+ const Qe = y.getImageLevelInfo(F, Ee, z);
2159
2159
  z !== 0 || F !== 0 || Ee !== 0 || Qe.origWidth % 4 == 0 && Qe.origHeight % 4 == 0 || console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."), O > 1 ? (J = Qe.origWidth, V = Qe.origHeight) : (J = Qe.width, V = Qe.height);
2160
- let ye = new Uint8Array(w.getImageTranscodedSizeInBytes(F, Ee, 0, ve));
2161
- const Xt = w.transcodeImage(ye, F, Ee, z, ve, 0, -1, -1);
2160
+ let ye = new Uint8Array(y.getImageTranscodedSizeInBytes(F, Ee, 0, ve));
2161
+ const Xt = y.transcodeImage(ye, F, Ee, z, ve, 0, -1, -1);
2162
2162
  if (Re === A.HalfFloatType && (ye = new Uint16Array(ye.buffer, ye.byteOffset, ye.byteLength / Uint16Array.BYTES_PER_ELEMENT)), !Xt) throw p(), new Error("THREE.KTX2Loader: .transcodeImage failed.");
2163
- G.push(ye);
2163
+ U.push(ye);
2164
2164
  }
2165
- const q = d(G);
2165
+ const q = b(U);
2166
2166
  pe.push({ data: q, width: J, height: V }), _e.push(q.buffer);
2167
2167
  }
2168
2168
  qe.push({ mipmaps: pe, width: x, height: j, format: Fe, type: Re });
2169
2169
  }
2170
2170
  return p(), { faces: qe, buffers: _e, width: x, height: j, hasAlpha: De, dfdFlags: Je, format: Fe, type: Re };
2171
2171
  }(g.buffer);
2172
- self.postMessage({ type: "transcode", id: g.id, data: { faces: h, width: I, height: m, hasAlpha: u, format: C, type: B, dfdFlags: y } }, f);
2172
+ self.postMessage({ type: "transcode", id: g.id, data: { faces: h, width: I, height: m, hasAlpha: u, format: C, type: B, dfdFlags: w } }, f);
2173
2173
  } catch (h) {
2174
2174
  console.error(h), self.postMessage({ type: "error", id: g.id, error: h.message });
2175
2175
  }
@@ -2177,25 +2177,25 @@ L.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, L.TranscoderFormat = { ETC
2177
2177
  }
2178
2178
  var l;
2179
2179
  });
2180
- const r = [{ if: "astcSupported", basisFormat: [s.UASTC], transcoderFormat: [i.ASTC_4x4, i.ASTC_4x4], engineFormat: [t.RGBA_ASTC_4x4_Format, t.RGBA_ASTC_4x4_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1 / 0, priorityUASTC: 1, needsPowerOfTwo: !1 }, { if: "bptcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC7_M5, i.BC7_M5], engineFormat: [t.RGBA_BPTC_Format, t.RGBA_BPTC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 3, priorityUASTC: 2, needsPowerOfTwo: !1 }, { if: "dxtSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC1, i.BC3], engineFormat: [t.RGBA_S3TC_DXT1_Format, t.RGBA_S3TC_DXT5_Format], engineType: [A.UnsignedByteType], priorityETC1S: 4, priorityUASTC: 5, needsPowerOfTwo: !1 }, { if: "etc2Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1, i.ETC2], engineFormat: [t.RGB_ETC2_Format, t.RGBA_ETC2_EAC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1, priorityUASTC: 3, needsPowerOfTwo: !1 }, { if: "etc1Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1], engineFormat: [t.RGB_ETC1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 2, priorityUASTC: 4, needsPowerOfTwo: !1 }, { if: "pvrtcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.PVRTC1_4_RGB, i.PVRTC1_4_RGBA], engineFormat: [t.RGB_PVRTC_4BPPV1_Format, t.RGBA_PVRTC_4BPPV1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 5, priorityUASTC: 6, needsPowerOfTwo: !0 }, { if: "bptcSupported", basisFormat: [s.UASTC_HDR], transcoderFormat: [i.BC6H], engineFormat: [t.RGB_BPTC_UNSIGNED_Format], engineType: [A.HalfFloatType], priorityHDR: 1, needsPowerOfTwo: !1 }, { basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.RGBA32, i.RGBA32], engineFormat: [t.RGBAFormat, t.RGBAFormat], engineType: [A.UnsignedByteType, A.UnsignedByteType], priorityETC1S: 100, priorityUASTC: 100, needsPowerOfTwo: !1 }, { basisFormat: [s.UASTC_HDR], transcoderFormat: [i.RGBA_HALF], engineFormat: [t.RGBAFormat], engineType: [A.HalfFloatType], priorityHDR: 100, needsPowerOfTwo: !1 }], o = { [s.ETC1S]: r.filter((b) => b.basisFormat.includes(s.ETC1S)).sort((b, g) => b.priorityUASTC - g.priorityUASTC), [s.UASTC]: r.filter((b) => b.basisFormat.includes(s.UASTC)).sort((b, g) => b.priorityUASTC - g.priorityUASTC), [s.UASTC_HDR]: r.filter((b) => b.basisFormat.includes(s.UASTC_HDR)).sort((b, g) => b.priorityHDR - g.priorityHDR) };
2181
- function n(b) {
2182
- return b <= 2 || !(b & b - 1) && b !== 0;
2180
+ const r = [{ if: "astcSupported", basisFormat: [s.UASTC], transcoderFormat: [i.ASTC_4x4, i.ASTC_4x4], engineFormat: [t.RGBA_ASTC_4x4_Format, t.RGBA_ASTC_4x4_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1 / 0, priorityUASTC: 1, needsPowerOfTwo: !1 }, { if: "bptcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC7_M5, i.BC7_M5], engineFormat: [t.RGBA_BPTC_Format, t.RGBA_BPTC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 3, priorityUASTC: 2, needsPowerOfTwo: !1 }, { if: "dxtSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.BC1, i.BC3], engineFormat: [t.RGBA_S3TC_DXT1_Format, t.RGBA_S3TC_DXT5_Format], engineType: [A.UnsignedByteType], priorityETC1S: 4, priorityUASTC: 5, needsPowerOfTwo: !1 }, { if: "etc2Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1, i.ETC2], engineFormat: [t.RGB_ETC2_Format, t.RGBA_ETC2_EAC_Format], engineType: [A.UnsignedByteType], priorityETC1S: 1, priorityUASTC: 3, needsPowerOfTwo: !1 }, { if: "etc1Supported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.ETC1], engineFormat: [t.RGB_ETC1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 2, priorityUASTC: 4, needsPowerOfTwo: !1 }, { if: "pvrtcSupported", basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.PVRTC1_4_RGB, i.PVRTC1_4_RGBA], engineFormat: [t.RGB_PVRTC_4BPPV1_Format, t.RGBA_PVRTC_4BPPV1_Format], engineType: [A.UnsignedByteType], priorityETC1S: 5, priorityUASTC: 6, needsPowerOfTwo: !0 }, { if: "bptcSupported", basisFormat: [s.UASTC_HDR], transcoderFormat: [i.BC6H], engineFormat: [t.RGB_BPTC_UNSIGNED_Format], engineType: [A.HalfFloatType], priorityHDR: 1, needsPowerOfTwo: !1 }, { basisFormat: [s.ETC1S, s.UASTC], transcoderFormat: [i.RGBA32, i.RGBA32], engineFormat: [t.RGBAFormat, t.RGBAFormat], engineType: [A.UnsignedByteType, A.UnsignedByteType], priorityETC1S: 100, priorityUASTC: 100, needsPowerOfTwo: !1 }, { basisFormat: [s.UASTC_HDR], transcoderFormat: [i.RGBA_HALF], engineFormat: [t.RGBAFormat], engineType: [A.HalfFloatType], priorityHDR: 100, needsPowerOfTwo: !1 }], o = { [s.ETC1S]: r.filter((d) => d.basisFormat.includes(s.ETC1S)).sort((d, g) => d.priorityUASTC - g.priorityUASTC), [s.UASTC]: r.filter((d) => d.basisFormat.includes(s.UASTC)).sort((d, g) => d.priorityUASTC - g.priorityUASTC), [s.UASTC_HDR]: r.filter((d) => d.basisFormat.includes(s.UASTC_HDR)).sort((d, g) => d.priorityHDR - g.priorityHDR) };
2181
+ function n(d) {
2182
+ return d <= 2 || !(d & d - 1) && d !== 0;
2183
2183
  }
2184
- function d(b) {
2185
- if (b.length === 1) return b[0];
2184
+ function b(d) {
2185
+ if (d.length === 1) return d[0];
2186
2186
  let g = 0;
2187
- for (let f = 0; f < b.length; f++)
2188
- g += b[f].byteLength;
2187
+ for (let f = 0; f < d.length; f++)
2188
+ g += d[f].byteLength;
2189
2189
  const l = new Uint8Array(g);
2190
2190
  let h = 0;
2191
- for (let f = 0; f < b.length; f++) {
2192
- const I = b[f];
2191
+ for (let f = 0; f < d.length; f++) {
2192
+ const I = d[f];
2193
2193
  l.set(I, h), h += I.byteLength;
2194
2194
  }
2195
2195
  return l;
2196
2196
  }
2197
2197
  };
2198
- const Ui = /* @__PURE__ */ new Set([ee, He, Ne]), fa = { [_t]: ee, [Pt]: ee, [Ht]: ee, [Nt]: ee, [qt]: He, [Ot]: He, [Gt]: He, [Ut]: He, [Jt]: Ne, [Lt]: Ne, [Tt]: Ne, [Mt]: Ne, [Ta]: wt, [zt]: qa, [Kt]: qa }, ua = { [_t]: R, [Pt]: ke, [Ht]: X, [Nt]: X, [qt]: R, [Ot]: ke, [Gt]: X, [Ut]: X, [Jt]: R, [Lt]: ke, [Tt]: X, [Mt]: X, [Ta]: ke, [zt]: X, [Kt]: X };
2198
+ const Gi = /* @__PURE__ */ new Set([ee, He, Ne]), fa = { [_t]: ee, [Pt]: ee, [Ht]: ee, [Nt]: ee, [qt]: He, [Ot]: He, [Ut]: He, [Gt]: He, [Jt]: Ne, [Lt]: Ne, [Tt]: Ne, [Mt]: Ne, [Ta]: wt, [zt]: qa, [Kt]: qa }, ua = { [_t]: R, [Pt]: ke, [Ht]: X, [Nt]: X, [qt]: R, [Ot]: ke, [Ut]: X, [Gt]: X, [Jt]: R, [Lt]: ke, [Tt]: X, [Mt]: X, [Ta]: ke, [zt]: X, [Kt]: X };
2199
2199
  function it(c) {
2200
2200
  const e = c.dataFormatDescriptor[0];
2201
2201
  return e.colorPrimaries === 1 ? e.transferFunction === 2 ? re : K : e.colorPrimaries === 10 ? e.transferFunction === 2 ? "display-p3" : "display-p3-linear" : (e.colorPrimaries === 0 || console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), PA);
@@ -2209,7 +2209,7 @@ async function st(c) {
2209
2209
  }
2210
2210
  if (e === "subtree")
2211
2211
  return async function(t, A) {
2212
- const i = new DataView(t), s = i.getBigUint64(8, !0), r = i.getBigUint64(16, !0), o = 24, n = o + Number(s), d = n + (8 - n % 8) % 8, b = d + Number(r), g = t.slice(o, n), l = new TextDecoder().decode(g).trim(), h = JSON.parse(l);
2212
+ const i = new DataView(t), s = i.getBigUint64(8, !0), r = i.getBigUint64(16, !0), o = 24, n = o + Number(s), b = n + (8 - n % 8) % 8, d = b + Number(r), g = t.slice(o, n), l = new TextDecoder().decode(g).trim(), h = JSON.parse(l);
2213
2213
  if (!h.buffers) throw new Error("subtree has no buffers");
2214
2214
  const f = h.buffers.map(async (m) => {
2215
2215
  if (m.uri) {
@@ -2217,7 +2217,7 @@ async function st(c) {
2217
2217
  if (!C.ok) throw new Error(`Failed to fetch binary file ${u}: ${C.statusText}`);
2218
2218
  return new Uint8Array(await C.arrayBuffer());
2219
2219
  }
2220
- return new Uint8Array(t.slice(d, b));
2220
+ return new Uint8Array(t.slice(b, d));
2221
2221
  }), I = await Promise.all(f);
2222
2222
  return /* @__PURE__ */ function(m, u) {
2223
2223
  function C(p, Q) {
@@ -2235,7 +2235,7 @@ async function st(c) {
2235
2235
  const j = x % 8;
2236
2236
  return p[Q + Math.floor(x / 8)] >> j & !0;
2237
2237
  }
2238
- function y(p) {
2238
+ function w(p) {
2239
2239
  let Q = 0;
2240
2240
  return Q = p.z == null ? Ia(p.x, p.y, p.level) : Ba(p.x, p.y, p.z, p.level), C(m.tileAvailability, Q);
2241
2241
  }
@@ -2247,11 +2247,11 @@ async function st(c) {
2247
2247
  x.push(C(j, Q));
2248
2248
  }), x;
2249
2249
  }
2250
- function w(p) {
2250
+ function y(p) {
2251
2251
  let Q = 0;
2252
2252
  return Q = p.z == null ? Ia(p.x, p.y) : Ba(p.x, p.y, p.z), C(m.childSubtreeAvailability, Q);
2253
2253
  }
2254
- return { isTileAvailable: y, isContentAvailable: k, isChildSubtreeAvailable: w };
2254
+ return { isTileAvailable: w, isContentAvailable: k, isChildSubtreeAvailable: y };
2255
2255
  }(h, I);
2256
2256
  }(await a.arrayBuffer(), rt(c));
2257
2257
  throw new Error(`Unsupported file extension: ${e}`);
@@ -2275,7 +2275,7 @@ function Ba(c, e, a, t) {
2275
2275
  return t && (A = (Math.pow(8, t) - 1) / 7), A + (ma(c) | ma(e) << 1 | ma(a) << 2);
2276
2276
  }
2277
2277
  const Te = /* @__PURE__ */ new Map();
2278
- async function Ga(c, e) {
2278
+ async function Ua(c, e) {
2279
2279
  if (!c.root || !c.root.implicitTiling) return c;
2280
2280
  if (!c.root.content && !c.root.contents) throw new Error("implicit tiling requires a Template URI");
2281
2281
  let a = !0;
@@ -2294,13 +2294,13 @@ async function Ga(c, e) {
2294
2294
  a && (s = t.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0)), a || (s = t.replace("{level}", 0).replace("{x}", 0).replace("{y}", 0).replace("{z}", 0));
2295
2295
  const r = { level: 0, x: 0, y: 0 }, o = { level: 0, x: 0, y: 0 };
2296
2296
  a || (r.z = 0, o.z = 0), Te.set(s, await st(i + s));
2297
- const n = Te.get(s), d = [];
2297
+ const n = Te.get(s), b = [];
2298
2298
  n.isContentAvailable(o) && A.forEach((l) => {
2299
2299
  let h;
2300
- a && (h = l.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y)), a || (h = l.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y).replace("{z}", r.z)), d.push({ uri: h });
2300
+ a && (h = l.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y)), a || (h = l.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y).replace("{z}", r.z)), b.push({ uri: h });
2301
2301
  });
2302
- const b = { geometricError: c.root.geometricError, boundingVolume: c.root.boundingVolume, refine: c.root.refine, globalAddress: r, localAddress: o, subtree: n, contents: d, getChildren: async () => g(b) };
2303
- return { root: b };
2302
+ const d = { geometricError: c.root.geometricError, boundingVolume: c.root.boundingVolume, refine: c.root.refine, globalAddress: r, localAddress: o, subtree: n, contents: b, getChildren: async () => g(d) };
2303
+ return { root: d };
2304
2304
  async function g(l) {
2305
2305
  const h = [];
2306
2306
  if (l.localAddress.level == c.root.implicitTiling.availableLevels - 1) return h;
@@ -2309,14 +2309,14 @@ async function Ga(c, e) {
2309
2309
  for (let u = 0; u < f.length; u++) {
2310
2310
  const C = f[u], B = I[u];
2311
2311
  l.subtree.isChildSubtreeAvailable(C) && (a && t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y), a || t.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), Te.has(s) || Te.set(s, await st(i + s));
2312
- const y = Te.get(s), k = { level: 0, x: 0, y: 0 };
2312
+ const w = Te.get(s), k = { level: 0, x: 0, y: 0 };
2313
2313
  a || (k.z = 0);
2314
- const w = [];
2315
- y.isContentAvailable(k) && A.forEach((Q) => {
2314
+ const y = [];
2315
+ w.isContentAvailable(k) && A.forEach((Q) => {
2316
2316
  let x;
2317
- a && (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), w.push({ uri: x });
2317
+ a && (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), y.push({ uri: x });
2318
2318
  });
2319
- const p = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine: c.root.refine, globalAddress: B, localAddress: k, subtree: y, contents: w, getChildren: async () => g(p) };
2319
+ const p = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine: c.root.refine, globalAddress: B, localAddress: k, subtree: w, contents: y, getChildren: async () => g(p) };
2320
2320
  h.push(p);
2321
2321
  }
2322
2322
  } else {
@@ -2324,15 +2324,15 @@ async function Ga(c, e) {
2324
2324
  for (let u = 0; u < f.length; u++) {
2325
2325
  const C = f[u], B = I[u];
2326
2326
  if (!l.subtree.isTileAvailable(C)) continue;
2327
- const y = [], k = l.subtree.isContentAvailable(C);
2327
+ const w = [], k = l.subtree.isContentAvailable(C);
2328
2328
  for (let p = 0; p < A.length; p++) {
2329
2329
  if (!k[p]) continue;
2330
2330
  const Q = A[p];
2331
2331
  let x;
2332
- a && (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), y.push({ uri: x });
2332
+ a && (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y)), a || (x = Q.replace("{level}", B.level).replace("{x}", B.x).replace("{y}", B.y).replace("{z}", B.z)), w.push({ uri: x });
2333
2333
  }
2334
- const w = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine: c.root.refine, globalAddress: B, localAddress: C, subtree: l.subtree, contents: y, getChildren: async () => g(w) };
2335
- h.push(w);
2334
+ const y = { geometricError: l.geometricError / 2, boundingVolume: m[u], refine: c.root.refine, globalAddress: B, localAddress: C, subtree: l.subtree, contents: w, getChildren: async () => g(y) };
2335
+ h.push(y);
2336
2336
  }
2337
2337
  }
2338
2338
  return h.length > 0 ? h : void 0;
@@ -2350,12 +2350,12 @@ function ot(c, e, a) {
2350
2350
  }
2351
2351
  function Hi(c, e, a) {
2352
2352
  if (e.region) return function(t, A, i) {
2353
- const [s, r, o, n, d, b] = A, g = (o - s) / 2 ** i.level, l = (n - r) / 2 ** i.level, h = t ? 0 : (b - d) / 2 ** i.level, f = s + g * i.x, I = r + l * i.y, m = f + g, u = I + l, C = t ? d : d + h * i.z, B = t ? b : C + h;
2353
+ const [s, r, o, n, b, d] = A, g = (o - s) / 2 ** i.level, l = (n - r) / 2 ** i.level, h = t ? 0 : (d - b) / 2 ** i.level, f = s + g * i.x, I = r + l * i.y, m = f + g, u = I + l, C = t ? b : b + h * i.z, B = t ? d : C + h;
2354
2354
  return { region: [f, I, m, u, C, B] };
2355
2355
  }(c, e.region, a);
2356
2356
  if (e.box) return function(t, A, i) {
2357
- const s = A.slice(0, 3), r = [A.slice(3, 6), A.slice(6, 9), A.slice(9, 12)], o = 1 / Math.pow(2, i.level), n = [o, o, t ? 1 : o], d = r.map((l, h) => l.map((f) => f * n[h])), b = [s[0] - r[0][0] - r[1][0] - r[2][0], s[1] - r[0][1] - r[1][1] - r[2][1], s[2] - r[0][2] - r[1][2] - r[2][2]];
2358
- return { box: [b[0] + (2 * i.x + 1) * (d[0][0] + d[1][0] + d[2][0]), b[1] + (2 * i.y + 1) * (d[0][1] + d[1][1] + d[2][1]), t ? s[2] : b[2] + (2 * i.z + 1) * (d[0][2] + d[1][2] + d[2][2])].concat(...d) };
2357
+ const s = A.slice(0, 3), r = [A.slice(3, 6), A.slice(6, 9), A.slice(9, 12)], o = 1 / Math.pow(2, i.level), n = [o, o, t ? 1 : o], b = r.map((l, h) => l.map((f) => f * n[h])), d = [s[0] - r[0][0] - r[1][0] - r[2][0], s[1] - r[0][1] - r[1][1] - r[2][1], s[2] - r[0][2] - r[1][2] - r[2][2]];
2358
+ return { box: [d[0] + (2 * i.x + 1) * (b[0][0] + b[1][0] + b[2][0]), d[1] + (2 * i.y + 1) * (b[0][1] + b[1][1] + b[2][1]), t ? s[2] : d[2] + (2 * i.z + 1) * (b[0][2] + b[1][2] + b[2][2])].concat(...b) };
2359
2359
  }(c, e.box, a);
2360
2360
  throw new Error("Unsupported bounding volume type");
2361
2361
  }
@@ -2363,13 +2363,13 @@ function Hi(c, e, a) {
2363
2363
  var c, e = new Uint8Array([32, 0, 65, 2, 1, 106, 34, 33, 3, 128, 11, 4, 13, 64, 6, 253, 10, 7, 15, 116, 127, 5, 8, 12, 40, 16, 19, 54, 20, 9, 27, 255, 113, 17, 42, 67, 24, 23, 146, 148, 18, 14, 22, 45, 70, 69, 56, 114, 101, 21, 25, 63, 75, 136, 108, 28, 118, 29, 73, 115]);
2364
2364
  if (typeof WebAssembly != "object") return { supported: !1 };
2365
2365
  var a = WebAssembly.instantiate(function(n) {
2366
- for (var d = new Uint8Array(n.length), b = 0; b < n.length; ++b) {
2367
- var g = n.charCodeAt(b);
2368
- d[b] = g > 96 ? g - 97 : g > 64 ? g - 39 : g + 4;
2366
+ for (var b = new Uint8Array(n.length), d = 0; d < n.length; ++d) {
2367
+ var g = n.charCodeAt(d);
2368
+ b[d] = g > 96 ? g - 97 : g > 64 ? g - 39 : g + 4;
2369
2369
  }
2370
2370
  var l = 0;
2371
- for (b = 0; b < n.length; ++b) d[l++] = d[b] < 60 ? e[d[b]] : 64 * (d[b] - 60) + d[++b];
2372
- return d.buffer.slice(0, l);
2371
+ for (d = 0; d < n.length; ++d) b[l++] = b[d] < 60 ? e[b[d]] : 64 * (b[d] - 60) + b[++d];
2372
+ return b.buffer.slice(0, l);
2373
2373
  }("b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb"), {}).then(function(n) {
2374
2374
  (c = n.instance).exports.__wasm_call_ctors(), c.exports.meshopt_encodeVertexVersion(0), c.exports.meshopt_encodeIndexVersion(1);
2375
2375
  });
@@ -2379,27 +2379,27 @@ function Hi(c, e, a) {
2379
2379
  function A(n) {
2380
2380
  return new Uint8Array(n.buffer, n.byteOffset, n.byteLength);
2381
2381
  }
2382
- function i(n, d, b, g, l) {
2383
- var h = c.exports.sbrk, f = h(d), I = h(g * l), m = new Uint8Array(c.exports.memory.buffer);
2384
- m.set(A(b), I);
2385
- var u = n(f, d, I, g, l), C = new Uint8Array(u);
2382
+ function i(n, b, d, g, l) {
2383
+ var h = c.exports.sbrk, f = h(b), I = h(g * l), m = new Uint8Array(c.exports.memory.buffer);
2384
+ m.set(A(d), I);
2385
+ var u = n(f, b, I, g, l), C = new Uint8Array(u);
2386
2386
  return C.set(m.subarray(f, f + u)), h(f - h(0)), C;
2387
2387
  }
2388
2388
  function s(n) {
2389
- for (var d = 0, b = 0; b < n.length; ++b)
2390
- var g = n[b];
2391
- return d;
2389
+ for (var b = 0, d = 0; d < n.length; ++d)
2390
+ var g = n[d];
2391
+ return b;
2392
2392
  }
2393
- function r(n, d) {
2394
- if (t(d == 2 || d == 4), d == 4) return new Uint32Array(n.buffer, n.byteOffset, n.byteLength / 4);
2395
- var b = new Uint16Array(n.buffer, n.byteOffset, n.byteLength / 2);
2396
- return new Uint32Array(b);
2393
+ function r(n, b) {
2394
+ if (t(b == 2 || b == 4), b == 4) return new Uint32Array(n.buffer, n.byteOffset, n.byteLength / 4);
2395
+ var d = new Uint16Array(n.buffer, n.byteOffset, n.byteLength / 2);
2396
+ return new Uint32Array(d);
2397
2397
  }
2398
- function o(n, d, b, g, l, h, f) {
2399
- var I = c.exports.sbrk, m = I(b * g), u = I(b * h), C = new Uint8Array(c.exports.memory.buffer);
2400
- C.set(A(d), u), n(m, b, g, l, u, f);
2401
- var B = new Uint8Array(b * g);
2402
- return B.set(C.subarray(m, m + b * g)), I(m - I(0)), B;
2398
+ function o(n, b, d, g, l, h, f) {
2399
+ var I = c.exports.sbrk, m = I(d * g), u = I(d * h), C = new Uint8Array(c.exports.memory.buffer);
2400
+ C.set(A(b), u), n(m, d, g, l, u, f);
2401
+ var B = new Uint8Array(d * g);
2402
+ return B.set(C.subarray(m, m + d * g)), I(m - I(0)), B;
2403
2403
  }
2404
2404
  })();
2405
2405
  var Vt = function() {
@@ -2418,13 +2418,13 @@ var Vt = function() {
2418
2418
  return h.buffer.slice(0, m);
2419
2419
  }
2420
2420
  function s(l, h, f, I, m, u, C) {
2421
- var B = l.exports.sbrk, y = I + 3 & -4, k = B(y * m), w = B(u.length), p = new Uint8Array(l.exports.memory.buffer);
2422
- p.set(u, w);
2423
- var Q = h(k, I, m, w, u.length);
2424
- if (Q == 0 && C && C(k, y, m), f.set(p.subarray(k, k + I * m)), B(k - B(0)), Q != 0) throw new Error("Malformed buffer data: " + Q);
2421
+ var B = l.exports.sbrk, w = I + 3 & -4, k = B(w * m), y = B(u.length), p = new Uint8Array(l.exports.memory.buffer);
2422
+ p.set(u, y);
2423
+ var Q = h(k, I, m, y, u.length);
2424
+ if (Q == 0 && C && C(k, w, m), f.set(p.subarray(k, k + I * m)), B(k - B(0)), Q != 0) throw new Error("Malformed buffer data: " + Q);
2425
2425
  }
2426
- var r = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp" }, o = { ATTRIBUTES: "meshopt_decodeVertexBuffer", TRIANGLES: "meshopt_decodeIndexBuffer", INDICES: "meshopt_decodeIndexSequence" }, n = [], d = 0;
2427
- function b(l) {
2426
+ var r = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp" }, o = { ATTRIBUTES: "meshopt_decodeVertexBuffer", TRIANGLES: "meshopt_decodeIndexBuffer", INDICES: "meshopt_decodeIndexSequence" }, n = [], b = 0;
2427
+ function d(l) {
2428
2428
  var h = { object: new Worker(l), pending: 0, requests: {} };
2429
2429
  return h.object.onmessage = function(f) {
2430
2430
  var I = f.data;
@@ -2445,7 +2445,7 @@ var Vt = function() {
2445
2445
  }
2446
2446
  return { ready: A, supported: !0, useWorkers: function(l) {
2447
2447
  (function(h) {
2448
- for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(t) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " + g.name + ";" + s.toString() + g.toString(), I = new Blob([f], { type: "text/javascript" }), m = URL.createObjectURL(I), u = n.length; u < h; ++u) n[u] = b(m);
2448
+ for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(t) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " + g.name + ";" + s.toString() + g.toString(), I = new Blob([f], { type: "text/javascript" }), m = URL.createObjectURL(I), u = n.length; u < h; ++u) n[u] = d(m);
2449
2449
  for (u = h; u < n.length; ++u) n[u].object.postMessage({});
2450
2450
  n.length = h, URL.revokeObjectURL(m);
2451
2451
  })(l);
@@ -2458,11 +2458,11 @@ var Vt = function() {
2458
2458
  }, decodeGltfBuffer: function(l, h, f, I, m, u) {
2459
2459
  s(a, a.exports[o[m]], l, h, f, I, a.exports[r[u]]);
2460
2460
  }, decodeGltfBufferAsync: function(l, h, f, I, m) {
2461
- return n.length > 0 ? function(u, C, B, y, k) {
2462
- for (var w = n[0], p = 1; p < n.length; ++p) n[p].pending < w.pending && (w = n[p]);
2461
+ return n.length > 0 ? function(u, C, B, w, k) {
2462
+ for (var y = n[0], p = 1; p < n.length; ++p) n[p].pending < y.pending && (y = n[p]);
2463
2463
  return new Promise(function(Q, x) {
2464
- var j = new Uint8Array(B), M = ++d;
2465
- w.pending += u, w.requests[M] = { resolve: Q, reject: x }, w.object.postMessage({ id: M, count: u, size: C, source: j, mode: y, filter: k }, [j.buffer]);
2464
+ var j = new Uint8Array(B), M = ++b;
2465
+ y.pending += u, y.requests[M] = { resolve: Q, reject: x }, y.object.postMessage({ id: M, count: u, size: C, source: j, mode: w, filter: k }, [j.buffer]);
2466
2466
  });
2467
2467
  }(l, h, f, o[I], r[m]) : A.then(function() {
2468
2468
  var u = new Uint8Array(l * h);
@@ -2475,12 +2475,12 @@ var Vt = function() {
2475
2475
  if (typeof WebAssembly != "object") return { supported: !1 };
2476
2476
  var a = WebAssembly.instantiate(function(r) {
2477
2477
  for (var o = new Uint8Array(r.length), n = 0; n < r.length; ++n) {
2478
- var d = r.charCodeAt(n);
2479
- o[n] = d > 96 ? d - 97 : d > 64 ? d - 39 : d + 4;
2478
+ var b = r.charCodeAt(n);
2479
+ o[n] = b > 96 ? b - 97 : b > 64 ? b - 39 : b + 4;
2480
2480
  }
2481
- var b = 0;
2482
- for (n = 0; n < r.length; ++n) o[b++] = o[n] < 60 ? e[o[n]] : 64 * (o[n] - 60) + o[++n];
2483
- return o.buffer.slice(0, b);
2481
+ var d = 0;
2482
+ for (n = 0; n < r.length; ++n) o[d++] = o[n] < 60 ? e[o[n]] : 64 * (o[n] - 60) + o[++n];
2483
+ return o.buffer.slice(0, d);
2484
2484
  }("b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb"), {}).then(function(r) {
2485
2485
  (c = r.instance).exports.__wasm_call_ctors();
2486
2486
  });
@@ -2490,13 +2490,13 @@ var Vt = function() {
2490
2490
  function A(r) {
2491
2491
  return new Uint8Array(r.buffer, r.byteOffset, r.byteLength);
2492
2492
  }
2493
- function i(r, o, n, d, b, g, l, h) {
2494
- var f = c.exports.sbrk, I = f(4 * h), m = f(n * d), u = f(n * g), C = new Uint8Array(c.exports.memory.buffer);
2495
- C.set(A(o), m), b && C.set(A(b), u);
2496
- var B = r(I, m, n, d, u, g, l, h);
2493
+ function i(r, o, n, b, d, g, l, h) {
2494
+ var f = c.exports.sbrk, I = f(4 * h), m = f(n * b), u = f(n * g), C = new Uint8Array(c.exports.memory.buffer);
2495
+ C.set(A(o), m), d && C.set(A(d), u);
2496
+ var B = r(I, m, n, b, u, g, l, h);
2497
2497
  new Uint8Array(c.exports.memory.buffer);
2498
- var y = new Uint32Array(B);
2499
- return A(y).set(C.subarray(I, I + 4 * B)), f(I - f(0)), y;
2498
+ var w = new Uint32Array(B);
2499
+ return A(w).set(C.subarray(I, I + 4 * B)), f(I - f(0)), w;
2500
2500
  }
2501
2501
  var s = { LockBorder: 1, Sparse: 2, ErrorAbsolute: 4, Prune: 8, _InternalDebug: 1 << 30 };
2502
2502
  })(), function() {
@@ -2507,9 +2507,9 @@ var Vt = function() {
2507
2507
  var n = s.charCodeAt(o);
2508
2508
  r[o] = n > 96 ? n - 97 : n > 64 ? n - 39 : n + 4;
2509
2509
  }
2510
- var d = 0;
2511
- for (o = 0; o < s.length; ++o) r[d++] = r[o] < 60 ? e[r[o]] : 64 * (r[o] - 60) + r[++o];
2512
- return r.buffer.slice(0, d);
2510
+ var b = 0;
2511
+ for (o = 0; o < s.length; ++o) r[b++] = r[o] < 60 ? e[r[o]] : 64 * (r[o] - 60) + r[++o];
2512
+ return r.buffer.slice(0, b);
2513
2513
  }("b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb"), {}).then(function(s) {
2514
2514
  (c = s.instance).exports.__wasm_call_ctors();
2515
2515
  });
@@ -2597,7 +2597,7 @@ class Ni {
2597
2597
  }
2598
2598
  }
2599
2599
  }
2600
- get(e, a, t, A, i, s, r, o, n, d, b, g) {
2600
+ get(e, a, t, A, i, s, r, o, n, b, d, g) {
2601
2601
  const l = this, h = ct(t), f = new AbortController();
2602
2602
  if (e.signal.addEventListener("abort", () => {
2603
2603
  l.register[h] && Object.keys(l.register[h]).length != 0 || f.abort("user abort");
@@ -2611,8 +2611,8 @@ class Ni {
2611
2611
  if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
2612
2612
  return u.arrayBuffer();
2613
2613
  }).then((u) => this.b3dmDecoder.parseB3DM(u, (C) => {
2614
- l.meshCallback(C, b);
2615
- }, n, d)).then((u) => {
2614
+ l.meshCallback(C, d);
2615
+ }, n, b)).then((u) => {
2616
2616
  l.cache.put(h, u), this._meshReceived(l.cache, l.register, h, i, s, r, a), l._checkSize();
2617
2617
  }).catch((u) => {
2618
2618
  }).finally(() => {
@@ -2623,7 +2623,7 @@ class Ni {
2623
2623
  m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), te++, m().then((u) => {
2624
2624
  if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
2625
2625
  return u.arrayBuffer();
2626
- }).then((u) => this.splatsDecoder.parseSplats(u, n, d, g)).then((u) => {
2626
+ }).then((u) => this.splatsDecoder.parseSplats(u, n, b, g)).then((u) => {
2627
2627
  l.cache.put(h, u), l._meshReceived(l.cache, l.register, h, i, s, r, a), l._checkSize();
2628
2628
  }).catch((u) => {
2629
2629
  }).finally(() => {
@@ -2637,13 +2637,13 @@ class Ni {
2637
2637
  }).then(async (u) => {
2638
2638
  await async function(C) {
2639
2639
  return new Promise((B) => {
2640
- const y = setInterval(() => {
2641
- C.hasDracoLoader && !C.dracoLoader || C.hasKTX2Loader && !C.ktx2Loader || (clearInterval(y), B());
2640
+ const w = setInterval(() => {
2641
+ C.hasDracoLoader && !C.dracoLoader || C.hasKTX2Loader && !C.ktx2Loader || (clearInterval(w), B());
2642
2642
  }, 10);
2643
2643
  });
2644
2644
  }(this.gltfLoader), this.gltfLoader.parse(u, null, (C) => {
2645
2645
  C.scene.asset = C.asset, n && C.scene.applyMatrix4(this.zUpToYUpMatrix), C.scene.traverse((B) => {
2646
- B.isMesh && (d && B.applyMatrix4(this.zUpToYUpMatrix), l.meshCallback && l.meshCallback(B, b)), B.isPoints && l.pointsCallback && l.pointsCallback(B, b);
2646
+ B.isMesh && (b && B.applyMatrix4(this.zUpToYUpMatrix), l.meshCallback && l.meshCallback(B, d)), B.isPoints && l.pointsCallback && l.pointsCallback(B, d);
2647
2647
  }), l.cache.put(h, C.scene), l._meshReceived(l.cache, l.register, h, i, s, r, a), l._checkSize();
2648
2648
  });
2649
2649
  }).catch((u) => {
@@ -2656,7 +2656,7 @@ class Ni {
2656
2656
  m = l.proxy ? () => fetch(l.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), te++, m().then((u) => {
2657
2657
  if (!u.ok) throw console.error("could not load tile with path : " + t), new Error(`couldn't load "${t}". Request failed with status ${u.status} : ${u.statusText}`);
2658
2658
  return u.json();
2659
- }).then((u) => Ga(u, t)).then((u) => {
2659
+ }).then((u) => Ua(u, t)).then((u) => {
2660
2660
  l.cache.put(h, u), l._meshReceived(l.cache, l.register, h), l._checkSize();
2661
2661
  }).catch((u) => {
2662
2662
  console.error(u);
@@ -2778,13 +2778,13 @@ var je = { resolve: function() {
2778
2778
  } else A > r && (c.charCodeAt(a + n) === 47 ? o = n : n === 0 && (o = 0));
2779
2779
  break;
2780
2780
  }
2781
- var d = c.charCodeAt(a + n);
2782
- if (d !== e.charCodeAt(i + n)) break;
2783
- d === 47 && (o = n);
2781
+ var b = c.charCodeAt(a + n);
2782
+ if (b !== e.charCodeAt(i + n)) break;
2783
+ b === 47 && (o = n);
2784
2784
  }
2785
- var b = "";
2786
- for (n = a + o + 1; n <= t; ++n) n !== t && c.charCodeAt(n) !== 47 || (b.length === 0 ? b += ".." : b += "/..");
2787
- return b.length > 0 ? b + e.slice(i + o) : (i += o, e.charCodeAt(i) === 47 && ++i, e.slice(i));
2785
+ var d = "";
2786
+ for (n = a + o + 1; n <= t; ++n) n !== t && c.charCodeAt(n) !== 47 || (d.length === 0 ? d += ".." : d += "/..");
2787
+ return d.length > 0 ? d + e.slice(i + o) : (i += o, e.charCodeAt(i) === 47 && ++i, e.slice(i));
2788
2788
  }, _makeLong: function(c) {
2789
2789
  return c;
2790
2790
  }, dirname: function(c) {
@@ -2844,12 +2844,12 @@ var je = { resolve: function() {
2844
2844
  if (c.length === 0) return e;
2845
2845
  var a, t = c.charCodeAt(0), A = t === 47;
2846
2846
  A ? (e.root = "/", a = 1) : a = 0;
2847
- for (var i = -1, s = 0, r = -1, o = !0, n = c.length - 1, d = 0; n >= a; --n) if ((t = c.charCodeAt(n)) !== 47) r === -1 && (o = !1, r = n + 1), t === 46 ? i === -1 ? i = n : d !== 1 && (d = 1) : i !== -1 && (d = -1);
2847
+ for (var i = -1, s = 0, r = -1, o = !0, n = c.length - 1, b = 0; n >= a; --n) if ((t = c.charCodeAt(n)) !== 47) r === -1 && (o = !1, r = n + 1), t === 46 ? i === -1 ? i = n : b !== 1 && (b = 1) : i !== -1 && (b = -1);
2848
2848
  else if (!o) {
2849
2849
  s = n + 1;
2850
2850
  break;
2851
2851
  }
2852
- return i === -1 || r === -1 || d === 0 || d === 1 && i === r - 1 && i === s + 1 ? r !== -1 && (e.base = e.name = s === 0 && A ? c.slice(1, r) : c.slice(s, r)) : (s === 0 && A ? (e.name = c.slice(1, i), e.base = c.slice(1, r)) : (e.name = c.slice(s, i), e.base = c.slice(s, r)), e.ext = c.slice(i, r)), s > 0 ? e.dir = c.slice(0, s - 1) : A && (e.dir = "/"), e;
2852
+ return i === -1 || r === -1 || b === 0 || b === 1 && i === r - 1 && i === s + 1 ? r !== -1 && (e.base = e.name = s === 0 && A ? c.slice(1, r) : c.slice(s, r)) : (s === 0 && A ? (e.name = c.slice(1, i), e.base = c.slice(1, r)) : (e.name = c.slice(s, i), e.base = c.slice(s, r)), e.ext = c.slice(i, r)), s > 0 ? e.dir = c.slice(0, s - 1) : A && (e.dir = "/"), e;
2853
2853
  }, sep: "/", delimiter: ":", win32: null, posix: null };
2854
2854
  je.posix = je;
2855
2855
  var dt, de = je;
@@ -3080,34 +3080,34 @@ new Ra(), new D(), new D(), new D(), new D();
3080
3080
  const Ve = new D(), Pi = new D(), Yt = new Fa();
3081
3081
  Yt.set(1, 0, 0, 0, 0, 1, 0, -1, 0);
3082
3082
  class Ji extends xa {
3083
- constructor(e, a) {
3084
- const A = Math.min(Math.ceil(8) * 512, Math.pow(512, 2));
3085
- let i = 1 * Math.pow(512, 2);
3086
- i = Math.floor(i / A) * A;
3087
- const s = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
3088
- e.initRenderTarget(s);
3089
- const r = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
3090
- r.texture.type = R, e.initRenderTarget(r);
3083
+ constructor(e, a, t) {
3084
+ const i = Math.min(Math.ceil(8) * 512, Math.pow(512, 2));
3085
+ let s = 1 * Math.pow(512, 2);
3086
+ s = Math.floor(s / i) * i;
3087
+ const r = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, depthBuffer: !1, resolveDepthBuffer: !1 });
3088
+ e.initRenderTarget(r);
3091
3089
  const o = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
3092
3090
  o.texture.type = R, e.initRenderTarget(o);
3093
3091
  const n = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
3094
3092
  n.texture.type = R, e.initRenderTarget(n);
3095
- const d = new ia({ uniforms: { textureSize: { value: 512 }, numSlices: { value: 1 }, cov1Texture: { value: o.texture }, cov2Texture: { value: n.texture }, colorTexture: { value: s.texture }, positionTexture: { value: r.texture }, zUpToYUpMatrix3x3: { value: Yt }, sizeMultiplier: { value: 1 }, cropRadius: { value: Number.MAX_VALUE }, cameraNear: { value: 0.01 }, cameraFar: { value: 10 }, computeLinearDepth: { value: !0 } }, vertexShader: qi(), fragmentShader: a || _i(), transparent: !0, side: Ze, depthTest: !1, depthWrite: !1 }), b = new _a(), g = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
3096
- b.setIndex([0, 2, 1, 2, 3, 1]), b.setAttribute("position", new he(g, 3));
3097
- const l = new Uint32Array(i), h = new wa(l, 1, !1);
3098
- h.needsUpdate = !0, h.setUsage(Ka), b.setAttribute("order", h), b.instanceCount = 0, super(b, d), this.numBatches = 0, this.numVisibleBatches = 0, this.orderAttribute = h, this.textureSize = 512, this.numTextures = 1, this.batchSize = A, this.maxSplats = i, this.numSplatsRendered = 0, this.colorRenderTarget = s, this.positionRenderTarget = r, this.cov1RenderTarget = o, this.cov2RenderTarget = n, this.renderer = e, this.sortID = 0, this.freeAddresses = new Pe();
3099
- for (let I = 0; I < this.maxSplats; I += A) this.freeAddresses.add(I);
3100
- this.worker = new Oi({ type: "module" }), this.sortListeners = [], this.worker.onmessage = (I) => {
3101
- const m = new Uint32Array(I.data.order);
3102
- if (this.numSplatsRendered = m.length, m.length > this.orderAttribute.count) {
3103
- const u = new _a(), C = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]), B = [0, 2, 1, 2, 3, 1];
3104
- u.setIndex(B), u.setAttribute("position", new he(C, 3));
3105
- const y = new Uint32Array(this.maxSplats), k = new wa(y, 1, !1);
3106
- k.needsUpdate = !0, k.setUsage(Ka), u.setAttribute("order", k), u.instanceCount = 0, this.geometry.dispose(), this.geometry = u, this.orderAttribute = k;
3093
+ const b = new ne(512, 512, 1, { magFilter: v, minFilter: v, anisotropy: 0, type: R, depthBuffer: !1, resolveDepthBuffer: !1 });
3094
+ b.texture.type = R, e.initRenderTarget(b);
3095
+ const d = new ia({ uniforms: { textureSize: { value: 512 }, numSlices: { value: 1 }, cov1Texture: { value: n.texture }, cov2Texture: { value: b.texture }, colorTexture: { value: r.texture }, positionTexture: { value: o.texture }, zUpToYUpMatrix3x3: { value: Yt }, sizeMultiplier: { value: 1 }, cropRadius: { value: Number.MAX_VALUE }, cameraNear: { value: 0.01 }, cameraFar: { value: 10 }, computeLinearDepth: { value: !0 } }, vertexShader: qi(), fragmentShader: t || _i(), transparent: !0, side: Ze, depthTest: !1, depthWrite: !1 }), g = new _a(), l = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
3096
+ g.setIndex([0, 2, 1, 2, 3, 1]), g.setAttribute("position", new he(l, 3));
3097
+ const h = new Uint32Array(s), f = new wa(h, 1, !1);
3098
+ f.needsUpdate = !0, f.setUsage(Ka), g.setAttribute("order", f), g.instanceCount = 0, super(g, d), this.matrixAutoUpdate = !1, this.numBatches = 0, this.numVisibleBatches = 0, this.orderAttribute = f, this.textureSize = 512, this.numTextures = 1, this.batchSize = i, this.maxSplats = s, this.numSplatsRendered = 0, this.colorRenderTarget = r, this.positionRenderTarget = o, this.cov1RenderTarget = n, this.cov2RenderTarget = b, this.renderer = e, this.sortID = 0, this.freeAddresses = new Pe();
3099
+ for (let m = 0; m < this.maxSplats; m += i) this.freeAddresses.add(m);
3100
+ this.worker = new Oi({ type: "module" }), this.sortListeners = [], this.worker.onmessage = (m) => {
3101
+ const u = new Uint32Array(m.data.order);
3102
+ if (this.numSplatsRendered = u.length, u.length > this.orderAttribute.count) {
3103
+ const C = new _a(), B = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]), w = [0, 2, 1, 2, 3, 1];
3104
+ C.setIndex(w), C.setAttribute("position", new he(B, 3));
3105
+ const k = new Uint32Array(this.maxSplats), y = new wa(k, 1, !1);
3106
+ y.needsUpdate = !0, y.setUsage(Ka), C.setAttribute("order", y), C.instanceCount = 0, this.geometry.dispose(), this.geometry = C, this.orderAttribute = y;
3107
3107
  }
3108
- this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(m), this.orderAttribute.addUpdateRange(0, m.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = I.data.count, this.geometry.needsUpdate = !0;
3109
- for (let u = this.sortListeners.length - 1; u >= 0; u--)
3110
- this.sortListeners[u](I.data.id) && this.sortListeners.splice(u, 1);
3108
+ this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(u), this.orderAttribute.addUpdateRange(0, u.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = m.data.count, this.geometry.needsUpdate = !0;
3109
+ for (let C = this.sortListeners.length - 1; C >= 0; C--)
3110
+ this.sortListeners[C](m.data.id) && this.sortListeners.splice(C, 1);
3111
3111
  }, this.cameraPosition = new D(0, 0, 0), this.rotateOnAxis(new D(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new ia({ uniforms: { sourceTexture: {} }, vertexShader: ht(), fragmentShader: `
3112
3112
  precision highp float;
3113
3113
 
@@ -3128,8 +3128,8 @@ in vec2 vUv;
3128
3128
  void main() {
3129
3129
  gl_FragColor = texture( sourceTexture, vec3(vUv, w) );
3130
3130
  }`, transparent: !1, side: Ze, depthTest: !1, depthWrite: !1 }), this.copyCamera = new Qt(-0.5, 0.5, 0.5, -0.5, 0.1, 10), this.copyCamera.position.z = 1, this.copyScene = new JA();
3131
- const f = new qA(1, 1);
3132
- this.copyQuad = new xa(f, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
3131
+ const I = new qA(1, 1);
3132
+ this.copyQuad = new xa(I, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
3133
3133
  }
3134
3134
  dispose() {
3135
3135
  this.material.dispose(), this.copyMaterial2D.dispose(), this.copyMaterial3D.dispose(), this.cov1RenderTarget.dispose(), this.cov2RenderTarget.dispose(), this.positionRenderTarget.dispose(), this.colorRenderTarget.dispose(), this.worker.terminate(), this.worker = null, this.orderAttribute.array = void 0, this.geometry.dispose();
@@ -3161,7 +3161,7 @@ void main() {
3161
3161
  }
3162
3162
  addSplatsTile(e, a, t, A) {
3163
3163
  if (!this.worker) return;
3164
- const i = this, s = e.data ? e.data.array : e.array, r = e.data && e.data.isInterleavedBuffer ? e.data.stride : 3, o = e.data && e.data.isInterleavedBuffer ? e.offset : 0, n = Math.ceil(s.length / (this.batchSize * r)), d = [], b = [];
3164
+ const i = this, s = e.data ? e.data.array : e.array, r = e.data && e.data.isInterleavedBuffer ? e.data.stride : 3, o = e.data && e.data.isInterleavedBuffer ? e.offset : 0, n = Math.ceil(s.length / (this.batchSize * r)), b = [], d = [];
3165
3165
  let g = () => {
3166
3166
  };
3167
3167
  const l = new Float32Array(s.length / r * 3);
@@ -3176,41 +3176,41 @@ void main() {
3176
3176
  }, n > this.freeAddresses.size && this.growTextures();
3177
3177
  for (let f = 0; f < n; f++) {
3178
3178
  const I = this.freeAddresses.poll();
3179
- isNaN(I) && console.log("insuficient texture size to store splats info"), d.push(I), b.push(3 * I);
3179
+ isNaN(I) && console.log("insuficient texture size to store splats info"), b.push(I), d.push(3 * I);
3180
3180
  const m = f * this.batchSize;
3181
3181
  this.addSplatsBatch(m, I, e, a, t, A);
3182
3182
  }
3183
- i.worker.postMessage({ method: "addBatches", insertionIndexes: b, positions: s.buffer, offset: o, stride: r, batchSize: i.batchSize }, [s.buffer]);
3183
+ i.worker.postMessage({ method: "addBatches", insertionIndexes: d, positions: s.buffer, offset: o, stride: r, batchSize: i.batchSize }, [s.buffer]);
3184
3184
  let h = !1;
3185
3185
  return { hide: () => {
3186
- h == 1 && i.worker && (i.numVisibleBatches--, h = !1, i.worker.postMessage({ method: "hideBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }));
3186
+ h == 1 && i.worker && (i.numVisibleBatches--, h = !1, i.worker.postMessage({ method: "hideBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }));
3187
3187
  }, show: (f) => {
3188
3188
  if (h == 0 && i.worker) {
3189
3189
  i.numVisibleBatches--, h = !0;
3190
3190
  const I = i.sortID, m = (u) => u >= I && (f(), !0);
3191
- i.sortListeners.push(m), i.worker.postMessage({ method: "showBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ });
3191
+ i.sortListeners.push(m), i.worker.postMessage({ method: "showBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ });
3192
3192
  }
3193
3193
  }, remove: () => {
3194
- i.worker && (g = void 0, i.worker.postMessage({ method: "removeBatches", insertionIndexes: b, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }), d.forEach((f) => i.freeAddresses.add(f)));
3194
+ i.worker && (g = void 0, i.worker.postMessage({ method: "removeBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }), b.forEach((f) => i.freeAddresses.add(f)));
3195
3195
  }, sort: this.sort, raycast: g, isSplatsBatch: !0 };
3196
3196
  }
3197
3197
  addSplatsBatch(e, a, t, A, i, s) {
3198
- const r = new Float32Array(4 * this.batchSize), o = new Uint8Array(4 * this.batchSize), n = new Float32Array(4 * this.batchSize), d = new Float32Array(4 * this.batchSize);
3198
+ const r = new Float32Array(4 * this.batchSize), o = new Uint8Array(4 * this.batchSize), n = new Float32Array(4 * this.batchSize), b = new Float32Array(4 * this.batchSize);
3199
3199
  for (let u = a; u < a + this.batchSize; u++) {
3200
- const C = u - a, B = 4 * C, y = e + C;
3201
- if (y >= t.count) break;
3202
- r[B] = t.getX(y), r[B + 1] = t.getY(y), r[B + 2] = t.getZ(y), Math.floor(255 * A.getX(y)), Math.floor(255 * A.getY(y)), Math.floor(255 * A.getZ(y)), Math.floor(255 * A.getW(y)), o[B] = Math.floor(255 * A.getX(y)), o[B + 1] = Math.floor(255 * A.getY(y)), o[B + 2] = Math.floor(255 * A.getZ(y)), o[B + 3] = Math.floor(255 * A.getW(y)), n[B] = i.getX(y), n[B + 1] = i.getY(y), n[B + 2] = i.getZ(y), d[B] = s.getX(y), d[B + 1] = s.getY(y), d[B + 2] = s.getZ(y);
3200
+ const C = u - a, B = 4 * C, w = e + C;
3201
+ if (w >= t.count) break;
3202
+ r[B] = t.getX(w), r[B + 1] = t.getY(w), r[B + 2] = t.getZ(w), Math.floor(255 * A.getX(w)), Math.floor(255 * A.getY(w)), Math.floor(255 * A.getZ(w)), Math.floor(255 * A.getW(w)), o[B] = Math.floor(255 * A.getX(w)), o[B + 1] = Math.floor(255 * A.getY(w)), o[B + 2] = Math.floor(255 * A.getZ(w)), o[B + 3] = Math.floor(255 * A.getW(w)), n[B] = i.getX(w), n[B + 1] = i.getY(w), n[B + 2] = i.getZ(w), b[B] = s.getX(w), b[B + 1] = s.getY(w), b[B + 2] = s.getZ(w);
3203
3203
  }
3204
- const b = Math.floor(a / Math.pow(this.textureSize, 2)), g = Math.ceil(this.batchSize / this.textureSize), l = [0, a / this.textureSize - b * this.textureSize, this.textureSize];
3204
+ const d = Math.floor(a / Math.pow(this.textureSize, 2)), g = Math.ceil(this.batchSize / this.textureSize), l = [0, a / this.textureSize - d * this.textureSize, this.textureSize];
3205
3205
  l.push(l[1] + g);
3206
- const h = new Ue(r, this.textureSize, g, ee, R);
3207
- h.generateMipmaps = !1, h.magFilter = v, h.minFilter = v, h.anisotropy = 0, h.needsUpdate = !0, this.renderer.initTexture(h), this.renderer.initRenderTarget(this.positionRenderTarget), this.copyTex2D(h, this.positionRenderTarget, l, b), h.dispose();
3208
- const f = new Ue(o, this.textureSize, g, ee, X);
3209
- f.generateMipmaps = !1, f.magFilter = v, f.minFilter = v, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, l, b), f.dispose();
3210
- const I = new Ue(n, this.textureSize, g, ee, R);
3211
- I.generateMipmaps = !1, I.magFilter = v, I.minFilter = v, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, l, b), I.dispose();
3212
- const m = new Ue(d, this.textureSize, g, ee, R);
3213
- m.generateMipmaps = !1, m.magFilter = v, m.minFilter = v, m.anisotropy = 0, m.needsUpdate = !0, this.renderer.initTexture(m), this.copyTex2D(m, this.cov2RenderTarget, l, b), m.dispose();
3206
+ const h = new Ge(r, this.textureSize, g, ee, R);
3207
+ h.generateMipmaps = !1, h.magFilter = v, h.minFilter = v, h.anisotropy = 0, h.needsUpdate = !0, this.renderer.initTexture(h), this.renderer.initRenderTarget(this.positionRenderTarget), this.copyTex2D(h, this.positionRenderTarget, l, d), h.dispose();
3208
+ const f = new Ge(o, this.textureSize, g, ee, X);
3209
+ f.generateMipmaps = !1, f.magFilter = v, f.minFilter = v, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, l, d), f.dispose();
3210
+ const I = new Ge(n, this.textureSize, g, ee, R);
3211
+ I.generateMipmaps = !1, I.magFilter = v, I.minFilter = v, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, l, d), I.dispose();
3212
+ const m = new Ge(b, this.textureSize, g, ee, R);
3213
+ m.generateMipmaps = !1, m.magFilter = v, m.minFilter = v, m.anisotropy = 0, m.needsUpdate = !0, this.renderer.initTexture(m), this.copyTex2D(m, this.cov2RenderTarget, l, d), m.dispose();
3214
3214
  }
3215
3215
  growTextures() {
3216
3216
  for (let s = this.maxSplats; s < this.maxSplats + this.textureSize * this.textureSize; s += this.batchSize) this.freeAddresses.add(s);
@@ -3462,7 +3462,7 @@ class Wt extends E.Object3D {
3462
3462
  }
3463
3463
  (a.proxy ? () => fetch(a.proxy, { method: "POST", body: t, signal: a.abortController.signal }) : () => fetch(t, { signal: a.abortController.signal }))().then((i) => {
3464
3464
  if (!i.ok) throw new Error(`couldn't load "${e.url}". Request failed with status ${i.status} : ${i.statusText}`);
3465
- i.json().then((s) => Ga(s, t)).then((s) => {
3465
+ i.json().then((s) => Ua(s, t)).then((s) => {
3466
3466
  a._setup({ rootPath: de.dirname(e.url), json: s });
3467
3467
  });
3468
3468
  }).catch((i) => {
@@ -3477,18 +3477,18 @@ class Wt extends E.Object3D {
3477
3477
  this.splatsCropRadius = e, this.splatsMesh && this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius);
3478
3478
  }
3479
3479
  updateMatrices() {
3480
- this.updateMatrix(), this.static && this.traverse((e) => {
3480
+ this.updateMatrix(), this.splatsMesh && this.splatsMesh.updateMatrix(), this.static && (this.traverse((e) => {
3481
3481
  e.isObject3D && (e.matrixWorldAutoUpdate = !0);
3482
- }), this.updateMatrixWorld(!0), this.static && this.traverse((e) => {
3482
+ }), this.splatsMesh && (this.splatsMesh.matrixWorldAutoUpdate = !0)), this.updateMatrixWorld(!0), this.static && (this.traverse((e) => {
3483
3483
  e.isObject3D && (e.matrixWorldAutoUpdate = !1);
3484
- });
3484
+ }), this.splatsMesh && (this.splatsMesh.matrixWorldAutoUpdate = !1));
3485
3485
  }
3486
3486
  setCanvasSize(e, a) {
3487
3487
  this.rendererSize.set(e, a);
3488
3488
  }
3489
3489
  async _setup(e) {
3490
3490
  const a = this;
3491
- if (e.json.extensionsRequired && (e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") || e.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2")) && (a.splatsMesh = new Ji(a.tileLoader.renderer), this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius), this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier), a.add(a.splatsMesh)), e.json.root ? (a.json = e.json.root, a.json.refine || (a.json.refine = e.json.refine), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : a.json = e.json, a.json.children || (a.json.getChildren ? a.json.children = await a.json.getChildren() : a.json.children = []), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refine ? a.refine = a.json.refine : a.refine = e.parentRefine, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError, a.json.transform) {
3491
+ if (e.json.extensionsRequired && (e.json.extensionsRequired.includes("JDULTRA_gaussian_splats") || e.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2")) && (a.splatsMesh = new Ji(a.tileLoader.renderer), a.splatsMesh.setSplatsCropRadius(a.splatsCropRadius), a.splatsMesh.setSplatsSizeMultiplier(a.splatsSizeMultiplier), a.static && (a.splatsMesh.matrixWorldAutoUpdate = !1), a.add(a.splatsMesh), a.updateMatrices()), e.json.root ? (a.json = e.json.root, a.json.refine || (a.json.refine = e.json.refine), a.json.geometricError || (a.json.geometricError = e.json.geometricError), a.json.transform || (a.json.transform = e.json.transform), a.json.boundingVolume || (a.json.boundingVolume = e.json.boundingVolume)) : a.json = e.json, a.json.children || (a.json.getChildren ? a.json.children = await a.json.getChildren() : a.json.children = []), a.rootPath = e.json.rootPath ? e.json.rootPath : e.rootPath, a.json.refine ? a.refine = a.json.refine : a.refine = e.parentRefine, a.json.geometricError ? a.geometricError = a.json.geometricError : a.geometricError = e.parentGeometricError, a.json.transform) {
3492
3492
  let A = new E.Matrix4();
3493
3493
  A.elements = a.json.transform, a.applyMatrix4(A);
3494
3494
  }
@@ -3538,11 +3538,11 @@ class Wt extends E.Object3D {
3538
3538
  async function A(i, s, r, o) {
3539
3539
  let n;
3540
3540
  i.uri ? n = i.uri : i.url && (n = i.url);
3541
- const d = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
3542
- if (d.test(t.rootPath) ? d.test(n) || (n = t._assembleURL(t.rootPath, n)) : de.isAbsolute(t.rootPath) && (n = t.rootPath + de.sep + n), n = t._extractQueryParams(n, t.queryParams), t.queryParams) {
3543
- var b = "";
3544
- for (let g in t.queryParams) t.queryParams.hasOwnProperty(g) && (b += "&" + g + "=" + t.queryParams[g]);
3545
- n.includes("?") ? n += b : n += "?" + b.substring(1);
3541
+ const b = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
3542
+ if (b.test(t.rootPath) ? b.test(n) || (n = t._assembleURL(t.rootPath, n)) : de.isAbsolute(t.rootPath) && (n = t.rootPath + de.sep + n), n = t._extractQueryParams(n, t.queryParams), t.queryParams) {
3543
+ var d = "";
3544
+ for (let g in t.queryParams) t.queryParams.hasOwnProperty(g) && (d += "&" + g + "=" + t.queryParams[g]);
3545
+ n.includes("?") ? n += d : n += "?" + d.substring(1);
3546
3546
  }
3547
3547
  if (n) if (t.contentURL.push(n), o && (n.includes(".b3dm") || n.includes(".glb") || n.includes(".gltf"))) try {
3548
3548
  t.tileLoader.get(t.abortController, t.uuid, n, (g) => {
@@ -3832,8 +3832,8 @@ class Wt extends E.Object3D {
3832
3832
  this.distanceBias = e, this.childrenTiles.forEach((a) => a.setDistanceBias(e));
3833
3833
  }
3834
3834
  _transformWGS84ToCartesian(e, a, t, A) {
3835
- const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), o = Math.sin(a), n = i + t, d = n * s * r, b = n * s * Math.sin(e), g = (0.993305615557957 * i + t) * o;
3836
- A.set(d, b, g);
3835
+ const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), o = Math.sin(a), n = i + t, b = n * s * r, d = n * s * Math.sin(e), g = (0.993305615557957 * i + t) * o;
3836
+ A.set(b, d, g);
3837
3837
  }
3838
3838
  }
3839
3839
  function gt(c) {
@@ -3851,7 +3851,7 @@ function pa() {
3851
3851
  }), e = e.slice(0, -2), W.textContent = e;
3852
3852
  }
3853
3853
  const N = new E.Sphere(new E.Vector3(0, 0, 0), 1), be = new E.Vector3(0, 0, 0), Ea = new E.Vector3(0, 0, 0), Vi = new E.Vector3(0, 1, 0), Qa = new E.Vector2(), ft = new E.Quaternion(), ut = new E.Matrix4();
3854
- class Ua extends E.Object3D {
3854
+ class Ga extends E.Object3D {
3855
3855
  constructor(e) {
3856
3856
  super();
3857
3857
  const a = this;
@@ -3958,7 +3958,7 @@ class Ua extends E.Object3D {
3958
3958
  t.isSetup && (t.materialVisibility, t.boundingVolume && t.geometricError && (t.metric = t.calculateUpdateMetric(e, a)), t.childrenTiles.forEach((i) => i._update(e, a)), A(t.metric), function(i) {
3959
3959
  i < 0 && t.hasMeshContent || (!t.hasMeshContent && t.rootPath || i < t.master.geometricErrorMultiplier * t.geometricError && t.meshContent.size > 0) && t.json && t.jsonChildren && t.childrenTiles.length != t.jsonChildren.length && t.jsonChildren.forEach((s) => {
3960
3960
  if (!(s.root || s.children || s.getChildren || s.content || s.contents)) return;
3961
- let r = new Ua({ parentTile: t, queryParams: t.queryParams, parentGeometricError: t.geometricError, parentBoundingVolume: t.boundingVolume, parentRefinement: t.refinement, json: s, rootPath: t.rootPath, loadOutsideView: t.loadOutsideView, level: t.level + 1, tileLoader: t.tileLoader, cameraOnLoad: e, master: t.master, centerModel: !1 });
3961
+ let r = new Ga({ parentTile: t, queryParams: t.queryParams, parentGeometricError: t.geometricError, parentBoundingVolume: t.boundingVolume, parentRefinement: t.refinement, json: s, rootPath: t.rootPath, loadOutsideView: t.loadOutsideView, level: t.level + 1, tileLoader: t.tileLoader, cameraOnLoad: e, master: t.master, centerModel: !1 });
3962
3962
  t.childrenTiles.push(r);
3963
3963
  });
3964
3964
  }(t.metric), function(i) {
@@ -4029,13 +4029,13 @@ class Ua extends E.Object3D {
4029
4029
  return this.matrixWorld;
4030
4030
  }
4031
4031
  transformWGS84ToCartesian(e, a, t, A) {
4032
- const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), o = Math.sin(a), n = i + t, d = n * s * r, b = n * s * Math.sin(e), g = (0.993305615557957 * i + t) * o;
4033
- A.set(d, b, g);
4032
+ const i = 6378137 / Math.sqrt(1 - 0.006694384442042 * Math.pow(Math.sin(a), 2)), s = Math.cos(a), r = Math.cos(e), o = Math.sin(a), n = i + t, b = n * s * r, d = n * s * Math.sin(e), g = (0.993305615557957 * i + t) * o;
4033
+ A.set(b, d, g);
4034
4034
  }
4035
4035
  }
4036
4036
  class as extends E.Object3D {
4037
4037
  constructor(e) {
4038
- super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new Ua(e), e.static && (this.matrixAutoUpdate = !1), this.tileLoader = e.tileLoader;
4038
+ super(), e.master = this, e.domWidth && e.domHeight ? this.rendererSize = new E.Vector2(e.domWidth, e.domHeight) : this.rendererSize = new E.Vector2(1e3, 1e3), this.renderer = e.renderer, this.distanceBias = Math.max(1e-4, e.distanceBias ? e.distanceBias : 1), this.geometricErrorMultiplier = e.geometricErrorMultiplier ? e.geometricErrorMultiplier : 1, this.tileset = new Ga(e), e.static && (this.matrixAutoUpdate = !1), this.tileLoader = e.tileLoader;
4039
4039
  }
4040
4040
  _renderSize(e) {
4041
4041
  this.renderer ? this.renderer.getDrawingBufferSize(e) : e.copy(this.rendererSize);
@@ -4178,7 +4178,7 @@ class ts {
4178
4178
  a = e.proxy ? () => fetch(e.proxy, { method: "POST", body: t.path }) : () => fetch(t.path), Ie++, a().then((A) => {
4179
4179
  if (!A.ok) throw console.error("could not load tile with path : " + t.path), new Error(`couldn't load "${t.path}". Request failed with status ${A.status} : ${A.statusText}`);
4180
4180
  return A.json();
4181
- }).then((A) => Ga(A, t.path)).then((A) => {
4181
+ }).then((A) => Ua(A, t.path)).then((A) => {
4182
4182
  t.tile.setObject(A, t.path), e.ready.unshift(t);
4183
4183
  }).catch((A) => console.error(A)).finally(() => {
4184
4184
  Ie--;
@@ -4206,8 +4206,8 @@ class ts {
4206
4206
  }
4207
4207
  }
4208
4208
  }
4209
- get(e, a, t, A, i, s, r, o, n, d) {
4210
- const b = this, g = function(h) {
4209
+ get(e, a, t, A, i, s, r, o, n, b) {
4210
+ const d = this, g = function(h) {
4211
4211
  for (var f = h.split("/"), I = [], m = 0, u = 0; u < f.length; u++) {
4212
4212
  var C = f[u];
4213
4213
  C !== "." && C !== "" && C !== ".." ? I[m++] = C : C === ".." && m > 0 && m--;
@@ -4218,18 +4218,18 @@ class ts {
4218
4218
  return B;
4219
4219
  }(a);
4220
4220
  if (!(a.includes(".b3dm") || a.includes(".json") || a.includes(".glb") || a.includes(".gltf"))) return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");
4221
- const l = b.cache.get(g);
4221
+ const l = d.cache.get(g);
4222
4222
  if (l) l.addInstance(A);
4223
4223
  else if (a.includes(".b3dm") || a.includes(".glb") || a.includes(".gltf")) {
4224
- const h = new Yi(b.scene);
4225
- h.addInstance(A), b.cache.put(g, h);
4224
+ const h = new Yi(d.scene);
4225
+ h.addInstance(A), d.cache.put(g, h);
4226
4226
  const f = new AbortController();
4227
4227
  e.signal.addEventListener("abort", () => {
4228
4228
  h.getCount() == 0 && f.abort();
4229
- }), this.downloads.push({ abortController: f, tile: h, key: g, path: a, distanceFunction: i, getSiblings: s, level: r, uuid: t, sceneZupToYup: o, meshZupToYup: n, geometricError: d, shouldDoDownload: () => !0 });
4229
+ }), this.downloads.push({ abortController: f, tile: h, key: g, path: a, distanceFunction: i, getSiblings: s, level: r, uuid: t, sceneZupToYup: o, meshZupToYup: n, geometricError: b, shouldDoDownload: () => !0 });
4230
4230
  } else if (a.includes(".json")) {
4231
4231
  const h = new Wi();
4232
- h.addInstance(A), b.cache.put(g, h);
4232
+ h.addInstance(A), d.cache.put(g, h);
4233
4233
  const f = new AbortController();
4234
4234
  e.signal.addEventListener("abort", () => {
4235
4235
  h.getCount() == 0 && f.abort();