@jdultra/threedtiles 13.0.18 → 13.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/threedtiles.cjs.js +6 -6
- package/dist/threedtiles.cjs.js.map +1 -1
- package/dist/threedtiles.es.js +442 -441
- package/dist/threedtiles.es.js.map +1 -1
- package/dist/threedtiles.umd.js +7 -7
- package/dist/threedtiles.umd.js.map +1 -1
- package/dist/tileset/TileLoader.d.ts +1 -1
- package/package.json +1 -1
package/dist/threedtiles.es.js
CHANGED
|
@@ -191,56 +191,56 @@ class kt {
|
|
|
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, b = s.byteOffset || 0, d = s.type || A,
|
|
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
|
-
let
|
|
196
|
+
let h, l;
|
|
197
197
|
switch (d) {
|
|
198
198
|
case "SCALAR":
|
|
199
|
-
|
|
199
|
+
h = 1;
|
|
200
200
|
break;
|
|
201
201
|
case "VEC2":
|
|
202
|
-
|
|
202
|
+
h = 2;
|
|
203
203
|
break;
|
|
204
204
|
case "VEC3":
|
|
205
|
-
|
|
205
|
+
h = 3;
|
|
206
206
|
break;
|
|
207
207
|
case "VEC4":
|
|
208
|
-
|
|
208
|
+
h = 4;
|
|
209
209
|
break;
|
|
210
210
|
default:
|
|
211
211
|
throw new Error(`FeatureTable : Feature type not provided for "${e}".`);
|
|
212
212
|
}
|
|
213
|
-
const f = o + b, I = a *
|
|
214
|
-
switch (
|
|
213
|
+
const f = o + b, I = a * h;
|
|
214
|
+
switch (g) {
|
|
215
215
|
case "BYTE":
|
|
216
|
-
|
|
216
|
+
l = new Int8Array(r, f, I);
|
|
217
217
|
break;
|
|
218
218
|
case "UNSIGNED_BYTE":
|
|
219
|
-
|
|
219
|
+
l = new Uint8Array(r, f, I);
|
|
220
220
|
break;
|
|
221
221
|
case "SHORT":
|
|
222
|
-
|
|
222
|
+
l = new Int16Array(r, f, I);
|
|
223
223
|
break;
|
|
224
224
|
case "UNSIGNED_SHORT":
|
|
225
|
-
|
|
225
|
+
l = new Uint16Array(r, f, I);
|
|
226
226
|
break;
|
|
227
227
|
case "INT":
|
|
228
|
-
|
|
228
|
+
l = new Int32Array(r, f, I);
|
|
229
229
|
break;
|
|
230
230
|
case "UNSIGNED_INT":
|
|
231
|
-
|
|
231
|
+
l = new Uint32Array(r, f, I);
|
|
232
232
|
break;
|
|
233
233
|
case "FLOAT":
|
|
234
|
-
|
|
234
|
+
l = new Float32Array(r, f, I);
|
|
235
235
|
break;
|
|
236
236
|
case "DOUBLE":
|
|
237
|
-
|
|
237
|
+
l = new Float64Array(r, f, I);
|
|
238
238
|
break;
|
|
239
239
|
default:
|
|
240
240
|
throw new Error(`FeatureTable : Feature component type not provided for "${e}".`);
|
|
241
241
|
}
|
|
242
|
-
if (f + I *
|
|
243
|
-
return
|
|
242
|
+
if (f + I * l.BYTES_PER_ELEMENT > o + n) throw new Error("FeatureTable: Feature data read outside binary body length.");
|
|
243
|
+
return l;
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
return s;
|
|
@@ -270,9 +270,9 @@ function Xa(c) {
|
|
|
270
270
|
const b = c[n];
|
|
271
271
|
if (b.isInterleavedBufferAttribute) {
|
|
272
272
|
const d = o / a;
|
|
273
|
-
for (let
|
|
274
|
-
const f = b.getComponent(
|
|
275
|
-
r.setComponent(
|
|
273
|
+
for (let g = 0, h = b.count; g < h; g++) for (let l = 0; l < a; l++) {
|
|
274
|
+
const f = b.getComponent(g, l);
|
|
275
|
+
r.setComponent(g + d, l, f);
|
|
276
276
|
}
|
|
277
277
|
} else s.set(b.array, o);
|
|
278
278
|
o += b.count * a;
|
|
@@ -312,15 +312,15 @@ class Dt {
|
|
|
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), b = s.getUint32(16, !0), d = s.getUint32(20, !0),
|
|
316
|
-
new KA(e,
|
|
317
|
-
const f =
|
|
318
|
-
return new Promise(async (
|
|
315
|
+
const n = s.getUint32(12, !0), b = s.getUint32(16, !0), d = s.getUint32(20, !0), g = s.getUint32(24, !0), h = new kt(e, 28, n, b), l = 28 + n + b;
|
|
316
|
+
new KA(e, h.getData("BATCH_LENGTH"), l, d, g);
|
|
317
|
+
const f = l + d + g, I = new Uint8Array(e, f, o - f).slice().buffer;
|
|
318
|
+
return new Promise(async (p, u) => {
|
|
319
319
|
await this.checkLoaderInitialized(), this.gltfLoader.parse(I, null, (B) => {
|
|
320
|
-
const C =
|
|
320
|
+
const C = h.getData("RTC_CENTER");
|
|
321
321
|
C ? (this.tempMatrix.makeTranslation(C[0], C[1], C[2]), B.scene.applyMatrix4(this.tempMatrix)) : B.userData.gltfExtensions && B.userData.gltfExtensions.CESIUM_RTC && (this.tempMatrix.makeTranslation(B.userData.gltfExtensions.CESIUM_RTC.center[0], B.userData.gltfExtensions.CESIUM_RTC.center[1], B.userData.gltfExtensions.CESIUM_RTC.center[2]), B.scene.applyMatrix4(this.tempMatrix)), t && B.scene.applyMatrix4(i.zUpToYUpMatrix), B.scene.asset = B.asset, B.scene.traverse((w) => {
|
|
322
322
|
w.isMesh && (A && w.applyMatrix4(i.zUpToYUpMatrix), a && a(w));
|
|
323
|
-
}),
|
|
323
|
+
}), p(B.scene);
|
|
324
324
|
}, (B) => {
|
|
325
325
|
console.error(B);
|
|
326
326
|
});
|
|
@@ -333,14 +333,14 @@ class Dt {
|
|
|
333
333
|
d.isMesh && (d.geometry.applyMatrix4(d.matrixWorld), o.push(d.geometry), n.push(d.material));
|
|
334
334
|
});
|
|
335
335
|
let b = function(d) {
|
|
336
|
-
let
|
|
337
|
-
return d.forEach((
|
|
338
|
-
for (let f in
|
|
339
|
-
}), d.forEach((
|
|
340
|
-
|
|
341
|
-
if (!
|
|
342
|
-
const I = function(
|
|
343
|
-
switch (
|
|
336
|
+
let g = /* @__PURE__ */ new Set();
|
|
337
|
+
return d.forEach((l) => {
|
|
338
|
+
for (let f in l.attributes) g.add(f);
|
|
339
|
+
}), d.forEach((l) => {
|
|
340
|
+
g.forEach((f) => {
|
|
341
|
+
if (!l.attributes[f]) {
|
|
342
|
+
const I = function(u) {
|
|
343
|
+
switch (u) {
|
|
344
344
|
case "position":
|
|
345
345
|
case "normal":
|
|
346
346
|
case "color":
|
|
@@ -349,27 +349,27 @@ class Dt {
|
|
|
349
349
|
case "uv2":
|
|
350
350
|
return 2;
|
|
351
351
|
default:
|
|
352
|
-
throw new Error(`Unknown attribute ${
|
|
352
|
+
throw new Error(`Unknown attribute ${u}`);
|
|
353
353
|
}
|
|
354
|
-
}(f),
|
|
355
|
-
|
|
354
|
+
}(f), p = new Float32Array(I * l.getAttribute("position").count).fill(0);
|
|
355
|
+
l.setAttribute(f, new E.BufferAttribute(p, I));
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
|
-
}), function(
|
|
359
|
-
const I =
|
|
358
|
+
}), function(l, f = !1) {
|
|
359
|
+
const I = l[0].index !== null, p = new Set(Object.keys(l[0].attributes)), u = new Set(Object.keys(l[0].morphAttributes)), B = {}, C = {}, w = l[0].morphTargetsRelative, x = new ea();
|
|
360
360
|
let y = 0;
|
|
361
|
-
for (let m = 0; m <
|
|
362
|
-
const Q =
|
|
361
|
+
for (let m = 0; m < l.length; ++m) {
|
|
362
|
+
const Q = l[m];
|
|
363
363
|
let k = 0;
|
|
364
364
|
if (I !== (Q.index !== null)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."), null;
|
|
365
365
|
for (const D in Q.attributes) {
|
|
366
|
-
if (!
|
|
366
|
+
if (!p.has(D)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + '. All geometries must have compatible attributes; make sure "' + D + '" attribute exists among all geometries, or in none of them.'), null;
|
|
367
367
|
B[D] === void 0 && (B[D] = []), B[D].push(Q.attributes[D]), k++;
|
|
368
368
|
}
|
|
369
|
-
if (k !==
|
|
369
|
+
if (k !== p.size) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". Make sure all geometries have the same number of attributes."), null;
|
|
370
370
|
if (w !== Q.morphTargetsRelative) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". .morphTargetsRelative must be consistent throughout all geometries."), null;
|
|
371
371
|
for (const D in Q.morphAttributes) {
|
|
372
|
-
if (!
|
|
372
|
+
if (!u.has(D)) return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + m + ". .morphAttributes must be consistent throughout all geometries."), null;
|
|
373
373
|
C[D] === void 0 && (C[D] = []), C[D].push(Q.morphAttributes[D]);
|
|
374
374
|
}
|
|
375
375
|
if (f) {
|
|
@@ -385,10 +385,10 @@ class Dt {
|
|
|
385
385
|
if (I) {
|
|
386
386
|
let m = 0;
|
|
387
387
|
const Q = [];
|
|
388
|
-
for (let k = 0; k <
|
|
389
|
-
const D =
|
|
388
|
+
for (let k = 0; k < l.length; ++k) {
|
|
389
|
+
const D = l[k].index;
|
|
390
390
|
for (let F = 0; F < D.count; ++F) Q.push(D.getX(F) + m);
|
|
391
|
-
m +=
|
|
391
|
+
m += l[k].attributes.position.count;
|
|
392
392
|
}
|
|
393
393
|
x.setIndex(Q);
|
|
394
394
|
}
|
|
@@ -451,10 +451,10 @@ 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], b = n.geometry.attributes.position, d = n.geometry.attributes.color,
|
|
454
|
+
const n = o.scene.children[0], b = n.geometry.attributes.position, d = n.geometry.attributes.color, g = n.geometry.attributes.cov_0, h = n.geometry.attributes.cov_1, l = A.addSplatsTile(b, d, g, h);
|
|
455
455
|
o.scene.traverse((f) => {
|
|
456
456
|
f.dispose && f.dispose();
|
|
457
|
-
}), s(
|
|
457
|
+
}), s(l);
|
|
458
458
|
}, (o) => {
|
|
459
459
|
console.error(o);
|
|
460
460
|
});
|
|
@@ -558,7 +558,7 @@ class Mt extends Fa {
|
|
|
558
558
|
d.name || console.error("THREE.GLTFLoader: Invalid plugin found: missing name"), r[d.name] = d, s[d.name] = !0;
|
|
559
559
|
}
|
|
560
560
|
if (i.extensionsUsed) for (let b = 0; b < i.extensionsUsed.length; ++b) {
|
|
561
|
-
const d = i.extensionsUsed[b],
|
|
561
|
+
const d = i.extensionsUsed[b], g = i.extensionsRequired || [];
|
|
562
562
|
switch (d) {
|
|
563
563
|
case j.KHR_MATERIALS_UNLIT:
|
|
564
564
|
s[d] = new ei();
|
|
@@ -573,7 +573,7 @@ class Mt extends Fa {
|
|
|
573
573
|
s[d] = new Ei();
|
|
574
574
|
break;
|
|
575
575
|
default:
|
|
576
|
-
|
|
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);
|
|
@@ -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, b = A.count, d = A.byteStride,
|
|
927
|
-
return s.decodeGltfBufferAsync ? s.decodeGltfBufferAsync(b, d,
|
|
928
|
-
return
|
|
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(h) {
|
|
928
|
+
return h.buffer;
|
|
929
929
|
}) : s.ready.then(function() {
|
|
930
|
-
const
|
|
931
|
-
return s.decodeGltfBuffer(new Uint8Array(
|
|
930
|
+
const h = new ArrayBuffer(b * d);
|
|
931
|
+
return s.decodeGltfBuffer(new Uint8Array(h), b, d, g, A.mode, A.filter), h;
|
|
932
932
|
});
|
|
933
933
|
});
|
|
934
934
|
}
|
|
@@ -947,17 +947,17 @@ 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(), b = n.isGroup ? n.children : [n], d = o[0].count,
|
|
951
|
-
for (const
|
|
952
|
-
const
|
|
953
|
-
for (let B = 0; B < d; B++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, B), r.ROTATION && I.fromBufferAttribute(r.ROTATION, B), r.SCALE &&
|
|
950
|
+
const n = o.pop(), b = n.isGroup ? n.children : [n], d = o[0].count, g = [];
|
|
951
|
+
for (const h of b) {
|
|
952
|
+
const l = new je(), f = new M(), I = new mt(), p = new M(1, 1, 1), u = new sA(h.geometry, h.material, d);
|
|
953
|
+
for (let B = 0; B < d; B++) r.TRANSLATION && f.fromBufferAttribute(r.TRANSLATION, B), r.ROTATION && I.fromBufferAttribute(r.ROTATION, B), r.SCALE && p.fromBufferAttribute(r.SCALE, B), u.setMatrixAt(B, l.compose(f, I, p));
|
|
954
954
|
for (const B in r) if (B === "_COLOR_0") {
|
|
955
955
|
const C = r[B];
|
|
956
|
-
|
|
957
|
-
} else B !== "TRANSLATION" && B !== "ROTATION" && B !== "SCALE" &&
|
|
958
|
-
Et.prototype.copy.call(
|
|
956
|
+
u.instanceColor = new wa(C.array, C.itemSize, C.normalized);
|
|
957
|
+
} else B !== "TRANSLATION" && B !== "ROTATION" && B !== "SCALE" && h.geometry.setAttribute(B, r[B]);
|
|
958
|
+
Et.prototype.copy.call(u, h), this.parser.assignFinalMaterial(u), g.push(u);
|
|
959
959
|
}
|
|
960
|
-
return n.isGroup ? (n.clear(), n.add(...
|
|
960
|
+
return n.isGroup ? (n.clear(), n.add(...g), n) : g[0];
|
|
961
961
|
}));
|
|
962
962
|
}
|
|
963
963
|
}
|
|
@@ -1000,19 +1000,19 @@ class Bi {
|
|
|
1000
1000
|
for (const b in e.attributes) {
|
|
1001
1001
|
const d = ja[b] || b.toLowerCase();
|
|
1002
1002
|
if (s[b] !== void 0) {
|
|
1003
|
-
const
|
|
1004
|
-
n[d] =
|
|
1003
|
+
const g = t.accessors[e.attributes[b]], h = ke[g.componentType];
|
|
1004
|
+
n[d] = h.name, o[d] = g.normalized === !0;
|
|
1005
1005
|
}
|
|
1006
1006
|
}
|
|
1007
1007
|
return a.getDependency("bufferView", i).then(function(b) {
|
|
1008
|
-
return new Promise(function(d,
|
|
1009
|
-
A.decodeDracoFile(b, function(
|
|
1010
|
-
for (const
|
|
1011
|
-
const f =
|
|
1008
|
+
return new Promise(function(d, g) {
|
|
1009
|
+
A.decodeDracoFile(b, function(h) {
|
|
1010
|
+
for (const l in h.attributes) {
|
|
1011
|
+
const f = h.attributes[l], I = o[l];
|
|
1012
1012
|
I !== void 0 && (f.normalized = I);
|
|
1013
1013
|
}
|
|
1014
|
-
d(
|
|
1015
|
-
}, r, n, K,
|
|
1014
|
+
d(h);
|
|
1015
|
+
}, r, n, K, g);
|
|
1016
1016
|
});
|
|
1017
1017
|
});
|
|
1018
1018
|
}
|
|
@@ -1040,10 +1040,10 @@ class St extends jA {
|
|
|
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, b = A - a, d = (t - a) / 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, h = g * d, l = e * n, f = l - n, I = -2 * h + 3 * g, p = h - g, u = 1 - I, B = p - g + d;
|
|
1044
1044
|
for (let C = 0; C !== r; C++) {
|
|
1045
|
-
const w = s[f + C + r], x = s[f + C + o] * b, y = s[
|
|
1046
|
-
i[C] =
|
|
1045
|
+
const w = s[f + C + r], x = s[f + C + o] * b, y = s[l + C + r], m = s[l + C] * b;
|
|
1046
|
+
i[C] = u * w + B * x + I * y + p * m;
|
|
1047
1047
|
}
|
|
1048
1048
|
return i;
|
|
1049
1049
|
}
|
|
@@ -1272,21 +1272,21 @@ class Si {
|
|
|
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 = ke[A.componentType], b = n.BYTES_PER_ELEMENT, d = b * o,
|
|
1275
|
+
const r = s[0], o = na[A.type], n = ke[A.componentType], b = n.BYTES_PER_ELEMENT, d = b * o, g = A.byteOffset || 0, h = A.bufferView !== void 0 ? t.bufferViews[A.bufferView].byteStride : void 0, l = A.normalized === !0;
|
|
1276
1276
|
let f, I;
|
|
1277
|
-
if (
|
|
1278
|
-
const
|
|
1279
|
-
let B = a.cache.get(
|
|
1280
|
-
B || (f = new n(r,
|
|
1281
|
-
} else f = r === null ? new n(A.count * o) : new n(r,
|
|
1277
|
+
if (h && h !== d) {
|
|
1278
|
+
const p = Math.floor(g / h), u = "InterleavedBuffer:" + A.bufferView + ":" + A.componentType + ":" + p + ":" + A.count;
|
|
1279
|
+
let B = a.cache.get(u);
|
|
1280
|
+
B || (f = new n(r, p * h, A.count * h / b), B = new oA(f, h / b), a.cache.add(u, B)), I = new cA(B, o, g % h / b, l);
|
|
1281
|
+
} else f = r === null ? new n(A.count * o) : new n(r, g, A.count * o), I = new le(f, o, l);
|
|
1282
1282
|
if (A.sparse !== void 0) {
|
|
1283
|
-
const
|
|
1283
|
+
const p = na.SCALAR, u = ke[A.sparse.indices.componentType], B = A.sparse.indices.byteOffset || 0, C = A.sparse.values.byteOffset || 0, w = new u(s[1], B, A.sparse.count * p), x = new n(s[2], C, A.sparse.count * o);
|
|
1284
1284
|
r !== null && (I = new le(I.array.slice(), I.itemSize, I.normalized)), I.normalized = !1;
|
|
1285
1285
|
for (let y = 0, m = w.length; y < m; y++) {
|
|
1286
1286
|
const Q = w[y];
|
|
1287
1287
|
if (I.setX(Q, x[y * o]), o >= 2 && I.setY(Q, x[y * o + 1]), o >= 3 && I.setZ(Q, x[y * o + 2]), o >= 4 && I.setW(Q, x[y * o + 3]), o >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.");
|
|
1288
1288
|
}
|
|
1289
|
-
I.normalized =
|
|
1289
|
+
I.normalized = l;
|
|
1290
1290
|
}
|
|
1291
1291
|
return I;
|
|
1292
1292
|
});
|
|
@@ -1319,21 +1319,21 @@ class Si {
|
|
|
1319
1319
|
let o = s.uri || "", n = !1;
|
|
1320
1320
|
if (s.bufferView !== void 0) o = t.getDependency("bufferView", s.bufferView).then(function(d) {
|
|
1321
1321
|
n = !0;
|
|
1322
|
-
const
|
|
1323
|
-
return o = r.createObjectURL(
|
|
1322
|
+
const g = new Blob([d], { type: s.mimeType });
|
|
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
1326
|
const b = Promise.resolve(o).then(function(d) {
|
|
1327
|
-
return new Promise(function(
|
|
1328
|
-
let
|
|
1329
|
-
a.isImageBitmapLoader === !0 && (
|
|
1327
|
+
return new Promise(function(g, h) {
|
|
1328
|
+
let l = g;
|
|
1329
|
+
a.isImageBitmapLoader === !0 && (l = function(f) {
|
|
1330
1330
|
const I = new Na(f);
|
|
1331
|
-
I.needsUpdate = !0,
|
|
1332
|
-
}), a.load(Pe.resolveURL(d, i.path),
|
|
1331
|
+
I.needsUpdate = !0, g(I);
|
|
1332
|
+
}), a.load(Pe.resolveURL(d, i.path), l, void 0, h);
|
|
1333
1333
|
});
|
|
1334
1334
|
}).then(function(d) {
|
|
1335
|
-
var
|
|
1336
|
-
return n === !0 && r.revokeObjectURL(o), se(d, s), d.userData.mimeType = s.mimeType || ((
|
|
1335
|
+
var g;
|
|
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
1337
|
}).catch(function(d) {
|
|
1338
1338
|
throw console.error("THREE.GLTFLoader: Couldn't load texture", o), d;
|
|
1339
1339
|
});
|
|
@@ -1427,8 +1427,8 @@ class Si {
|
|
|
1427
1427
|
const n = e[r], b = Mi(n), d = A[b];
|
|
1428
1428
|
if (d) s.push(d.promise);
|
|
1429
1429
|
else {
|
|
1430
|
-
let
|
|
1431
|
-
|
|
1430
|
+
let g;
|
|
1431
|
+
g = n.extensions && n.extensions[j.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);
|
|
@@ -1441,27 +1441,27 @@ class Si {
|
|
|
1441
1441
|
}
|
|
1442
1442
|
var o;
|
|
1443
1443
|
return r.push(a.loadGeometries(s)), Promise.all(r).then(function(n) {
|
|
1444
|
-
const b = n.slice(0, n.length - 1), d = n[n.length - 1],
|
|
1445
|
-
for (let
|
|
1446
|
-
const I = d[
|
|
1447
|
-
let
|
|
1448
|
-
const B = b[
|
|
1449
|
-
if (
|
|
1450
|
-
else if (
|
|
1451
|
-
else if (
|
|
1452
|
-
else if (
|
|
1444
|
+
const b = n.slice(0, n.length - 1), d = n[n.length - 1], g = [];
|
|
1445
|
+
for (let l = 0, f = d.length; l < f; l++) {
|
|
1446
|
+
const I = d[l], p = s[l];
|
|
1447
|
+
let u;
|
|
1448
|
+
const B = b[l];
|
|
1449
|
+
if (p.mode === H.TRIANGLES || p.mode === H.TRIANGLE_STRIP || p.mode === H.TRIANGLE_FAN || p.mode === void 0) u = i.isSkinnedMesh === !0 ? new hA(I, B) : new ka(I, B), u.isSkinnedMesh === !0 && u.normalizeSkinWeights(), p.mode === H.TRIANGLE_STRIP ? u.geometry = Za(u.geometry, Ct) : p.mode === H.TRIANGLE_FAN && (u.geometry = Za(u.geometry, ya));
|
|
1450
|
+
else if (p.mode === H.LINES) u = new pt(I, B);
|
|
1451
|
+
else if (p.mode === H.LINE_STRIP) u = new gA(I, B);
|
|
1452
|
+
else if (p.mode === H.LINE_LOOP) u = new fA(I, B);
|
|
1453
1453
|
else {
|
|
1454
|
-
if (
|
|
1455
|
-
|
|
1454
|
+
if (p.mode !== H.POINTS) throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + p.mode);
|
|
1455
|
+
u = new uA(I, B);
|
|
1456
1456
|
}
|
|
1457
|
-
Object.keys(
|
|
1457
|
+
Object.keys(u.geometry.morphAttributes).length > 0 && ji(u, i), u.name = a.createUniqueName(i.name || "mesh_" + e), se(u, i), p.extensions && fe(A, u, p), a.assignFinalMaterial(u), g.push(u);
|
|
1458
1458
|
}
|
|
1459
|
-
for (let
|
|
1460
|
-
if (
|
|
1461
|
-
const
|
|
1462
|
-
i.extensions && fe(A,
|
|
1463
|
-
for (let
|
|
1464
|
-
return
|
|
1459
|
+
for (let l = 0, f = g.length; l < f; l++) a.associations.set(g[l], { meshes: e, primitives: l });
|
|
1460
|
+
if (g.length === 1) return i.extensions && fe(A, g[0], i), g[0];
|
|
1461
|
+
const h = new Aa();
|
|
1462
|
+
i.extensions && fe(A, h, i), a.associations.set(h, { meshes: e });
|
|
1463
|
+
for (let l = 0, f = g.length; l < f; l++) h.add(g[l]);
|
|
1464
|
+
return h;
|
|
1465
1465
|
});
|
|
1466
1466
|
}
|
|
1467
1467
|
loadCamera(e) {
|
|
@@ -1479,8 +1479,8 @@ class Si {
|
|
|
1479
1479
|
const d = s[n];
|
|
1480
1480
|
if (d) {
|
|
1481
1481
|
r.push(d);
|
|
1482
|
-
const
|
|
1483
|
-
i !== null &&
|
|
1482
|
+
const g = new je();
|
|
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]);
|
|
1485
1485
|
}
|
|
1486
1486
|
return new CA(r, o);
|
|
@@ -1488,20 +1488,20 @@ class Si {
|
|
|
1488
1488
|
}
|
|
1489
1489
|
loadAnimation(e) {
|
|
1490
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,
|
|
1492
|
-
const
|
|
1493
|
-
f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor",
|
|
1491
|
+
for (let d = 0, g = A.channels.length; d < g; d++) {
|
|
1492
|
+
const h = A.channels[d], l = A.samplers[h.sampler], f = h.target, I = f.node, p = A.parameters !== void 0 ? A.parameters[l.input] : l.input, u = A.parameters !== void 0 ? A.parameters[l.output] : l.output;
|
|
1493
|
+
f.node !== void 0 && (s.push(this.getDependency("node", I)), r.push(this.getDependency("accessor", p)), o.push(this.getDependency("accessor", u)), n.push(l), b.push(f));
|
|
1494
1494
|
}
|
|
1495
1495
|
return Promise.all([Promise.all(s), Promise.all(r), Promise.all(o), Promise.all(n), Promise.all(b)]).then(function(d) {
|
|
1496
|
-
const
|
|
1497
|
-
for (let
|
|
1498
|
-
const C =
|
|
1496
|
+
const g = d[0], h = d[1], l = d[2], f = d[3], I = d[4], p = [];
|
|
1497
|
+
for (let u = 0, B = g.length; u < B; u++) {
|
|
1498
|
+
const C = g[u], w = h[u], x = l[u], y = f[u], m = I[u];
|
|
1499
1499
|
if (C === void 0) continue;
|
|
1500
1500
|
C.updateMatrix && C.updateMatrix();
|
|
1501
1501
|
const Q = t._createAnimationTracks(C, w, x, y, m);
|
|
1502
|
-
if (Q) for (let k = 0; k < Q.length; k++)
|
|
1502
|
+
if (Q) for (let k = 0; k < Q.length; k++) p.push(Q[k]);
|
|
1503
1503
|
}
|
|
1504
|
-
return new BA(i, void 0,
|
|
1504
|
+
return new BA(i, void 0, p);
|
|
1505
1505
|
});
|
|
1506
1506
|
}
|
|
1507
1507
|
createNodeMesh(e) {
|
|
@@ -1519,10 +1519,10 @@ class Si {
|
|
|
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
1521
|
const n = o[0], b = o[1], d = o[2];
|
|
1522
|
-
d !== null && n.traverse(function(
|
|
1523
|
-
|
|
1522
|
+
d !== null && n.traverse(function(g) {
|
|
1523
|
+
g.isSkinnedMesh && g.bind(d, Ri);
|
|
1524
1524
|
});
|
|
1525
|
-
for (let
|
|
1525
|
+
for (let g = 0, h = b.length; g < h; g++) n.add(b[g]);
|
|
1526
1526
|
return n;
|
|
1527
1527
|
});
|
|
1528
1528
|
}
|
|
@@ -1540,7 +1540,7 @@ class Si {
|
|
|
1540
1540
|
r.push(n);
|
|
1541
1541
|
}), this.nodeCache[e] = Promise.all(r).then(function(n) {
|
|
1542
1542
|
let b;
|
|
1543
|
-
if (b = i.isBone === !0 ? new mA() : n.length > 1 ? new Aa() : n.length === 1 ? n[0] : new Et(), b !== n[0]) for (let d = 0,
|
|
1543
|
+
if (b = i.isBone === !0 ? new mA() : 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
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
1545
|
const d = new je();
|
|
1546
1546
|
d.fromArray(i.matrix), b.applyMatrix4(d);
|
|
@@ -1557,10 +1557,10 @@ class Si {
|
|
|
1557
1557
|
for (let n = 0, b = o.length; n < b; n++) i.add(o[n]);
|
|
1558
1558
|
return A.associations = ((n) => {
|
|
1559
1559
|
const b = /* @__PURE__ */ new Map();
|
|
1560
|
-
for (const [d,
|
|
1560
|
+
for (const [d, g] of A.associations) (d instanceof ta || d instanceof Na) && b.set(d, g);
|
|
1561
1561
|
return n.traverse((d) => {
|
|
1562
|
-
const
|
|
1563
|
-
|
|
1562
|
+
const g = A.associations.get(d);
|
|
1563
|
+
g != null && b.set(d, g);
|
|
1564
1564
|
}), b;
|
|
1565
1565
|
})(i), i;
|
|
1566
1566
|
});
|
|
@@ -1568,8 +1568,8 @@ class Si {
|
|
|
1568
1568
|
_createAnimationTracks(e, a, t, A, i) {
|
|
1569
1569
|
const s = [], r = e.name ? e.name : e.uuid, o = [];
|
|
1570
1570
|
let n;
|
|
1571
|
-
switch (oe[i.path] === oe.weights ? e.traverse(function(
|
|
1572
|
-
|
|
1571
|
+
switch (oe[i.path] === oe.weights ? e.traverse(function(g) {
|
|
1572
|
+
g.morphTargetInfluences && o.push(g.name ? g.name : g.uuid);
|
|
1573
1573
|
}) : o.push(r), oe[i.path]) {
|
|
1574
1574
|
case oe.weights:
|
|
1575
1575
|
n = _a;
|
|
@@ -1585,9 +1585,9 @@ class Si {
|
|
|
1585
1585
|
t.itemSize === 1 ? n = _a : n = Pa;
|
|
1586
1586
|
}
|
|
1587
1587
|
const b = A.interpolation !== void 0 ? wi[A.interpolation] : yt, d = this._getArrayFromAccessor(t);
|
|
1588
|
-
for (let
|
|
1589
|
-
const
|
|
1590
|
-
A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(
|
|
1588
|
+
for (let g = 0, h = o.length; g < h; g++) {
|
|
1589
|
+
const l = new n(o[g] + "." + oe[i.path], a.array, d, b);
|
|
1590
|
+
A.interpolation === "CUBICSPLINE" && this._createCubicSplineTrackInterpolant(l), s.push(l);
|
|
1591
1591
|
}
|
|
1592
1592
|
return s;
|
|
1593
1593
|
}
|
|
@@ -1627,61 +1627,61 @@ function at(c, e, a) {
|
|
|
1627
1627
|
const n = r.attributes, b = new va();
|
|
1628
1628
|
if (n.POSITION === void 0) return;
|
|
1629
1629
|
{
|
|
1630
|
-
const
|
|
1631
|
-
if (
|
|
1632
|
-
if (b.set(new M(
|
|
1633
|
-
const I = Ma(ke[
|
|
1630
|
+
const h = o.json.accessors[n.POSITION], l = h.min, f = h.max;
|
|
1631
|
+
if (l === void 0 || f === void 0) return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1632
|
+
if (b.set(new M(l[0], l[1], l[2]), new M(f[0], f[1], f[2])), h.normalized) {
|
|
1633
|
+
const I = Ma(ke[h.componentType]);
|
|
1634
1634
|
b.min.multiplyScalar(I), b.max.multiplyScalar(I);
|
|
1635
1635
|
}
|
|
1636
1636
|
}
|
|
1637
1637
|
const d = r.targets;
|
|
1638
1638
|
if (d !== void 0) {
|
|
1639
|
-
const
|
|
1639
|
+
const h = new M(), l = new M();
|
|
1640
1640
|
for (let f = 0, I = d.length; f < I; f++) {
|
|
1641
|
-
const
|
|
1642
|
-
if (
|
|
1643
|
-
const
|
|
1641
|
+
const p = d[f];
|
|
1642
|
+
if (p.POSITION !== void 0) {
|
|
1643
|
+
const u = o.json.accessors[p.POSITION], B = u.min, C = u.max;
|
|
1644
1644
|
if (B !== void 0 && C !== void 0) {
|
|
1645
|
-
if (
|
|
1646
|
-
const w = Ma(ke[
|
|
1647
|
-
|
|
1645
|
+
if (l.setX(Math.max(Math.abs(B[0]), Math.abs(C[0]))), l.setY(Math.max(Math.abs(B[1]), Math.abs(C[1]))), l.setZ(Math.max(Math.abs(B[2]), Math.abs(C[2]))), u.normalized) {
|
|
1646
|
+
const w = Ma(ke[u.componentType]);
|
|
1647
|
+
l.multiplyScalar(w);
|
|
1648
1648
|
}
|
|
1649
|
-
|
|
1649
|
+
h.max(l);
|
|
1650
1650
|
} else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");
|
|
1651
1651
|
}
|
|
1652
1652
|
}
|
|
1653
|
-
b.expandByVector(
|
|
1653
|
+
b.expandByVector(h);
|
|
1654
1654
|
}
|
|
1655
1655
|
s.boundingBox = b;
|
|
1656
|
-
const
|
|
1657
|
-
b.getCenter(
|
|
1656
|
+
const g = new DA();
|
|
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
1660
|
let n = !1, b = !1, d = !1;
|
|
1661
1661
|
for (let f = 0, I = r.length; f < I; f++) {
|
|
1662
|
-
const
|
|
1663
|
-
if (
|
|
1662
|
+
const p = r[f];
|
|
1663
|
+
if (p.POSITION !== void 0 && (n = !0), p.NORMAL !== void 0 && (b = !0), p.COLOR_0 !== void 0 && (d = !0), n && b && d) break;
|
|
1664
1664
|
}
|
|
1665
1665
|
if (!n && !b && !d) return Promise.resolve(s);
|
|
1666
|
-
const
|
|
1666
|
+
const g = [], h = [], l = [];
|
|
1667
1667
|
for (let f = 0, I = r.length; f < I; f++) {
|
|
1668
|
-
const
|
|
1668
|
+
const p = r[f];
|
|
1669
1669
|
if (n) {
|
|
1670
|
-
const
|
|
1671
|
-
|
|
1670
|
+
const u = p.POSITION !== void 0 ? o.getDependency("accessor", p.POSITION) : s.attributes.position;
|
|
1671
|
+
g.push(u);
|
|
1672
1672
|
}
|
|
1673
1673
|
if (b) {
|
|
1674
|
-
const
|
|
1675
|
-
|
|
1674
|
+
const u = p.NORMAL !== void 0 ? o.getDependency("accessor", p.NORMAL) : s.attributes.normal;
|
|
1675
|
+
h.push(u);
|
|
1676
1676
|
}
|
|
1677
1677
|
if (d) {
|
|
1678
|
-
const
|
|
1679
|
-
|
|
1678
|
+
const u = p.COLOR_0 !== void 0 ? o.getDependency("accessor", p.COLOR_0) : s.attributes.color;
|
|
1679
|
+
l.push(u);
|
|
1680
1680
|
}
|
|
1681
1681
|
}
|
|
1682
|
-
return Promise.all([Promise.all(
|
|
1683
|
-
const I = f[0],
|
|
1684
|
-
return n && (s.morphAttributes.position = I), b && (s.morphAttributes.normal =
|
|
1682
|
+
return Promise.all([Promise.all(g), Promise.all(h), Promise.all(l)]).then(function(f) {
|
|
1683
|
+
const I = f[0], p = f[1], u = f[2];
|
|
1684
|
+
return n && (s.morphAttributes.position = I), b && (s.morphAttributes.normal = p), d && (s.morphAttributes.color = u), s.morphTargetsRelative = !0, s;
|
|
1685
1685
|
});
|
|
1686
1686
|
}(c, e.targets, a) : c;
|
|
1687
1687
|
});
|
|
@@ -1802,7 +1802,7 @@ class vt extends Fa {
|
|
|
1802
1802
|
function vi() {
|
|
1803
1803
|
let c, e;
|
|
1804
1804
|
function a(t, A, i, s, r, o) {
|
|
1805
|
-
const n = o.num_components(), b = i.num_points() * n, d = b * r.BYTES_PER_ELEMENT,
|
|
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,10 +1819,10 @@ function vi() {
|
|
|
1819
1819
|
case Uint32Array:
|
|
1820
1820
|
return f.DT_UINT32;
|
|
1821
1821
|
}
|
|
1822
|
-
}(t, r),
|
|
1823
|
-
A.GetAttributeDataArrayForAllPoints(i, o,
|
|
1824
|
-
const
|
|
1825
|
-
return t._free(
|
|
1822
|
+
}(t, r), h = t._malloc(d);
|
|
1823
|
+
A.GetAttributeDataArrayForAllPoints(i, o, g, d, h);
|
|
1824
|
+
const l = new r(t.HEAPF32.buffer, h, b).slice();
|
|
1825
|
+
return t._free(h), { name: s, array: l, itemSize: n };
|
|
1826
1826
|
}
|
|
1827
1827
|
onmessage = function(t) {
|
|
1828
1828
|
const A = t.data;
|
|
@@ -1839,35 +1839,35 @@ function vi() {
|
|
|
1839
1839
|
e.then((r) => {
|
|
1840
1840
|
const o = r.draco, n = new o.Decoder();
|
|
1841
1841
|
try {
|
|
1842
|
-
const b = function(
|
|
1843
|
-
const I = f.attributeIDs,
|
|
1844
|
-
let
|
|
1845
|
-
const C =
|
|
1846
|
-
if (C ===
|
|
1842
|
+
const b = function(g, h, l, f) {
|
|
1843
|
+
const I = f.attributeIDs, p = f.attributeTypes;
|
|
1844
|
+
let u, B;
|
|
1845
|
+
const C = h.GetEncodedGeometryType(l);
|
|
1846
|
+
if (C === g.TRIANGULAR_MESH) u = new g.Mesh(), B = h.DecodeArrayToMesh(l, l.byteLength, u);
|
|
1847
1847
|
else {
|
|
1848
|
-
if (C !==
|
|
1849
|
-
|
|
1848
|
+
if (C !== g.POINT_CLOUD) throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
|
|
1849
|
+
u = new g.PointCloud(), B = h.DecodeArrayToPointCloud(l, l.byteLength, u);
|
|
1850
1850
|
}
|
|
1851
|
-
if (!B.ok() ||
|
|
1851
|
+
if (!B.ok() || u.ptr === 0) throw new Error("THREE.DRACOLoader: Decoding failed: " + B.error_msg());
|
|
1852
1852
|
const w = { index: null, attributes: [] };
|
|
1853
1853
|
for (const x in I) {
|
|
1854
|
-
const y = self[
|
|
1854
|
+
const y = self[p[x]];
|
|
1855
1855
|
let m, Q;
|
|
1856
|
-
if (f.useUniqueIDs) Q = I[x], m =
|
|
1856
|
+
if (f.useUniqueIDs) Q = I[x], m = h.GetAttributeByUniqueId(u, Q);
|
|
1857
1857
|
else {
|
|
1858
|
-
if (Q =
|
|
1859
|
-
m =
|
|
1858
|
+
if (Q = h.GetAttributeId(u, g[I[x]]), Q === -1) continue;
|
|
1859
|
+
m = h.GetAttribute(u, Q);
|
|
1860
1860
|
}
|
|
1861
|
-
const k = a(
|
|
1861
|
+
const k = a(g, h, u, x, y, m);
|
|
1862
1862
|
x === "color" && (k.vertexColorSpace = f.vertexColorSpace), w.attributes.push(k);
|
|
1863
1863
|
}
|
|
1864
|
-
return C ===
|
|
1864
|
+
return C === g.TRIANGULAR_MESH && (w.index = function(x, y, m) {
|
|
1865
1865
|
const Q = m.num_faces(), k = 3 * Q, D = 4 * k, F = x._malloc(D);
|
|
1866
1866
|
y.GetTrianglesUInt32Array(m, D, F);
|
|
1867
1867
|
const _ = new Uint32Array(x.HEAPF32.buffer, F, k).slice();
|
|
1868
1868
|
return x._free(F), { array: _, itemSize: 1 };
|
|
1869
|
-
}(
|
|
1870
|
-
}(o, n, new Int8Array(i), s), d = b.attributes.map((
|
|
1869
|
+
}(g, h, u)), g.destroy(u), w;
|
|
1870
|
+
}(o, n, new Int8Array(i), s), d = b.attributes.map((g) => g.array.buffer);
|
|
1871
1871
|
b.index && d.push(b.index.array.buffer), self.postMessage({ type: "decode", id: A.id, geometry: b }, d);
|
|
1872
1872
|
} catch (b) {
|
|
1873
1873
|
console.error(b), self.postMessage({ type: "error", id: A.id, error: b.message });
|
|
@@ -2038,8 +2038,8 @@ class P extends Fa {
|
|
|
2038
2038
|
let d;
|
|
2039
2039
|
if (a.faceCount === 6) d = new MA(i, o, n);
|
|
2040
2040
|
else {
|
|
2041
|
-
const
|
|
2042
|
-
d = a.layerCount > 1 ? new RA(
|
|
2041
|
+
const g = i[0].mipmaps;
|
|
2042
|
+
d = a.layerCount > 1 ? new RA(g, s, r, a.layerCount, o, n) : new qa(g, s, r, o, n);
|
|
2043
2043
|
}
|
|
2044
2044
|
return d.minFilter = i[0].mipmaps.length === 1 ? Ce : $e, d.magFilter = Ce, d.generateMipmaps = !1, d.needsUpdate = !0, d.colorSpace = it(a), d.premultiplyAlpha = !!(1 & b), d;
|
|
2045
2045
|
}
|
|
@@ -2049,11 +2049,11 @@ class P extends Fa {
|
|
|
2049
2049
|
if (o[0] !== U[0] || o[1] !== U[1] || o[2] !== U[2] || o[3] !== U[3] || o[4] !== U[4] || o[5] !== U[5] || o[6] !== U[6] || o[7] !== U[7] || o[8] !== U[8] || o[9] !== U[9] || o[10] !== U[10] || o[11] !== U[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
2050
2050
|
const n = new Ti(), b = 17 * Uint32Array.BYTES_PER_ELEMENT, d = new Fe(r, U.length, b, !0);
|
|
2051
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
|
|
2052
|
+
const g = d._nextUint32();
|
|
2053
2053
|
n.supercompressionScheme = d._nextUint32();
|
|
2054
|
-
const
|
|
2055
|
-
for (let S = 0; S <
|
|
2056
|
-
const C = new Fe(r,
|
|
2054
|
+
const h = d._nextUint32(), l = d._nextUint32(), f = d._nextUint32(), I = d._nextUint32(), p = d._nextUint64(), u = d._nextUint64(), B = new Fe(r, U.length + b, 3 * g * 8, !0);
|
|
2055
|
+
for (let S = 0; S < g; S++) n.levels.push({ levelData: new Uint8Array(r.buffer, r.byteOffset + B._nextUint64(), B._nextUint64()), uncompressedByteLength: B._nextUint64() });
|
|
2056
|
+
const C = new Fe(r, h, l, !0), w = { vendorId: C._skip(4)._nextUint16(), descriptorType: C._nextUint16(), versionNumber: C._nextUint16(), descriptorBlockSize: C._nextUint16(), colorModel: C._nextUint8(), colorPrimaries: C._nextUint8(), transferFunction: C._nextUint8(), flags: C._nextUint8(), texelBlockDimension: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], bytesPlane: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], samples: [] }, x = (w.descriptorBlockSize / 4 - 6) / 4;
|
|
2057
2057
|
for (let S = 0; S < x; S++) {
|
|
2058
2058
|
const L = { bitOffset: C._nextUint16(), bitLength: C._nextUint8(), channelType: C._nextUint8(), samplePosition: [C._nextUint8(), C._nextUint8(), C._nextUint8(), C._nextUint8()], sampleLower: -1 / 0, sampleUpper: 1 / 0 };
|
|
2059
2059
|
64 & L.channelType ? (L.sampleLower = C._nextInt32(), L.sampleUpper = C._nextInt32()) : (L.sampleLower = C._nextUint32(), L.sampleUpper = C._nextUint32()), w.samples[S] = L;
|
|
@@ -2068,30 +2068,30 @@ class P extends Fa {
|
|
|
2068
2068
|
}
|
|
2069
2069
|
y._skip(S % 4 ? 4 - S % 4 : 0);
|
|
2070
2070
|
}
|
|
2071
|
-
if (
|
|
2072
|
-
const m = new Fe(r,
|
|
2073
|
-
for (let S = 0; S <
|
|
2074
|
-
const qe =
|
|
2071
|
+
if (u <= 0) return n;
|
|
2072
|
+
const m = new Fe(r, p, u, !0), Q = m._nextUint16(), k = m._nextUint16(), D = m._nextUint32(), F = m._nextUint32(), _ = m._nextUint32(), aa = m._nextUint32(), Me = [];
|
|
2073
|
+
for (let S = 0; S < g; S++) Me.push({ imageFlags: m._nextUint32(), rgbSliceByteOffset: m._nextUint32(), rgbSliceByteLength: m._nextUint32(), alphaSliceByteOffset: m._nextUint32(), alphaSliceByteLength: m._nextUint32() });
|
|
2074
|
+
const qe = p + m._offset, Re = qe + D, Se = Re + F, ve = Se + _, Oe = new Uint8Array(r.buffer, r.byteOffset + qe, D), Je = new Uint8Array(r.buffer, r.byteOffset + Re, F), z = new Uint8Array(r.buffer, r.byteOffset + Se, _), me = new Uint8Array(r.buffer, r.byteOffset + ve, aa);
|
|
2075
2075
|
return n.globalData = { endpointCount: Q, selectorCount: k, imageDescs: Me, endpointsData: Oe, selectorsData: Je, tablesData: z, extendedData: me }, n;
|
|
2076
2076
|
}(new Uint8Array(e)), A = t.vkFormat === Ta && t.dataFormatDescriptor[0].colorModel === 167;
|
|
2077
2077
|
if (!(t.vkFormat === 0 || A && !this.workerConfig.astcHDRSupported)) return async function(r) {
|
|
2078
2078
|
const { vkFormat: o } = r;
|
|
2079
2079
|
if (fa[o] === void 0) throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");
|
|
2080
2080
|
let n;
|
|
2081
|
-
r.supercompressionScheme === 2 && (ha || (ha = new Promise(async (
|
|
2082
|
-
const
|
|
2083
|
-
await
|
|
2081
|
+
r.supercompressionScheme === 2 && (ha || (ha = new Promise(async (g) => {
|
|
2082
|
+
const h = new Li();
|
|
2083
|
+
await h.init(), g(h);
|
|
2084
2084
|
})), n = await ha);
|
|
2085
2085
|
const b = [];
|
|
2086
|
-
for (let
|
|
2087
|
-
const
|
|
2088
|
-
let
|
|
2089
|
-
if (r.supercompressionScheme === 0)
|
|
2086
|
+
for (let g = 0; g < r.levels.length; g++) {
|
|
2087
|
+
const h = Math.max(1, r.pixelWidth >> g), l = Math.max(1, r.pixelHeight >> g), f = r.pixelDepth ? Math.max(1, r.pixelDepth >> g) : 0, I = r.levels[g];
|
|
2088
|
+
let p, u;
|
|
2089
|
+
if (r.supercompressionScheme === 0) p = I.levelData;
|
|
2090
2090
|
else {
|
|
2091
2091
|
if (r.supercompressionScheme !== 2) throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");
|
|
2092
|
-
|
|
2092
|
+
p = n.decode(I.levelData, I.uncompressedByteLength);
|
|
2093
2093
|
}
|
|
2094
|
-
|
|
2094
|
+
u = ua[o] === v ? new Float32Array(p.buffer, p.byteOffset, p.byteLength / Float32Array.BYTES_PER_ELEMENT) : ua[o] === xe ? new Uint16Array(p.buffer, p.byteOffset, p.byteLength / Uint16Array.BYTES_PER_ELEMENT) : p, b.push({ data: u, width: h, height: l, depth: f });
|
|
2095
2095
|
}
|
|
2096
2096
|
let d;
|
|
2097
2097
|
if (Gi.has(fa[o])) d = r.pixelDepth === 0 ? new Ge(b[0].data, r.pixelWidth, r.pixelHeight) : new _A(b[0].data, r.pixelWidth, r.pixelHeight, r.pixelDepth);
|
|
@@ -2112,11 +2112,11 @@ P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC
|
|
|
2112
2112
|
let c, e, a;
|
|
2113
2113
|
const t = _EngineFormat, A = _EngineType, i = _TranscoderFormat, s = _BasisFormat;
|
|
2114
2114
|
self.addEventListener("message", function(d) {
|
|
2115
|
-
const
|
|
2116
|
-
switch (
|
|
2115
|
+
const g = d.data;
|
|
2116
|
+
switch (g.type) {
|
|
2117
2117
|
case "init":
|
|
2118
|
-
c =
|
|
2119
|
-
a = { wasmBinary:
|
|
2118
|
+
c = g.config, h = g.transcoderBinary, e = new Promise((l) => {
|
|
2119
|
+
a = { wasmBinary: h, onRuntimeInitialized: l }, BASIS(a);
|
|
2120
2120
|
}).then(() => {
|
|
2121
2121
|
a.initializeBasis(), a.KTX2File === void 0 && console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.");
|
|
2122
2122
|
});
|
|
@@ -2124,7 +2124,7 @@ P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC
|
|
|
2124
2124
|
case "transcode":
|
|
2125
2125
|
e.then(() => {
|
|
2126
2126
|
try {
|
|
2127
|
-
const { faces:
|
|
2127
|
+
const { faces: l, buffers: f, width: I, height: p, hasAlpha: u, format: B, type: C, dfdFlags: w } = function(x) {
|
|
2128
2128
|
const y = new a.KTX2File(new Uint8Array(x));
|
|
2129
2129
|
function m() {
|
|
2130
2130
|
y.close(), y.delete();
|
|
@@ -2168,31 +2168,31 @@ P.BasisFormat = { ETC1S: 0, UASTC: 1, UASTC_HDR: 2 }, P.TranscoderFormat = { ETC
|
|
|
2168
2168
|
Oe.push({ mipmaps: me, width: k, height: D, format: Se, type: ve });
|
|
2169
2169
|
}
|
|
2170
2170
|
return m(), { faces: Oe, buffers: Je, width: k, height: D, hasAlpha: Me, dfdFlags: qe, format: Se, type: ve };
|
|
2171
|
-
}(
|
|
2172
|
-
self.postMessage({ type: "transcode", id:
|
|
2173
|
-
} catch (
|
|
2174
|
-
console.error(
|
|
2171
|
+
}(g.buffer);
|
|
2172
|
+
self.postMessage({ type: "transcode", id: g.id, data: { faces: l, width: I, height: p, hasAlpha: u, format: B, type: C, dfdFlags: w } }, f);
|
|
2173
|
+
} catch (l) {
|
|
2174
|
+
console.error(l), self.postMessage({ type: "error", id: g.id, error: l.message });
|
|
2175
2175
|
}
|
|
2176
2176
|
});
|
|
2177
2177
|
}
|
|
2178
|
-
var
|
|
2178
|
+
var h;
|
|
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((d) => d.basisFormat.includes(s.ETC1S)).sort((d,
|
|
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
2181
|
function n(d) {
|
|
2182
2182
|
return d <= 2 || !(d & d - 1) && d !== 0;
|
|
2183
2183
|
}
|
|
2184
2184
|
function b(d) {
|
|
2185
2185
|
if (d.length === 1) return d[0];
|
|
2186
|
-
let
|
|
2186
|
+
let g = 0;
|
|
2187
2187
|
for (let f = 0; f < d.length; f++)
|
|
2188
|
-
|
|
2189
|
-
const
|
|
2190
|
-
let
|
|
2188
|
+
g += d[f].byteLength;
|
|
2189
|
+
const h = new Uint8Array(g);
|
|
2190
|
+
let l = 0;
|
|
2191
2191
|
for (let f = 0; f < d.length; f++) {
|
|
2192
2192
|
const I = d[f];
|
|
2193
|
-
|
|
2193
|
+
h.set(I, l), l += I.byteLength;
|
|
2194
2194
|
}
|
|
2195
|
-
return
|
|
2195
|
+
return h;
|
|
2196
2196
|
}
|
|
2197
2197
|
};
|
|
2198
2198
|
const Gi = /* @__PURE__ */ new Set([ee, Ue, Ne]), fa = { [Jt]: ee, [Ht]: ee, [Ut]: ee, [Nt]: ee, [Ot]: Ue, [_t]: Ue, [Lt]: Ue, [Gt]: Ue, [qt]: Ne, [Pt]: Ne, [Tt]: Ne, [Ft]: Ne, [Ta]: wt, [zt]: Oa, [Kt]: Oa }, ua = { [Jt]: v, [Ht]: xe, [Ut]: X, [Nt]: X, [Ot]: v, [_t]: xe, [Lt]: X, [Gt]: X, [qt]: v, [Pt]: xe, [Tt]: X, [Ft]: X, [Ta]: xe, [zt]: X, [Kt]: X };
|
|
@@ -2209,17 +2209,17 @@ 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), b = n + (8 - n % 8) % 8, d = b + Number(r),
|
|
2213
|
-
if (!
|
|
2214
|
-
const f =
|
|
2215
|
-
if (
|
|
2216
|
-
const
|
|
2217
|
-
if (!B.ok) throw new Error(`Failed to fetch binary file ${
|
|
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), h = new TextDecoder().decode(g).trim(), l = JSON.parse(h);
|
|
2213
|
+
if (!l.buffers) throw new Error("subtree has no buffers");
|
|
2214
|
+
const f = l.buffers.map(async (p) => {
|
|
2215
|
+
if (p.uri) {
|
|
2216
|
+
const u = new URL(p.uri, A).href, B = await fetch(u);
|
|
2217
|
+
if (!B.ok) throw new Error(`Failed to fetch binary file ${u}: ${B.statusText}`);
|
|
2218
2218
|
return new Uint8Array(await B.arrayBuffer());
|
|
2219
2219
|
}
|
|
2220
2220
|
return new Uint8Array(t.slice(b, d));
|
|
2221
2221
|
}), I = await Promise.all(f);
|
|
2222
|
-
return /* @__PURE__ */ function(
|
|
2222
|
+
return /* @__PURE__ */ function(p, u) {
|
|
2223
2223
|
function B(m, Q) {
|
|
2224
2224
|
if (!m) throw new Error("incomplete json subtree");
|
|
2225
2225
|
if (m.constant) {
|
|
@@ -2227,9 +2227,9 @@ async function st(c) {
|
|
|
2227
2227
|
if (m.constant == 1) return !0;
|
|
2228
2228
|
}
|
|
2229
2229
|
if (m.bitstream == null) throw new Error('json subtree "tileAvailability" does not specify a bitstream');
|
|
2230
|
-
if (!
|
|
2231
|
-
const k =
|
|
2232
|
-
return C(
|
|
2230
|
+
if (!p.bufferViews || !p.bufferViews[m.bitstream]) throw new Error('json subtree "bufferViews" does not specify a bitstream');
|
|
2231
|
+
const k = p.bufferViews[m.bitstream];
|
|
2232
|
+
return C(u[k.buffer], k.byteOffset, Q);
|
|
2233
2233
|
}
|
|
2234
2234
|
function C(m, Q, k) {
|
|
2235
2235
|
const D = k % 8;
|
|
@@ -2237,22 +2237,22 @@ async function st(c) {
|
|
|
2237
2237
|
}
|
|
2238
2238
|
function w(m) {
|
|
2239
2239
|
let Q = 0;
|
|
2240
|
-
return Q = m.z == null ? Ia(m.x, m.y, m.level) : Ca(m.x, m.y, m.z, m.level), B(
|
|
2240
|
+
return Q = m.z == null ? Ia(m.x, m.y, m.level) : Ca(m.x, m.y, m.z, m.level), B(p.tileAvailability, Q);
|
|
2241
2241
|
}
|
|
2242
2242
|
function x(m) {
|
|
2243
2243
|
let Q = 0;
|
|
2244
2244
|
Q = m.z == null ? Ia(m.x, m.y, m.level) : Ca(m.x, m.y, m.z, m.level);
|
|
2245
2245
|
const k = [];
|
|
2246
|
-
return
|
|
2246
|
+
return p.contentAvailability.forEach((D) => {
|
|
2247
2247
|
k.push(B(D, Q));
|
|
2248
2248
|
}), k;
|
|
2249
2249
|
}
|
|
2250
2250
|
function y(m) {
|
|
2251
2251
|
let Q = 0;
|
|
2252
|
-
return Q = m.z == null ? Ia(m.x, m.y) : Ca(m.x, m.y, m.z), B(
|
|
2252
|
+
return Q = m.z == null ? Ia(m.x, m.y) : Ca(m.x, m.y, m.z), B(p.childSubtreeAvailability, Q);
|
|
2253
2253
|
}
|
|
2254
2254
|
return { isTileAvailable: w, isContentAvailable: x, isChildSubtreeAvailable: y };
|
|
2255
|
-
}(
|
|
2255
|
+
}(l, I);
|
|
2256
2256
|
}(await a.arrayBuffer(), rt(c));
|
|
2257
2257
|
throw new Error(`Unsupported file extension: ${e}`);
|
|
2258
2258
|
}
|
|
@@ -2283,32 +2283,32 @@ async function La(c, e) {
|
|
|
2283
2283
|
let t = "";
|
|
2284
2284
|
c.root.implicitTiling.subtrees && (c.root.implicitTiling.subtrees.uri ? t = c.root.implicitTiling.subtrees.uri : c.root.implicitTiling.subtrees.url && (t = c.root.implicitTiling.subtrees.url));
|
|
2285
2285
|
let A = [];
|
|
2286
|
-
c.root.content ? c.root.content.uri ? A.push(c.root.content.uri) : c.root.content.url && A.push(c.root.content.url) : c.root.contents && c.root.contents.forEach((
|
|
2287
|
-
|
|
2286
|
+
c.root.content ? c.root.content.uri ? A.push(c.root.content.uri) : c.root.content.url && A.push(c.root.content.url) : c.root.contents && c.root.contents.forEach((h) => {
|
|
2287
|
+
h.uri ? A.push(h.uri) : h.url && A.push(h.url);
|
|
2288
2288
|
});
|
|
2289
|
-
const i = function(
|
|
2290
|
-
const
|
|
2291
|
-
return
|
|
2289
|
+
const i = function(h) {
|
|
2290
|
+
const l = h.split("?")[0];
|
|
2291
|
+
return l.substring(0, l.lastIndexOf("/") + 1);
|
|
2292
2292
|
}(e);
|
|
2293
2293
|
let s;
|
|
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
2297
|
const n = Te.get(s), b = [];
|
|
2298
|
-
n.isContentAvailable(o) && A.forEach((
|
|
2299
|
-
let
|
|
2300
|
-
a && (
|
|
2298
|
+
n.isContentAvailable(o) && A.forEach((h) => {
|
|
2299
|
+
let l;
|
|
2300
|
+
a && (l = h.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y)), a || (l = h.replace("{level}", r.level).replace("{x}", r.x).replace("{y}", r.y).replace("{z}", r.z)), b.push({ uri: l });
|
|
2301
2301
|
});
|
|
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 () =>
|
|
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
2303
|
return { root: d };
|
|
2304
|
-
async function
|
|
2305
|
-
const
|
|
2306
|
-
if (
|
|
2307
|
-
if ((
|
|
2308
|
-
const f = ze(
|
|
2309
|
-
for (let
|
|
2310
|
-
const B = f[
|
|
2311
|
-
|
|
2304
|
+
async function g(h) {
|
|
2305
|
+
const l = [];
|
|
2306
|
+
if (h.localAddress.level == c.root.implicitTiling.availableLevels - 1) return l;
|
|
2307
|
+
if ((h.localAddress.level + 1) % c.root.implicitTiling.subtreeLevels == 0) {
|
|
2308
|
+
const f = ze(h.localAddress), I = ze(h.globalAddress), p = ot(a, c.root.boundingVolume, I);
|
|
2309
|
+
for (let u = 0; u < f.length; u++) {
|
|
2310
|
+
const B = f[u], C = I[u];
|
|
2311
|
+
h.subtree.isChildSubtreeAvailable(B) && (a && t.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y), a || t.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y).replace("{z}", C.z)), Te.has(s) || Te.set(s, await st(i + s));
|
|
2312
2312
|
const w = Te.get(s), x = { level: 0, x: 0, y: 0 };
|
|
2313
2313
|
a || (x.z = 0);
|
|
2314
2314
|
const y = [];
|
|
@@ -2316,26 +2316,26 @@ async function La(c, e) {
|
|
|
2316
2316
|
let k;
|
|
2317
2317
|
a && (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y)), a || (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y).replace("{z}", C.z)), y.push({ uri: k });
|
|
2318
2318
|
});
|
|
2319
|
-
const m = { geometricError:
|
|
2320
|
-
|
|
2319
|
+
const m = { geometricError: h.geometricError / 2, boundingVolume: p[u], refine: c.root.refine, globalAddress: C, localAddress: x, subtree: w, contents: y, getChildren: async () => g(m) };
|
|
2320
|
+
l.push(m);
|
|
2321
2321
|
}
|
|
2322
2322
|
} else {
|
|
2323
|
-
const f = ze(
|
|
2324
|
-
for (let
|
|
2325
|
-
const B = f[
|
|
2326
|
-
if (!
|
|
2327
|
-
const w = [], x =
|
|
2323
|
+
const f = ze(h.localAddress), I = ze(h.globalAddress), p = ot(a, c.root.boundingVolume, I);
|
|
2324
|
+
for (let u = 0; u < f.length; u++) {
|
|
2325
|
+
const B = f[u], C = I[u];
|
|
2326
|
+
if (!h.subtree.isTileAvailable(B)) continue;
|
|
2327
|
+
const w = [], x = h.subtree.isContentAvailable(B);
|
|
2328
2328
|
for (let m = 0; m < A.length; m++) {
|
|
2329
2329
|
if (!x[m]) continue;
|
|
2330
2330
|
const Q = A[m];
|
|
2331
2331
|
let k;
|
|
2332
2332
|
a && (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y)), a || (k = Q.replace("{level}", C.level).replace("{x}", C.x).replace("{y}", C.y).replace("{z}", C.z)), w.push({ uri: k });
|
|
2333
2333
|
}
|
|
2334
|
-
const y = { geometricError:
|
|
2335
|
-
|
|
2334
|
+
const y = { geometricError: h.geometricError / 2, boundingVolume: p[u], refine: c.root.refine, globalAddress: C, localAddress: B, subtree: h.subtree, contents: w, getChildren: async () => g(y) };
|
|
2335
|
+
l.push(y);
|
|
2336
2336
|
}
|
|
2337
2337
|
}
|
|
2338
|
-
return
|
|
2338
|
+
return l.length > 0 ? l : void 0;
|
|
2339
2339
|
}
|
|
2340
2340
|
}
|
|
2341
2341
|
function ze(c) {
|
|
@@ -2350,11 +2350,11 @@ function ot(c, e, a) {
|
|
|
2350
2350
|
}
|
|
2351
2351
|
function Ui(c, e, a) {
|
|
2352
2352
|
if (e.region) return function(t, A, i) {
|
|
2353
|
-
const [s, r, o, n, b, d] = A,
|
|
2354
|
-
return { region: [f, I,
|
|
2353
|
+
const [s, r, o, n, b, d] = A, g = (o - s) / 2 ** i.level, h = (n - r) / 2 ** i.level, l = t ? 0 : (d - b) / 2 ** i.level, f = s + g * i.x, I = r + h * i.y, p = f + g, u = I + h, B = t ? b : b + l * i.z, C = t ? d : B + l;
|
|
2354
|
+
return { region: [f, I, p, u, B, C] };
|
|
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], b = r.map((
|
|
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((h, l) => h.map((f) => f * n[l])), 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
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");
|
|
@@ -2364,12 +2364,12 @@ function Ui(c, e, a) {
|
|
|
2364
2364
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
2365
2365
|
var a = WebAssembly.instantiate(function(n) {
|
|
2366
2366
|
for (var b = new Uint8Array(n.length), d = 0; d < n.length; ++d) {
|
|
2367
|
-
var
|
|
2368
|
-
b[d] =
|
|
2367
|
+
var g = n.charCodeAt(d);
|
|
2368
|
+
b[d] = g > 96 ? g - 97 : g > 64 ? g - 39 : g + 4;
|
|
2369
2369
|
}
|
|
2370
|
-
var
|
|
2371
|
-
for (d = 0; d < n.length; ++d) b[
|
|
2372
|
-
return b.buffer.slice(0,
|
|
2370
|
+
var h = 0;
|
|
2371
|
+
for (d = 0; d < n.length; ++d) b[h++] = b[d] < 60 ? e[b[d]] : 64 * (b[d] - 60) + b[++d];
|
|
2372
|
+
return b.buffer.slice(0, h);
|
|
2373
2373
|
}("b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:W;kekr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq:g9sLdbk;3keYu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRb:S:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9UhodndndndndnalTmbaoc;WFbGgecjdaecjd6Ehqcbhkdninakai9pmiaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndndndnaec9WGgsTmbcbhzcehHaPhOawhAxekdnaxTmbcbhAcehHaPhCinaDaAfRbbhXaDcjlfheaChoaxhQinaeaoRbbgLaX9RgXcetaX;acr4786bbaoalfhoaecefheaLhXaQcufgQmbkaraw9Ram6miawcbamzNjjjbgeTmiaCcefhCaeamfhwaAcefgAal6hHaAal9hmbxvkkaraw9Ram6mvawcbamzNjjjb8AceheinawgXamfhwalaegoSmldnaraw9Ram6mbaocefheawcbamzNjjjb8AaXmekkaoal6hHxekindnaxTmbaDazfRbbhXaDcjlfheaOhoaxhQinaeaoRbbgLaX9RgXcetaX;acr4786bbaoalfhoaecefheaLhXaQcufgQmbkkaraA9Ram6mearaAcbamzNjjjbgKamfgw9RcK6mdcbhYaDcjlfhAinaDcjlfaYfh8AcwhCczhLcehQindndnaQce9hmbcuhoa8ARbbmecbhodninaogecsSmeaecefhoaAaefcefRbbTmbkkcucbaecs6EhoxekaQcetc;:FFFeGhocuaQtcu7cFeGhXcbheinaoaXaAaefRbb9nfhoaecefgecz9hmbkkaoaLaoaL6geEhLaQaCaeEhCaQcetgQcw6mbkdndndndnaCcufPdiebkaKaYco4fgeaeRbbcdciaCclSEaYci4coGtV86bbaCcw9hmeawa8A8Pbb83bbawcwfa8Acwf8Pbb83bbawczfhwxdkaKaYco4fgeaeRbbceaYci4coGtV86bbkdncwaC9TgEmbinawcb86bbawcefhwxbkkcuaCtcu7h8Acbh3aAh5ina5heaEhQcbhoinaeRbbgLa8AcFeGgXaLaX6EaoaCtVhoaecefheaQcufgQmbkawao86bba5aEfh5awcefhwa3aEfg3cz6mbkcbheindnaAaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaYczfgYas9pmbaAczfhAaraw9RcL0mekkaYas6meawTmeaOcefhOazcefgzal6hHawhAazalSmixbkkcbhwaHceGTmexikcbhwaHceGmdkaDaPaxcufal2falz:tjjjb8AaxakfhkawmbkcbhoxokcbhoxvkaiTmekcbhoaraw9Ralcaalca0E6mialc8F9nmexdkcbhoaecufca6mdkawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9Rhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBd:S:kjjbk;rse3u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:C:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgoydbhLaocwfydbhKaoclfydbhYcbh8Adndninalc;abfavcsGcitfgoydlhEdndndnaoydbgoaL9hmbaEaYSmekdnaoaY9hmbaEaK9hmba8Acefh8AxekaoaK9hmeaEaL9hmea8Acdfh8Aka8Ac870mdaXcufhvada8AciGcx2goc:y1jjbfydbaCfcdtfydbhEadaocN1jjbfydbaCfcdtfydbhKadaoc:q1jjbfydbaCfcdtfydbhLcbhodnindnalavcsGcdtfydbaE9hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaEaOSgvaYce9iaYaH9oVgoGh3dndndndndncbcsavEaYaoEgvcs9hmbarce9imbaEaEaAaEcefaASgvEgAcefSmecmcsavEhvkasava8Acdtc;WeGV86bbavcs9hmeaEaA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbkaEhAxdkcPhvasa8AcdtcPV86bbaEhAkavTmbavaH9imekalaXcdtfaEBdbaXcefcsGhXkaOa3fhOalc;abfaQcitfgvaKBdlavaEBdbalc;abfaQcefcsGgvcitfgoaEBdlaoaLBdbavcefhoxikavcufhva8Aclfg8Ac;ab9hmbkkdnadceaKaOScetaYaOSEcx2gvc:q1jjbfydbaCfcdtfydbgLTadavcN1jjbfydbaCfcdtfydbg8AceSGadavc:y1jjbfydbaCfcdtfydbgYcdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhKxdkcuhKaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydbaY9hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaLaOSg8Efh3dndnaKcm0mbaKcefhKxekcbcsa8Aa3SgvEhKa3avfh3kdndnaEcm0mbaEcefhExekcbcsaYa3SgvEhEa3avfh3kc9:cua8EEh8FaEaKcltVhocbhvdndndninavcj1jjbfRbbaocFeGSmeavcefgvcz9hmbxdkka5aLaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeao86bbaecefhekdna8EmbaLaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaLhAkdnaKcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmbaYaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaYhAkalaXcdtfaLBdbaXcefcsGhvdndnaKPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfaYBdbavcefcsGhvkalc;abfaQcitfgoaLBdlaoa8ABdbalc;abfaQcefcsGcitfgoa8ABdlaoaYBdbalc;abfaQcdfcsGcitfgoaYBdlaoaLBdbaQcifhoavhXa3hOkascefhsaocsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:C:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:C:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:dvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhralcxfIdbhqdndnakJbbbb9GTmbaxhkxekJbbjZar:l:tgkak:maxJbbbb9GEhkJbbjZax:l:tgxax:marJbbbb9GEhrkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEavNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohmxekcjjjj94hmkdndnakJbbj:;akJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;akJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;klld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicdfciGcdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk:Hvdxue998Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6mearcearce0EhwaohDinaDc:CuBdbaDclfhDawcufgwmbkaeTmiadcl6mdarcearce0EhqarcdthkalhxcbhminaohDaxhwaqhPinaDaDydbgsawydbgzcL4cFeGc:cufcbazEgzasaz9kEBdbawclfhwaDclfhDaPcufgPmbkaxakfhxamcefgmae9hmbkkaeTmdxekaeTmekavcb9hadcl6gqVhHarcearce0Ehkarcdthrceai9Rhmcbhdindndndnavce9hmbaqmdc:CuhwalhDakhPinawaDydbgscL4cFeGc:cufcbasEgsawas9kEhwaDclfhDaPcufgPmbxdkkc:CuhwaHmbaohDalhPakhsinaDaPydbgzcL4cFeGgxc8Aaxc8A9kEc:cufcbazEBdbaPclfhPaDclfhDascufgsmbkkaqmbcbhDakhsinawhPdnavceSmbaoaDfydbhPkdndnalaDfIdbgOcjjj;8iamaPfgPcLt9R::NJbbbZJbbb:;aOJbbbb9GEMgO:lJbbb9p9DTmbaO:Ohzxekcjjjj94hzkabaDfazcFFFrGaPcKtVBdbaDclfhDascufgsmbkkabarfhbalarfhladcefgdae9hmbkkaocjdf8KjjjjbkFkdCui998Jjjjjbc:Gd9Rgv8Kjjjjbavc:4efcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgoadcFFFFi0Ecbyd:K:kjjbHjjjjbbgeBd:4eavceBd:ydaeabaoz:tjjjb8Akavc:OefcwfcbBdbav9cb83i:Oeavc:Oefaeadaiavc:4efz:njjjbcuaicdtgraicFFFFi0Egwcbyd:K:kjjbHjjjjbbhoavc:4efavyd:ydgDcdtfaoBdbavaDcefgqBd:ydaoavyd:Oegkarz:tjjjbhxavc:4efaqcdtfadci9Ugmcbyd:K:kjjbHjjjjbbgoBdbavaDcdfgrBd:ydaocbamzNjjjbhPavc:4efarcdtfawcbyd:K:kjjbHjjjjbbgsBdbavaDcifgqBd:ydaxhoashrinaralIdbalaoydbgwcwawcw6Ecdtfc;ebfIdbMUdbaoclfhoarclfhraicufgimbkavc:4efaqcdtfcuamcdtadcFFFF970Ecbyd:K:kjjbHjjjjbbgqBdbavaDclfBd:yddnadci6mbamceamce0EhiaehoaqhrinarasaoydbcdtfIdbasaoclfydbcdtfIdbMasaocwfydbcdtfIdbMUdbaocxfhoarclfhraicufgimbkkavc;qbfhzavhoavyd:SehHavyd:WehOcbhwcbhrcbhAcehCinaohXcihQaearci2gLcdtfgocwfydbhdaoydbhDabaAcx2fgiclfaoclfydbgKBdbaiaDBdbaicwfadBdbaParfce86bbazadBdwazaKBdlazaDBdbaqarcdtfcbBdbdnawTmbcihQaXhiinazaQcdtfaiydbgoBdbaQaoaD9haoaK9hGaoad9hGfhQaiclfhiawcufgwmbkkaAcefhAaxaDcdtfgoaoydbcufBdbaxaKcdtfgoaoydbcufBdbaxadcdtfgoaoydbcufBdbcbhwinaOaHaeawaLfcdtfydbcdtgifydbcdtfgKhoakaifgDydbgdhidnadTmbdninaoydbarSmeaoclfhoaicufgiTmdxbkkaoadcdtaKfc98fydbBdbaDaDydbcufBdbkawcefgwci9hmbkdndndnaQTmbcuhrJbbbbhYcbhDavyd:SehKavyd:WehLindndnakazaDcdtfydbcdtgofydbgimbaDcefhDxekaDcs0hwasaofgdIdbh8AadalcbaDcefgDawEcdtfIdbalaxaofydbgwcwawcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEaicdthiaLaKaofydbcdtfhoinaqaoydbgwcdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYawaradEhraoclfhoaic98fgimbkkaDaQ9hmbkarcu9hmekaCam9pmeindnaPaCfRbbmbaChrxdkamaCcefgC9hmbxdkkaQczaQcz6EhwazhoaXhzarcu9hmekkavyd:ydhokaocdtavc:4effc98fhrdninaoTmearydbcbyd:G:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:Gdf8Kjjjjbk;UlevucuaicdtgvaicFFFFi0Egocbyd:K:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:K:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:K:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhwdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbawceawce0EhDabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;:kivuo99lu8Jjjjjbcj;Hb9Rgl8Kjjjjbcbhvalc1;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:K:kjjbHjjjjbbgrBd19GalceBd;O9Galcwfcbyd:m:kjjbBdbalcb8Pd:e:kjjb83ibalc;W;Gbfcwfcbyd:y:kjjbBdbalcb8Pd:q:kjjb83i;W9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;W;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;49GhDalIdlhkalId;09GhxalIdbhmalId;W9GhPkdndnadTmbJbbbbJbbjZaPam:tJbbbb:xgPaxak: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;Gb9hmbkcbhialaocbyd:K:kjjbHjjjjbbgzBd:m9GdnadTmbabhHinaHaiBdbaHclfhHadaicefgi9hmbkadTmbabhiadhHinalaraiydbgecdtfydbcFrGcx2fgvavydbgvcefBdbazavcdtfaeBdbaiclfhiaHcufgHmbkazhiadhHinalaraiydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaiclfhiaHcufgHmbkabhiadhHinalaraiydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwazavcdtfaeBdbaiclfhiaHcufgHmbkadTmbcbhiinabazydbcdtfaiBdbazclfhzadaicefgi9hmbkkclhidninaic98Smealc1;Gbfaifydbcbyd:G:kjjbH:bjjjbbaic98fhixbkkalcj;Hbf8Kjjjjbk9teiucbcbyd:O:kjjbgeabcifc98GfgbBd:O:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:O:kjjbgeabcrfc94GfgbBd:O:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:O:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:O:kjjbfgdBd:O:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:6ddbcjwk:Cdb4: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:FFuuFFuuFFuuFFuFFFuFFFuFbc:Cqkzebbbebbbdbbb8WWbb"), {}).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,15 +2379,15 @@ function Ui(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, b, d,
|
|
2383
|
-
var
|
|
2384
|
-
|
|
2385
|
-
var
|
|
2386
|
-
return B.set(
|
|
2382
|
+
function i(n, b, d, g, h) {
|
|
2383
|
+
var l = c.exports.sbrk, f = l(b), I = l(g * h), p = new Uint8Array(c.exports.memory.buffer);
|
|
2384
|
+
p.set(A(d), I);
|
|
2385
|
+
var u = n(f, b, I, g, h), B = new Uint8Array(u);
|
|
2386
|
+
return B.set(p.subarray(f, f + u)), l(f - l(0)), B;
|
|
2387
2387
|
}
|
|
2388
2388
|
function s(n) {
|
|
2389
2389
|
for (var b = 0, d = 0; d < n.length; ++d)
|
|
2390
|
-
var
|
|
2390
|
+
var g = n[d];
|
|
2391
2391
|
return b;
|
|
2392
2392
|
}
|
|
2393
2393
|
function r(n, b) {
|
|
@@ -2395,78 +2395,78 @@ function Ui(c, e, a) {
|
|
|
2395
2395
|
var d = new Uint16Array(n.buffer, n.byteOffset, n.byteLength / 2);
|
|
2396
2396
|
return new Uint32Array(d);
|
|
2397
2397
|
}
|
|
2398
|
-
function o(n, b, d,
|
|
2399
|
-
var I = c.exports.sbrk,
|
|
2400
|
-
B.set(A(b),
|
|
2401
|
-
var C = new Uint8Array(d *
|
|
2402
|
-
return C.set(B.subarray(
|
|
2398
|
+
function o(n, b, d, g, h, l, f) {
|
|
2399
|
+
var I = c.exports.sbrk, p = I(d * g), u = I(d * l), B = new Uint8Array(c.exports.memory.buffer);
|
|
2400
|
+
B.set(A(b), u), n(p, d, g, h, u, f);
|
|
2401
|
+
var C = new Uint8Array(d * g);
|
|
2402
|
+
return C.set(B.subarray(p, p + d * g)), I(p - I(0)), C;
|
|
2403
2403
|
}
|
|
2404
2404
|
})();
|
|
2405
2405
|
var Vt = function() {
|
|
2406
2406
|
var c = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2, 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11]), 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]);
|
|
2407
2407
|
if (typeof WebAssembly != "object") return { supported: !1 };
|
|
2408
|
-
var a, t = WebAssembly.validate(c) ? "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;b9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;e8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincbhHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAcd0hHalhOaAcefgAclSmdxekkcbhlaHceGTmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb" : "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;d8Yqdbk:yzeHu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlcbhOinalgic9WfgAawcj;cbffhldndndndndnaHaAco4fRbbaOcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgAco4gCaCciSgCE86bbawcj;cbfaifglcGfaoclfaCfgCRbbaAcl4ciGgXaXciSgXE86bbalcVfaCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc7faCaXfgCRbbaAciGgAaAciSgAE86bbalctfaCaAfgCRbbaoRbegAco4gXaXciSgXE86bbalc91faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc4faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc93faCaXfgCRbbaAciGgAaAciSgAE86bbalc94faCaAfgCRbbaoRbdgAco4gXaXciSgXE86bbalc95faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc96faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc97faCaXfgCRbbaAciGgAaAciSgAE86bbalc98faCaAfgARbbaoRbigoco4gCaCciSgCE86bbalc99faAaCfgARbbaocl4ciGgCaCciSgCE86bbalc9:faAaCfgARbbaocd4ciGgCaCciSgCE86bbalcufaAaCfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgAcl4gCaCcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgCRbbaAcsGgAaAcsSgAE86bbalcVfaCaAfgARbbaoRbegCcl4gXaXcsSgXE86bbalc7faAaXfgARbbaCcsGgCaCcsSgCE86bbalctfaAaCfgARbbaoRbdgCcl4gXaXcsSgXE86bbalc91faAaXfgARbbaCcsGgCaCcsSgCE86bbalc4faAaCfgARbbaoRbigCcl4gXaXcsSgXE86bbalc93faAaXfgARbbaCcsGgCaCcsSgCE86bbalc94faAaCfgARbbaoRblgCcl4gXaXcsSgXE86bbalc95faAaXfgARbbaCcsGgCaCcsSgCE86bbalc96faAaCfgARbbaoRbvgCcl4gXaXcsSgXE86bbalc97faAaXfgARbbaCcsGgCaCcsSgCE86bbalc98faAaCfgARbbaoRbogCcl4gXaXcsSgXE86bbalc99faAaXfgARbbaCcsGgCaCcsSgCE86bbalc9:faAaCfgARbbaoRbrgocl4gCaCcsSgCE86bbalcufaAaCfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaOcdfhOaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhXdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkaCcefhCamcefgmad6hsamad9hmbkaXhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaXhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabaiavcdfciGfcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabaiavcufciGfcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabaiavciGfcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb", A = WebAssembly.instantiate(i(t), {}).then(function(g) {
|
|
2409
|
-
(a =
|
|
2408
|
+
var a, t = WebAssembly.validate(c) ? "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;b9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;e8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincbhHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAcd0hHalhOaAcefgAclSmdxekkcbhlaHceGTmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb" : "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;d8Yqdbk:yzeHu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlcbhOinalgic9WfgAawcj;cbffhldndndndndnaHaAco4fRbbaOcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgAco4gCaCciSgCE86bbawcj;cbfaifglcGfaoclfaCfgCRbbaAcl4ciGgXaXciSgXE86bbalcVfaCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc7faCaXfgCRbbaAciGgAaAciSgAE86bbalctfaCaAfgCRbbaoRbegAco4gXaXciSgXE86bbalc91faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc4faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc93faCaXfgCRbbaAciGgAaAciSgAE86bbalc94faCaAfgCRbbaoRbdgAco4gXaXciSgXE86bbalc95faCaXfgCRbbaAcl4ciGgXaXciSgXE86bbalc96faCaXfgCRbbaAcd4ciGgXaXciSgXE86bbalc97faCaXfgCRbbaAciGgAaAciSgAE86bbalc98faCaAfgARbbaoRbigoco4gCaCciSgCE86bbalc99faAaCfgARbbaocl4ciGgCaCciSgCE86bbalc9:faAaCfgARbbaocd4ciGgCaCciSgCE86bbalcufaAaCfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgAcl4gCaCcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgCRbbaAcsGgAaAcsSgAE86bbalcVfaCaAfgARbbaoRbegCcl4gXaXcsSgXE86bbalc7faAaXfgARbbaCcsGgCaCcsSgCE86bbalctfaAaCfgARbbaoRbdgCcl4gXaXcsSgXE86bbalc91faAaXfgARbbaCcsGgCaCcsSgCE86bbalc4faAaCfgARbbaoRbigCcl4gXaXcsSgXE86bbalc93faAaXfgARbbaCcsGgCaCcsSgCE86bbalc94faAaCfgARbbaoRblgCcl4gXaXcsSgXE86bbalc95faAaXfgARbbaCcsGgCaCcsSgCE86bbalc96faAaCfgARbbaoRbvgCcl4gXaXcsSgXE86bbalc97faAaXfgARbbaCcsGgCaCcsSgCE86bbalc98faAaCfgARbbaoRbogCcl4gXaXcsSgXE86bbalc99faAaXfgARbbaCcsGgCaCcsSgCE86bbalc9:faAaCfgARbbaoRbrgocl4gCaCcsSgCE86bbalcufaAaCfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaOcdfhOaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhXdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhAinaialRbbgHce4cbaHceG9R7aOfgO86bbaiadfhialcefhlaAcufgAmbkaCcefhCamcefgmad6hsamad9hmbkaXhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaXhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabaiavcdfciGfcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabaiavcufciGfcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabaiavciGfcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb", A = WebAssembly.instantiate(i(t), {}).then(function(h) {
|
|
2409
|
+
(a = h.instance).exports.__wasm_call_ctors();
|
|
2410
2410
|
});
|
|
2411
|
-
function i(
|
|
2412
|
-
for (var
|
|
2413
|
-
var I =
|
|
2414
|
-
|
|
2411
|
+
function i(h) {
|
|
2412
|
+
for (var l = new Uint8Array(h.length), f = 0; f < h.length; ++f) {
|
|
2413
|
+
var I = h.charCodeAt(f);
|
|
2414
|
+
l[f] = I > 96 ? I - 97 : I > 64 ? I - 39 : I + 4;
|
|
2415
2415
|
}
|
|
2416
|
-
var
|
|
2417
|
-
for (f = 0; f <
|
|
2418
|
-
return
|
|
2416
|
+
var p = 0;
|
|
2417
|
+
for (f = 0; f < h.length; ++f) l[p++] = l[f] < 60 ? e[l[f]] : 64 * (l[f] - 60) + l[++f];
|
|
2418
|
+
return l.buffer.slice(0, p);
|
|
2419
2419
|
}
|
|
2420
|
-
function s(
|
|
2421
|
-
var C =
|
|
2422
|
-
m.set(
|
|
2423
|
-
var Q =
|
|
2424
|
-
if (Q == 0 && B && B(x, w,
|
|
2420
|
+
function s(h, l, f, I, p, u, B) {
|
|
2421
|
+
var C = h.exports.sbrk, w = I + 3 & -4, x = C(w * p), y = C(u.length), m = new Uint8Array(h.exports.memory.buffer);
|
|
2422
|
+
m.set(u, y);
|
|
2423
|
+
var Q = l(x, I, p, y, u.length);
|
|
2424
|
+
if (Q == 0 && B && B(x, w, p), f.set(m.subarray(x, x + I * p)), C(x - C(0)), Q != 0) throw new Error("Malformed buffer data: " + Q);
|
|
2425
2425
|
}
|
|
2426
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(
|
|
2428
|
-
var
|
|
2429
|
-
return
|
|
2427
|
+
function d(h) {
|
|
2428
|
+
var l = { object: new Worker(h), pending: 0, requests: {} };
|
|
2429
|
+
return l.object.onmessage = function(f) {
|
|
2430
2430
|
var I = f.data;
|
|
2431
|
-
|
|
2432
|
-
},
|
|
2431
|
+
l.pending -= I.count, l.requests[I.id][I.action](I.value), delete l.requests[I.id];
|
|
2432
|
+
}, l;
|
|
2433
2433
|
}
|
|
2434
|
-
function
|
|
2435
|
-
var
|
|
2436
|
-
if (!
|
|
2434
|
+
function g(h) {
|
|
2435
|
+
var l = h.data;
|
|
2436
|
+
if (!l.id) return self.close();
|
|
2437
2437
|
self.ready.then(function(f) {
|
|
2438
2438
|
try {
|
|
2439
|
-
var I = new Uint8Array(
|
|
2440
|
-
s(f, f.exports[
|
|
2441
|
-
} catch (
|
|
2442
|
-
self.postMessage({ id:
|
|
2439
|
+
var I = new Uint8Array(l.count * l.size);
|
|
2440
|
+
s(f, f.exports[l.mode], I, l.count, l.size, l.source, f.exports[l.filter]), self.postMessage({ id: l.id, count: l.count, action: "resolve", value: I }, [I.buffer]);
|
|
2441
|
+
} catch (p) {
|
|
2442
|
+
self.postMessage({ id: l.id, count: l.count, action: "reject", value: p });
|
|
2443
2443
|
}
|
|
2444
2444
|
});
|
|
2445
2445
|
}
|
|
2446
|
-
return { ready: A, supported: !0, useWorkers: function(
|
|
2447
|
-
(function(
|
|
2448
|
-
for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(i(t)) + "]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = " +
|
|
2449
|
-
for (
|
|
2450
|
-
n.length =
|
|
2451
|
-
})(
|
|
2452
|
-
}, decodeVertexBuffer: function(
|
|
2453
|
-
s(a, a.exports.meshopt_decodeVertexBuffer,
|
|
2454
|
-
}, decodeIndexBuffer: function(
|
|
2455
|
-
s(a, a.exports.meshopt_decodeIndexBuffer,
|
|
2456
|
-
}, decodeIndexSequence: function(
|
|
2457
|
-
s(a, a.exports.meshopt_decodeIndexSequence,
|
|
2458
|
-
}, decodeGltfBuffer: function(
|
|
2459
|
-
s(a, a.exports[o[
|
|
2460
|
-
}, decodeGltfBufferAsync: function(
|
|
2461
|
-
return n.length > 0 ? function(
|
|
2446
|
+
return { ready: A, supported: !0, useWorkers: function(h) {
|
|
2447
|
+
(function(l) {
|
|
2448
|
+
for (var f = "self.ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(i(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" }), p = URL.createObjectURL(I), u = n.length; u < l; ++u) n[u] = d(p);
|
|
2449
|
+
for (u = l; u < n.length; ++u) n[u].object.postMessage({});
|
|
2450
|
+
n.length = l, URL.revokeObjectURL(p);
|
|
2451
|
+
})(h);
|
|
2452
|
+
}, decodeVertexBuffer: function(h, l, f, I, p) {
|
|
2453
|
+
s(a, a.exports.meshopt_decodeVertexBuffer, h, l, f, I, a.exports[r[p]]);
|
|
2454
|
+
}, decodeIndexBuffer: function(h, l, f, I) {
|
|
2455
|
+
s(a, a.exports.meshopt_decodeIndexBuffer, h, l, f, I);
|
|
2456
|
+
}, decodeIndexSequence: function(h, l, f, I) {
|
|
2457
|
+
s(a, a.exports.meshopt_decodeIndexSequence, h, l, f, I);
|
|
2458
|
+
}, decodeGltfBuffer: function(h, l, f, I, p, u) {
|
|
2459
|
+
s(a, a.exports[o[p]], h, l, f, I, a.exports[r[u]]);
|
|
2460
|
+
}, decodeGltfBufferAsync: function(h, l, f, I, p) {
|
|
2461
|
+
return n.length > 0 ? function(u, B, C, w, x) {
|
|
2462
2462
|
for (var y = n[0], m = 1; m < n.length; ++m) n[m].pending < y.pending && (y = n[m]);
|
|
2463
2463
|
return new Promise(function(Q, k) {
|
|
2464
2464
|
var D = new Uint8Array(C), F = ++b;
|
|
2465
|
-
y.pending +=
|
|
2465
|
+
y.pending += u, y.requests[F] = { resolve: Q, reject: k }, y.object.postMessage({ id: F, count: u, size: B, source: D, mode: w, filter: x }, [D.buffer]);
|
|
2466
2466
|
});
|
|
2467
|
-
}(
|
|
2468
|
-
var
|
|
2469
|
-
return s(a, a.exports[o[I]],
|
|
2467
|
+
}(h, l, f, o[I], r[p]) : A.then(function() {
|
|
2468
|
+
var u = new Uint8Array(h * l);
|
|
2469
|
+
return s(a, a.exports[o[I]], u, h, l, f, a.exports[r[p]]), u;
|
|
2470
2470
|
});
|
|
2471
2471
|
} };
|
|
2472
2472
|
}();
|
|
@@ -2490,10 +2490,10 @@ 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, b, d,
|
|
2494
|
-
var f = c.exports.sbrk, I = f(4 *
|
|
2495
|
-
B.set(A(o),
|
|
2496
|
-
var C = r(I,
|
|
2493
|
+
function i(r, o, n, b, d, g, h, l) {
|
|
2494
|
+
var f = c.exports.sbrk, I = f(4 * l), p = f(n * b), u = f(n * g), B = new Uint8Array(c.exports.memory.buffer);
|
|
2495
|
+
B.set(A(o), p), d && B.set(A(d), u);
|
|
2496
|
+
var C = r(I, p, n, b, u, g, h, l);
|
|
2497
2497
|
new Uint8Array(c.exports.memory.buffer);
|
|
2498
2498
|
var w = new Uint32Array(C);
|
|
2499
2499
|
return A(w).set(B.subarray(I, I + 4 * C)), f(I - f(0)), w;
|
|
@@ -2549,7 +2549,7 @@ class Ni {
|
|
|
2549
2549
|
let t, A = 0, i = Number.MAX_SAFE_INTEGER, s = -1;
|
|
2550
2550
|
for (let r = this.downloads.length - 1; r >= 0; r--) {
|
|
2551
2551
|
const o = this.downloads[r].distanceFunction();
|
|
2552
|
-
o <= e && (e = o, a = r), A = Math.max(this.downloads[r].level), i > this.downloads[r].level && (i = this.downloads[r].level, s = r);
|
|
2552
|
+
o <= e && (e = o, a = r), A = Math.max(this.downloads[r].level), this.downloads[r].loadingStrategy != "IMMEDIATE" && i > this.downloads[r].level && (i = this.downloads[r].level, s = r);
|
|
2553
2553
|
}
|
|
2554
2554
|
if (A > i + 4 ? t = this.downloads.splice(s, 1).pop() : a >= 0 && (t = this.downloads.splice(a, 1).pop()), t) {
|
|
2555
2555
|
this.nextDownloads.push(t);
|
|
@@ -2573,72 +2573,72 @@ class Ni {
|
|
|
2573
2573
|
}
|
|
2574
2574
|
}
|
|
2575
2575
|
}
|
|
2576
|
-
get(e, a, t, A, i, s, r, o, n, b, d) {
|
|
2577
|
-
const
|
|
2576
|
+
get(e, a, t, A, i, s, r, o, n, b, d, g) {
|
|
2577
|
+
const h = this, l = ct(t), f = new AbortController();
|
|
2578
2578
|
if (e.signal.addEventListener("abort", () => {
|
|
2579
|
-
|
|
2579
|
+
h.register[l] && Object.keys(h.register[l]).length != 0 || f.abort("user abort");
|
|
2580
2580
|
}), !(t.includes(".b3dm") || t.includes(".json") || t.includes(".gltf") || t.includes(".glb"))) return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");
|
|
2581
|
-
if (
|
|
2582
|
-
else if (Object.keys(
|
|
2583
|
-
let
|
|
2584
|
-
t.includes(".b3dm") ?
|
|
2585
|
-
var
|
|
2586
|
-
|
|
2581
|
+
if (h.register[l] || (h.register[l] = {}), h.register[l][a] && console.error(" a tile should only be loaded once"), h.register[l][a] = A, h.cache.get(l)) this._meshReceived(h.cache, h.register, l, i, s, r, a);
|
|
2582
|
+
else if (Object.keys(h.register[l]).length == 1) {
|
|
2583
|
+
let I;
|
|
2584
|
+
t.includes(".b3dm") ? I = () => {
|
|
2585
|
+
var p;
|
|
2586
|
+
p = h.proxy ? () => fetch(h.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), te++, p().then((u) => {
|
|
2587
2587
|
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}`);
|
|
2588
2588
|
return u.arrayBuffer();
|
|
2589
|
-
}).then((u) => this.b3dmDecoder.parseB3DM(u, (
|
|
2590
|
-
|
|
2591
|
-
},
|
|
2592
|
-
|
|
2589
|
+
}).then((u) => this.b3dmDecoder.parseB3DM(u, (B) => {
|
|
2590
|
+
h.meshCallback(B, d);
|
|
2591
|
+
}, n, b)).then((u) => {
|
|
2592
|
+
h.cache.put(l, u), h._checkSize(), this._meshReceived(h.cache, h.register, l, i, s, r, a);
|
|
2593
2593
|
}).catch((u) => {
|
|
2594
2594
|
}).finally(() => {
|
|
2595
2595
|
te--;
|
|
2596
2596
|
});
|
|
2597
|
-
} : t.includes(".glb") || t.includes(".gltf") ?
|
|
2598
|
-
var
|
|
2599
|
-
|
|
2597
|
+
} : t.includes(".glb") || t.includes(".gltf") ? I = g ? () => {
|
|
2598
|
+
var p;
|
|
2599
|
+
p = h.proxy ? () => fetch(h.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), te++, p().then((u) => {
|
|
2600
2600
|
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}`);
|
|
2601
2601
|
return u.arrayBuffer();
|
|
2602
|
-
}).then((u) => this.splatsDecoder.parseSplats(u,
|
|
2603
|
-
|
|
2602
|
+
}).then((u) => this.splatsDecoder.parseSplats(u, n, b, g)).then((u) => {
|
|
2603
|
+
h.cache.put(l, u), h._checkSize(), h._meshReceived(h.cache, h.register, l, i, s, r, a);
|
|
2604
2604
|
}).catch((u) => {
|
|
2605
2605
|
}).finally(() => {
|
|
2606
2606
|
te--;
|
|
2607
2607
|
});
|
|
2608
2608
|
} : () => {
|
|
2609
|
-
var
|
|
2610
|
-
|
|
2609
|
+
var p;
|
|
2610
|
+
p = h.proxy ? () => fetch(h.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), te++, p().then((u) => {
|
|
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(async (u) => {
|
|
2614
|
-
await async function(
|
|
2615
|
-
return new Promise((
|
|
2616
|
-
const
|
|
2617
|
-
|
|
2614
|
+
await async function(B) {
|
|
2615
|
+
return new Promise((C) => {
|
|
2616
|
+
const w = setInterval(() => {
|
|
2617
|
+
B.hasDracoLoader && !B.dracoLoader || B.hasKTX2Loader && !B.ktx2Loader || (clearInterval(w), C());
|
|
2618
2618
|
}, 10);
|
|
2619
2619
|
});
|
|
2620
|
-
}(this.gltfLoader), this.gltfLoader.parse(u, null, (
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
}),
|
|
2620
|
+
}(this.gltfLoader), this.gltfLoader.parse(u, null, (B) => {
|
|
2621
|
+
B.scene.asset = B.asset, n && B.scene.applyMatrix4(this.zUpToYUpMatrix), B.scene.traverse((C) => {
|
|
2622
|
+
C.isMesh && (b && C.applyMatrix4(this.zUpToYUpMatrix), h.meshCallback && h.meshCallback(C, d)), C.isPoints && h.pointsCallback && h.pointsCallback(C, d);
|
|
2623
|
+
}), h.cache.put(l, B.scene), h._checkSize(), h._meshReceived(h.cache, h.register, l, i, s, r, a);
|
|
2624
2624
|
});
|
|
2625
2625
|
}).catch((u) => {
|
|
2626
2626
|
u !== "user abort" && u.code;
|
|
2627
2627
|
}).finally(() => {
|
|
2628
2628
|
te--;
|
|
2629
2629
|
});
|
|
2630
|
-
} : t.includes(".json") && (
|
|
2631
|
-
var
|
|
2632
|
-
|
|
2630
|
+
} : t.includes(".json") && (I = () => {
|
|
2631
|
+
var p;
|
|
2632
|
+
p = h.proxy ? () => fetch(h.proxy, { method: "POST", body: t, signal: f.signal }) : () => fetch(t, { signal: f.signal }), te++, p().then((u) => {
|
|
2633
2633
|
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}`);
|
|
2634
2634
|
return u.json();
|
|
2635
2635
|
}).then((u) => La(u, t)).then((u) => {
|
|
2636
|
-
|
|
2636
|
+
h.cache.put(l, u), h._checkSize(), h._meshReceived(h.cache, h.register, l);
|
|
2637
2637
|
}).catch((u) => {
|
|
2638
2638
|
}).finally(() => {
|
|
2639
2639
|
te--;
|
|
2640
2640
|
});
|
|
2641
|
-
}), this._scheduleDownload({ shouldDoDownload: () => !e.signal.aborted && !!
|
|
2641
|
+
}), this._scheduleDownload({ shouldDoDownload: () => !e.signal.aborted && !!h.register[l] && Object.keys(h.register[l]).length > 0, doDownload: I, distanceFunction: i, getSiblings: s, level: r, loadingStrategy: o, uuid: a });
|
|
2642
2642
|
}
|
|
2643
2643
|
}
|
|
2644
2644
|
clear() {
|
|
@@ -3049,22 +3049,22 @@ class qi extends ka {
|
|
|
3049
3049
|
o.texture.type = v, e.initRenderTarget(o);
|
|
3050
3050
|
const n = new ne(512, 512, 1, { magFilter: R, minFilter: R, anisotropy: 0, type: v, depthBuffer: !1, resolveDepthBuffer: !1 });
|
|
3051
3051
|
n.texture.type = v, e.initRenderTarget(n);
|
|
3052
|
-
const b = 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: Oi(), fragmentShader: a || Ji(), transparent: !0, side: Ze, depthTest: !1, depthWrite: !1 }), d = new Ja(),
|
|
3053
|
-
d.setIndex([0, 2, 1, 2, 3, 1]), d.setAttribute("position", new le(
|
|
3054
|
-
const
|
|
3055
|
-
|
|
3056
|
-
for (let
|
|
3057
|
-
this.worker = new _i({ type: "module" }), this.sortListeners = [], this.worker.onmessage = (
|
|
3058
|
-
const
|
|
3059
|
-
if (
|
|
3052
|
+
const b = 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: Oi(), fragmentShader: a || Ji(), transparent: !0, side: Ze, depthTest: !1, depthWrite: !1 }), d = new Ja(), g = new Float32Array([-0.5, 0.5, 0, 0.5, 0.5, 0, -0.5, -0.5, 0, 0.5, -0.5, 0]);
|
|
3053
|
+
d.setIndex([0, 2, 1, 2, 3, 1]), d.setAttribute("position", new le(g, 3));
|
|
3054
|
+
const h = new Uint32Array(i), l = new wa(h, 1, !1);
|
|
3055
|
+
l.needsUpdate = !0, l.setUsage(Ka), d.setAttribute("order", l), d.instanceCount = 0, super(d, b), this.orderAttribute = l, this.textureSize = 512, this.numTextures = 1, this.batchSize = A, this.maxSplats = i, this.colorRenderTarget = s, this.positionRenderTarget = r, this.cov1RenderTarget = o, this.cov2RenderTarget = n, this.renderer = e, this.sortID = 0, this.freeAddresses = new He();
|
|
3056
|
+
for (let p = 0; p < this.maxSplats; p += A) this.freeAddresses.add(p);
|
|
3057
|
+
this.worker = new _i({ type: "module" }), this.sortListeners = [], this.worker.onmessage = (p) => {
|
|
3058
|
+
const u = new Uint32Array(p.data.order);
|
|
3059
|
+
if (u.length > this.orderAttribute.count) {
|
|
3060
3060
|
const B = new Ja(), C = 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];
|
|
3061
3061
|
B.setIndex(w), B.setAttribute("position", new le(C, 3));
|
|
3062
3062
|
const x = new Uint32Array(this.maxSplats), y = new wa(x, 1, !1);
|
|
3063
3063
|
y.needsUpdate = !0, y.setUsage(Ka), B.setAttribute("order", y), B.instanceCount = 0, this.geometry.dispose(), this.geometry = B, this.orderAttribute = y;
|
|
3064
3064
|
}
|
|
3065
|
-
this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(
|
|
3065
|
+
this.orderAttribute.clearUpdateRanges(), this.orderAttribute.set(u), this.orderAttribute.addUpdateRange(0, u.length), this.orderAttribute.needsUpdate = !0, this.geometry.instanceCount = p.data.count, this.geometry.needsUpdate = !0;
|
|
3066
3066
|
for (let B = this.sortListeners.length - 1; B >= 0; B--)
|
|
3067
|
-
this.sortListeners[B](
|
|
3067
|
+
this.sortListeners[B](p.data.id) && this.sortListeners.splice(B, 1);
|
|
3068
3068
|
}, this.cameraPosition = new M(0, 0, 0), this.rotateOnAxis(new M(1, 0, 0), 0.5 * Math.PI), this.frustumCulled = !1, this.copyMaterial2D = new ia({ uniforms: { sourceTexture: {} }, vertexShader: lt(), fragmentShader: `
|
|
3069
3069
|
precision highp float;
|
|
3070
3070
|
|
|
@@ -3088,8 +3088,8 @@ void main() {
|
|
|
3088
3088
|
const f = new OA(1, 1);
|
|
3089
3089
|
this.copyQuad = new ka(f, this.copyMaterial2D), this.copyScene.add(this.copyQuad), this.copyScene.matrixAutoUpdate = !1, this.copyQuad.matrixAutoUpdate = !1;
|
|
3090
3090
|
const I = this;
|
|
3091
|
-
document.addEventListener("keyup", function(
|
|
3092
|
-
|
|
3091
|
+
document.addEventListener("keyup", function(p) {
|
|
3092
|
+
p.key === "a" && (I.growTextures(), console.log(I.positionRenderTarget.depth));
|
|
3093
3093
|
});
|
|
3094
3094
|
}
|
|
3095
3095
|
dispose() {
|
|
@@ -3124,53 +3124,53 @@ void main() {
|
|
|
3124
3124
|
const i = this;
|
|
3125
3125
|
e.count;
|
|
3126
3126
|
const 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 = [];
|
|
3127
|
-
let
|
|
3127
|
+
let g = () => {
|
|
3128
3128
|
};
|
|
3129
|
-
const
|
|
3130
|
-
for (let f = 0; f < s.length / 3; f++)
|
|
3131
|
-
|
|
3132
|
-
const
|
|
3133
|
-
for (let B = 0; B <
|
|
3134
|
-
Ve.set(
|
|
3129
|
+
const h = new Float32Array(s.length / r * 3);
|
|
3130
|
+
for (let f = 0; f < s.length / 3; f++) h[3 * f] = s[f * r + o], h[3 * f + 1] = s[f * r + o + 1], h[3 * f + 2] = s[f * r + o + 2];
|
|
3131
|
+
g = (f, I, p) => {
|
|
3132
|
+
const u = p * p;
|
|
3133
|
+
for (let B = 0; B < h.length; B += 3) {
|
|
3134
|
+
Ve.set(h[B], -h[B + 2], h[B + 1]);
|
|
3135
3135
|
const C = Hi.copy(Ve).sub(f.origin).dot(f.direction);
|
|
3136
|
-
C > 0 && f.distanceSqToPoint(Ve) <
|
|
3136
|
+
C > 0 && f.distanceSqToPoint(Ve) < u && I.push({ distance: C, point: Ve.clone(), type: "splat" });
|
|
3137
3137
|
}
|
|
3138
3138
|
}, n > this.freeAddresses.size && this.growTextures();
|
|
3139
3139
|
for (let f = 0; f < n; f++) {
|
|
3140
3140
|
const I = this.freeAddresses.poll();
|
|
3141
3141
|
isNaN(I) && console.log("insuficient texture size to store splats info"), b.push(I), d.push(3 * I);
|
|
3142
|
-
const
|
|
3143
|
-
this.addSplatsBatch(
|
|
3142
|
+
const p = f * this.batchSize;
|
|
3143
|
+
this.addSplatsBatch(p, I, e, a, t, A);
|
|
3144
3144
|
}
|
|
3145
3145
|
i.worker.postMessage({ method: "addBatches", insertionIndexes: d, positions: s.buffer, offset: o, stride: r, batchSize: i.batchSize }, [s.buffer]);
|
|
3146
|
-
let
|
|
3146
|
+
let l = !1;
|
|
3147
3147
|
return { hide: () => {
|
|
3148
|
-
|
|
3148
|
+
l == 1 && (l = !1, i.worker.postMessage({ method: "hideBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ }));
|
|
3149
3149
|
}, show: (f) => {
|
|
3150
|
-
|
|
3150
|
+
l == 0 && (l = !0);
|
|
3151
3151
|
const I = i.sortID;
|
|
3152
|
-
i.sortListeners.push((
|
|
3152
|
+
i.sortListeners.push((p) => p >= I && (f(), !0)), i.worker.postMessage({ method: "showBatches", insertionIndexes: d, xyz: [i.cameraPosition.x, i.cameraPosition.z, -i.cameraPosition.y], id: i.sortID++ });
|
|
3153
3153
|
}, remove: () => {
|
|
3154
|
-
|
|
3155
|
-
}, sort: this.sort, raycast:
|
|
3154
|
+
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));
|
|
3155
|
+
}, sort: this.sort, raycast: g, isSplatsBatch: !0 };
|
|
3156
3156
|
}
|
|
3157
3157
|
addSplatsBatch(e, a, t, A, i, s) {
|
|
3158
3158
|
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);
|
|
3159
|
-
for (let
|
|
3160
|
-
const B =
|
|
3159
|
+
for (let u = a; u < a + this.batchSize; u++) {
|
|
3160
|
+
const B = u - a, C = 4 * B, w = e + B;
|
|
3161
3161
|
if (w >= t.count) break;
|
|
3162
3162
|
r[C] = t.getX(w), r[C + 1] = t.getY(w), r[C + 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[C] = Math.floor(255 * A.getX(w)), o[C + 1] = Math.floor(255 * A.getY(w)), o[C + 2] = Math.floor(255 * A.getZ(w)), o[C + 3] = Math.floor(255 * A.getW(w)), n[C] = i.getX(w), n[C + 1] = i.getY(w), n[C + 2] = i.getZ(w), b[C] = s.getX(w), b[C + 1] = s.getY(w), b[C + 2] = s.getZ(w);
|
|
3163
3163
|
}
|
|
3164
|
-
const d = Math.floor(a / Math.pow(this.textureSize, 2)),
|
|
3165
|
-
|
|
3166
|
-
const
|
|
3167
|
-
|
|
3168
|
-
const f = new Ge(o, this.textureSize,
|
|
3169
|
-
f.generateMipmaps = !1, f.magFilter = R, f.minFilter = R, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget,
|
|
3170
|
-
const I = new Ge(n, this.textureSize,
|
|
3171
|
-
I.generateMipmaps = !1, I.magFilter = R, I.minFilter = R, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget,
|
|
3172
|
-
const
|
|
3173
|
-
|
|
3164
|
+
const d = Math.floor(a / Math.pow(this.textureSize, 2)), g = Math.ceil(this.batchSize / this.textureSize), h = [0, a / this.textureSize - d * this.textureSize, this.textureSize];
|
|
3165
|
+
h.push(h[1] + g);
|
|
3166
|
+
const l = new Ge(r, this.textureSize, g, ee, v);
|
|
3167
|
+
l.generateMipmaps = !1, l.magFilter = R, l.minFilter = R, l.anisotropy = 0, l.needsUpdate = !0, this.renderer.initTexture(l), this.renderer.initRenderTarget(this.positionRenderTarget), this.copyTex2D(l, this.positionRenderTarget, h, d), l.dispose();
|
|
3168
|
+
const f = new Ge(o, this.textureSize, g, ee, X);
|
|
3169
|
+
f.generateMipmaps = !1, f.magFilter = R, f.minFilter = R, f.anisotropy = 0, f.needsUpdate = !0, this.renderer.initTexture(f), this.copyTex2D(f, this.colorRenderTarget, h, d), f.dispose();
|
|
3170
|
+
const I = new Ge(n, this.textureSize, g, ee, v);
|
|
3171
|
+
I.generateMipmaps = !1, I.magFilter = R, I.minFilter = R, I.anisotropy = 0, I.needsUpdate = !0, this.renderer.initTexture(I), this.copyTex2D(I, this.cov1RenderTarget, h, d), I.dispose();
|
|
3172
|
+
const p = new Ge(b, this.textureSize, g, ee, v);
|
|
3173
|
+
p.generateMipmaps = !1, p.magFilter = R, p.minFilter = R, p.anisotropy = 0, p.needsUpdate = !0, this.renderer.initTexture(p), this.copyTex2D(p, this.cov2RenderTarget, h, d), p.dispose();
|
|
3174
3174
|
}
|
|
3175
3175
|
growTextures() {
|
|
3176
3176
|
for (let s = this.maxSplats; s < this.maxSplats + this.textureSize * this.textureSize; s += this.batchSize) this.freeAddresses.add(s);
|
|
@@ -3499,31 +3499,32 @@ class Wt extends E.Object3D {
|
|
|
3499
3499
|
const b = /^(?:http|https|ftp|tcp|udp):\/\/\S+/;
|
|
3500
3500
|
if (b.test(t.rootPath) ? b.test(n) || (n = t._assembleURL(t.rootPath, n)) : be.isAbsolute(t.rootPath) && (n = t.rootPath + be.sep + n), n = t._extractQueryParams(n, t.queryParams), t.queryParams) {
|
|
3501
3501
|
var d = "";
|
|
3502
|
-
for (let
|
|
3502
|
+
for (let g in t.queryParams) t.queryParams.hasOwnProperty(g) && (d += "&" + g + "=" + t.queryParams[g]);
|
|
3503
3503
|
n.includes("?") ? n += d : n += "?" + d.substring(1);
|
|
3504
3504
|
}
|
|
3505
3505
|
if (n) if (o && (n.includes(".b3dm") || n.includes(".glb") || n.includes(".gltf"))) {
|
|
3506
3506
|
t.contentURL.push(n);
|
|
3507
3507
|
try {
|
|
3508
|
-
t.tileLoader.get(t.abortController, t.uuid, n, (
|
|
3509
|
-
t.deleted || (
|
|
3510
|
-
Z[
|
|
3511
|
-
}), t.displayCopyright && ma()), t.meshContent.push(
|
|
3512
|
-
if ((
|
|
3513
|
-
const
|
|
3514
|
-
for (let I = 0; I <
|
|
3515
|
-
|
|
3508
|
+
t.tileLoader.get(t.abortController, t.uuid, n, (g) => {
|
|
3509
|
+
t.deleted || (g.asset && g.asset.copyright && (g.asset.copyright.split(";").forEach((h) => {
|
|
3510
|
+
Z[h] ? Z[h]++ : Z[h] = 1;
|
|
3511
|
+
}), t.displayCopyright && ma()), t.meshContent.push(g), t.splatsMesh || (g.traverse((h) => {
|
|
3512
|
+
if ((h.isMesh || h.isPoints) && h.layers.disable(0), h.isMesh && t.occlusionCullingService) {
|
|
3513
|
+
const l = h.geometry.attributes.position, f = [];
|
|
3514
|
+
for (let I = 0; I < l.count; I++) f.push(t.color.r, t.color.g, t.color.b);
|
|
3515
|
+
h.geometry.setAttribute("color", new E.Float32BufferAttribute(f, 3));
|
|
3516
3516
|
}
|
|
3517
|
-
}), t.add(
|
|
3517
|
+
}), t.add(g), t.updateMatrices()));
|
|
3518
3518
|
}, t.cameraOnLoad ? () => {
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
|
|
3519
|
+
if (t.loadingStrategy == "IMMEDIATE") return t._calculateDistanceToCamera(t.cameraOnLoad);
|
|
3520
|
+
let g = 1;
|
|
3521
|
+
return (t.metric && t.metric < 0 || t.deleted) && (g = 2), t.parentTile ? t.parentTile._calculateDistanceToCamera(t.cameraOnLoad) * g * t.level : t._calculateDistanceToCamera(t.cameraOnLoad) * g * t.level;
|
|
3522
|
+
} : () => 0, () => t._getSiblings(), t.level, t.loadingStrategy, !t.json.boundingVolume.region, !!t.json.boundingVolume.region, t.geometricError, t.splatsMesh);
|
|
3523
|
+
} catch (g) {
|
|
3524
|
+
t.displayErrors && gt(g);
|
|
3524
3525
|
}
|
|
3525
|
-
} else r && n.includes(".json") && (t.jsonRequested = n, t.tileLoader.get(t.abortController, t.uuid, n, async (
|
|
3526
|
-
t.deleted || (
|
|
3526
|
+
} else r && n.includes(".json") && (t.jsonRequested = n, t.tileLoader.get(t.abortController, t.uuid, n, async (g) => {
|
|
3527
|
+
t.deleted || (g.rootPath = be.dirname(n), t.json.children.push(g), s == null ? delete t.json.content : t.json.contents.splice(s, 1), t.hasUnloadedJSONContent--);
|
|
3527
3528
|
}));
|
|
3528
3529
|
}
|
|
3529
3530
|
}
|
|
@@ -3795,8 +3796,8 @@ class Wt extends E.Object3D {
|
|
|
3795
3796
|
this.distanceBias = e, this.childrenTiles.forEach((a) => a.setDistanceBias(e));
|
|
3796
3797
|
}
|
|
3797
3798
|
_transformWGS84ToCartesian(e, a, t, A) {
|
|
3798
|
-
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),
|
|
3799
|
-
A.set(b, d,
|
|
3799
|
+
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;
|
|
3800
|
+
A.set(b, d, g);
|
|
3800
3801
|
}
|
|
3801
3802
|
}
|
|
3802
3803
|
function gt(c) {
|
|
@@ -3992,8 +3993,8 @@ class Ga extends E.Object3D {
|
|
|
3992
3993
|
return this.matrixWorld;
|
|
3993
3994
|
}
|
|
3994
3995
|
transformWGS84ToCartesian(e, a, t, A) {
|
|
3995
|
-
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),
|
|
3996
|
-
A.set(b, d,
|
|
3996
|
+
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;
|
|
3997
|
+
A.set(b, d, g);
|
|
3997
3998
|
}
|
|
3998
3999
|
}
|
|
3999
4000
|
class as extends E.Object3D {
|
|
@@ -4170,33 +4171,33 @@ class ts {
|
|
|
4170
4171
|
}
|
|
4171
4172
|
}
|
|
4172
4173
|
get(e, a, t, A, i, s, r, o, n, b) {
|
|
4173
|
-
const d = this,
|
|
4174
|
-
for (var f =
|
|
4175
|
-
var B = f[
|
|
4176
|
-
B !== "." && B !== "" && B !== ".." ? I[
|
|
4174
|
+
const d = this, g = function(l) {
|
|
4175
|
+
for (var f = l.split("/"), I = [], p = 0, u = 0; u < f.length; u++) {
|
|
4176
|
+
var B = f[u];
|
|
4177
|
+
B !== "." && B !== "" && B !== ".." ? I[p++] = B : B === ".." && p > 0 && p--;
|
|
4177
4178
|
}
|
|
4178
|
-
if (
|
|
4179
|
+
if (p === 0) return "/";
|
|
4179
4180
|
var C = "";
|
|
4180
|
-
for (
|
|
4181
|
+
for (u = 0; u < p; u++) C += "/" + I[u];
|
|
4181
4182
|
return C;
|
|
4182
4183
|
}(a);
|
|
4183
4184
|
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");
|
|
4184
|
-
const
|
|
4185
|
-
if (
|
|
4185
|
+
const h = d.cache.get(g);
|
|
4186
|
+
if (h) h.addInstance(A);
|
|
4186
4187
|
else if (a.includes(".b3dm") || a.includes(".glb") || a.includes(".gltf")) {
|
|
4187
|
-
const
|
|
4188
|
-
|
|
4188
|
+
const l = new Yi(d.scene);
|
|
4189
|
+
l.addInstance(A), d.cache.put(g, l);
|
|
4189
4190
|
const f = new AbortController();
|
|
4190
4191
|
e.signal.addEventListener("abort", () => {
|
|
4191
|
-
|
|
4192
|
-
}), this.downloads.push({ abortController: f, tile:
|
|
4192
|
+
l.getCount() == 0 && f.abort();
|
|
4193
|
+
}), this.downloads.push({ abortController: f, tile: l, key: g, path: a, distanceFunction: i, getSiblings: s, level: r, uuid: t, sceneZupToYup: o, meshZupToYup: n, geometricError: b, shouldDoDownload: () => !0 });
|
|
4193
4194
|
} else if (a.includes(".json")) {
|
|
4194
|
-
const
|
|
4195
|
-
|
|
4195
|
+
const l = new Wi();
|
|
4196
|
+
l.addInstance(A), d.cache.put(g, l);
|
|
4196
4197
|
const f = new AbortController();
|
|
4197
4198
|
e.signal.addEventListener("abort", () => {
|
|
4198
|
-
|
|
4199
|
-
}), this.downloads.push({ abortController: f, tile:
|
|
4199
|
+
l.getCount() == 0 && f.abort();
|
|
4200
|
+
}), this.downloads.push({ abortController: f, tile: l, key: g, path: a, distanceFunction: i, getSiblings: s, level: r, shouldDoDownload: () => !0 });
|
|
4200
4201
|
}
|
|
4201
4202
|
}
|
|
4202
4203
|
_getNextDownloads() {
|