@terra.gl/core 0.0.1-alpha.11 → 0.0.1-alpha.13
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/index.js +798 -764
- package/dist/index.umd.cjs +15 -15
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,8 +2,8 @@ var dv = Object.defineProperty;
|
|
|
2
2
|
var fv = (a, t, e) => t in a ? dv(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
|
|
3
3
|
var M = (a, t, e) => fv(a, typeof t != "symbol" ? t + "" : t, e);
|
|
4
4
|
import * as It from "three";
|
|
5
|
-
import { REVISION as Ph, TrianglesDrawMode as pv, TriangleFanDrawMode as za, TriangleStripDrawMode as Ch, Mesh as ut, Vector3 as J, Color as Le, FrontSide as $s, Plane as
|
|
6
|
-
const $v = "0.0.1-alpha.
|
|
5
|
+
import { REVISION as Ph, TrianglesDrawMode as pv, TriangleFanDrawMode as za, TriangleStripDrawMode as Ch, Mesh as ut, Vector3 as J, Color as Le, FrontSide as $s, Plane as Vh, Matrix4 as Me, Vector4 as an, PerspectiveCamera as Tr, WebGLRenderTarget as mv, UniformsUtils as Ns, UniformsLib as Bs, ShaderMaterial as rl, MOUSE as Qn, TOUCH as qn, Spherical as Nu, Quaternion as tn, OrthographicCamera as Ii, Vector2 as Ie, Ray as gv, Loader as il, LoaderUtils as Nr, FileLoader as nr, MeshPhysicalMaterial as vn, SpotLight as Eh, PointLight as Da, DirectionalLight as js, InstancedMesh as sl, InstancedBufferAttribute as Oa, Object3D as rn, TextureLoader as eo, ImageBitmapLoader as yv, BufferAttribute as Yt, InterleavedBuffer as vv, InterleavedBufferAttribute as br, LinearMipmapLinearFilter as ol, NearestMipmapLinearFilter as wv, LinearMipmapNearestFilter as xv, NearestMipmapNearestFilter as bv, LinearFilter as Js, NearestFilter as Ah, RepeatWrapping as Cn, MirroredRepeatWrapping as _v, ClampToEdgeWrapping as Ka, PointsMaterial as to, Material as _a, LineBasicMaterial as Xh, MeshStandardMaterial as Ei, DoubleSide as al, MeshBasicMaterial as mn, PropertyBinding as Ci, BufferGeometry as nn, SkinnedMesh as Fh, LineSegments as Tv, Line as kh, LineLoop as Lv, Points as Ai, Group as sn, MathUtils as ct, Skeleton as zh, AnimationClip as Dh, Bone as Ya, InterpolateDiscrete as Sv, InterpolateLinear as Oh, Texture as Qr, VectorKeyframeTrack as Ua, NumberKeyframeTrack as Ha, QuaternionKeyframeTrack as Na, Interpolant as Mv, Box3 as Mr, Sphere as ll, Curve as Gv, MeshPhongMaterial as Ta, MeshLambertMaterial as Kh, EquirectangularReflectionMapping as Zv, AmbientLight as Yh, Float32BufferAttribute as $n, Uint16BufferAttribute as Wv, Matrix3 as Iv, Euler as Mi, DataTextureLoader as Rv, HalfFloatType as Ps, FloatType as Us, DataUtils as Cs, InstancedBufferGeometry as Uh, InstancedInterleavedBuffer as Ba, WireframeGeometry as Pv, Line3 as Cv, EventDispatcher as Hh, Clock as cl, Scene as Vv, FogExp2 as Bu, CubeTextureLoader as Ev, WebGLRenderer as Av, PCFSoftShadowMap as Xv, ACESFilmicToneMapping as Fv, CameraHelper as kv, PlaneGeometry as Br, Frustum as zv, Raycaster as ul, CanvasTexture as Xi, SpriteMaterial as Fi, Sprite as Gr, DynamicDrawUsage as ju, NormalBlending as Dv, BackSide as Ov, Shape as Kv, ShapeGeometry as Yv, CylinderGeometry as Uv, AdditiveBlending as Hv, AnimationMixer as Nv, LoopRepeat as Bv, LoopOnce as jv, LoadingManager as Jv, Box2 as Qv, ImageLoader as Nh, SRGBColorSpace as qv } from "three";
|
|
6
|
+
const $v = "0.0.1-alpha.13", La = {
|
|
7
7
|
name: "criska"
|
|
8
8
|
};
|
|
9
9
|
var Ri = function() {
|
|
@@ -48,13 +48,13 @@ var Ri = function() {
|
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
50
|
Ri.Panel = function(a, t, e) {
|
|
51
|
-
var n = 1 / 0, r = 0, s = Math.round, l = s(window.devicePixelRatio || 1), c = 80 * l, u = 48 * l, d = 3 * l, p = 2 * l, f = 3 * l, g = 15 * l, y = 74 * l, w = 30 * l,
|
|
52
|
-
|
|
53
|
-
var b =
|
|
51
|
+
var n = 1 / 0, r = 0, s = Math.round, l = s(window.devicePixelRatio || 1), c = 80 * l, u = 48 * l, d = 3 * l, p = 2 * l, f = 3 * l, g = 15 * l, y = 74 * l, w = 30 * l, T = document.createElement("canvas");
|
|
52
|
+
T.width = c, T.height = u, T.style.cssText = "width:80px;height:48px";
|
|
53
|
+
var b = T.getContext("2d");
|
|
54
54
|
return b.font = "bold " + 9 * l + "px Helvetica,Arial,sans-serif", b.textBaseline = "top", b.fillStyle = e, b.fillRect(0, 0, c, u), b.fillStyle = t, b.fillText(a, d, p), b.fillRect(f, g, y, w), b.fillStyle = e, b.globalAlpha = 0.9, b.fillRect(f, g, y, w), {
|
|
55
|
-
dom:
|
|
56
|
-
update: function(
|
|
57
|
-
n = Math.min(n,
|
|
55
|
+
dom: T,
|
|
56
|
+
update: function(S, L) {
|
|
57
|
+
n = Math.min(n, S), r = Math.max(r, S), b.fillStyle = e, b.globalAlpha = 1, b.fillRect(0, 0, c, g), b.fillStyle = t, b.fillText(s(S) + " " + a + " (" + s(n) + "-" + s(r) + ")", d, p), b.drawImage(T, f + l, g, y - l, w, f, g, y - l, w), b.fillRect(f + y - l, g, l, w), b.fillStyle = e, b.globalAlpha = 0.9, b.fillRect(f + y - l, g, l, s((1 - S / L) * w));
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
};
|
|
@@ -168,9 +168,9 @@ var Kt = Uint8Array, er = Uint16Array, ja = Uint32Array, Bh = new Kt([
|
|
|
168
168
|
}, Qh = Jh(Bh, 2), qh = Qh[0], tw = Qh[1];
|
|
169
169
|
qh[28] = 258, tw[258] = 28;
|
|
170
170
|
var nw = Jh(jh, 0), rw = nw[0], Ja = new er(32768);
|
|
171
|
-
for (var
|
|
172
|
-
var Bn = (
|
|
173
|
-
Bn = (Bn & 52428) >>> 2 | (Bn & 13107) << 2, Bn = (Bn & 61680) >>> 4 | (Bn & 3855) << 4, Ja[
|
|
171
|
+
for (var Ve = 0; Ve < 32768; ++Ve) {
|
|
172
|
+
var Bn = (Ve & 43690) >>> 1 | (Ve & 21845) << 1;
|
|
173
|
+
Bn = (Bn & 52428) >>> 2 | (Bn & 13107) << 2, Bn = (Bn & 61680) >>> 4 | (Bn & 3855) << 4, Ja[Ve] = ((Bn & 65280) >>> 8 | (Bn & 255) << 8) >>> 1;
|
|
174
174
|
}
|
|
175
175
|
var Pi = function(a, t, e) {
|
|
176
176
|
for (var n = a.length, r = 0, s = new er(t); r < n; ++r)
|
|
@@ -191,17 +191,17 @@ var Pi = function(a, t, e) {
|
|
|
191
191
|
a[r] && (c[r] = Ja[l[a[r] - 1]++] >>> 15 - a[r]);
|
|
192
192
|
return c;
|
|
193
193
|
}, ki = new Kt(288);
|
|
194
|
-
for (var
|
|
195
|
-
ki[
|
|
196
|
-
for (var
|
|
197
|
-
ki[
|
|
198
|
-
for (var
|
|
199
|
-
ki[
|
|
200
|
-
for (var
|
|
201
|
-
ki[
|
|
194
|
+
for (var Ve = 0; Ve < 144; ++Ve)
|
|
195
|
+
ki[Ve] = 8;
|
|
196
|
+
for (var Ve = 144; Ve < 256; ++Ve)
|
|
197
|
+
ki[Ve] = 9;
|
|
198
|
+
for (var Ve = 256; Ve < 280; ++Ve)
|
|
199
|
+
ki[Ve] = 7;
|
|
200
|
+
for (var Ve = 280; Ve < 288; ++Ve)
|
|
201
|
+
ki[Ve] = 8;
|
|
202
202
|
var $h = new Kt(32);
|
|
203
|
-
for (var
|
|
204
|
-
$h[
|
|
203
|
+
for (var Ve = 0; Ve < 32; ++Ve)
|
|
204
|
+
$h[Ve] = 5;
|
|
205
205
|
var iw = /* @__PURE__ */ Pi(ki, 9, 1), sw = /* @__PURE__ */ Pi($h, 5, 1), Sa = function(a) {
|
|
206
206
|
for (var t = a[0], e = 1; e < a.length; ++e)
|
|
207
207
|
a[e] > t && (t = a[e]);
|
|
@@ -234,16 +234,16 @@ var iw = /* @__PURE__ */ Pi(ki, 9, 1), sw = /* @__PURE__ */ Pi($h, 5, 1), Sa = f
|
|
|
234
234
|
do {
|
|
235
235
|
if (!p) {
|
|
236
236
|
e.f = c = $t(a, u, 1);
|
|
237
|
-
var
|
|
238
|
-
if (u += 3,
|
|
239
|
-
if (
|
|
237
|
+
var T = $t(a, u + 1, 3);
|
|
238
|
+
if (u += 3, T)
|
|
239
|
+
if (T == 1)
|
|
240
240
|
p = iw, f = sw, g = 9, y = 5;
|
|
241
|
-
else if (
|
|
242
|
-
var Z = $t(a, u, 31) + 257,
|
|
241
|
+
else if (T == 2) {
|
|
242
|
+
var Z = $t(a, u, 31) + 257, V = $t(a, u + 10, 15) + 4, z = Z + $t(a, u + 5, 31) + 1;
|
|
243
243
|
u += 14;
|
|
244
|
-
for (var X = new Kt(z), k = new Kt(19), P = 0; P <
|
|
244
|
+
for (var X = new Kt(z), k = new Kt(19), P = 0; P < V; ++P)
|
|
245
245
|
k[ew[P]] = $t(a, u + P * 3, 7);
|
|
246
|
-
u +=
|
|
246
|
+
u += V * 3;
|
|
247
247
|
for (var D = Sa(k), I = (1 << D) - 1, A = Pi(k, D, 1), P = 0; P < z; ) {
|
|
248
248
|
var U = A[$t(a, u, I)];
|
|
249
249
|
u += U & 15;
|
|
@@ -261,13 +261,13 @@ var iw = /* @__PURE__ */ Pi(ki, 9, 1), sw = /* @__PURE__ */ Pi($h, 5, 1), Sa = f
|
|
|
261
261
|
} else
|
|
262
262
|
throw "invalid block type";
|
|
263
263
|
else {
|
|
264
|
-
var b = ow(u) + 4,
|
|
265
|
-
if (
|
|
264
|
+
var b = ow(u) + 4, S = a[b - 4] | a[b - 3] << 8, L = b + S;
|
|
265
|
+
if (L > n) {
|
|
266
266
|
if (s)
|
|
267
267
|
throw "unexpected EOF";
|
|
268
268
|
break;
|
|
269
269
|
}
|
|
270
|
-
r && l(d +
|
|
270
|
+
r && l(d + S), t.set(a.subarray(b, L), d), e.b = d += S, e.p = u = L * 8;
|
|
271
271
|
continue;
|
|
272
272
|
}
|
|
273
273
|
if (u > w) {
|
|
@@ -337,7 +337,7 @@ try {
|
|
|
337
337
|
class pw extends ut {
|
|
338
338
|
constructor(t, e = {}) {
|
|
339
339
|
super(t), this.isWater = !0;
|
|
340
|
-
const n = this, r = e.textureWidth !== void 0 ? e.textureWidth : 512, s = e.textureHeight !== void 0 ? e.textureHeight : 512, l = e.clipBias !== void 0 ? e.clipBias : 0, c = e.alpha !== void 0 ? e.alpha : 1, u = e.time !== void 0 ? e.time : 0, d = e.waterNormals !== void 0 ? e.waterNormals : null, p = e.sunDirection !== void 0 ? e.sunDirection : new J(0.70707, 0.70707, 0), f = new Le(e.sunColor !== void 0 ? e.sunColor : 16777215), g = new Le(e.waterColor !== void 0 ? e.waterColor : 8355711), y = e.eye !== void 0 ? e.eye : new J(0, 0, 0), w = e.distortionScale !== void 0 ? e.distortionScale : 20,
|
|
340
|
+
const n = this, r = e.textureWidth !== void 0 ? e.textureWidth : 512, s = e.textureHeight !== void 0 ? e.textureHeight : 512, l = e.clipBias !== void 0 ? e.clipBias : 0, c = e.alpha !== void 0 ? e.alpha : 1, u = e.time !== void 0 ? e.time : 0, d = e.waterNormals !== void 0 ? e.waterNormals : null, p = e.sunDirection !== void 0 ? e.sunDirection : new J(0.70707, 0.70707, 0), f = new Le(e.sunColor !== void 0 ? e.sunColor : 16777215), g = new Le(e.waterColor !== void 0 ? e.waterColor : 8355711), y = e.eye !== void 0 ? e.eye : new J(0, 0, 0), w = e.distortionScale !== void 0 ? e.distortionScale : 20, T = e.side !== void 0 ? e.side : $s, b = e.fog !== void 0 ? e.fog : !1, S = new Vh(), L = new J(), Z = new J(), V = new J(), z = new Me(), X = new J(0, 0, -1), k = new an(), P = new J(), D = new J(), I = new an(), A = new Me(), U = new Tr(), j = new mv(r, s), B = {
|
|
341
341
|
uniforms: Ns.merge([
|
|
342
342
|
Bs.fog,
|
|
343
343
|
Bs.lights,
|
|
@@ -464,13 +464,13 @@ class pw extends ut {
|
|
|
464
464
|
vertexShader: B.vertexShader,
|
|
465
465
|
uniforms: Ns.clone(B.uniforms),
|
|
466
466
|
lights: !0,
|
|
467
|
-
side:
|
|
467
|
+
side: T,
|
|
468
468
|
fog: b
|
|
469
469
|
});
|
|
470
470
|
q.uniforms.mirrorSampler.value = j.texture, q.uniforms.textureMatrix.value = A, q.uniforms.alpha.value = c, q.uniforms.time.value = u, q.uniforms.normalSampler.value = d, q.uniforms.sunColor.value = f, q.uniforms.waterColor.value = g, q.uniforms.sunDirection.value = p, q.uniforms.distortionScale.value = w, q.uniforms.eye.value = y, n.material = q, n.onBeforeRender = function(N, ie, re) {
|
|
471
|
-
if (Z.setFromMatrixPosition(n.matrixWorld),
|
|
471
|
+
if (Z.setFromMatrixPosition(n.matrixWorld), V.setFromMatrixPosition(re.matrixWorld), z.extractRotation(n.matrixWorld), L.set(0, 0, 1), L.applyMatrix4(z), P.subVectors(Z, V), P.dot(L) > 0)
|
|
472
472
|
return;
|
|
473
|
-
P.reflect(
|
|
473
|
+
P.reflect(L).negate(), P.add(Z), z.extractRotation(re.matrixWorld), X.set(0, 0, -1), X.applyMatrix4(z), X.add(V), D.subVectors(Z, X), D.reflect(L).negate(), D.add(Z), U.position.copy(P), U.up.set(0, 1, 0), U.up.applyMatrix4(z), U.up.reflect(L), U.lookAt(D), U.far = re.far, U.updateMatrixWorld(), U.projectionMatrix.copy(re.projectionMatrix), A.set(0.5, 0, 0, 0.5, 0, 0.5, 0, 0.5, 0, 0, 0.5, 0.5, 0, 0, 0, 1), A.multiply(U.projectionMatrix), A.multiply(U.matrixWorldInverse), S.setFromNormalAndCoplanarPoint(L, Z), S.applyMatrix4(U.matrixWorldInverse), k.set(S.normal.x, S.normal.y, S.normal.z, S.constant);
|
|
474
474
|
const ee = U.projectionMatrix;
|
|
475
475
|
I.x = (Math.sign(k.x) + ee.elements[8]) / ee.elements[0], I.y = (Math.sign(k.y) + ee.elements[9]) / ee.elements[5], I.z = -1, I.w = (1 + ee.elements[10]) / ee.elements[14], k.multiplyScalar(2 / k.dot(I)), ee.elements[2] = k.x, ee.elements[6] = k.y, ee.elements[10] = k.z + 1 - l, ee.elements[14] = k.w, y.setFromMatrixPosition(re.matrixWorld);
|
|
476
476
|
const pe = N.getRenderTarget(), ve = N.xr.enabled, ue = N.shadowMap.autoUpdate;
|
|
@@ -538,25 +538,25 @@ class vw {
|
|
|
538
538
|
}
|
|
539
539
|
}
|
|
540
540
|
var ww = Object.defineProperty, xw = (a, t, e) => t in a ? ww(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e, se = (a, t, e) => (xw(a, typeof t != "symbol" ? t + "" : t, e), e);
|
|
541
|
-
const
|
|
541
|
+
const Vs = /* @__PURE__ */ new gv(), Qu = /* @__PURE__ */ new Vh(), bw = Math.cos(70 * (Math.PI / 180)), qu = (a, t) => (a % t + t) % t;
|
|
542
542
|
class _w extends vw {
|
|
543
543
|
constructor(t, e) {
|
|
544
544
|
super(), se(this, "object"), se(this, "domElement"), se(this, "enabled", !0), se(this, "target", new J()), se(this, "minDistance", 0), se(this, "maxDistance", 1 / 0), se(this, "minZoom", 0), se(this, "maxZoom", 1 / 0), se(this, "minPolarAngle", 0), se(this, "maxPolarAngle", Math.PI), se(this, "minAzimuthAngle", -1 / 0), se(this, "maxAzimuthAngle", 1 / 0), se(this, "enableDamping", !1), se(this, "dampingFactor", 0.05), se(this, "enableZoom", !0), se(this, "zoomSpeed", 1), se(this, "enableRotate", !0), se(this, "rotateSpeed", 1), se(this, "enablePan", !0), se(this, "panSpeed", 1), se(this, "screenSpacePanning", !0), se(this, "keyPanSpeed", 7), se(this, "zoomToCursor", !1), se(this, "autoRotate", !1), se(this, "autoRotateSpeed", 2), se(this, "reverseOrbit", !1), se(this, "reverseHorizontalOrbit", !1), se(this, "reverseVerticalOrbit", !1), se(this, "keys", { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }), se(this, "mouseButtons", {
|
|
545
545
|
LEFT: Qn.ROTATE,
|
|
546
546
|
MIDDLE: Qn.DOLLY,
|
|
547
547
|
RIGHT: Qn.PAN
|
|
548
|
-
}), se(this, "touches", { ONE: qn.ROTATE, TWO: qn.DOLLY_PAN }), se(this, "target0"), se(this, "position0"), se(this, "zoom0"), se(this, "_domElementKeyEvents", null), se(this, "getPolarAngle"), se(this, "getAzimuthalAngle"), se(this, "setPolarAngle"), se(this, "setAzimuthalAngle"), se(this, "getDistance"), se(this, "getZoomScale"), se(this, "listenToKeyEvents"), se(this, "stopListenToKeyEvents"), se(this, "saveState"), se(this, "reset"), se(this, "update"), se(this, "connect"), se(this, "dispose"), se(this, "dollyIn"), se(this, "dollyOut"), se(this, "getScale"), se(this, "setScale"), this.object = t, this.domElement = e, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this.getPolarAngle = () => p.phi, this.getAzimuthalAngle = () => p.theta, this.setPolarAngle = (
|
|
549
|
-
let Q = qu(
|
|
548
|
+
}), se(this, "touches", { ONE: qn.ROTATE, TWO: qn.DOLLY_PAN }), se(this, "target0"), se(this, "position0"), se(this, "zoom0"), se(this, "_domElementKeyEvents", null), se(this, "getPolarAngle"), se(this, "getAzimuthalAngle"), se(this, "setPolarAngle"), se(this, "setAzimuthalAngle"), se(this, "getDistance"), se(this, "getZoomScale"), se(this, "listenToKeyEvents"), se(this, "stopListenToKeyEvents"), se(this, "saveState"), se(this, "reset"), se(this, "update"), se(this, "connect"), se(this, "dispose"), se(this, "dollyIn"), se(this, "dollyOut"), se(this, "getScale"), se(this, "setScale"), this.object = t, this.domElement = e, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this.getPolarAngle = () => p.phi, this.getAzimuthalAngle = () => p.theta, this.setPolarAngle = (E) => {
|
|
549
|
+
let Q = qu(E, 2 * Math.PI), ce = p.phi;
|
|
550
550
|
ce < 0 && (ce += 2 * Math.PI), Q < 0 && (Q += 2 * Math.PI);
|
|
551
551
|
let Se = Math.abs(Q - ce);
|
|
552
552
|
2 * Math.PI - Se < Se && (Q < ce ? Q += 2 * Math.PI : ce += 2 * Math.PI), f.phi = Q - ce, n.update();
|
|
553
|
-
}, this.setAzimuthalAngle = (
|
|
554
|
-
let Q = qu(
|
|
553
|
+
}, this.setAzimuthalAngle = (E) => {
|
|
554
|
+
let Q = qu(E, 2 * Math.PI), ce = p.theta;
|
|
555
555
|
ce < 0 && (ce += 2 * Math.PI), Q < 0 && (Q += 2 * Math.PI);
|
|
556
556
|
let Se = Math.abs(Q - ce);
|
|
557
557
|
2 * Math.PI - Se < Se && (Q < ce ? Q += 2 * Math.PI : ce += 2 * Math.PI), f.theta = Q - ce, n.update();
|
|
558
|
-
}, this.getDistance = () => n.object.position.distanceTo(n.target), this.listenToKeyEvents = (
|
|
559
|
-
|
|
558
|
+
}, this.getDistance = () => n.object.position.distanceTo(n.target), this.listenToKeyEvents = (E) => {
|
|
559
|
+
E.addEventListener("keydown", ln), this._domElementKeyEvents = E;
|
|
560
560
|
}, this.stopListenToKeyEvents = () => {
|
|
561
561
|
this._domElementKeyEvents.removeEventListener("keydown", ln), this._domElementKeyEvents = null;
|
|
562
562
|
}, this.saveState = () => {
|
|
@@ -564,17 +564,17 @@ class _w extends vw {
|
|
|
564
564
|
}, this.reset = () => {
|
|
565
565
|
n.target.copy(n.target0), n.object.position.copy(n.position0), n.object.zoom = n.zoom0, n.object.updateProjectionMatrix(), n.dispatchEvent(r), n.update(), u = c.NONE;
|
|
566
566
|
}, this.update = (() => {
|
|
567
|
-
const
|
|
567
|
+
const E = new J(), Q = new J(0, 1, 0), ce = new tn().setFromUnitVectors(t.up, Q), Se = ce.clone().invert(), Ye = new J(), Ct = new tn(), Ht = 2 * Math.PI;
|
|
568
568
|
return function() {
|
|
569
569
|
const Ki = n.object.position;
|
|
570
|
-
ce.setFromUnitVectors(t.up, Q), Se.copy(ce).invert(),
|
|
570
|
+
ce.setFromUnitVectors(t.up, Q), Se.copy(ce).invert(), E.copy(Ki).sub(n.target), E.applyQuaternion(ce), p.setFromVector3(E), n.autoRotate && u === c.NONE && B(U()), n.enableDamping ? (p.theta += f.theta * n.dampingFactor, p.phi += f.phi * n.dampingFactor) : (p.theta += f.theta, p.phi += f.phi);
|
|
571
571
|
let Nt = n.minAzimuthAngle, Bt = n.maxAzimuthAngle;
|
|
572
|
-
isFinite(Nt) && isFinite(Bt) && (Nt < -Math.PI ? Nt += Ht : Nt > Math.PI && (Nt -= Ht), Bt < -Math.PI ? Bt += Ht : Bt > Math.PI && (Bt -= Ht), Nt <= Bt ? p.theta = Math.max(Nt, Math.min(Bt, p.theta)) : p.theta = p.theta > (Nt + Bt) / 2 ? Math.max(Nt, p.theta) : Math.min(Bt, p.theta)), p.phi = Math.max(n.minPolarAngle, Math.min(n.maxPolarAngle, p.phi)), p.makeSafe(), n.enableDamping === !0 ? n.target.addScaledVector(y, n.dampingFactor) : n.target.add(y), n.zoomToCursor && D || n.object.isOrthographicCamera ? p.radius = ye(p.radius) : p.radius = ye(p.radius * g),
|
|
572
|
+
isFinite(Nt) && isFinite(Bt) && (Nt < -Math.PI ? Nt += Ht : Nt > Math.PI && (Nt -= Ht), Bt < -Math.PI ? Bt += Ht : Bt > Math.PI && (Bt -= Ht), Nt <= Bt ? p.theta = Math.max(Nt, Math.min(Bt, p.theta)) : p.theta = p.theta > (Nt + Bt) / 2 ? Math.max(Nt, p.theta) : Math.min(Bt, p.theta)), p.phi = Math.max(n.minPolarAngle, Math.min(n.maxPolarAngle, p.phi)), p.makeSafe(), n.enableDamping === !0 ? n.target.addScaledVector(y, n.dampingFactor) : n.target.add(y), n.zoomToCursor && D || n.object.isOrthographicCamera ? p.radius = ye(p.radius) : p.radius = ye(p.radius * g), E.setFromSpherical(p), E.applyQuaternion(Se), Ki.copy(n.target).add(E), n.object.matrixAutoUpdate || n.object.updateMatrix(), n.object.lookAt(n.target), n.enableDamping === !0 ? (f.theta *= 1 - n.dampingFactor, f.phi *= 1 - n.dampingFactor, y.multiplyScalar(1 - n.dampingFactor)) : (f.set(0, 0, 0), y.set(0, 0, 0));
|
|
573
573
|
let Fn = !1;
|
|
574
574
|
if (n.zoomToCursor && D) {
|
|
575
575
|
let lr = null;
|
|
576
576
|
if (n.object instanceof Tr && n.object.isPerspectiveCamera) {
|
|
577
|
-
const cr =
|
|
577
|
+
const cr = E.length();
|
|
578
578
|
lr = ye(cr * g);
|
|
579
579
|
const Ir = cr - lr;
|
|
580
580
|
n.object.position.addScaledVector(k, Ir), n.object.updateMatrixWorld();
|
|
@@ -582,18 +582,18 @@ class _w extends vw {
|
|
|
582
582
|
const cr = new J(P.x, P.y, 0);
|
|
583
583
|
cr.unproject(n.object), n.object.zoom = Math.max(n.minZoom, Math.min(n.maxZoom, n.object.zoom / g)), n.object.updateProjectionMatrix(), Fn = !0;
|
|
584
584
|
const Ir = new J(P.x, P.y, 0);
|
|
585
|
-
Ir.unproject(n.object), n.object.position.sub(Ir).add(cr), n.object.updateMatrixWorld(), lr =
|
|
585
|
+
Ir.unproject(n.object), n.object.position.sub(Ir).add(cr), n.object.updateMatrixWorld(), lr = E.length();
|
|
586
586
|
} else
|
|
587
587
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), n.zoomToCursor = !1;
|
|
588
|
-
lr !== null && (n.screenSpacePanning ? n.target.set(0, 0, -1).transformDirection(n.object.matrix).multiplyScalar(lr).add(n.object.position) : (
|
|
588
|
+
lr !== null && (n.screenSpacePanning ? n.target.set(0, 0, -1).transformDirection(n.object.matrix).multiplyScalar(lr).add(n.object.position) : (Vs.origin.copy(n.object.position), Vs.direction.set(0, 0, -1).transformDirection(n.object.matrix), Math.abs(n.object.up.dot(Vs.direction)) < bw ? t.lookAt(n.target) : (Qu.setFromNormalAndCoplanarPoint(n.object.up, n.target), Vs.intersectPlane(Qu, n.target))));
|
|
589
589
|
} else n.object instanceof Ii && n.object.isOrthographicCamera && (Fn = g !== 1, Fn && (n.object.zoom = Math.max(n.minZoom, Math.min(n.maxZoom, n.object.zoom / g)), n.object.updateProjectionMatrix()));
|
|
590
590
|
return g = 1, D = !1, Fn || Ye.distanceToSquared(n.object.position) > d || 8 * (1 - Ct.dot(n.object.quaternion)) > d ? (n.dispatchEvent(r), Ye.copy(n.object.position), Ct.copy(n.object.quaternion), Fn = !1, !0) : !1;
|
|
591
591
|
};
|
|
592
|
-
})(), this.connect = (
|
|
593
|
-
n.domElement =
|
|
592
|
+
})(), this.connect = (E) => {
|
|
593
|
+
n.domElement = E, n.domElement.style.touchAction = "none", n.domElement.addEventListener("contextmenu", Zr), n.domElement.addEventListener("pointerdown", En), n.domElement.addEventListener("pointercancel", sr), n.domElement.addEventListener("wheel", Xn);
|
|
594
594
|
}, this.dispose = () => {
|
|
595
|
-
var
|
|
596
|
-
n.domElement && (n.domElement.style.touchAction = "auto"), (
|
|
595
|
+
var E, Q, ce, Se, Ye, Ct;
|
|
596
|
+
n.domElement && (n.domElement.style.touchAction = "auto"), (E = n.domElement) == null || E.removeEventListener("contextmenu", Zr), (Q = n.domElement) == null || Q.removeEventListener("pointerdown", En), (ce = n.domElement) == null || ce.removeEventListener("pointercancel", sr), (Se = n.domElement) == null || Se.removeEventListener("wheel", Xn), (Ye = n.domElement) == null || Ye.ownerDocument.removeEventListener("pointermove", An), (Ct = n.domElement) == null || Ct.ownerDocument.removeEventListener("pointerup", sr), n._domElementKeyEvents !== null && n._domElementKeyEvents.removeEventListener("keydown", ln);
|
|
597
597
|
};
|
|
598
598
|
const n = this, r = { type: "change" }, s = { type: "start" }, l = { type: "end" }, c = {
|
|
599
599
|
NONE: -1,
|
|
@@ -608,7 +608,7 @@ class _w extends vw {
|
|
|
608
608
|
let u = c.NONE;
|
|
609
609
|
const d = 1e-6, p = new Nu(), f = new Nu();
|
|
610
610
|
let g = 1;
|
|
611
|
-
const y = new J(), w = new Ie(),
|
|
611
|
+
const y = new J(), w = new Ie(), T = new Ie(), b = new Ie(), S = new Ie(), L = new Ie(), Z = new Ie(), V = new Ie(), z = new Ie(), X = new Ie(), k = new J(), P = new Ie();
|
|
612
612
|
let D = !1;
|
|
613
613
|
const I = [], A = {};
|
|
614
614
|
function U() {
|
|
@@ -617,30 +617,30 @@ class _w extends vw {
|
|
|
617
617
|
function j() {
|
|
618
618
|
return Math.pow(0.95, n.zoomSpeed);
|
|
619
619
|
}
|
|
620
|
-
function B(
|
|
621
|
-
n.reverseOrbit || n.reverseHorizontalOrbit ? f.theta +=
|
|
620
|
+
function B(E) {
|
|
621
|
+
n.reverseOrbit || n.reverseHorizontalOrbit ? f.theta += E : f.theta -= E;
|
|
622
622
|
}
|
|
623
|
-
function q(
|
|
624
|
-
n.reverseOrbit || n.reverseVerticalOrbit ? f.phi +=
|
|
623
|
+
function q(E) {
|
|
624
|
+
n.reverseOrbit || n.reverseVerticalOrbit ? f.phi += E : f.phi -= E;
|
|
625
625
|
}
|
|
626
626
|
const N = (() => {
|
|
627
|
-
const
|
|
627
|
+
const E = new J();
|
|
628
628
|
return function(ce, Se) {
|
|
629
|
-
|
|
629
|
+
E.setFromMatrixColumn(Se, 0), E.multiplyScalar(-ce), y.add(E);
|
|
630
630
|
};
|
|
631
631
|
})(), ie = (() => {
|
|
632
|
-
const
|
|
632
|
+
const E = new J();
|
|
633
633
|
return function(ce, Se) {
|
|
634
|
-
n.screenSpacePanning === !0 ?
|
|
634
|
+
n.screenSpacePanning === !0 ? E.setFromMatrixColumn(Se, 1) : (E.setFromMatrixColumn(Se, 0), E.crossVectors(n.object.up, E)), E.multiplyScalar(ce), y.add(E);
|
|
635
635
|
};
|
|
636
636
|
})(), re = (() => {
|
|
637
|
-
const
|
|
637
|
+
const E = new J();
|
|
638
638
|
return function(ce, Se) {
|
|
639
639
|
const Ye = n.domElement;
|
|
640
640
|
if (Ye && n.object instanceof Tr && n.object.isPerspectiveCamera) {
|
|
641
641
|
const Ct = n.object.position;
|
|
642
|
-
|
|
643
|
-
let Ht =
|
|
642
|
+
E.copy(Ct).sub(n.target);
|
|
643
|
+
let Ht = E.length();
|
|
644
644
|
Ht *= Math.tan(n.object.fov / 2 * Math.PI / 180), N(2 * ce * Ht / Ye.clientHeight, n.object.matrix), ie(2 * Se * Ht / Ye.clientHeight, n.object.matrix);
|
|
645
645
|
} else Ye && n.object instanceof Ii && n.object.isOrthographicCamera ? (N(
|
|
646
646
|
ce * (n.object.right - n.object.left) / n.object.zoom / Ye.clientWidth,
|
|
@@ -651,51 +651,51 @@ class _w extends vw {
|
|
|
651
651
|
)) : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."), n.enablePan = !1);
|
|
652
652
|
};
|
|
653
653
|
})();
|
|
654
|
-
function ee(
|
|
655
|
-
n.object instanceof Tr && n.object.isPerspectiveCamera || n.object instanceof Ii && n.object.isOrthographicCamera ? g =
|
|
654
|
+
function ee(E) {
|
|
655
|
+
n.object instanceof Tr && n.object.isPerspectiveCamera || n.object instanceof Ii && n.object.isOrthographicCamera ? g = E : (console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."), n.enableZoom = !1);
|
|
656
656
|
}
|
|
657
|
-
function pe(
|
|
658
|
-
ee(g /
|
|
657
|
+
function pe(E) {
|
|
658
|
+
ee(g / E);
|
|
659
659
|
}
|
|
660
|
-
function ve(
|
|
661
|
-
ee(g *
|
|
660
|
+
function ve(E) {
|
|
661
|
+
ee(g * E);
|
|
662
662
|
}
|
|
663
|
-
function ue(
|
|
663
|
+
function ue(E) {
|
|
664
664
|
if (!n.zoomToCursor || !n.domElement)
|
|
665
665
|
return;
|
|
666
666
|
D = !0;
|
|
667
|
-
const Q = n.domElement.getBoundingClientRect(), ce =
|
|
667
|
+
const Q = n.domElement.getBoundingClientRect(), ce = E.clientX - Q.left, Se = E.clientY - Q.top, Ye = Q.width, Ct = Q.height;
|
|
668
668
|
P.x = ce / Ye * 2 - 1, P.y = -(Se / Ct) * 2 + 1, k.set(P.x, P.y, 1).unproject(n.object).sub(n.object.position).normalize();
|
|
669
669
|
}
|
|
670
|
-
function ye(
|
|
671
|
-
return Math.max(n.minDistance, Math.min(n.maxDistance,
|
|
670
|
+
function ye(E) {
|
|
671
|
+
return Math.max(n.minDistance, Math.min(n.maxDistance, E));
|
|
672
672
|
}
|
|
673
|
-
function Fe(
|
|
674
|
-
w.set(
|
|
673
|
+
function Fe(E) {
|
|
674
|
+
w.set(E.clientX, E.clientY);
|
|
675
675
|
}
|
|
676
|
-
function Ue(
|
|
677
|
-
ue(
|
|
676
|
+
function Ue(E) {
|
|
677
|
+
ue(E), V.set(E.clientX, E.clientY);
|
|
678
678
|
}
|
|
679
|
-
function je(
|
|
680
|
-
|
|
679
|
+
function je(E) {
|
|
680
|
+
S.set(E.clientX, E.clientY);
|
|
681
681
|
}
|
|
682
|
-
function Je(
|
|
683
|
-
|
|
682
|
+
function Je(E) {
|
|
683
|
+
T.set(E.clientX, E.clientY), b.subVectors(T, w).multiplyScalar(n.rotateSpeed);
|
|
684
684
|
const Q = n.domElement;
|
|
685
|
-
Q && (B(2 * Math.PI * b.x / Q.clientHeight), q(2 * Math.PI * b.y / Q.clientHeight)), w.copy(
|
|
685
|
+
Q && (B(2 * Math.PI * b.x / Q.clientHeight), q(2 * Math.PI * b.y / Q.clientHeight)), w.copy(T), n.update();
|
|
686
686
|
}
|
|
687
|
-
function Qe(
|
|
688
|
-
z.set(
|
|
687
|
+
function Qe(E) {
|
|
688
|
+
z.set(E.clientX, E.clientY), X.subVectors(z, V), X.y > 0 ? pe(j()) : X.y < 0 && ve(j()), V.copy(z), n.update();
|
|
689
689
|
}
|
|
690
|
-
function ht(
|
|
691
|
-
|
|
690
|
+
function ht(E) {
|
|
691
|
+
L.set(E.clientX, E.clientY), Z.subVectors(L, S).multiplyScalar(n.panSpeed), re(Z.x, Z.y), S.copy(L), n.update();
|
|
692
692
|
}
|
|
693
|
-
function yt(
|
|
694
|
-
ue(
|
|
693
|
+
function yt(E) {
|
|
694
|
+
ue(E), E.deltaY < 0 ? ve(j()) : E.deltaY > 0 && pe(j()), n.update();
|
|
695
695
|
}
|
|
696
|
-
function He(
|
|
696
|
+
function He(E) {
|
|
697
697
|
let Q = !1;
|
|
698
|
-
switch (
|
|
698
|
+
switch (E.code) {
|
|
699
699
|
case n.keys.UP:
|
|
700
700
|
re(0, n.keyPanSpeed), Q = !0;
|
|
701
701
|
break;
|
|
@@ -709,78 +709,78 @@ class _w extends vw {
|
|
|
709
709
|
re(-n.keyPanSpeed, 0), Q = !0;
|
|
710
710
|
break;
|
|
711
711
|
}
|
|
712
|
-
Q && (
|
|
712
|
+
Q && (E.preventDefault(), n.update());
|
|
713
713
|
}
|
|
714
714
|
function xn() {
|
|
715
715
|
if (I.length == 1)
|
|
716
716
|
w.set(I[0].pageX, I[0].pageY);
|
|
717
717
|
else {
|
|
718
|
-
const
|
|
719
|
-
w.set(
|
|
718
|
+
const E = 0.5 * (I[0].pageX + I[1].pageX), Q = 0.5 * (I[0].pageY + I[1].pageY);
|
|
719
|
+
w.set(E, Q);
|
|
720
720
|
}
|
|
721
721
|
}
|
|
722
|
-
function
|
|
722
|
+
function Vn() {
|
|
723
723
|
if (I.length == 1)
|
|
724
|
-
|
|
724
|
+
S.set(I[0].pageX, I[0].pageY);
|
|
725
725
|
else {
|
|
726
|
-
const
|
|
727
|
-
|
|
726
|
+
const E = 0.5 * (I[0].pageX + I[1].pageX), Q = 0.5 * (I[0].pageY + I[1].pageY);
|
|
727
|
+
S.set(E, Q);
|
|
728
728
|
}
|
|
729
729
|
}
|
|
730
730
|
function Ae() {
|
|
731
|
-
const
|
|
732
|
-
|
|
731
|
+
const E = I[0].pageX - I[1].pageX, Q = I[0].pageY - I[1].pageY, ce = Math.sqrt(E * E + Q * Q);
|
|
732
|
+
V.set(0, ce);
|
|
733
733
|
}
|
|
734
734
|
function Ut() {
|
|
735
|
-
n.enableZoom && Ae(), n.enablePan &&
|
|
735
|
+
n.enableZoom && Ae(), n.enablePan && Vn();
|
|
736
736
|
}
|
|
737
737
|
function Rt() {
|
|
738
738
|
n.enableZoom && Ae(), n.enableRotate && xn();
|
|
739
739
|
}
|
|
740
|
-
function Pt(
|
|
740
|
+
function Pt(E) {
|
|
741
741
|
if (I.length == 1)
|
|
742
|
-
|
|
742
|
+
T.set(E.pageX, E.pageY);
|
|
743
743
|
else {
|
|
744
|
-
const ce = ar(
|
|
745
|
-
|
|
744
|
+
const ce = ar(E), Se = 0.5 * (E.pageX + ce.x), Ye = 0.5 * (E.pageY + ce.y);
|
|
745
|
+
T.set(Se, Ye);
|
|
746
746
|
}
|
|
747
|
-
b.subVectors(
|
|
747
|
+
b.subVectors(T, w).multiplyScalar(n.rotateSpeed);
|
|
748
748
|
const Q = n.domElement;
|
|
749
|
-
Q && (B(2 * Math.PI * b.x / Q.clientHeight), q(2 * Math.PI * b.y / Q.clientHeight)), w.copy(
|
|
749
|
+
Q && (B(2 * Math.PI * b.x / Q.clientHeight), q(2 * Math.PI * b.y / Q.clientHeight)), w.copy(T);
|
|
750
750
|
}
|
|
751
|
-
function ei(
|
|
751
|
+
function ei(E) {
|
|
752
752
|
if (I.length == 1)
|
|
753
|
-
|
|
753
|
+
L.set(E.pageX, E.pageY);
|
|
754
754
|
else {
|
|
755
|
-
const Q = ar(
|
|
756
|
-
|
|
755
|
+
const Q = ar(E), ce = 0.5 * (E.pageX + Q.x), Se = 0.5 * (E.pageY + Q.y);
|
|
756
|
+
L.set(ce, Se);
|
|
757
757
|
}
|
|
758
|
-
Z.subVectors(
|
|
758
|
+
Z.subVectors(L, S).multiplyScalar(n.panSpeed), re(Z.x, Z.y), S.copy(L);
|
|
759
759
|
}
|
|
760
|
-
function Oi(
|
|
761
|
-
const Q = ar(
|
|
762
|
-
z.set(0, Ye), X.set(0, Math.pow(z.y /
|
|
760
|
+
function Oi(E) {
|
|
761
|
+
const Q = ar(E), ce = E.pageX - Q.x, Se = E.pageY - Q.y, Ye = Math.sqrt(ce * ce + Se * Se);
|
|
762
|
+
z.set(0, Ye), X.set(0, Math.pow(z.y / V.y, n.zoomSpeed)), pe(X.y), V.copy(z);
|
|
763
763
|
}
|
|
764
|
-
function ir(
|
|
765
|
-
n.enableZoom && Oi(
|
|
764
|
+
function ir(E) {
|
|
765
|
+
n.enableZoom && Oi(E), n.enablePan && ei(E);
|
|
766
766
|
}
|
|
767
|
-
function Tt(
|
|
768
|
-
n.enableZoom && Oi(
|
|
767
|
+
function Tt(E) {
|
|
768
|
+
n.enableZoom && Oi(E), n.enableRotate && Pt(E);
|
|
769
769
|
}
|
|
770
|
-
function
|
|
770
|
+
function En(E) {
|
|
771
771
|
var Q, ce;
|
|
772
|
-
n.enabled !== !1 && (I.length === 0 && ((Q = n.domElement) == null || Q.ownerDocument.addEventListener("pointermove", An), (ce = n.domElement) == null || ce.ownerDocument.addEventListener("pointerup", sr)), ri(
|
|
772
|
+
n.enabled !== !1 && (I.length === 0 && ((Q = n.domElement) == null || Q.ownerDocument.addEventListener("pointermove", An), (ce = n.domElement) == null || ce.ownerDocument.addEventListener("pointerup", sr)), ri(E), E.pointerType === "touch" ? ti(E) : or(E));
|
|
773
773
|
}
|
|
774
|
-
function An(
|
|
775
|
-
n.enabled !== !1 && (
|
|
774
|
+
function An(E) {
|
|
775
|
+
n.enabled !== !1 && (E.pointerType === "touch" ? ni(E) : lo(E));
|
|
776
776
|
}
|
|
777
|
-
function sr(
|
|
777
|
+
function sr(E) {
|
|
778
778
|
var Q, ce, Se;
|
|
779
|
-
ii(
|
|
779
|
+
ii(E), I.length === 0 && ((Q = n.domElement) == null || Q.releasePointerCapture(E.pointerId), (ce = n.domElement) == null || ce.ownerDocument.removeEventListener("pointermove", An), (Se = n.domElement) == null || Se.ownerDocument.removeEventListener("pointerup", sr)), n.dispatchEvent(l), u = c.NONE;
|
|
780
780
|
}
|
|
781
|
-
function or(
|
|
781
|
+
function or(E) {
|
|
782
782
|
let Q;
|
|
783
|
-
switch (
|
|
783
|
+
switch (E.button) {
|
|
784
784
|
case 0:
|
|
785
785
|
Q = n.mouseButtons.LEFT;
|
|
786
786
|
break;
|
|
@@ -797,28 +797,28 @@ class _w extends vw {
|
|
|
797
797
|
case Qn.DOLLY:
|
|
798
798
|
if (n.enableZoom === !1)
|
|
799
799
|
return;
|
|
800
|
-
Ue(
|
|
800
|
+
Ue(E), u = c.DOLLY;
|
|
801
801
|
break;
|
|
802
802
|
case Qn.ROTATE:
|
|
803
|
-
if (
|
|
803
|
+
if (E.ctrlKey || E.metaKey || E.shiftKey) {
|
|
804
804
|
if (n.enablePan === !1)
|
|
805
805
|
return;
|
|
806
|
-
je(
|
|
806
|
+
je(E), u = c.PAN;
|
|
807
807
|
} else {
|
|
808
808
|
if (n.enableRotate === !1)
|
|
809
809
|
return;
|
|
810
|
-
Fe(
|
|
810
|
+
Fe(E), u = c.ROTATE;
|
|
811
811
|
}
|
|
812
812
|
break;
|
|
813
813
|
case Qn.PAN:
|
|
814
|
-
if (
|
|
814
|
+
if (E.ctrlKey || E.metaKey || E.shiftKey) {
|
|
815
815
|
if (n.enableRotate === !1)
|
|
816
816
|
return;
|
|
817
|
-
Fe(
|
|
817
|
+
Fe(E), u = c.ROTATE;
|
|
818
818
|
} else {
|
|
819
819
|
if (n.enablePan === !1)
|
|
820
820
|
return;
|
|
821
|
-
je(
|
|
821
|
+
je(E), u = c.PAN;
|
|
822
822
|
}
|
|
823
823
|
break;
|
|
824
824
|
default:
|
|
@@ -826,34 +826,34 @@ class _w extends vw {
|
|
|
826
826
|
}
|
|
827
827
|
u !== c.NONE && n.dispatchEvent(s);
|
|
828
828
|
}
|
|
829
|
-
function lo(
|
|
829
|
+
function lo(E) {
|
|
830
830
|
if (n.enabled !== !1)
|
|
831
831
|
switch (u) {
|
|
832
832
|
case c.ROTATE:
|
|
833
833
|
if (n.enableRotate === !1)
|
|
834
834
|
return;
|
|
835
|
-
Je(
|
|
835
|
+
Je(E);
|
|
836
836
|
break;
|
|
837
837
|
case c.DOLLY:
|
|
838
838
|
if (n.enableZoom === !1)
|
|
839
839
|
return;
|
|
840
|
-
Qe(
|
|
840
|
+
Qe(E);
|
|
841
841
|
break;
|
|
842
842
|
case c.PAN:
|
|
843
843
|
if (n.enablePan === !1)
|
|
844
844
|
return;
|
|
845
|
-
ht(
|
|
845
|
+
ht(E);
|
|
846
846
|
break;
|
|
847
847
|
}
|
|
848
848
|
}
|
|
849
|
-
function Xn(
|
|
850
|
-
n.enabled === !1 || n.enableZoom === !1 || u !== c.NONE && u !== c.ROTATE || (
|
|
849
|
+
function Xn(E) {
|
|
850
|
+
n.enabled === !1 || n.enableZoom === !1 || u !== c.NONE && u !== c.ROTATE || (E.preventDefault(), n.dispatchEvent(s), yt(E), n.dispatchEvent(l));
|
|
851
851
|
}
|
|
852
|
-
function ln(
|
|
853
|
-
n.enabled === !1 || n.enablePan === !1 || He(
|
|
852
|
+
function ln(E) {
|
|
853
|
+
n.enabled === !1 || n.enablePan === !1 || He(E);
|
|
854
854
|
}
|
|
855
|
-
function ti(
|
|
856
|
-
switch (Wr(
|
|
855
|
+
function ti(E) {
|
|
856
|
+
switch (Wr(E), I.length) {
|
|
857
857
|
case 1:
|
|
858
858
|
switch (n.touches.ONE) {
|
|
859
859
|
case qn.ROTATE:
|
|
@@ -864,7 +864,7 @@ class _w extends vw {
|
|
|
864
864
|
case qn.PAN:
|
|
865
865
|
if (n.enablePan === !1)
|
|
866
866
|
return;
|
|
867
|
-
|
|
867
|
+
Vn(), u = c.TOUCH_PAN;
|
|
868
868
|
break;
|
|
869
869
|
default:
|
|
870
870
|
u = c.NONE;
|
|
@@ -891,60 +891,60 @@ class _w extends vw {
|
|
|
891
891
|
}
|
|
892
892
|
u !== c.NONE && n.dispatchEvent(s);
|
|
893
893
|
}
|
|
894
|
-
function ni(
|
|
895
|
-
switch (Wr(
|
|
894
|
+
function ni(E) {
|
|
895
|
+
switch (Wr(E), u) {
|
|
896
896
|
case c.TOUCH_ROTATE:
|
|
897
897
|
if (n.enableRotate === !1)
|
|
898
898
|
return;
|
|
899
|
-
Pt(
|
|
899
|
+
Pt(E), n.update();
|
|
900
900
|
break;
|
|
901
901
|
case c.TOUCH_PAN:
|
|
902
902
|
if (n.enablePan === !1)
|
|
903
903
|
return;
|
|
904
|
-
ei(
|
|
904
|
+
ei(E), n.update();
|
|
905
905
|
break;
|
|
906
906
|
case c.TOUCH_DOLLY_PAN:
|
|
907
907
|
if (n.enableZoom === !1 && n.enablePan === !1)
|
|
908
908
|
return;
|
|
909
|
-
ir(
|
|
909
|
+
ir(E), n.update();
|
|
910
910
|
break;
|
|
911
911
|
case c.TOUCH_DOLLY_ROTATE:
|
|
912
912
|
if (n.enableZoom === !1 && n.enableRotate === !1)
|
|
913
913
|
return;
|
|
914
|
-
Tt(
|
|
914
|
+
Tt(E), n.update();
|
|
915
915
|
break;
|
|
916
916
|
default:
|
|
917
917
|
u = c.NONE;
|
|
918
918
|
}
|
|
919
919
|
}
|
|
920
|
-
function Zr(
|
|
921
|
-
n.enabled !== !1 &&
|
|
920
|
+
function Zr(E) {
|
|
921
|
+
n.enabled !== !1 && E.preventDefault();
|
|
922
922
|
}
|
|
923
|
-
function ri(
|
|
924
|
-
I.push(
|
|
923
|
+
function ri(E) {
|
|
924
|
+
I.push(E);
|
|
925
925
|
}
|
|
926
|
-
function ii(
|
|
927
|
-
delete A[
|
|
926
|
+
function ii(E) {
|
|
927
|
+
delete A[E.pointerId];
|
|
928
928
|
for (let Q = 0; Q < I.length; Q++)
|
|
929
|
-
if (I[Q].pointerId ==
|
|
929
|
+
if (I[Q].pointerId == E.pointerId) {
|
|
930
930
|
I.splice(Q, 1);
|
|
931
931
|
return;
|
|
932
932
|
}
|
|
933
933
|
}
|
|
934
|
-
function Wr(
|
|
935
|
-
let Q = A[
|
|
936
|
-
Q === void 0 && (Q = new Ie(), A[
|
|
934
|
+
function Wr(E) {
|
|
935
|
+
let Q = A[E.pointerId];
|
|
936
|
+
Q === void 0 && (Q = new Ie(), A[E.pointerId] = Q), Q.set(E.pageX, E.pageY);
|
|
937
937
|
}
|
|
938
|
-
function ar(
|
|
939
|
-
const Q =
|
|
938
|
+
function ar(E) {
|
|
939
|
+
const Q = E.pointerId === I[0].pointerId ? I[1] : I[0];
|
|
940
940
|
return A[Q.pointerId];
|
|
941
941
|
}
|
|
942
|
-
this.dollyIn = (
|
|
943
|
-
ve(
|
|
944
|
-
}, this.dollyOut = (
|
|
945
|
-
pe(
|
|
946
|
-
}, this.getScale = () => g, this.setScale = (
|
|
947
|
-
ee(
|
|
942
|
+
this.dollyIn = (E = j()) => {
|
|
943
|
+
ve(E), n.update();
|
|
944
|
+
}, this.dollyOut = (E = j()) => {
|
|
945
|
+
pe(E), n.update();
|
|
946
|
+
}, this.getScale = () => g, this.setScale = (E) => {
|
|
947
|
+
ee(E), n.update();
|
|
948
948
|
}, this.getZoomScale = () => j(), e !== void 0 && this.connect(e), this.update();
|
|
949
949
|
}
|
|
950
950
|
}
|
|
@@ -980,10 +980,10 @@ class Sw extends il {
|
|
|
980
980
|
return new Ow(e);
|
|
981
981
|
}), this.register(function(e) {
|
|
982
982
|
return new Cw(e);
|
|
983
|
-
}), this.register(function(e) {
|
|
984
|
-
return new Ew(e);
|
|
985
983
|
}), this.register(function(e) {
|
|
986
984
|
return new Vw(e);
|
|
985
|
+
}), this.register(function(e) {
|
|
986
|
+
return new Ew(e);
|
|
987
987
|
}), this.register(function(e) {
|
|
988
988
|
return new Aw(e);
|
|
989
989
|
}), this.register(function(e) {
|
|
@@ -1190,7 +1190,7 @@ class Gw {
|
|
|
1190
1190
|
d = new Da(p), d.distance = f;
|
|
1191
1191
|
break;
|
|
1192
1192
|
case "spot":
|
|
1193
|
-
d = new
|
|
1193
|
+
d = new Eh(p), d.distance = f, u.spot = u.spot || {}, u.spot.innerConeAngle = u.spot.innerConeAngle !== void 0 ? u.spot.innerConeAngle : 0, u.spot.outerConeAngle = u.spot.outerConeAngle !== void 0 ? u.spot.outerConeAngle : Math.PI / 4, d.angle = u.spot.outerConeAngle, d.penumbra = 1 - u.spot.innerConeAngle / u.spot.outerConeAngle, d.target.position.set(0, 0, -1), d.add(d.target);
|
|
1194
1194
|
break;
|
|
1195
1195
|
default:
|
|
1196
1196
|
throw new Error("THREE.GLTFLoader: Unexpected light type: " + u.type);
|
|
@@ -1317,7 +1317,7 @@ class Cw {
|
|
|
1317
1317
|
return l.sheenRoughnessFactor !== void 0 && (e.sheenRoughness = l.sheenRoughnessFactor), l.sheenColorTexture !== void 0 && s.push(n.assignTexture(e, "sheenColorMap", l.sheenColorTexture, _r)), l.sheenRoughnessTexture !== void 0 && s.push(n.assignTexture(e, "sheenRoughnessMap", l.sheenRoughnessTexture)), Promise.all(s);
|
|
1318
1318
|
}
|
|
1319
1319
|
}
|
|
1320
|
-
class
|
|
1320
|
+
class Vw {
|
|
1321
1321
|
constructor(t) {
|
|
1322
1322
|
this.parser = t, this.name = be.KHR_MATERIALS_TRANSMISSION;
|
|
1323
1323
|
}
|
|
@@ -1333,7 +1333,7 @@ class Ew {
|
|
|
1333
1333
|
return l.transmissionFactor !== void 0 && (e.transmission = l.transmissionFactor), l.transmissionTexture !== void 0 && s.push(n.assignTexture(e, "transmissionMap", l.transmissionTexture)), Promise.all(s);
|
|
1334
1334
|
}
|
|
1335
1335
|
}
|
|
1336
|
-
class
|
|
1336
|
+
class Ew {
|
|
1337
1337
|
constructor(t) {
|
|
1338
1338
|
this.parser = t, this.name = be.KHR_MATERIALS_VOLUME;
|
|
1339
1339
|
}
|
|
@@ -1556,14 +1556,14 @@ class Yw {
|
|
|
1556
1556
|
return c.length < 1 ? null : (c.push(this.parser.createNodeMesh(t)), Promise.all(c).then((d) => {
|
|
1557
1557
|
const p = d.pop(), f = p.isGroup ? p.children : [p], g = d[0].count, y = [];
|
|
1558
1558
|
for (const w of f) {
|
|
1559
|
-
const
|
|
1560
|
-
for (let
|
|
1561
|
-
u.TRANSLATION && b.fromBufferAttribute(u.TRANSLATION,
|
|
1562
|
-
for (const
|
|
1563
|
-
if (
|
|
1564
|
-
const z = u[
|
|
1559
|
+
const T = new Me(), b = new J(), S = new tn(), L = new J(1, 1, 1), Z = new sl(w.geometry, w.material, g);
|
|
1560
|
+
for (let V = 0; V < g; V++)
|
|
1561
|
+
u.TRANSLATION && b.fromBufferAttribute(u.TRANSLATION, V), u.ROTATION && S.fromBufferAttribute(u.ROTATION, V), u.SCALE && L.fromBufferAttribute(u.SCALE, V), Z.setMatrixAt(V, T.compose(b, S, L));
|
|
1562
|
+
for (const V in u)
|
|
1563
|
+
if (V === "_COLOR_0") {
|
|
1564
|
+
const z = u[V];
|
|
1565
1565
|
Z.instanceColor = new Oa(z.array, z.itemSize, z.normalized);
|
|
1566
|
-
} else
|
|
1566
|
+
} else V !== "TRANSLATION" && V !== "ROTATION" && V !== "SCALE" && w.geometry.setAttribute(V, u[V]);
|
|
1567
1567
|
rn.prototype.copy.call(Z, w), this.parser.assignFinalMaterial(Z), y.push(Z);
|
|
1568
1568
|
}
|
|
1569
1569
|
return p.isGroup ? (p.clear(), p.add(...y), p) : y[0];
|
|
@@ -1627,8 +1627,8 @@ class Hw {
|
|
|
1627
1627
|
p,
|
|
1628
1628
|
function(y) {
|
|
1629
1629
|
for (const w in y.attributes) {
|
|
1630
|
-
const
|
|
1631
|
-
b !== void 0 && (
|
|
1630
|
+
const T = y.attributes[w], b = u[w];
|
|
1631
|
+
b !== void 0 && (T.normalized = b);
|
|
1632
1632
|
}
|
|
1633
1633
|
f(y);
|
|
1634
1634
|
},
|
|
@@ -1665,10 +1665,10 @@ class td extends Mv {
|
|
|
1665
1665
|
return e;
|
|
1666
1666
|
}
|
|
1667
1667
|
interpolate_(t, e, n, r) {
|
|
1668
|
-
const s = this.resultBuffer, l = this.sampleValues, c = this.valueSize, u = c * 2, d = c * 3, p = r - e, f = (n - e) / p, g = f * f, y = g * f, w = t * d,
|
|
1669
|
-
for (let
|
|
1670
|
-
const z = l[
|
|
1671
|
-
s[
|
|
1668
|
+
const s = this.resultBuffer, l = this.sampleValues, c = this.valueSize, u = c * 2, d = c * 3, p = r - e, f = (n - e) / p, g = f * f, y = g * f, w = t * d, T = w - d, b = -2 * y + 3 * g, S = y - g, L = 1 - b, Z = S - g + f;
|
|
1669
|
+
for (let V = 0; V !== c; V++) {
|
|
1670
|
+
const z = l[T + V + c], X = l[T + V + u] * p, k = l[w + V + c], P = l[w + V] * p;
|
|
1671
|
+
s[V] = L * z + Z * X + b * k + S * P;
|
|
1672
1672
|
}
|
|
1673
1673
|
return s;
|
|
1674
1674
|
}
|
|
@@ -1750,7 +1750,7 @@ const Ot = {
|
|
|
1750
1750
|
BLEND: "BLEND"
|
|
1751
1751
|
};
|
|
1752
1752
|
function qw(a) {
|
|
1753
|
-
return a.DefaultMaterial === void 0 && (a.DefaultMaterial = new
|
|
1753
|
+
return a.DefaultMaterial === void 0 && (a.DefaultMaterial = new Ei({
|
|
1754
1754
|
color: 16777215,
|
|
1755
1755
|
emissive: 0,
|
|
1756
1756
|
metalness: 1,
|
|
@@ -2082,24 +2082,24 @@ class ix {
|
|
|
2082
2082
|
const s = [];
|
|
2083
2083
|
return r.bufferView !== void 0 ? s.push(this.getDependency("bufferView", r.bufferView)) : s.push(null), r.sparse !== void 0 && (s.push(this.getDependency("bufferView", r.sparse.indices.bufferView)), s.push(this.getDependency("bufferView", r.sparse.values.bufferView))), Promise.all(s).then(function(l) {
|
|
2084
2084
|
const c = l[0], u = Ga[r.type], d = jr[r.componentType], p = d.BYTES_PER_ELEMENT, f = p * u, g = r.byteOffset || 0, y = r.bufferView !== void 0 ? n.bufferViews[r.bufferView].byteStride : void 0, w = r.normalized === !0;
|
|
2085
|
-
let
|
|
2085
|
+
let T, b;
|
|
2086
2086
|
if (y && y !== f) {
|
|
2087
|
-
const
|
|
2088
|
-
let Z = e.cache.get(
|
|
2089
|
-
Z || (
|
|
2087
|
+
const S = Math.floor(g / y), L = "InterleavedBuffer:" + r.bufferView + ":" + r.componentType + ":" + S + ":" + r.count;
|
|
2088
|
+
let Z = e.cache.get(L);
|
|
2089
|
+
Z || (T = new d(c, S * y, r.count * y / p), Z = new vv(T, y / p), e.cache.add(L, Z)), b = new br(
|
|
2090
2090
|
Z,
|
|
2091
2091
|
u,
|
|
2092
2092
|
g % y / p,
|
|
2093
2093
|
w
|
|
2094
2094
|
);
|
|
2095
2095
|
} else
|
|
2096
|
-
c === null ?
|
|
2096
|
+
c === null ? T = new d(r.count * u) : T = new d(c, g, r.count * u), b = new Yt(T, u, w);
|
|
2097
2097
|
if (r.sparse !== void 0) {
|
|
2098
|
-
const
|
|
2098
|
+
const S = Ga.SCALAR, L = jr[r.sparse.indices.componentType], Z = r.sparse.indices.byteOffset || 0, V = r.sparse.values.byteOffset || 0, z = new L(
|
|
2099
2099
|
l[1],
|
|
2100
2100
|
Z,
|
|
2101
|
-
r.sparse.count *
|
|
2102
|
-
), X = new d(l[2],
|
|
2101
|
+
r.sparse.count * S
|
|
2102
|
+
), X = new d(l[2], V, r.sparse.count * u);
|
|
2103
2103
|
c !== null && (b = new Yt(
|
|
2104
2104
|
b.array.slice(),
|
|
2105
2105
|
b.itemSize,
|
|
@@ -2158,8 +2158,8 @@ class ix {
|
|
|
2158
2158
|
const p = Promise.resolve(u).then(function(f) {
|
|
2159
2159
|
return new Promise(function(g, y) {
|
|
2160
2160
|
let w = g;
|
|
2161
|
-
e.isImageBitmapLoader === !0 && (w = function(
|
|
2162
|
-
const b = new Qr(
|
|
2161
|
+
e.isImageBitmapLoader === !0 && (w = function(T) {
|
|
2162
|
+
const b = new Qr(T);
|
|
2163
2163
|
b.needsUpdate = !0, g(b);
|
|
2164
2164
|
}), e.load(Nr.resolveURL(f, s.path), w, void 0, y);
|
|
2165
2165
|
});
|
|
@@ -2222,7 +2222,7 @@ class ix {
|
|
|
2222
2222
|
t.material = n;
|
|
2223
2223
|
}
|
|
2224
2224
|
getMaterialType() {
|
|
2225
|
-
return
|
|
2225
|
+
return Ei;
|
|
2226
2226
|
}
|
|
2227
2227
|
/**
|
|
2228
2228
|
* Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials
|
|
@@ -2318,22 +2318,22 @@ class ix {
|
|
|
2318
2318
|
return c.push(e.loadGeometries(l)), Promise.all(c).then(function(u) {
|
|
2319
2319
|
const d = u.slice(0, u.length - 1), p = u[u.length - 1], f = [];
|
|
2320
2320
|
for (let y = 0, w = p.length; y < w; y++) {
|
|
2321
|
-
const
|
|
2322
|
-
let
|
|
2323
|
-
const
|
|
2321
|
+
const T = p[y], b = l[y];
|
|
2322
|
+
let S;
|
|
2323
|
+
const L = d[y];
|
|
2324
2324
|
if (b.mode === Ot.TRIANGLES || b.mode === Ot.TRIANGLE_STRIP || b.mode === Ot.TRIANGLE_FAN || b.mode === void 0)
|
|
2325
|
-
|
|
2325
|
+
S = s.isSkinnedMesh === !0 ? new Fh(T, L) : new ut(T, L), S.isSkinnedMesh === !0 && S.normalizeSkinWeights(), b.mode === Ot.TRIANGLE_STRIP ? S.geometry = Ju(S.geometry, Ch) : b.mode === Ot.TRIANGLE_FAN && (S.geometry = Ju(S.geometry, za));
|
|
2326
2326
|
else if (b.mode === Ot.LINES)
|
|
2327
|
-
|
|
2327
|
+
S = new Tv(T, L);
|
|
2328
2328
|
else if (b.mode === Ot.LINE_STRIP)
|
|
2329
|
-
|
|
2329
|
+
S = new kh(T, L);
|
|
2330
2330
|
else if (b.mode === Ot.LINE_LOOP)
|
|
2331
|
-
|
|
2331
|
+
S = new Lv(T, L);
|
|
2332
2332
|
else if (b.mode === Ot.POINTS)
|
|
2333
|
-
|
|
2333
|
+
S = new Ai(T, L);
|
|
2334
2334
|
else
|
|
2335
2335
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + b.mode);
|
|
2336
|
-
Object.keys(
|
|
2336
|
+
Object.keys(S.geometry.morphAttributes).length > 0 && ex(S, s), S.name = e.createUniqueName(s.name || "mesh_" + t), In(S, s), b.extensions && wr(r, S, b), e.assignFinalMaterial(S), f.push(S);
|
|
2337
2337
|
}
|
|
2338
2338
|
for (let y = 0, w = f.length; y < w; y++)
|
|
2339
2339
|
e.associations.set(f[y], {
|
|
@@ -2399,8 +2399,8 @@ class ix {
|
|
|
2399
2399
|
loadAnimation(t) {
|
|
2400
2400
|
const e = this.json, n = this, r = e.animations[t], s = r.name ? r.name : "animation_" + t, l = [], c = [], u = [], d = [], p = [];
|
|
2401
2401
|
for (let f = 0, g = r.channels.length; f < g; f++) {
|
|
2402
|
-
const y = r.channels[f], w = r.samplers[y.sampler],
|
|
2403
|
-
|
|
2402
|
+
const y = r.channels[f], w = r.samplers[y.sampler], T = y.target, b = T.node, S = r.parameters !== void 0 ? r.parameters[w.input] : w.input, L = r.parameters !== void 0 ? r.parameters[w.output] : w.output;
|
|
2403
|
+
T.node !== void 0 && (l.push(this.getDependency("node", b)), c.push(this.getDependency("accessor", S)), u.push(this.getDependency("accessor", L)), d.push(w), p.push(T));
|
|
2404
2404
|
}
|
|
2405
2405
|
return Promise.all([
|
|
2406
2406
|
Promise.all(l),
|
|
@@ -2409,18 +2409,18 @@ class ix {
|
|
|
2409
2409
|
Promise.all(d),
|
|
2410
2410
|
Promise.all(p)
|
|
2411
2411
|
]).then(function(f) {
|
|
2412
|
-
const g = f[0], y = f[1], w = f[2],
|
|
2413
|
-
for (let
|
|
2414
|
-
const
|
|
2415
|
-
if (
|
|
2412
|
+
const g = f[0], y = f[1], w = f[2], T = f[3], b = f[4], S = [];
|
|
2413
|
+
for (let L = 0, Z = g.length; L < Z; L++) {
|
|
2414
|
+
const V = g[L], z = y[L], X = w[L], k = T[L], P = b[L];
|
|
2415
|
+
if (V === void 0)
|
|
2416
2416
|
continue;
|
|
2417
|
-
|
|
2418
|
-
const D = n._createAnimationTracks(
|
|
2417
|
+
V.updateMatrix && V.updateMatrix();
|
|
2418
|
+
const D = n._createAnimationTracks(V, z, X, k, P);
|
|
2419
2419
|
if (D)
|
|
2420
2420
|
for (let I = 0; I < D.length; I++)
|
|
2421
|
-
|
|
2421
|
+
S.push(D[I]);
|
|
2422
2422
|
}
|
|
2423
|
-
return new Dh(s, void 0,
|
|
2423
|
+
return new Dh(s, void 0, S);
|
|
2424
2424
|
});
|
|
2425
2425
|
}
|
|
2426
2426
|
createNodeMesh(t) {
|
|
@@ -2593,8 +2593,8 @@ function sx(a, t, e) {
|
|
|
2593
2593
|
const g = e.json.accessors[f.POSITION], y = g.min, w = g.max;
|
|
2594
2594
|
if (y !== void 0 && w !== void 0) {
|
|
2595
2595
|
if (u.setX(Math.max(Math.abs(y[0]), Math.abs(w[0]))), u.setY(Math.max(Math.abs(y[1]), Math.abs(w[1]))), u.setZ(Math.max(Math.abs(y[2]), Math.abs(w[2]))), g.normalized) {
|
|
2596
|
-
const
|
|
2597
|
-
u.multiplyScalar(
|
|
2596
|
+
const T = qa(jr[g.componentType]);
|
|
2597
|
+
u.multiplyScalar(T);
|
|
2598
2598
|
}
|
|
2599
2599
|
c.max(u);
|
|
2600
2600
|
} else
|
|
@@ -2677,10 +2677,10 @@ function lx(a, t, e, n, r) {
|
|
|
2677
2677
|
u[f] = t - r[a + 1 - f], d[f] = r[a + f] - t;
|
|
2678
2678
|
let g = 0;
|
|
2679
2679
|
for (let y = 0; y < f; ++y) {
|
|
2680
|
-
const w = d[y + 1],
|
|
2681
|
-
c[f][y] = w +
|
|
2680
|
+
const w = d[y + 1], T = u[f - y];
|
|
2681
|
+
c[f][y] = w + T;
|
|
2682
2682
|
const b = c[y][f - 1] / c[f][y];
|
|
2683
|
-
c[y][f] = g + w * b, g =
|
|
2683
|
+
c[y][f] = g + w * b, g = T * b;
|
|
2684
2684
|
}
|
|
2685
2685
|
c[f][f] = g;
|
|
2686
2686
|
}
|
|
@@ -2689,17 +2689,17 @@ function lx(a, t, e, n, r) {
|
|
|
2689
2689
|
for (let f = 0; f <= e; ++f) {
|
|
2690
2690
|
let g = 0, y = 1;
|
|
2691
2691
|
const w = [];
|
|
2692
|
-
for (let
|
|
2693
|
-
w[
|
|
2692
|
+
for (let T = 0; T <= e; ++T)
|
|
2693
|
+
w[T] = s.slice(0);
|
|
2694
2694
|
w[0][0] = 1;
|
|
2695
|
-
for (let
|
|
2695
|
+
for (let T = 1; T <= n; ++T) {
|
|
2696
2696
|
let b = 0;
|
|
2697
|
-
const
|
|
2698
|
-
f >=
|
|
2699
|
-
const Z =
|
|
2700
|
-
for (let X = Z; X <=
|
|
2701
|
-
w[y][X] = (w[g][X] - w[g][X - 1]) / c[
|
|
2702
|
-
f <=
|
|
2697
|
+
const S = f - T, L = e - T;
|
|
2698
|
+
f >= T && (w[y][0] = w[g][0] / c[L + 1][S], b = w[y][0] * c[S][L]);
|
|
2699
|
+
const Z = S >= -1 ? 1 : -S, V = f - 1 <= L ? T - 1 : e - f;
|
|
2700
|
+
for (let X = Z; X <= V; ++X)
|
|
2701
|
+
w[y][X] = (w[g][X] - w[g][X - 1]) / c[L + 1][S + X], b += w[y][X] * c[S + X][L];
|
|
2702
|
+
f <= L && (w[y][T] = -w[g][T - 1] / c[L + 1][f], b += w[y][T] * c[f][L]), l[T][f] = b;
|
|
2703
2703
|
const z = g;
|
|
2704
2704
|
g = y, y = z;
|
|
2705
2705
|
}
|
|
@@ -3229,7 +3229,7 @@ class px {
|
|
|
3229
3229
|
let d = Math.PI / 3;
|
|
3230
3230
|
n.InnerAngle !== void 0 && (d = ct.degToRad(n.InnerAngle.value));
|
|
3231
3231
|
let p = 0;
|
|
3232
|
-
n.OuterAngle !== void 0 && (p = ct.degToRad(n.OuterAngle.value), p = Math.max(p, 1)), e = new
|
|
3232
|
+
n.OuterAngle !== void 0 && (p = ct.degToRad(n.OuterAngle.value), p = Math.max(p, 1)), e = new Eh(s, l, c, d, p, u);
|
|
3233
3233
|
break;
|
|
3234
3234
|
default:
|
|
3235
3235
|
console.warn(
|
|
@@ -3406,49 +3406,49 @@ class mx {
|
|
|
3406
3406
|
let n = 0, r = 0, s = !1, l = [], c = [], u = [], d = [], p = [], f = [];
|
|
3407
3407
|
const g = this;
|
|
3408
3408
|
return t.vertexIndices.forEach(function(y, w) {
|
|
3409
|
-
let
|
|
3409
|
+
let T, b = !1;
|
|
3410
3410
|
y < 0 && (y = y ^ -1, b = !0);
|
|
3411
|
-
let
|
|
3411
|
+
let S = [], L = [];
|
|
3412
3412
|
if (l.push(y * 3, y * 3 + 1, y * 3 + 2), t.color) {
|
|
3413
|
-
const Z =
|
|
3413
|
+
const Z = Es(w, n, y, t.color);
|
|
3414
3414
|
u.push(Z[0], Z[1], Z[2]);
|
|
3415
3415
|
}
|
|
3416
3416
|
if (t.skeleton) {
|
|
3417
3417
|
if (t.weightTable[y] !== void 0 && t.weightTable[y].forEach(function(Z) {
|
|
3418
|
-
|
|
3419
|
-
}),
|
|
3418
|
+
L.push(Z.weight), S.push(Z.id);
|
|
3419
|
+
}), L.length > 4) {
|
|
3420
3420
|
s || (console.warn(
|
|
3421
3421
|
"THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."
|
|
3422
3422
|
), s = !0);
|
|
3423
|
-
const Z = [0, 0, 0, 0],
|
|
3424
|
-
|
|
3425
|
-
let k = z, P =
|
|
3426
|
-
|
|
3423
|
+
const Z = [0, 0, 0, 0], V = [0, 0, 0, 0];
|
|
3424
|
+
L.forEach(function(z, X) {
|
|
3425
|
+
let k = z, P = S[X];
|
|
3426
|
+
V.forEach(function(D, I, A) {
|
|
3427
3427
|
if (k > D) {
|
|
3428
3428
|
A[I] = k, k = D;
|
|
3429
3429
|
const U = Z[I];
|
|
3430
3430
|
Z[I] = P, P = U;
|
|
3431
3431
|
}
|
|
3432
3432
|
});
|
|
3433
|
-
}),
|
|
3433
|
+
}), S = Z, L = V;
|
|
3434
3434
|
}
|
|
3435
|
-
for (;
|
|
3436
|
-
|
|
3435
|
+
for (; L.length < 4; )
|
|
3436
|
+
L.push(0), S.push(0);
|
|
3437
3437
|
for (let Z = 0; Z < 4; ++Z)
|
|
3438
|
-
p.push(
|
|
3438
|
+
p.push(L[Z]), f.push(S[Z]);
|
|
3439
3439
|
}
|
|
3440
3440
|
if (t.normal) {
|
|
3441
|
-
const Z =
|
|
3441
|
+
const Z = Es(w, n, y, t.normal);
|
|
3442
3442
|
c.push(Z[0], Z[1], Z[2]);
|
|
3443
3443
|
}
|
|
3444
|
-
t.material && t.material.mappingType !== "AllSame" && (
|
|
3445
|
-
const z =
|
|
3446
|
-
d[
|
|
3444
|
+
t.material && t.material.mappingType !== "AllSame" && (T = Es(w, n, y, t.material)[0]), t.uv && t.uv.forEach(function(Z, V) {
|
|
3445
|
+
const z = Es(w, n, y, Z);
|
|
3446
|
+
d[V] === void 0 && (d[V] = []), d[V].push(z[0]), d[V].push(z[1]);
|
|
3447
3447
|
}), r++, b && (g.genFace(
|
|
3448
3448
|
e,
|
|
3449
3449
|
t,
|
|
3450
3450
|
l,
|
|
3451
|
-
|
|
3451
|
+
T,
|
|
3452
3452
|
c,
|
|
3453
3453
|
u,
|
|
3454
3454
|
d,
|
|
@@ -3484,8 +3484,8 @@ class mx {
|
|
|
3484
3484
|
genMorphGeometry(t, e, n, r, s) {
|
|
3485
3485
|
const l = e.PolygonVertexIndex !== void 0 ? e.PolygonVertexIndex.a : [], c = n.Vertices !== void 0 ? n.Vertices.a : [], u = n.Indexes !== void 0 ? n.Indexes.a : [], d = t.attributes.position.count * 3, p = new Float32Array(d);
|
|
3486
3486
|
for (let w = 0; w < u.length; w++) {
|
|
3487
|
-
const
|
|
3488
|
-
p[
|
|
3487
|
+
const T = u[w] * 3;
|
|
3488
|
+
p[T] = c[w * 3], p[T + 1] = c[w * 3 + 1], p[T + 2] = c[w * 3 + 2];
|
|
3489
3489
|
}
|
|
3490
3490
|
const f = {
|
|
3491
3491
|
vertexIndices: l,
|
|
@@ -3665,10 +3665,10 @@ class gx {
|
|
|
3665
3665
|
s[d] && (s[d][p.attr] = p);
|
|
3666
3666
|
} else if (p.curves.morph !== void 0) {
|
|
3667
3667
|
if (s[d] === void 0) {
|
|
3668
|
-
const f = Oe.get(u.ID).parents.filter(function(
|
|
3669
|
-
return
|
|
3670
|
-
})[0].ID, g = Oe.get(f).parents[0].ID, y = Oe.get(g).parents[0].ID, w = Oe.get(y).parents[0].ID,
|
|
3671
|
-
modelName:
|
|
3668
|
+
const f = Oe.get(u.ID).parents.filter(function(S) {
|
|
3669
|
+
return S.relationship !== void 0;
|
|
3670
|
+
})[0].ID, g = Oe.get(f).parents[0].ID, y = Oe.get(g).parents[0].ID, w = Oe.get(y).parents[0].ID, T = xe.Objects.Model[w], b = {
|
|
3671
|
+
modelName: T.attrName ? Ci.sanitizeNodeName(T.attrName) : "",
|
|
3672
3672
|
morphName: xe.Objects.Deformer[f].attrName
|
|
3673
3673
|
};
|
|
3674
3674
|
s[d] = b;
|
|
@@ -4183,7 +4183,7 @@ function bx(a) {
|
|
|
4183
4183
|
return a / 46186158e3;
|
|
4184
4184
|
}
|
|
4185
4185
|
const _x = [];
|
|
4186
|
-
function
|
|
4186
|
+
function Es(a, t, e, n) {
|
|
4187
4187
|
let r;
|
|
4188
4188
|
switch (n.mappingType) {
|
|
4189
4189
|
case "ByPolygonVertex":
|
|
@@ -4221,23 +4221,23 @@ function id(a) {
|
|
|
4221
4221
|
I.push(a.eulerOrder), r.makeRotationFromEuler(Ia.fromArray(I)), r.invert();
|
|
4222
4222
|
}
|
|
4223
4223
|
a.scale && s.scale(Ur.fromArray(a.scale)), a.scalingOffset && c.setPosition(Ur.fromArray(a.scalingOffset)), a.scalingPivot && l.setPosition(Ur.fromArray(a.scalingPivot)), a.rotationOffset && u.setPosition(Ur.fromArray(a.rotationOffset)), a.rotationPivot && d.setPosition(Ur.fromArray(a.rotationPivot)), a.parentMatrixWorld && (f.copy(a.parentMatrix), p.copy(a.parentMatrixWorld));
|
|
4224
|
-
const w = e.clone().multiply(n).multiply(r),
|
|
4225
|
-
|
|
4224
|
+
const w = e.clone().multiply(n).multiply(r), T = new Me();
|
|
4225
|
+
T.extractRotation(p);
|
|
4226
4226
|
const b = new Me();
|
|
4227
4227
|
b.copyPosition(p);
|
|
4228
|
-
const
|
|
4228
|
+
const S = b.clone().invert().multiply(p), L = T.clone().invert().multiply(S), Z = s, V = new Me();
|
|
4229
4229
|
if (y === 0)
|
|
4230
|
-
|
|
4230
|
+
V.copy(T).multiply(w).multiply(L).multiply(Z);
|
|
4231
4231
|
else if (y === 1)
|
|
4232
|
-
|
|
4232
|
+
V.copy(T).multiply(L).multiply(w).multiply(Z);
|
|
4233
4233
|
else {
|
|
4234
|
-
const A = new Me().scale(new J().setFromMatrixScale(f)).clone().invert(), U =
|
|
4235
|
-
|
|
4234
|
+
const A = new Me().scale(new J().setFromMatrixScale(f)).clone().invert(), U = L.clone().multiply(A);
|
|
4235
|
+
V.copy(T).multiply(w).multiply(U).multiply(Z);
|
|
4236
4236
|
}
|
|
4237
4237
|
const z = d.clone().invert(), X = l.clone().invert();
|
|
4238
4238
|
let k = t.clone().multiply(u).multiply(d).multiply(e).multiply(n).multiply(r).multiply(z).multiply(c).multiply(l).multiply(s).multiply(X);
|
|
4239
4239
|
const P = new Me().copyPosition(k), D = p.clone().multiply(P);
|
|
4240
|
-
return g.copyPosition(D), k = g.clone().multiply(
|
|
4240
|
+
return g.copyPosition(D), k = g.clone().multiply(V), k.premultiply(p.invert()), k;
|
|
4241
4241
|
}
|
|
4242
4242
|
function sd(a) {
|
|
4243
4243
|
a = a || 0;
|
|
@@ -4366,38 +4366,38 @@ class Sx extends Rv {
|
|
|
4366
4366
|
}, w = function(P, D, I, A) {
|
|
4367
4367
|
const U = P[D + 3], j = Math.pow(2, U - 128) / 255;
|
|
4368
4368
|
I[A + 0] = P[D + 0] * j, I[A + 1] = P[D + 1] * j, I[A + 2] = P[D + 2] * j, I[A + 3] = 1;
|
|
4369
|
-
},
|
|
4369
|
+
}, T = function(P, D, I, A) {
|
|
4370
4370
|
const U = P[D + 3], j = Math.pow(2, U - 128) / 255;
|
|
4371
4371
|
I[A + 0] = Cs.toHalfFloat(Math.min(P[D + 0] * j, 65504)), I[A + 1] = Cs.toHalfFloat(Math.min(P[D + 1] * j, 65504)), I[A + 2] = Cs.toHalfFloat(Math.min(P[D + 2] * j, 65504)), I[A + 3] = Cs.toHalfFloat(1);
|
|
4372
4372
|
}, b = new Uint8Array(t);
|
|
4373
4373
|
b.pos = 0;
|
|
4374
|
-
const
|
|
4374
|
+
const S = g(b), L = S.width, Z = S.height, V = y(b.subarray(b.pos), L, Z);
|
|
4375
4375
|
let z, X, k;
|
|
4376
4376
|
switch (this.type) {
|
|
4377
4377
|
case Us:
|
|
4378
|
-
k =
|
|
4378
|
+
k = V.length / 4;
|
|
4379
4379
|
const P = new Float32Array(k * 4);
|
|
4380
4380
|
for (let I = 0; I < k; I++)
|
|
4381
|
-
w(
|
|
4381
|
+
w(V, I * 4, P, I * 4);
|
|
4382
4382
|
z = P, X = Us;
|
|
4383
4383
|
break;
|
|
4384
4384
|
case Ps:
|
|
4385
|
-
k =
|
|
4385
|
+
k = V.length / 4;
|
|
4386
4386
|
const D = new Uint16Array(k * 4);
|
|
4387
4387
|
for (let I = 0; I < k; I++)
|
|
4388
|
-
|
|
4388
|
+
T(V, I * 4, D, I * 4);
|
|
4389
4389
|
z = D, X = Ps;
|
|
4390
4390
|
break;
|
|
4391
4391
|
default:
|
|
4392
4392
|
throw new Error("THREE.RGBELoader: Unsupported type: " + this.type);
|
|
4393
4393
|
}
|
|
4394
4394
|
return {
|
|
4395
|
-
width:
|
|
4395
|
+
width: L,
|
|
4396
4396
|
height: Z,
|
|
4397
4397
|
data: z,
|
|
4398
|
-
header:
|
|
4399
|
-
gamma:
|
|
4400
|
-
exposure:
|
|
4398
|
+
header: S.string,
|
|
4399
|
+
gamma: S.gamma,
|
|
4400
|
+
exposure: S.exposure,
|
|
4401
4401
|
type: X
|
|
4402
4402
|
};
|
|
4403
4403
|
}
|
|
@@ -4586,8 +4586,8 @@ function Gx() {
|
|
|
4586
4586
|
const f = p.draco, g = new f.Decoder(), y = new f.DecoderBuffer();
|
|
4587
4587
|
y.Init(new Int8Array(u), u.byteLength);
|
|
4588
4588
|
try {
|
|
4589
|
-
const w = e(f, g, y, d),
|
|
4590
|
-
w.index &&
|
|
4589
|
+
const w = e(f, g, y, d), T = w.attributes.map((b) => b.array.buffer);
|
|
4590
|
+
w.index && T.push(w.index.array.buffer), self.postMessage({ type: "decode", id: c.id, geometry: w }, T);
|
|
4591
4591
|
} catch (w) {
|
|
4592
4592
|
console.error(w), self.postMessage({ type: "error", id: c.id, error: w.message });
|
|
4593
4593
|
} finally {
|
|
@@ -4609,20 +4609,20 @@ function Gx() {
|
|
|
4609
4609
|
throw new Error("THREE.DRACOLoader: Unexpected geometry type.");
|
|
4610
4610
|
if (!y.ok() || g.ptr === 0)
|
|
4611
4611
|
throw new Error("THREE.DRACOLoader: Decoding failed: " + y.error_msg());
|
|
4612
|
-
const
|
|
4612
|
+
const T = { index: null, attributes: [] };
|
|
4613
4613
|
for (const b in p) {
|
|
4614
|
-
const
|
|
4615
|
-
let
|
|
4614
|
+
const S = self[f[b]];
|
|
4615
|
+
let L, Z;
|
|
4616
4616
|
if (d.useUniqueIDs)
|
|
4617
|
-
Z = p[b],
|
|
4617
|
+
Z = p[b], L = c.GetAttributeByUniqueId(g, Z);
|
|
4618
4618
|
else {
|
|
4619
4619
|
if (Z = c.GetAttributeId(g, l[p[b]]), Z === -1)
|
|
4620
4620
|
continue;
|
|
4621
|
-
|
|
4621
|
+
L = c.GetAttribute(g, Z);
|
|
4622
4622
|
}
|
|
4623
|
-
|
|
4623
|
+
T.attributes.push(r(l, c, g, b, S, L));
|
|
4624
4624
|
}
|
|
4625
|
-
return w === l.TRIANGULAR_MESH && (
|
|
4625
|
+
return w === l.TRIANGULAR_MESH && (T.index = n(l, c, g)), l.destroy(g), T;
|
|
4626
4626
|
}
|
|
4627
4627
|
function n(l, c, u) {
|
|
4628
4628
|
const p = u.num_faces() * 3, f = p * 4, g = l._malloc(f);
|
|
@@ -4631,12 +4631,12 @@ function Gx() {
|
|
|
4631
4631
|
return l._free(g), { array: y, itemSize: 1 };
|
|
4632
4632
|
}
|
|
4633
4633
|
function r(l, c, u, d, p, f) {
|
|
4634
|
-
const g = f.num_components(), w = u.num_points() * g,
|
|
4635
|
-
c.GetAttributeDataArrayForAllPoints(u, f, b,
|
|
4636
|
-
const
|
|
4637
|
-
return l._free(
|
|
4634
|
+
const g = f.num_components(), w = u.num_points() * g, T = w * p.BYTES_PER_ELEMENT, b = s(l, p), S = l._malloc(T);
|
|
4635
|
+
c.GetAttributeDataArrayForAllPoints(u, f, b, T, S);
|
|
4636
|
+
const L = new p(l.HEAPF32.buffer, S, w).slice();
|
|
4637
|
+
return l._free(S), {
|
|
4638
4638
|
name: d,
|
|
4639
|
-
array:
|
|
4639
|
+
array: L,
|
|
4640
4640
|
itemSize: g
|
|
4641
4641
|
};
|
|
4642
4642
|
}
|
|
@@ -5289,7 +5289,7 @@ class zi extends rl {
|
|
|
5289
5289
|
}), this.setValues(t);
|
|
5290
5290
|
}
|
|
5291
5291
|
}
|
|
5292
|
-
const Ca = /* @__PURE__ */ new an(), ch = /* @__PURE__ */ new J(), uh = /* @__PURE__ */ new J(), tt = /* @__PURE__ */ new an(), nt = /* @__PURE__ */ new an(), dn = /* @__PURE__ */ new an(),
|
|
5292
|
+
const Ca = /* @__PURE__ */ new an(), ch = /* @__PURE__ */ new J(), uh = /* @__PURE__ */ new J(), tt = /* @__PURE__ */ new an(), nt = /* @__PURE__ */ new an(), dn = /* @__PURE__ */ new an(), Va = /* @__PURE__ */ new J(), Ea = /* @__PURE__ */ new Me(), it = /* @__PURE__ */ new Cv(), hh = /* @__PURE__ */ new J(), Xs = /* @__PURE__ */ new Mr(), Fs = /* @__PURE__ */ new ll(), fn = /* @__PURE__ */ new an();
|
|
5293
5293
|
let pn, Lr;
|
|
5294
5294
|
function dh(a, t, e) {
|
|
5295
5295
|
return fn.set(0, 0, -t, 1).applyMatrix4(a.projectionMatrix), fn.multiplyScalar(1 / fn.w), fn.x = Lr / e.width, fn.y = Lr / e.height, fn.applyMatrix4(a.projectionMatrixInverse), fn.multiplyScalar(1 / fn.w), Math.abs(Math.max(fn.x, fn.y));
|
|
@@ -5313,28 +5313,28 @@ function Zx(a, t) {
|
|
|
5313
5313
|
}
|
|
5314
5314
|
function Wx(a, t, e) {
|
|
5315
5315
|
const n = t.projectionMatrix, s = a.material.resolution, l = a.matrixWorld, c = a.geometry, u = c.attributes.instanceStart, d = c.attributes.instanceEnd, p = Math.min(c.instanceCount, u.count), f = -t.near;
|
|
5316
|
-
pn.at(1, dn), dn.w = 1, dn.applyMatrix4(t.matrixWorldInverse), dn.applyMatrix4(n), dn.multiplyScalar(1 / dn.w), dn.x *= s.x / 2, dn.y *= s.y / 2, dn.z = 0,
|
|
5316
|
+
pn.at(1, dn), dn.w = 1, dn.applyMatrix4(t.matrixWorldInverse), dn.applyMatrix4(n), dn.multiplyScalar(1 / dn.w), dn.x *= s.x / 2, dn.y *= s.y / 2, dn.z = 0, Va.copy(dn), Ea.multiplyMatrices(t.matrixWorldInverse, l);
|
|
5317
5317
|
for (let g = 0, y = p; g < y; g++) {
|
|
5318
|
-
if (tt.fromBufferAttribute(u, g), nt.fromBufferAttribute(d, g), tt.w = 1, nt.w = 1, tt.applyMatrix4(
|
|
5318
|
+
if (tt.fromBufferAttribute(u, g), nt.fromBufferAttribute(d, g), tt.w = 1, nt.w = 1, tt.applyMatrix4(Ea), nt.applyMatrix4(Ea), tt.z > f && nt.z > f)
|
|
5319
5319
|
continue;
|
|
5320
5320
|
if (tt.z > f) {
|
|
5321
|
-
const Z = tt.z - nt.z,
|
|
5322
|
-
tt.lerp(nt,
|
|
5321
|
+
const Z = tt.z - nt.z, V = (tt.z - f) / Z;
|
|
5322
|
+
tt.lerp(nt, V);
|
|
5323
5323
|
} else if (nt.z > f) {
|
|
5324
|
-
const Z = nt.z - tt.z,
|
|
5325
|
-
nt.lerp(tt,
|
|
5324
|
+
const Z = nt.z - tt.z, V = (nt.z - f) / Z;
|
|
5325
|
+
nt.lerp(tt, V);
|
|
5326
5326
|
}
|
|
5327
5327
|
tt.applyMatrix4(n), nt.applyMatrix4(n), tt.multiplyScalar(1 / tt.w), nt.multiplyScalar(1 / nt.w), tt.x *= s.x / 2, tt.y *= s.y / 2, nt.x *= s.x / 2, nt.y *= s.y / 2, it.start.copy(tt), it.start.z = 0, it.end.copy(nt), it.end.z = 0;
|
|
5328
|
-
const
|
|
5329
|
-
it.at(
|
|
5330
|
-
const b = ct.lerp(tt.z, nt.z,
|
|
5331
|
-
if (
|
|
5328
|
+
const T = it.closestPointToPointParameter(Va, !0);
|
|
5329
|
+
it.at(T, hh);
|
|
5330
|
+
const b = ct.lerp(tt.z, nt.z, T), S = b >= -1 && b <= 1, L = Va.distanceTo(hh) < Lr * 0.5;
|
|
5331
|
+
if (S && L) {
|
|
5332
5332
|
it.start.fromBufferAttribute(u, g), it.end.fromBufferAttribute(d, g), it.start.applyMatrix4(l), it.end.applyMatrix4(l);
|
|
5333
|
-
const Z = new J(),
|
|
5334
|
-
pn.distanceSqToSegment(it.start, it.end,
|
|
5335
|
-
point:
|
|
5333
|
+
const Z = new J(), V = new J();
|
|
5334
|
+
pn.distanceSqToSegment(it.start, it.end, V, Z), e.push({
|
|
5335
|
+
point: V,
|
|
5336
5336
|
pointOnLine: Z,
|
|
5337
|
-
distance: pn.origin.distanceTo(
|
|
5337
|
+
distance: pn.origin.distanceTo(V),
|
|
5338
5338
|
object: a,
|
|
5339
5339
|
face: null,
|
|
5340
5340
|
faceIndex: g,
|
|
@@ -5640,27 +5640,27 @@ var Jr = Object.freeze({
|
|
|
5640
5640
|
if (f.length === 0)
|
|
5641
5641
|
continue;
|
|
5642
5642
|
for (var g = [c], y = 0, w = f.length; y < w; y += 1) {
|
|
5643
|
-
var
|
|
5644
|
-
if (isNaN(
|
|
5643
|
+
var T = this._handleRelativeValue(c, f[y]);
|
|
5644
|
+
if (isNaN(T)) {
|
|
5645
5645
|
p = !1, console.warn("Found invalid interpolation list. Skipping.");
|
|
5646
5646
|
break;
|
|
5647
5647
|
}
|
|
5648
|
-
g.push(
|
|
5648
|
+
g.push(T);
|
|
5649
5649
|
}
|
|
5650
5650
|
p && (n[l] = g);
|
|
5651
5651
|
}
|
|
5652
5652
|
if ((d === "object" || u) && c && !p) {
|
|
5653
5653
|
e[l] = u ? [] : {};
|
|
5654
5654
|
var b = c;
|
|
5655
|
-
for (var
|
|
5656
|
-
e[l][
|
|
5655
|
+
for (var S in b)
|
|
5656
|
+
e[l][S] = b[S];
|
|
5657
5657
|
r[l] = u ? [] : {};
|
|
5658
5658
|
var f = n[l];
|
|
5659
5659
|
if (!this._isDynamic) {
|
|
5660
|
-
var
|
|
5661
|
-
for (var
|
|
5662
|
-
|
|
5663
|
-
n[l] = f =
|
|
5660
|
+
var L = {};
|
|
5661
|
+
for (var S in f)
|
|
5662
|
+
L[S] = f[S];
|
|
5663
|
+
n[l] = f = L;
|
|
5664
5664
|
}
|
|
5665
5665
|
this._setupProperties(b, e[l], f, r[l], s);
|
|
5666
5666
|
} else
|
|
@@ -5725,8 +5725,8 @@ var Jr = Object.freeze({
|
|
|
5725
5725
|
var c = t - this._startTime, u = this._duration + ((r = this._repeatDelayTime) !== null && r !== void 0 ? r : this._delayTime), d = this._duration + this._repeat * u, p = function() {
|
|
5726
5726
|
if (n._duration === 0 || c > d)
|
|
5727
5727
|
return 1;
|
|
5728
|
-
var b = Math.trunc(c / u),
|
|
5729
|
-
return
|
|
5728
|
+
var b = Math.trunc(c / u), S = c - b * u, L = Math.min(S / n._duration, 1);
|
|
5729
|
+
return L === 0 && c === n._duration ? 1 : L;
|
|
5730
5730
|
}, f = p(), g = this._easingFunction(f);
|
|
5731
5731
|
if (this._updateProperties(this._object, this._valuesStart, this._valuesEnd, g), this._onUpdateCallback && this._onUpdateCallback(this._object, f), this._duration === 0 || c >= this._duration)
|
|
5732
5732
|
if (this._repeat > 0) {
|
|
@@ -5739,7 +5739,7 @@ var Jr = Object.freeze({
|
|
|
5739
5739
|
return this._yoyo && (this._reversed = !this._reversed), this._startTime += u * y, this._onRepeatCallback && this._onRepeatCallback(this._object), this._onEveryStartCallbackFired = !1, !0;
|
|
5740
5740
|
} else {
|
|
5741
5741
|
this._onCompleteCallback && this._onCompleteCallback(this._object);
|
|
5742
|
-
for (var w = 0,
|
|
5742
|
+
for (var w = 0, T = this._chainedTweens.length; w < T; w++)
|
|
5743
5743
|
this._chainedTweens[w].start(this._startTime + this._duration, !1);
|
|
5744
5744
|
return this._isPlaying = !1, !1;
|
|
5745
5745
|
}
|
|
@@ -5788,7 +5788,7 @@ function Cx(a, t, e, n = 0, r = 1) {
|
|
|
5788
5788
|
const s = (a - t) * (r - n) / (e - t) + n, l = Math.min(n, r), c = Math.max(n, r);
|
|
5789
5789
|
return s < l ? l : s > c ? c : s || 0;
|
|
5790
5790
|
}
|
|
5791
|
-
class
|
|
5791
|
+
class Vx extends Hh {
|
|
5792
5792
|
/**
|
|
5793
5793
|
* 构造函数
|
|
5794
5794
|
* @param container 容器元素或选择器字符串
|
|
@@ -5925,9 +5925,9 @@ class Ex extends Hh {
|
|
|
5925
5925
|
* @returns 场景对象
|
|
5926
5926
|
*/
|
|
5927
5927
|
_createScene(e) {
|
|
5928
|
-
const n = new
|
|
5928
|
+
const n = new Vv(), r = e?.defaultColor || "rgb(21,48,94)";
|
|
5929
5929
|
if (n.background = new Le(r), n.fog = new Bu(r, 2e-4), e?.files) {
|
|
5930
|
-
const s = new
|
|
5930
|
+
const s = new Ev();
|
|
5931
5931
|
e.path && s.setPath(e.path), s.load(
|
|
5932
5932
|
e.files,
|
|
5933
5933
|
(l) => {
|
|
@@ -6056,13 +6056,13 @@ class Ex extends Hh {
|
|
|
6056
6056
|
0.5
|
|
6057
6057
|
);
|
|
6058
6058
|
f.name = "AuxDirLight_LeftRim", this.scene.add(f), this.scene.add(f.target);
|
|
6059
|
-
const
|
|
6059
|
+
const T = this._createAuxLightInstance(
|
|
6060
6060
|
this.centerPostion.x + 55e3 * 1,
|
|
6061
6061
|
55e3 * 1.5,
|
|
6062
6062
|
this.centerPostion.z + 55e3 * -1.2,
|
|
6063
6063
|
0.5
|
|
6064
6064
|
);
|
|
6065
|
-
return
|
|
6065
|
+
return T.name = "AuxDirLight_RightRim", this.scene.add(T), this.scene.add(T.target), c;
|
|
6066
6066
|
}
|
|
6067
6067
|
/**
|
|
6068
6068
|
* 创建单个辅助平行光实例。
|
|
@@ -6161,7 +6161,7 @@ class Ex extends Hh {
|
|
|
6161
6161
|
return [e, n];
|
|
6162
6162
|
}
|
|
6163
6163
|
_createGorund() {
|
|
6164
|
-
const e = this.centerPostion, n = new
|
|
6164
|
+
const e = this.centerPostion, n = new Ei({
|
|
6165
6165
|
transparent: !1,
|
|
6166
6166
|
color: new Le("rgb(45,52,60)").multiplyScalar(0.7),
|
|
6167
6167
|
metalness: 0.2,
|
|
@@ -6171,7 +6171,7 @@ class Ex extends Hh {
|
|
|
6171
6171
|
}
|
|
6172
6172
|
}
|
|
6173
6173
|
var Zi = /* @__PURE__ */ ((a) => (a[a.none = 0] = "none", a[a.create = 1] = "create", a[a.remove = 2] = "remove", a))(Zi || {});
|
|
6174
|
-
function
|
|
6174
|
+
function Ex(a, t) {
|
|
6175
6175
|
const e = a.position.clone().setZ(a.maxZ).applyMatrix4(a.matrixWorld);
|
|
6176
6176
|
return t.distanceTo(e);
|
|
6177
6177
|
}
|
|
@@ -6430,7 +6430,7 @@ const zx = 10, Dx = new Uh(), Ox = new J(), Kx = new Me(), Yx = new Mr(new J(-0.
|
|
|
6430
6430
|
return this.traverse((r) => {
|
|
6431
6431
|
r.receiveShadow = this.receiveShadow, r.castShadow = this.castShadow;
|
|
6432
6432
|
const s = Yx.clone().applyMatrix4(r.matrixWorld);
|
|
6433
|
-
s.max.setY(9e3), r.inFrustum = ph.intersectsBox(s), r.distToCamera =
|
|
6433
|
+
s.max.setY(9e3), r.inFrustum = ph.intersectsBox(s), r.distToCamera = Ex(r, n);
|
|
6434
6434
|
const { action: l, newTiles: c } = r.LOD(e);
|
|
6435
6435
|
this._doAction(r, l, c, e);
|
|
6436
6436
|
}), this._checkReady(), this;
|
|
@@ -7153,7 +7153,7 @@ function vh() {
|
|
|
7153
7153
|
return window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI;
|
|
7154
7154
|
}
|
|
7155
7155
|
if (!yh) {
|
|
7156
|
-
const a = navigator.userAgent.toLowerCase(), t = document.documentElement || { style: {} }, e = "ActiveXObject" in window, n = a.indexOf("webkit") !== -1, r = a.indexOf("phantom") !== -1, s = a.search("android [23]") !== -1, l = a.indexOf("chrome") !== -1, c = a.indexOf("gecko") !== -1 && !n && !("opera" in window) && !e, u = /iphone/i.test(a) && /micromessenger/i.test(a), d = typeof orientation < "u" || a.indexOf("mobile") !== -1, p = !window.PointerEvent && "MSPointerEvent" in window, f = window.PointerEvent && navigator.pointerEnabled || p, g = e && "transition" in t.style, y = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix() && !s, w = "MozPerspective" in t.style,
|
|
7156
|
+
const a = navigator.userAgent.toLowerCase(), t = document.documentElement || { style: {} }, e = "ActiveXObject" in window, n = a.indexOf("webkit") !== -1, r = a.indexOf("phantom") !== -1, s = a.search("android [23]") !== -1, l = a.indexOf("chrome") !== -1, c = a.indexOf("gecko") !== -1 && !n && !("opera" in window) && !e, u = /iphone/i.test(a) && /micromessenger/i.test(a), d = typeof orientation < "u" || a.indexOf("mobile") !== -1, p = !window.PointerEvent && "MSPointerEvent" in window, f = window.PointerEvent && navigator.pointerEnabled || p, g = e && "transition" in t.style, y = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix() && !s, w = "MozPerspective" in t.style, T = "OTransition" in t.style, b = (g || y || w) && !T && !r, S = typeof window < "u" && _i(window.createImageBitmap), L = typeof window < "u" && _i(window.ResizeObserver), Z = typeof window < "u" && _i(window.btoa), V = typeof window < "u" && _i(window.Proxy), z = typeof window < "u" && _i(window.requestIdleCallback);
|
|
7157
7157
|
let X = 0;
|
|
7158
7158
|
if (l) {
|
|
7159
7159
|
const U = a.match(/chrome\/([\d.]+)/);
|
|
@@ -7193,7 +7193,7 @@ if (!yh) {
|
|
|
7193
7193
|
ie3d: g,
|
|
7194
7194
|
webkit3d: y,
|
|
7195
7195
|
gecko3d: w,
|
|
7196
|
-
opera12:
|
|
7196
|
+
opera12: T,
|
|
7197
7197
|
any3d: b,
|
|
7198
7198
|
iosWeixin: u,
|
|
7199
7199
|
mobile: d,
|
|
@@ -7213,13 +7213,13 @@ if (!yh) {
|
|
|
7213
7213
|
// @ts-ignore
|
|
7214
7214
|
ie10: e && document.documentMode === 10,
|
|
7215
7215
|
webgl: P,
|
|
7216
|
-
imageBitMap:
|
|
7217
|
-
resizeObserver:
|
|
7216
|
+
imageBitMap: S,
|
|
7217
|
+
resizeObserver: L,
|
|
7218
7218
|
btoa: Z,
|
|
7219
7219
|
decodeImageInWorker: I,
|
|
7220
7220
|
monitorDPRChange: !0,
|
|
7221
7221
|
supportsPassive: A,
|
|
7222
|
-
proxy:
|
|
7222
|
+
proxy: V,
|
|
7223
7223
|
requestIdleCallback: z,
|
|
7224
7224
|
// removeDPRListening: (map) => {
|
|
7225
7225
|
// // if (map) {
|
|
@@ -7683,7 +7683,7 @@ class eb extends sn {
|
|
|
7683
7683
|
g.map = r, g.transparent = !0, g.depthWrite = !1, g.needsUpdate = !0, this.cloudMaterial = g, this.instance = new sl(c, g, t);
|
|
7684
7684
|
const y = this.instance;
|
|
7685
7685
|
y.matrixAutoUpdate = !1, y.frustumCulled = s, y.instanceColor = new Oa(d, 3), y.instanceColor.setUsage(ju), l.add(y);
|
|
7686
|
-
const w = [],
|
|
7686
|
+
const w = [], T = () => {
|
|
7687
7687
|
const k = w.length;
|
|
7688
7688
|
let P = 0;
|
|
7689
7689
|
for (let D = 0; D < this.ref.children.length; D++) {
|
|
@@ -7711,15 +7711,15 @@ class eb extends sn {
|
|
|
7711
7711
|
count: k
|
|
7712
7712
|
});
|
|
7713
7713
|
};
|
|
7714
|
-
let
|
|
7715
|
-
const
|
|
7714
|
+
let S = 0, L = 0, Z;
|
|
7715
|
+
const V = new tn(), z = new J(0, 0, 1), X = new J();
|
|
7716
7716
|
this.update = (k, P, D) => {
|
|
7717
|
-
|
|
7718
|
-
const I =
|
|
7719
|
-
for (
|
|
7720
|
-
Z = I[
|
|
7721
|
-
for (I.sort((A, U) => U.dist - A.dist),
|
|
7722
|
-
Z = I[
|
|
7717
|
+
S = P, wh.copy(y.matrixWorld).invert(), k.matrixWorld.decompose(xh, bh, Ti);
|
|
7718
|
+
const I = T();
|
|
7719
|
+
for (L = 0; L < I.length; L++)
|
|
7720
|
+
Z = I[L], Z.ref.matrixWorld.decompose(ks, zs, Ti), ks.add(X.copy(Z.position).applyQuaternion(zs).multiply(Ti)), zs.copy(bh).multiply(V.setFromAxisAngle(z, Z.rotation += D * Z.rotationFactor)), Ti.multiplyScalar(Z.volume + (1 + Math.sin(S * Z.density * Z.speed)) / 2 * Z.growth), Z.matrix.compose(ks, zs, Ti).premultiply(wh), Z.dist = ks.distanceTo(xh);
|
|
7721
|
+
for (I.sort((A, U) => U.dist - A.dist), L = 0; L < I.length; L++)
|
|
7722
|
+
Z = I[L], u[L] = Z.opacity * (Z.dist < Z.fade - 1 ? Z.dist / Z.fade : 1), y.setMatrixAt(L, Z.matrix), y.setColorAt(L, Z.color);
|
|
7723
7723
|
y.geometry.attributes.cloudOpacity.needsUpdate = !0, y.instanceMatrix.needsUpdate = !0, y.instanceColor && (y.instanceColor.needsUpdate = !0);
|
|
7724
7724
|
};
|
|
7725
7725
|
}
|
|
@@ -7795,23 +7795,23 @@ class nb extends sn {
|
|
|
7795
7795
|
} = this;
|
|
7796
7796
|
this.updateCloudStateArray();
|
|
7797
7797
|
let w = 0;
|
|
7798
|
-
function
|
|
7798
|
+
function T() {
|
|
7799
7799
|
const b = Math.sin(u + w) * 1e4;
|
|
7800
7800
|
return w++, b - Math.floor(b);
|
|
7801
7801
|
}
|
|
7802
|
-
d.forEach((b,
|
|
7803
|
-
b.segments = f, b.volume = t, b.color = e, b.speed = n, b.growth = r, b.opacity = s, b.fade = l, b.bounds.copy(c), b.density = Math.max(0.5,
|
|
7804
|
-
const
|
|
7805
|
-
if (
|
|
7802
|
+
d.forEach((b, S) => {
|
|
7803
|
+
b.segments = f, b.volume = t, b.color = e, b.speed = n, b.growth = r, b.opacity = s, b.fade = l, b.bounds.copy(c), b.density = Math.max(0.5, T()), b.rotationFactor = Math.max(0.2, 0.5 * T()) * n;
|
|
7804
|
+
const L = p?.(b, S);
|
|
7805
|
+
if (L || f > 1) {
|
|
7806
7806
|
var Z;
|
|
7807
|
-
b.position.copy(b.bounds).multiply((Z =
|
|
7808
|
-
x:
|
|
7809
|
-
y:
|
|
7810
|
-
z:
|
|
7807
|
+
b.position.copy(b.bounds).multiply((Z = L?.point) !== null && Z !== void 0 ? Z : {
|
|
7808
|
+
x: T() * 2 - 1,
|
|
7809
|
+
y: T() * 2 - 1,
|
|
7810
|
+
z: T() * 2 - 1
|
|
7811
7811
|
});
|
|
7812
7812
|
}
|
|
7813
|
-
const
|
|
7814
|
-
b.length = 1,
|
|
7813
|
+
const V = Math.abs(b.position.x), z = Math.abs(b.position.y), X = Math.abs(b.position.z), k = Math.max(V, z, X);
|
|
7814
|
+
b.length = 1, V === k && (b.length -= V / b.bounds.x), z === k && (b.length -= z / b.bounds.y), X === k && (b.length -= X / b.bounds.z), b.volume = (L?.volume !== void 0 ? L.volume : Math.max(Math.max(0, y), g === "random" ? T() : g === "inside" ? b.length : 1 - b.length)) * t;
|
|
7815
7815
|
});
|
|
7816
7816
|
}
|
|
7817
7817
|
}
|
|
@@ -8031,7 +8031,7 @@ function gd(a) {
|
|
|
8031
8031
|
async function ab(a, t) {
|
|
8032
8032
|
const { geometry: e, center: n, avgY: r } = gd(t), s = await on._loadTexture(a.normalMap), l = await on._loadTexture(a.normalMap);
|
|
8033
8033
|
s.wrapS = s.wrapT = Cn, l.wrapS = l.wrapT = Cn, s.repeat.set(0.015, 0.015), l.repeat.set(5e-3, 5e-3);
|
|
8034
|
-
const c = new
|
|
8034
|
+
const c = new Ei({
|
|
8035
8035
|
color: new Le(a.color).multiplyScalar(3.5),
|
|
8036
8036
|
roughness: 0.1,
|
|
8037
8037
|
// 稍微增加粗糙度更真实
|
|
@@ -8107,12 +8107,12 @@ async function cb(a, t) {
|
|
|
8107
8107
|
depthTest: !1,
|
|
8108
8108
|
depthWrite: !1,
|
|
8109
8109
|
fog: !1
|
|
8110
|
-
}),
|
|
8111
|
-
return
|
|
8110
|
+
}), T = new Gr(w), b = n.fixedSize;
|
|
8111
|
+
return T.scale.set(
|
|
8112
8112
|
r.width * b / 100,
|
|
8113
8113
|
r.height * b / 100,
|
|
8114
8114
|
1
|
|
8115
|
-
), t &&
|
|
8115
|
+
), t && T.position.copy(t), T.renderOrder = 9999, T;
|
|
8116
8116
|
}
|
|
8117
8117
|
async function ub(a, t, e) {
|
|
8118
8118
|
const r = { ...{
|
|
@@ -8155,15 +8155,15 @@ async function ub(a, t, e) {
|
|
|
8155
8155
|
r.bubblePointerHeight,
|
|
8156
8156
|
r.bubblePointerWidth
|
|
8157
8157
|
), l.fill(), l.globalAlpha = 1, l.strokeStyle = r.bubbleBorderColor, l.lineWidth = r.bubbleBorderWidth, l.stroke())), l.textAlign = "center", l.textBaseline = "middle", r.strokeWidth > 0 && (l.strokeStyle = r.strokeColor, l.lineWidth = r.strokeWidth, l.lineJoin = "round", l.strokeText(r.text, s.width / 2, s.height / 2)), l.fillStyle = r.textColor, l.fillText(r.text, s.width / 2, s.height / 2), l.shadowColor = "transparent";
|
|
8158
|
-
const w = new Xi(s),
|
|
8158
|
+
const w = new Xi(s), T = new Fi({
|
|
8159
8159
|
map: w,
|
|
8160
8160
|
transparent: !0,
|
|
8161
8161
|
depthTest: !1,
|
|
8162
8162
|
depthWrite: !1,
|
|
8163
8163
|
fog: !1
|
|
8164
|
-
}), b = new Gr(
|
|
8164
|
+
}), b = new Gr(T);
|
|
8165
8165
|
b.position.copy(t), b.renderOrder = 9999, b.userData.isLabel = !0;
|
|
8166
|
-
const
|
|
8166
|
+
const S = () => {
|
|
8167
8167
|
if (!b.visible) return;
|
|
8168
8168
|
const Z = e.viewer.camera.position.distanceTo(b.position);
|
|
8169
8169
|
if (Z > r.maxVisibleDistance) {
|
|
@@ -8171,16 +8171,16 @@ async function ub(a, t, e) {
|
|
|
8171
8171
|
return;
|
|
8172
8172
|
}
|
|
8173
8173
|
b.visible = !0;
|
|
8174
|
-
const
|
|
8175
|
-
e.viewer.renderer.getSize(
|
|
8176
|
-
const z =
|
|
8174
|
+
const V = new Ie();
|
|
8175
|
+
e.viewer.renderer.getSize(V);
|
|
8176
|
+
const z = V.height, X = r.screenSpaceSize / s.height * (Z / Math.tan(ct.degToRad(e.viewer.camera.fov) / 2)) * (2 / z);
|
|
8177
8177
|
b.scale.set(X * s.width, X * s.height, 1), b.lookAt(e.viewer.camera.position);
|
|
8178
8178
|
};
|
|
8179
|
-
|
|
8180
|
-
const
|
|
8179
|
+
S();
|
|
8180
|
+
const L = () => S();
|
|
8181
8181
|
return b.addEventListener("dispose", () => {
|
|
8182
|
-
e.viewer.renderer.domElement.removeEventListener("resize",
|
|
8183
|
-
}), e.viewer.renderer.domElement.addEventListener("resize",
|
|
8182
|
+
e.viewer.renderer.domElement.removeEventListener("resize", S);
|
|
8183
|
+
}), e.viewer.renderer.domElement.addEventListener("resize", S), e.viewer.camera.addEventListener("change", S), b.onBeforeRender = L, b;
|
|
8184
8184
|
}
|
|
8185
8185
|
function yd(a, t, e, n, r, s) {
|
|
8186
8186
|
a.beginPath(), a.moveTo(t + s, e), a.lineTo(t + n - s, e), a.quadraticCurveTo(t + n, e, t + n, e + s), a.lineTo(t + n, e + r - s), a.quadraticCurveTo(t + n, e + r, t + n - s, e + r), a.lineTo(t + s, e + r), a.quadraticCurveTo(t, e + r, t, e + r - s), a.lineTo(t, e + s), a.quadraticCurveTo(t, e, t + s, e), a.closePath();
|
|
@@ -8226,31 +8226,31 @@ async function hb(a, t, e) {
|
|
|
8226
8226
|
strokeWidth: g = s / 9,
|
|
8227
8227
|
iconScale: y = 0.8,
|
|
8228
8228
|
canvasScale: w = 1,
|
|
8229
|
-
renderbg:
|
|
8229
|
+
renderbg: T = !0,
|
|
8230
8230
|
textOffset: b = { x: 0, y: 0 }
|
|
8231
|
-
} = a,
|
|
8231
|
+
} = a, S = {
|
|
8232
8232
|
top: 0,
|
|
8233
8233
|
right: 1,
|
|
8234
8234
|
bottom: 0,
|
|
8235
8235
|
left: 0,
|
|
8236
8236
|
...u
|
|
8237
8237
|
};
|
|
8238
|
-
let
|
|
8239
|
-
r && (
|
|
8240
|
-
const { canvas: Z, width:
|
|
8238
|
+
let L = null;
|
|
8239
|
+
r && (L = await fb(r));
|
|
8240
|
+
const { canvas: Z, width: V, height: z, center: X } = await db({
|
|
8241
8241
|
text: n,
|
|
8242
|
-
iconImage:
|
|
8242
|
+
iconImage: L,
|
|
8243
8243
|
fontSize: s,
|
|
8244
8244
|
iconSize: l,
|
|
8245
8245
|
fontFamily: c,
|
|
8246
|
-
padding:
|
|
8246
|
+
padding: S,
|
|
8247
8247
|
bgColor: d,
|
|
8248
8248
|
textColor: p,
|
|
8249
8249
|
strokeColor: f,
|
|
8250
8250
|
strokeWidth: g,
|
|
8251
8251
|
iconScale: y,
|
|
8252
8252
|
canvasScale: w,
|
|
8253
|
-
renderbg:
|
|
8253
|
+
renderbg: T,
|
|
8254
8254
|
textOffset: b
|
|
8255
8255
|
}, t), k = new Qr(Z);
|
|
8256
8256
|
k.needsUpdate = !0;
|
|
@@ -8264,7 +8264,7 @@ async function hb(a, t, e) {
|
|
|
8264
8264
|
alphaTest: 0.01
|
|
8265
8265
|
}), D = new Gr(P), I = 1e-3;
|
|
8266
8266
|
return D.scale.set(
|
|
8267
|
-
|
|
8267
|
+
V * I,
|
|
8268
8268
|
z * I,
|
|
8269
8269
|
1
|
|
8270
8270
|
), D.center.set(X[0], X[1]), e && D.position.copy(e), D.renderOrder = 999, D;
|
|
@@ -8284,19 +8284,19 @@ async function db(a, t) {
|
|
|
8284
8284
|
strokeWidth: g,
|
|
8285
8285
|
iconScale: y,
|
|
8286
8286
|
canvasScale: w,
|
|
8287
|
-
renderbg:
|
|
8287
|
+
renderbg: T,
|
|
8288
8288
|
textOffset: b = { x: 0, y: 0 }
|
|
8289
|
-
} = a,
|
|
8290
|
-
if (!
|
|
8291
|
-
|
|
8292
|
-
const Z =
|
|
8289
|
+
} = a, L = document.createElement("canvas").getContext("2d");
|
|
8290
|
+
if (!L) throw new Error("Could not get temp canvas context");
|
|
8291
|
+
L.font = `500 ${s}px ${c}`;
|
|
8292
|
+
const Z = L.measureText(n), V = Z.width, z = Z.actualBoundingBoxAscent || s * 0.8, X = Z.actualBoundingBoxDescent || s * 0.2, k = r !== null;
|
|
8293
8293
|
let P = 0, D = 0, I = 0, A = 0;
|
|
8294
8294
|
if (k) {
|
|
8295
8295
|
P = 0, D = 0, I = l, A = l;
|
|
8296
|
-
const ue = l / 2 + b.x, ye = l / 2 + b.y, Fe = ue, Ue = ue +
|
|
8296
|
+
const ue = l / 2 + b.x, ye = l / 2 + b.y, Fe = ue, Ue = ue + V, je = ye - z, Je = ye + X;
|
|
8297
8297
|
P = Math.min(P, Fe), I = Math.max(I, Ue), D = Math.min(D, je), A = Math.max(A, Je);
|
|
8298
8298
|
} else {
|
|
8299
|
-
const ue = b.x, ye = b.x +
|
|
8299
|
+
const ue = b.x, ye = b.x + V, Fe = b.y - z, Ue = b.y + X;
|
|
8300
8300
|
P = ue, I = ye, D = Fe, A = Ue;
|
|
8301
8301
|
}
|
|
8302
8302
|
const U = I - P, j = A - D, B = Math.ceil(U + u.left + u.right) * w, q = Math.ceil(j + u.top + u.bottom) * w, N = u.left - P, ie = u.top - D, re = t._getCanvas(B, q, n);
|
|
@@ -8305,7 +8305,7 @@ async function db(a, t) {
|
|
|
8305
8305
|
if (!ee) throw new Error("Could not get canvas context");
|
|
8306
8306
|
ee.clearRect(0, 0, B, q), ee.globalCompositeOperation = "source-over", ee.save(), ee.scale(w, w);
|
|
8307
8307
|
const pe = B / w, ve = q / w;
|
|
8308
|
-
if (
|
|
8308
|
+
if (T && (ee.fillStyle = d, ee.fillRect(0, 0, pe, ve)), r) {
|
|
8309
8309
|
const ue = N, ye = ie, Fe = l * y, Ue = (l - Fe) / 2, je = (l - Fe) / 2;
|
|
8310
8310
|
ee.imageSmoothingEnabled = !1, ee.drawImage(
|
|
8311
8311
|
r,
|
|
@@ -8355,13 +8355,13 @@ async function pb(a, t, e) {
|
|
|
8355
8355
|
u.position.add(e.prjcenter), u.castShadow = !0, u.renderOrder = 1;
|
|
8356
8356
|
const d = new rn(), p = [];
|
|
8357
8357
|
for (let w = 0; w < t.length; w++) {
|
|
8358
|
-
const
|
|
8359
|
-
|
|
8360
|
-
|
|
8361
|
-
|
|
8358
|
+
const T = t[w], b = new J(
|
|
8359
|
+
T.coordinates[0],
|
|
8360
|
+
T.coordinates[1],
|
|
8361
|
+
T.coordinates[2] || 0
|
|
8362
8362
|
// 默认高度0
|
|
8363
|
-
),
|
|
8364
|
-
d.position.copy(
|
|
8363
|
+
), L = e.geo2world(b).sub(e.prjcenter);
|
|
8364
|
+
d.position.copy(L), d.updateMatrix(), u.setMatrixAt(w, d.matrix), p.push(L.x, 0, L.z);
|
|
8365
8365
|
}
|
|
8366
8366
|
const f = new Float32Array(p), g = new nn();
|
|
8367
8367
|
g.setAttribute("position", new Yt(f, 3));
|
|
@@ -9044,13 +9044,13 @@ class rr extends gl(
|
|
|
9044
9044
|
u.forEach((X) => {
|
|
9045
9045
|
d = Math.min(d, X.x), p = Math.max(p, X.x), f = Math.min(f, X.y), g = Math.max(g, X.y);
|
|
9046
9046
|
});
|
|
9047
|
-
const y = p - d, w = g - f,
|
|
9048
|
-
r.getCenter(
|
|
9049
|
-
const Z =
|
|
9047
|
+
const y = p - d, w = g - f, T = 4, b = Math.max(y, T), S = Math.max(w, T), L = new J();
|
|
9048
|
+
r.getCenter(L);
|
|
9049
|
+
const Z = L.clone().project(e), V = (Z.x * 0.5 + 0.5) * l, z = (-Z.y * 0.5 + 0.5) * c;
|
|
9050
9050
|
return {
|
|
9051
9051
|
width: b,
|
|
9052
|
-
height:
|
|
9053
|
-
offsetX: d -
|
|
9052
|
+
height: S,
|
|
9053
|
+
offsetX: d - V,
|
|
9054
9054
|
// 左上角相对于中心的偏移
|
|
9055
9055
|
offsetY: f - z
|
|
9056
9056
|
};
|
|
@@ -9303,15 +9303,15 @@ function _b(a) {
|
|
|
9303
9303
|
}
|
|
9304
9304
|
function xd(a, t, e, n) {
|
|
9305
9305
|
if (isNaN(t) || isNaN(e)) return a;
|
|
9306
|
-
var r, s = a._root, l = { data: n }, c = a._x0, u = a._y0, d = a._x1, p = a._y1, f, g, y, w,
|
|
9306
|
+
var r, s = a._root, l = { data: n }, c = a._x0, u = a._y0, d = a._x1, p = a._y1, f, g, y, w, T, b, S, L;
|
|
9307
9307
|
if (!s) return a._root = l, a;
|
|
9308
9308
|
for (; s.length; )
|
|
9309
|
-
if ((
|
|
9310
|
-
if (y = +a._x.call(null, s.data), w = +a._y.call(null, s.data), t === y && e === w) return l.next = s, r ? r[
|
|
9309
|
+
if ((T = t >= (f = (c + d) / 2)) ? c = f : d = f, (b = e >= (g = (u + p) / 2)) ? u = g : p = g, r = s, !(s = s[S = b << 1 | T])) return r[S] = l, a;
|
|
9310
|
+
if (y = +a._x.call(null, s.data), w = +a._y.call(null, s.data), t === y && e === w) return l.next = s, r ? r[S] = l : a._root = l, a;
|
|
9311
9311
|
do
|
|
9312
|
-
r = r ? r[
|
|
9313
|
-
while ((
|
|
9314
|
-
return r[
|
|
9312
|
+
r = r ? r[S] = new Array(4) : a._root = new Array(4), (T = t >= (f = (c + d) / 2)) ? c = f : d = f, (b = e >= (g = (u + p) / 2)) ? u = g : p = g;
|
|
9313
|
+
while ((S = b << 1 | T) === (L = (w >= g) << 1 | y >= f));
|
|
9314
|
+
return r[L] = s, r[S] = l, a;
|
|
9315
9315
|
}
|
|
9316
9316
|
function Tb(a) {
|
|
9317
9317
|
var t, e, n = a.length, r, s, l = new Array(n), c = new Array(n), u = 1 / 0, d = 1 / 0, p = -1 / 0, f = -1 / 0;
|
|
@@ -9362,21 +9362,21 @@ function mt(a, t, e, n, r) {
|
|
|
9362
9362
|
this.node = a, this.x0 = t, this.y0 = e, this.x1 = n, this.y1 = r;
|
|
9363
9363
|
}
|
|
9364
9364
|
function Gb(a, t, e) {
|
|
9365
|
-
var n, r = this._x0, s = this._y0, l, c, u, d, p = this._x1, f = this._y1, g = [], y = this._root, w,
|
|
9365
|
+
var n, r = this._x0, s = this._y0, l, c, u, d, p = this._x1, f = this._y1, g = [], y = this._root, w, T;
|
|
9366
9366
|
for (y && g.push(new mt(y, r, s, p, f)), e == null ? e = 1 / 0 : (r = a - e, s = t - e, p = a + e, f = t + e, e *= e); w = g.pop(); )
|
|
9367
9367
|
if (!(!(y = w.node) || (l = w.x0) > p || (c = w.y0) > f || (u = w.x1) < r || (d = w.y1) < s))
|
|
9368
9368
|
if (y.length) {
|
|
9369
|
-
var b = (l + u) / 2,
|
|
9369
|
+
var b = (l + u) / 2, S = (c + d) / 2;
|
|
9370
9370
|
g.push(
|
|
9371
|
-
new mt(y[3], b,
|
|
9372
|
-
new mt(y[2], l,
|
|
9373
|
-
new mt(y[1], b, c, u,
|
|
9374
|
-
new mt(y[0], l, c, b,
|
|
9375
|
-
), (
|
|
9371
|
+
new mt(y[3], b, S, u, d),
|
|
9372
|
+
new mt(y[2], l, S, b, d),
|
|
9373
|
+
new mt(y[1], b, c, u, S),
|
|
9374
|
+
new mt(y[0], l, c, b, S)
|
|
9375
|
+
), (T = (t >= S) << 1 | a >= b) && (w = g[g.length - 1], g[g.length - 1] = g[g.length - 1 - T], g[g.length - 1 - T] = w);
|
|
9376
9376
|
} else {
|
|
9377
|
-
var
|
|
9378
|
-
if (
|
|
9379
|
-
var z = Math.sqrt(e =
|
|
9377
|
+
var L = a - +this._x.call(null, y.data), Z = t - +this._y.call(null, y.data), V = L * L + Z * Z;
|
|
9378
|
+
if (V < e) {
|
|
9379
|
+
var z = Math.sqrt(e = V);
|
|
9380
9380
|
r = a - z, s = t - z, p = a + z, f = t + z, n = y.data;
|
|
9381
9381
|
}
|
|
9382
9382
|
}
|
|
@@ -9384,15 +9384,15 @@ function Gb(a, t, e) {
|
|
|
9384
9384
|
}
|
|
9385
9385
|
function Zb(a) {
|
|
9386
9386
|
if (isNaN(p = +this._x.call(null, a)) || isNaN(f = +this._y.call(null, a))) return this;
|
|
9387
|
-
var t, e = this._root, n, r, s, l = this._x0, c = this._y0, u = this._x1, d = this._y1, p, f, g, y, w,
|
|
9387
|
+
var t, e = this._root, n, r, s, l = this._x0, c = this._y0, u = this._x1, d = this._y1, p, f, g, y, w, T, b, S;
|
|
9388
9388
|
if (!e) return this;
|
|
9389
9389
|
if (e.length) for (; ; ) {
|
|
9390
|
-
if ((w = p >= (g = (l + u) / 2)) ? l = g : u = g, (
|
|
9390
|
+
if ((w = p >= (g = (l + u) / 2)) ? l = g : u = g, (T = f >= (y = (c + d) / 2)) ? c = y : d = y, t = e, !(e = e[b = T << 1 | w])) return this;
|
|
9391
9391
|
if (!e.length) break;
|
|
9392
|
-
(t[b + 1 & 3] || t[b + 2 & 3] || t[b + 3 & 3]) && (n = t,
|
|
9392
|
+
(t[b + 1 & 3] || t[b + 2 & 3] || t[b + 3 & 3]) && (n = t, S = b);
|
|
9393
9393
|
}
|
|
9394
9394
|
for (; e.data !== a; ) if (r = e, !(e = e.next)) return this;
|
|
9395
|
-
return (s = e.next) && delete e.next, r ? (s ? r.next = s : delete r.next, this) : t ? (s ? t[b] = s : delete t[b], (e = t[0] || t[1] || t[2] || t[3]) && e === (t[3] || t[2] || t[1] || t[0]) && !e.length && (n ? n[
|
|
9395
|
+
return (s = e.next) && delete e.next, r ? (s ? r.next = s : delete r.next, this) : t ? (s ? t[b] = s : delete t[b], (e = t[0] || t[1] || t[2] || t[3]) && e === (t[3] || t[2] || t[1] || t[0]) && !e.length && (n ? n[S] = e : this._root = e), this) : (this._root = s, this);
|
|
9396
9396
|
}
|
|
9397
9397
|
function Wb(a) {
|
|
9398
9398
|
for (var t = 0, e = a.length; t < e; ++t) this.remove(a[t]);
|
|
@@ -9432,10 +9432,10 @@ function Cb(a) {
|
|
|
9432
9432
|
a(n.node, n.x0, n.y0, n.x1, n.y1);
|
|
9433
9433
|
return this;
|
|
9434
9434
|
}
|
|
9435
|
-
function
|
|
9435
|
+
function Vb(a) {
|
|
9436
9436
|
return a[0];
|
|
9437
9437
|
}
|
|
9438
|
-
function
|
|
9438
|
+
function Eb(a) {
|
|
9439
9439
|
return arguments.length ? (this._x = a, this) : this._x;
|
|
9440
9440
|
}
|
|
9441
9441
|
function Ab(a) {
|
|
@@ -9445,7 +9445,7 @@ function Xb(a) {
|
|
|
9445
9445
|
return arguments.length ? (this._y = a, this) : this._y;
|
|
9446
9446
|
}
|
|
9447
9447
|
function bd(a, t, e) {
|
|
9448
|
-
var n = new vl(t ??
|
|
9448
|
+
var n = new vl(t ?? Vb, e ?? Ab, NaN, NaN, NaN, NaN);
|
|
9449
9449
|
return a == null ? n : n.addAll(a);
|
|
9450
9450
|
}
|
|
9451
9451
|
function vl(a, t, e, n, r, s) {
|
|
@@ -9477,7 +9477,7 @@ gt.root = Ib;
|
|
|
9477
9477
|
gt.size = Rb;
|
|
9478
9478
|
gt.visit = Pb;
|
|
9479
9479
|
gt.visitAfter = Cb;
|
|
9480
|
-
gt.x =
|
|
9480
|
+
gt.x = Eb;
|
|
9481
9481
|
gt.y = Xb;
|
|
9482
9482
|
class _d {
|
|
9483
9483
|
/**
|
|
@@ -10222,20 +10222,20 @@ var Li = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : t
|
|
|
10222
10222
|
Qs.exports;
|
|
10223
10223
|
(function(a, t) {
|
|
10224
10224
|
(function() {
|
|
10225
|
-
var e, n = "4.17.21", r = 200, s = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", l = "Expected a function", c = "Invalid `variable` option passed into `_.template`", u = "__lodash_hash_undefined__", d = 500, p = "__lodash_placeholder__", f = 1, g = 2, y = 4, w = 1,
|
|
10225
|
+
var e, n = "4.17.21", r = 200, s = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", l = "Expected a function", c = "Invalid `variable` option passed into `_.template`", u = "__lodash_hash_undefined__", d = 500, p = "__lodash_placeholder__", f = 1, g = 2, y = 4, w = 1, T = 2, b = 1, S = 2, L = 4, Z = 8, V = 16, z = 32, X = 64, k = 128, P = 256, D = 512, I = 30, A = "...", U = 800, j = 16, B = 1, q = 2, N = 3, ie = 1 / 0, re = 9007199254740991, ee = 17976931348623157e292, pe = NaN, ve = 4294967295, ue = ve - 1, ye = ve >>> 1, Fe = [
|
|
10226
10226
|
["ary", k],
|
|
10227
10227
|
["bind", b],
|
|
10228
|
-
["bindKey",
|
|
10228
|
+
["bindKey", S],
|
|
10229
10229
|
["curry", Z],
|
|
10230
|
-
["curryRight",
|
|
10230
|
+
["curryRight", V],
|
|
10231
10231
|
["flip", D],
|
|
10232
10232
|
["partial", z],
|
|
10233
10233
|
["partialRight", X],
|
|
10234
10234
|
["rearg", P]
|
|
10235
|
-
], Ue = "[object Arguments]", je = "[object Array]", Je = "[object AsyncFunction]", Qe = "[object Boolean]", ht = "[object Date]", yt = "[object DOMException]", He = "[object Error]", xn = "[object Function]",
|
|
10236
|
-
Rr + "?" + Il + "+" +
|
|
10237
|
-
mf + "+" + Al + "(?=" + [Zl, Rr +
|
|
10238
|
-
Rr + "?" +
|
|
10235
|
+
], Ue = "[object Arguments]", je = "[object Array]", Je = "[object AsyncFunction]", Qe = "[object Boolean]", ht = "[object Date]", yt = "[object DOMException]", He = "[object Error]", xn = "[object Function]", Vn = "[object GeneratorFunction]", Ae = "[object Map]", Ut = "[object Number]", Rt = "[object Null]", Pt = "[object Object]", ei = "[object Promise]", Oi = "[object Proxy]", ir = "[object RegExp]", Tt = "[object Set]", En = "[object String]", An = "[object Symbol]", sr = "[object Undefined]", or = "[object WeakMap]", lo = "[object WeakSet]", Xn = "[object ArrayBuffer]", ln = "[object DataView]", ti = "[object Float32Array]", ni = "[object Float64Array]", Zr = "[object Int8Array]", ri = "[object Int16Array]", ii = "[object Int32Array]", Wr = "[object Uint8Array]", ar = "[object Uint8ClampedArray]", E = "[object Uint16Array]", Q = "[object Uint32Array]", ce = /\b__p \+= '';/g, Se = /\b(__p \+=) '' \+/g, Ye = /(__e\(.*?\)|\b__t\)) \+\n'';/g, Ct = /&(?:amp|lt|gt|quot|#39);/g, Ht = /[&<>"']/g, xl = RegExp(Ct.source), Ki = RegExp(Ht.source), Nt = /<%-([\s\S]+?)%>/g, Bt = /<%([\s\S]+?)%>/g, Fn = /<%=([\s\S]+?)%>/g, lr = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, cr = /^\w*$/, Ir = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, co = /[\\^$.*+?()[\]{}|]/g, Od = RegExp(co.source), uo = /^\s+/, Kd = /\s/, Yd = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Ud = /\{\n\/\* \[wrapped with (.+)\] \*/, Hd = /,? & /, Nd = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Bd = /[()=,{}\[\]\/\s]/, jd = /\\(\\)?/g, Jd = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, bl = /\w*$/, Qd = /^[-+]0x[0-9a-f]+$/i, qd = /^0b[01]+$/i, $d = /^\[object .+?Constructor\]$/, ef = /^0o[0-7]+$/i, tf = /^(?:0|[1-9]\d*)$/, nf = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, Yi = /($^)/, rf = /['\n\r\u2028\u2029\\]/g, Ui = "\\ud800-\\udfff", sf = "\\u0300-\\u036f", of = "\\ufe20-\\ufe2f", af = "\\u20d0-\\u20ff", _l = sf + of + af, Tl = "\\u2700-\\u27bf", Ll = "a-z\\xdf-\\xf6\\xf8-\\xff", lf = "\\xac\\xb1\\xd7\\xf7", cf = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", uf = "\\u2000-\\u206f", hf = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", Sl = "A-Z\\xc0-\\xd6\\xd8-\\xde", Ml = "\\ufe0e\\ufe0f", Gl = lf + cf + uf + hf, ho = "['’]", df = "[" + Ui + "]", Zl = "[" + Gl + "]", Hi = "[" + _l + "]", Wl = "\\d+", ff = "[" + Tl + "]", Il = "[" + Ll + "]", Rl = "[^" + Ui + Gl + Wl + Tl + Ll + Sl + "]", fo = "\\ud83c[\\udffb-\\udfff]", pf = "(?:" + Hi + "|" + fo + ")", Pl = "[^" + Ui + "]", po = "(?:\\ud83c[\\udde6-\\uddff]){2}", mo = "[\\ud800-\\udbff][\\udc00-\\udfff]", Rr = "[" + Sl + "]", Cl = "\\u200d", Vl = "(?:" + Il + "|" + Rl + ")", mf = "(?:" + Rr + "|" + Rl + ")", El = "(?:" + ho + "(?:d|ll|m|re|s|t|ve))?", Al = "(?:" + ho + "(?:D|LL|M|RE|S|T|VE))?", Xl = pf + "?", Fl = "[" + Ml + "]?", gf = "(?:" + Cl + "(?:" + [Pl, po, mo].join("|") + ")" + Fl + Xl + ")*", yf = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", vf = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", kl = Fl + Xl + gf, wf = "(?:" + [ff, po, mo].join("|") + ")" + kl, xf = "(?:" + [Pl + Hi + "?", Hi, po, mo, df].join("|") + ")", bf = RegExp(ho, "g"), _f = RegExp(Hi, "g"), go = RegExp(fo + "(?=" + fo + ")|" + xf + kl, "g"), Tf = RegExp([
|
|
10236
|
+
Rr + "?" + Il + "+" + El + "(?=" + [Zl, Rr, "$"].join("|") + ")",
|
|
10237
|
+
mf + "+" + Al + "(?=" + [Zl, Rr + Vl, "$"].join("|") + ")",
|
|
10238
|
+
Rr + "?" + Vl + "+" + El,
|
|
10239
10239
|
Rr + "+" + Al,
|
|
10240
10240
|
vf,
|
|
10241
10241
|
yf,
|
|
@@ -10273,9 +10273,9 @@ Qs.exports;
|
|
|
10273
10273
|
"parseInt",
|
|
10274
10274
|
"setTimeout"
|
|
10275
10275
|
], Gf = -1, Ce = {};
|
|
10276
|
-
Ce[ti] = Ce[ni] = Ce[Zr] = Ce[ri] = Ce[ii] = Ce[Wr] = Ce[ar] = Ce[
|
|
10276
|
+
Ce[ti] = Ce[ni] = Ce[Zr] = Ce[ri] = Ce[ii] = Ce[Wr] = Ce[ar] = Ce[E] = Ce[Q] = !0, Ce[Ue] = Ce[je] = Ce[Xn] = Ce[Qe] = Ce[ln] = Ce[ht] = Ce[He] = Ce[xn] = Ce[Ae] = Ce[Ut] = Ce[Pt] = Ce[ir] = Ce[Tt] = Ce[En] = Ce[or] = !1;
|
|
10277
10277
|
var Pe = {};
|
|
10278
|
-
Pe[Ue] = Pe[je] = Pe[Xn] = Pe[ln] = Pe[Qe] = Pe[ht] = Pe[ti] = Pe[ni] = Pe[Zr] = Pe[ri] = Pe[ii] = Pe[Ae] = Pe[Ut] = Pe[Pt] = Pe[ir] = Pe[Tt] = Pe[
|
|
10278
|
+
Pe[Ue] = Pe[je] = Pe[Xn] = Pe[ln] = Pe[Qe] = Pe[ht] = Pe[ti] = Pe[ni] = Pe[Zr] = Pe[ri] = Pe[ii] = Pe[Ae] = Pe[Ut] = Pe[Pt] = Pe[ir] = Pe[Tt] = Pe[En] = Pe[An] = Pe[Wr] = Pe[ar] = Pe[E] = Pe[Q] = !0, Pe[He] = Pe[xn] = Pe[or] = !1;
|
|
10279
10279
|
var Zf = {
|
|
10280
10280
|
// Latin-1 Supplement block.
|
|
10281
10281
|
À: "A",
|
|
@@ -10488,13 +10488,13 @@ Qs.exports;
|
|
|
10488
10488
|
"\r": "r",
|
|
10489
10489
|
"\u2028": "u2028",
|
|
10490
10490
|
"\u2029": "u2029"
|
|
10491
|
-
}, Pf = parseFloat, Cf = parseInt, zl = typeof Li == "object" && Li && Li.Object === Object && Li,
|
|
10491
|
+
}, Pf = parseFloat, Cf = parseInt, zl = typeof Li == "object" && Li && Li.Object === Object && Li, Vf = typeof self == "object" && self && self.Object === Object && self, $e = zl || Vf || Function("return this")(), yo = t && !t.nodeType && t, ur = yo && !0 && a && !a.nodeType && a, Dl = ur && ur.exports === yo, vo = Dl && zl.process, Vt = function() {
|
|
10492
10492
|
try {
|
|
10493
10493
|
var R = ur && ur.require && ur.require("util").types;
|
|
10494
10494
|
return R || vo && vo.binding && vo.binding("util");
|
|
10495
10495
|
} catch {
|
|
10496
10496
|
}
|
|
10497
|
-
}(), Ol =
|
|
10497
|
+
}(), Ol = Vt && Vt.isArrayBuffer, Kl = Vt && Vt.isDate, Yl = Vt && Vt.isMap, Ul = Vt && Vt.isRegExp, Hl = Vt && Vt.isSet, Nl = Vt && Vt.isTypedArray;
|
|
10498
10498
|
function Lt(R, O, F) {
|
|
10499
10499
|
switch (F.length) {
|
|
10500
10500
|
case 0:
|
|
@@ -10508,14 +10508,14 @@ Qs.exports;
|
|
|
10508
10508
|
}
|
|
10509
10509
|
return R.apply(O, F);
|
|
10510
10510
|
}
|
|
10511
|
-
function
|
|
10511
|
+
function Ef(R, O, F, te) {
|
|
10512
10512
|
for (var he = -1, Ge = R == null ? 0 : R.length; ++he < Ge; ) {
|
|
10513
10513
|
var Ne = R[he];
|
|
10514
10514
|
O(te, Ne, F(Ne), R);
|
|
10515
10515
|
}
|
|
10516
10516
|
return te;
|
|
10517
10517
|
}
|
|
10518
|
-
function
|
|
10518
|
+
function Et(R, O) {
|
|
10519
10519
|
for (var F = -1, te = R == null ? 0 : R.length; ++F < te && O(R[F], F, R) !== !1; )
|
|
10520
10520
|
;
|
|
10521
10521
|
return R;
|
|
@@ -10548,7 +10548,7 @@ Qs.exports;
|
|
|
10548
10548
|
return !0;
|
|
10549
10549
|
return !1;
|
|
10550
10550
|
}
|
|
10551
|
-
function
|
|
10551
|
+
function Ee(R, O) {
|
|
10552
10552
|
for (var F = -1, te = R == null ? 0 : R.length, he = Array(te); ++F < te; )
|
|
10553
10553
|
he[F] = O(R[F], F, R);
|
|
10554
10554
|
return he;
|
|
@@ -10646,7 +10646,7 @@ Qs.exports;
|
|
|
10646
10646
|
return te;
|
|
10647
10647
|
}
|
|
10648
10648
|
function Kf(R, O) {
|
|
10649
|
-
return
|
|
10649
|
+
return Ee(O, function(F) {
|
|
10650
10650
|
return [F, R[F]];
|
|
10651
10651
|
});
|
|
10652
10652
|
}
|
|
@@ -10659,7 +10659,7 @@ Qs.exports;
|
|
|
10659
10659
|
};
|
|
10660
10660
|
}
|
|
10661
10661
|
function Mo(R, O) {
|
|
10662
|
-
return
|
|
10662
|
+
return Ee(O, function(F) {
|
|
10663
10663
|
return R[F];
|
|
10664
10664
|
});
|
|
10665
10665
|
}
|
|
@@ -10741,7 +10741,7 @@ Qs.exports;
|
|
|
10741
10741
|
return te;
|
|
10742
10742
|
return te;
|
|
10743
10743
|
}
|
|
10744
|
-
function
|
|
10744
|
+
function Vr(R) {
|
|
10745
10745
|
return Cr(R) ? tp(R) : Ff(R);
|
|
10746
10746
|
}
|
|
10747
10747
|
function jt(R) {
|
|
@@ -10765,7 +10765,7 @@ Qs.exports;
|
|
|
10765
10765
|
return R.match(Tf) || [];
|
|
10766
10766
|
}
|
|
10767
10767
|
var ip = function R(O) {
|
|
10768
|
-
O = O == null ? $e :
|
|
10768
|
+
O = O == null ? $e : Er.defaults($e.Object(), O, Er.pick($e, Mf));
|
|
10769
10769
|
var F = O.Array, te = O.Date, he = O.Error, Ge = O.Function, Ne = O.Math, Re = O.Object, Zo = O.RegExp, sp = O.String, At = O.TypeError, Ji = F.prototype, op = Ge.prototype, Ar = Re.prototype, Qi = O["__core-js_shared__"], qi = op.toString, We = Ar.hasOwnProperty, ap = 0, ic = function() {
|
|
10770
10770
|
var i = /[^.]+$/.exec(Qi && Qi.keys && Qi.keys.IE_PROTO || "");
|
|
10771
10771
|
return i ? "Symbol(src)_1." + i : "";
|
|
@@ -10868,7 +10868,7 @@ Qs.exports;
|
|
|
10868
10868
|
function Gp() {
|
|
10869
10869
|
var i = this.__wrapped__.value(), o = this.__dir__, h = de(i), m = o < 0, v = h ? i.length : 0, _ = km(0, v, this.__views__), G = _.start, W = _.end, C = W - G, K = m ? W : G - 1, Y = this.__iteratees__, H = Y.length, $ = 0, ne = st(C, this.__takeCount__);
|
|
10870
10870
|
if (!h || !m && v == C && ne == C)
|
|
10871
|
-
return
|
|
10871
|
+
return Ec(i, this.__actions__);
|
|
10872
10872
|
var ae = [];
|
|
10873
10873
|
e:
|
|
10874
10874
|
for (; C-- && $ < ne; ) {
|
|
@@ -10929,14 +10929,14 @@ Qs.exports;
|
|
|
10929
10929
|
function Cp() {
|
|
10930
10930
|
this.__data__ = [], this.size = 0;
|
|
10931
10931
|
}
|
|
10932
|
-
function
|
|
10932
|
+
function Vp(i) {
|
|
10933
10933
|
var o = this.__data__, h = us(o, i);
|
|
10934
10934
|
if (h < 0)
|
|
10935
10935
|
return !1;
|
|
10936
10936
|
var m = o.length - 1;
|
|
10937
10937
|
return h == m ? o.pop() : rs.call(o, h, 1), --this.size, !0;
|
|
10938
10938
|
}
|
|
10939
|
-
function
|
|
10939
|
+
function Ep(i) {
|
|
10940
10940
|
var o = this.__data__, h = us(o, i);
|
|
10941
10941
|
return h < 0 ? e : o[h][1];
|
|
10942
10942
|
}
|
|
@@ -10947,7 +10947,7 @@ Qs.exports;
|
|
|
10947
10947
|
var h = this.__data__, m = us(h, i);
|
|
10948
10948
|
return m < 0 ? (++this.size, h.push([i, o])) : h[m][1] = o, this;
|
|
10949
10949
|
}
|
|
10950
|
-
bn.prototype.clear = Cp, bn.prototype.delete =
|
|
10950
|
+
bn.prototype.clear = Cp, bn.prototype.delete = Vp, bn.prototype.get = Ep, bn.prototype.has = Ap, bn.prototype.set = Xp;
|
|
10951
10951
|
function _n(i) {
|
|
10952
10952
|
var o = -1, h = i == null ? 0 : i.length;
|
|
10953
10953
|
for (this.clear(); ++o < h; ) {
|
|
@@ -11088,7 +11088,7 @@ Qs.exports;
|
|
|
11088
11088
|
if (G = Dm(i), !W)
|
|
11089
11089
|
return vt(i, G);
|
|
11090
11090
|
} else {
|
|
11091
|
-
var H = ot(i), $ = H == xn || H ==
|
|
11091
|
+
var H = ot(i), $ = H == xn || H == Vn;
|
|
11092
11092
|
if (Nn(i))
|
|
11093
11093
|
return Fc(i, W);
|
|
11094
11094
|
if (H == Pt || H == Ue || $ && !v) {
|
|
@@ -11110,7 +11110,7 @@ Qs.exports;
|
|
|
11110
11110
|
G.set(we, Ft(le, o, h, we, i, _));
|
|
11111
11111
|
});
|
|
11112
11112
|
var ae = K ? C ? $o : qo : C ? xt : qe, me = Y ? e : ae(i);
|
|
11113
|
-
return
|
|
11113
|
+
return Et(me || i, function(le, we) {
|
|
11114
11114
|
me && (we = le, le = i[we]), hi(G, we, Ft(le, o, h, we, i, _));
|
|
11115
11115
|
}), G;
|
|
11116
11116
|
}
|
|
@@ -11142,7 +11142,7 @@ Qs.exports;
|
|
|
11142
11142
|
var v = -1, _ = Ni, G = !0, W = i.length, C = [], K = o.length;
|
|
11143
11143
|
if (!W)
|
|
11144
11144
|
return C;
|
|
11145
|
-
h && (o =
|
|
11145
|
+
h && (o = Ee(o, St(h))), m ? (_ = wo, G = !1) : o.length >= r && (_ = si, G = !1, o = new fr(o));
|
|
11146
11146
|
e:
|
|
11147
11147
|
for (; ++v < W; ) {
|
|
11148
11148
|
var Y = i[v], H = h == null ? Y : h(Y);
|
|
@@ -11155,7 +11155,7 @@ Qs.exports;
|
|
|
11155
11155
|
}
|
|
11156
11156
|
return C;
|
|
11157
11157
|
}
|
|
11158
|
-
var Kn = Kc(cn), yc = Kc(
|
|
11158
|
+
var Kn = Kc(cn), yc = Kc(Eo, !0);
|
|
11159
11159
|
function tm(i, o) {
|
|
11160
11160
|
var h = !0;
|
|
11161
11161
|
return Kn(i, function(m, v, _) {
|
|
@@ -11172,7 +11172,7 @@ Qs.exports;
|
|
|
11172
11172
|
}
|
|
11173
11173
|
function nm(i, o, h, m) {
|
|
11174
11174
|
var v = i.length;
|
|
11175
|
-
for (h = fe(h), h < 0 && (h = -h > v ? 0 : v + h), m = m === e || m > v ? v : fe(m), m < 0 && (m += v), m = h > m ? 0 :
|
|
11175
|
+
for (h = fe(h), h < 0 && (h = -h > v ? 0 : v + h), m = m === e || m > v ? v : fe(m), m < 0 && (m += v), m = h > m ? 0 : Vu(m); h < m; )
|
|
11176
11176
|
i[h++] = o;
|
|
11177
11177
|
return i;
|
|
11178
11178
|
}
|
|
@@ -11190,11 +11190,11 @@ Qs.exports;
|
|
|
11190
11190
|
}
|
|
11191
11191
|
return v;
|
|
11192
11192
|
}
|
|
11193
|
-
var
|
|
11193
|
+
var Vo = Yc(), wc = Yc(!0);
|
|
11194
11194
|
function cn(i, o) {
|
|
11195
|
-
return i &&
|
|
11195
|
+
return i && Vo(i, o, qe);
|
|
11196
11196
|
}
|
|
11197
|
-
function
|
|
11197
|
+
function Eo(i, o) {
|
|
11198
11198
|
return i && wc(i, o, qe);
|
|
11199
11199
|
}
|
|
11200
11200
|
function ds(i, o) {
|
|
@@ -11230,7 +11230,7 @@ Qs.exports;
|
|
|
11230
11230
|
function Xo(i, o, h) {
|
|
11231
11231
|
for (var m = h ? wo : Ni, v = i[0].length, _ = i.length, G = _, W = F(_), C = 1 / 0, K = []; G--; ) {
|
|
11232
11232
|
var Y = i[G];
|
|
11233
|
-
G && o && (Y =
|
|
11233
|
+
G && o && (Y = Ee(Y, St(o))), C = st(Y.length, C), W[G] = !h && (o || v >= 120 && Y.length >= 120) ? new fr(G && Y) : e;
|
|
11234
11234
|
}
|
|
11235
11235
|
Y = i[0];
|
|
11236
11236
|
var H = -1, $ = W[0];
|
|
@@ -11312,7 +11312,7 @@ Qs.exports;
|
|
|
11312
11312
|
var H = new Jt();
|
|
11313
11313
|
if (m)
|
|
11314
11314
|
var $ = m(K, Y, C, i, o, H);
|
|
11315
|
-
if (!($ === e ? pi(Y, K, w |
|
|
11315
|
+
if (!($ === e ? pi(Y, K, w | T, m, H) : $))
|
|
11316
11316
|
return !1;
|
|
11317
11317
|
}
|
|
11318
11318
|
}
|
|
@@ -11370,11 +11370,11 @@ Qs.exports;
|
|
|
11370
11370
|
function Mc(i, o) {
|
|
11371
11371
|
return ra(i) && iu(o) ? su(hn(i), o) : function(h) {
|
|
11372
11372
|
var m = fa(h, i);
|
|
11373
|
-
return m === e && m === o ? pa(h, i) : pi(o, m, w |
|
|
11373
|
+
return m === e && m === o ? pa(h, i) : pi(o, m, w | T);
|
|
11374
11374
|
};
|
|
11375
11375
|
}
|
|
11376
11376
|
function fs(i, o, h, m, v) {
|
|
11377
|
-
i !== o &&
|
|
11377
|
+
i !== o && Vo(o, function(_, G) {
|
|
11378
11378
|
if (v || (v = new Jt()), Xe(_))
|
|
11379
11379
|
mm(i, o, G, h, fs, m, v);
|
|
11380
11380
|
else {
|
|
@@ -11392,7 +11392,7 @@ Qs.exports;
|
|
|
11392
11392
|
var Y = _ ? _(W, C, h + "", i, o, G) : e, H = Y === e;
|
|
11393
11393
|
if (H) {
|
|
11394
11394
|
var $ = de(C), ne = !$ && Nn(C), ae = !$ && !ne && Kr(C);
|
|
11395
|
-
Y = C, $ || ne || ae ? de(W) ? Y = W : ze(W) ? Y = vt(W) : ne ? (H = !1, Y = Fc(C, !0)) : ae ? (H = !1, Y = kc(C, !0)) : Y = [] : wi(C) || vr(C) ? (Y = W, vr(W) ? Y =
|
|
11395
|
+
Y = C, $ || ne || ae ? de(W) ? Y = W : ze(W) ? Y = vt(W) : ne ? (H = !1, Y = Fc(C, !0)) : ae ? (H = !1, Y = kc(C, !0)) : Y = [] : wi(C) || vr(C) ? (Y = W, vr(W) ? Y = Eu(W) : (!Xe(W) || Gn(W)) && (Y = ru(C))) : H = !1;
|
|
11396
11396
|
}
|
|
11397
11397
|
H && (G.set(C, Y), v(Y, C, m, _, G), G.delete(C)), Po(i, h, Y);
|
|
11398
11398
|
}
|
|
@@ -11402,15 +11402,15 @@ Qs.exports;
|
|
|
11402
11402
|
return o += o < 0 ? h : 0, Mn(o, h) ? i[o] : e;
|
|
11403
11403
|
}
|
|
11404
11404
|
function Zc(i, o, h) {
|
|
11405
|
-
o.length ? o =
|
|
11405
|
+
o.length ? o = Ee(o, function(_) {
|
|
11406
11406
|
return de(_) ? function(G) {
|
|
11407
11407
|
return mr(G, _.length === 1 ? _[0] : _);
|
|
11408
11408
|
} : _;
|
|
11409
11409
|
}) : o = [bt];
|
|
11410
11410
|
var m = -1;
|
|
11411
|
-
o =
|
|
11411
|
+
o = Ee(o, St(oe()));
|
|
11412
11412
|
var v = Lc(i, function(_, G, W) {
|
|
11413
|
-
var C =
|
|
11413
|
+
var C = Ee(o, function(K) {
|
|
11414
11414
|
return K(_);
|
|
11415
11415
|
});
|
|
11416
11416
|
return { criteria: C, index: ++m, value: _ };
|
|
@@ -11438,7 +11438,7 @@ Qs.exports;
|
|
|
11438
11438
|
}
|
|
11439
11439
|
function Do(i, o, h, m) {
|
|
11440
11440
|
var v = m ? Df : Pr, _ = -1, G = o.length, W = i;
|
|
11441
|
-
for (i === o && (o = vt(o)), h && (W =
|
|
11441
|
+
for (i === o && (o = vt(o)), h && (W = Ee(i, St(h))); ++_ < G; )
|
|
11442
11442
|
for (var C = 0, K = o[_], Y = h ? h(K) : K; (C = v(W, Y, C, m)) > -1; )
|
|
11443
11443
|
W !== i && rs.call(W, C, 1), rs.call(i, C, 1);
|
|
11444
11444
|
return i;
|
|
@@ -11564,7 +11564,7 @@ Qs.exports;
|
|
|
11564
11564
|
if (typeof i == "string")
|
|
11565
11565
|
return i;
|
|
11566
11566
|
if (de(i))
|
|
11567
|
-
return
|
|
11567
|
+
return Ee(i, Mt) + "";
|
|
11568
11568
|
if (Gt(i))
|
|
11569
11569
|
return hc ? hc.call(i) : "";
|
|
11570
11570
|
var o = i + "";
|
|
@@ -11575,7 +11575,7 @@ Qs.exports;
|
|
|
11575
11575
|
if (h)
|
|
11576
11576
|
G = !1, v = wo;
|
|
11577
11577
|
else if (_ >= r) {
|
|
11578
|
-
var K = o ? null :
|
|
11578
|
+
var K = o ? null : Vm(i);
|
|
11579
11579
|
if (K)
|
|
11580
11580
|
return ji(K);
|
|
11581
11581
|
G = !1, v = si, C = new fr();
|
|
@@ -11596,7 +11596,7 @@ Qs.exports;
|
|
|
11596
11596
|
function Uo(i, o) {
|
|
11597
11597
|
return o = Un(o, i), i = au(i, o), i == null || delete i[hn(zt(o))];
|
|
11598
11598
|
}
|
|
11599
|
-
function
|
|
11599
|
+
function Vc(i, o, h, m) {
|
|
11600
11600
|
return mi(i, o, h(mr(i, o)), m);
|
|
11601
11601
|
}
|
|
11602
11602
|
function ms(i, o, h, m) {
|
|
@@ -11604,7 +11604,7 @@ Qs.exports;
|
|
|
11604
11604
|
;
|
|
11605
11605
|
return h ? kt(i, m ? 0 : _, m ? _ + 1 : v) : kt(i, m ? _ + 1 : 0, m ? v : _);
|
|
11606
11606
|
}
|
|
11607
|
-
function
|
|
11607
|
+
function Ec(i, o) {
|
|
11608
11608
|
var h = i;
|
|
11609
11609
|
return h instanceof _e && (h = h.value()), xo(o, function(m, v) {
|
|
11610
11610
|
return v.func.apply(v.thisArg, zn([m], v.args));
|
|
@@ -11731,7 +11731,7 @@ Qs.exports;
|
|
|
11731
11731
|
}
|
|
11732
11732
|
function gs(i, o) {
|
|
11733
11733
|
return function(h, m) {
|
|
11734
|
-
var v = de(h) ?
|
|
11734
|
+
var v = de(h) ? Ef : qp, _ = o ? o() : {};
|
|
11735
11735
|
return v(h, i, oe(m, 2), _);
|
|
11736
11736
|
};
|
|
11737
11737
|
}
|
|
@@ -11874,7 +11874,7 @@ Qs.exports;
|
|
|
11874
11874
|
});
|
|
11875
11875
|
}
|
|
11876
11876
|
function ys(i, o, h, m, v, _, G, W, C, K) {
|
|
11877
|
-
var Y = o & k, H = o & b, $ = o &
|
|
11877
|
+
var Y = o & k, H = o & b, $ = o & S, ne = o & (Z | V), ae = o & D, me = $ ? e : gi(i);
|
|
11878
11878
|
function le() {
|
|
11879
11879
|
for (var we = arguments.length, Te = F(we), Zt = we; Zt--; )
|
|
11880
11880
|
Te[Zt] = arguments[Zt];
|
|
@@ -11920,7 +11920,7 @@ Qs.exports;
|
|
|
11920
11920
|
}
|
|
11921
11921
|
function Jo(i) {
|
|
11922
11922
|
return Sn(function(o) {
|
|
11923
|
-
return o =
|
|
11923
|
+
return o = Ee(o, St(oe())), ge(function(h) {
|
|
11924
11924
|
var m = this;
|
|
11925
11925
|
return i(o, function(v) {
|
|
11926
11926
|
return Lt(v, m, h);
|
|
@@ -11933,7 +11933,7 @@ Qs.exports;
|
|
|
11933
11933
|
var h = o.length;
|
|
11934
11934
|
if (h < 2)
|
|
11935
11935
|
return h ? Ko(o, i) : o;
|
|
11936
|
-
var m = Ko(o, ss(i /
|
|
11936
|
+
var m = Ko(o, ss(i / Vr(o)));
|
|
11937
11937
|
return Cr(o) ? Hn(jt(m), 0, i).join("") : m.slice(0, i);
|
|
11938
11938
|
}
|
|
11939
11939
|
function Cm(i, o, h, m) {
|
|
@@ -11959,7 +11959,7 @@ Qs.exports;
|
|
|
11959
11959
|
}
|
|
11960
11960
|
function Jc(i, o, h, m, v, _, G, W, C, K) {
|
|
11961
11961
|
var Y = o & Z, H = Y ? G : e, $ = Y ? e : G, ne = Y ? _ : e, ae = Y ? e : _;
|
|
11962
|
-
o |= Y ? z : X, o &= ~(Y ? X : z), o &
|
|
11962
|
+
o |= Y ? z : X, o &= ~(Y ? X : z), o & L || (o &= -4);
|
|
11963
11963
|
var me = [
|
|
11964
11964
|
i,
|
|
11965
11965
|
o,
|
|
@@ -11984,7 +11984,7 @@ Qs.exports;
|
|
|
11984
11984
|
return o(h);
|
|
11985
11985
|
};
|
|
11986
11986
|
}
|
|
11987
|
-
var
|
|
11987
|
+
var Vm = Xr && 1 / ji(new Xr([, -0]))[1] == ie ? function(i) {
|
|
11988
11988
|
return new Xr(i);
|
|
11989
11989
|
} : wa;
|
|
11990
11990
|
function Qc(i) {
|
|
@@ -11994,7 +11994,7 @@ Qs.exports;
|
|
|
11994
11994
|
};
|
|
11995
11995
|
}
|
|
11996
11996
|
function Ln(i, o, h, m, v, _, G, W) {
|
|
11997
|
-
var C = o &
|
|
11997
|
+
var C = o & S;
|
|
11998
11998
|
if (!C && typeof i != "function")
|
|
11999
11999
|
throw new At(l);
|
|
12000
12000
|
var K = m ? m.length : 0;
|
|
@@ -12014,9 +12014,9 @@ Qs.exports;
|
|
|
12014
12014
|
G,
|
|
12015
12015
|
W
|
|
12016
12016
|
];
|
|
12017
|
-
if ($ && jm(ne, $), i = ne[0], o = ne[1], h = ne[2], m = ne[3], v = ne[4], W = ne[9] = ne[9] === e ? C ? 0 : i.length : Be(ne[9] - K, 0), !W && o & (Z |
|
|
12017
|
+
if ($ && jm(ne, $), i = ne[0], o = ne[1], h = ne[2], m = ne[3], v = ne[4], W = ne[9] = ne[9] === e ? C ? 0 : i.length : Be(ne[9] - K, 0), !W && o & (Z | V) && (o &= -25), !o || o == b)
|
|
12018
12018
|
var ae = Rm(i, o, h);
|
|
12019
|
-
else o == Z || o ==
|
|
12019
|
+
else o == Z || o == V ? ae = Pm(i, o, W) : (o == z || o == (b | z)) && !v.length ? ae = Cm(i, o, h, m) : ae = ys.apply(e, ne);
|
|
12020
12020
|
var me = $ ? Rc : lu;
|
|
12021
12021
|
return cu(me(ae, ne), i, o);
|
|
12022
12022
|
}
|
|
@@ -12026,7 +12026,7 @@ Qs.exports;
|
|
|
12026
12026
|
function $c(i, o, h, m, v, _) {
|
|
12027
12027
|
return Xe(i) && Xe(o) && (_.set(o, i), fs(i, o, e, $c, _), _.delete(o)), i;
|
|
12028
12028
|
}
|
|
12029
|
-
function
|
|
12029
|
+
function Em(i) {
|
|
12030
12030
|
return wi(i) ? e : i;
|
|
12031
12031
|
}
|
|
12032
12032
|
function eu(i, o, h, m, v, _) {
|
|
@@ -12036,7 +12036,7 @@ Qs.exports;
|
|
|
12036
12036
|
var K = _.get(i), Y = _.get(o);
|
|
12037
12037
|
if (K && Y)
|
|
12038
12038
|
return K == o && Y == i;
|
|
12039
|
-
var H = -1, $ = !0, ne = h &
|
|
12039
|
+
var H = -1, $ = !0, ne = h & T ? new fr() : e;
|
|
12040
12040
|
for (_.set(i, o), _.set(o, i); ++H < W; ) {
|
|
12041
12041
|
var ae = i[H], me = o[H];
|
|
12042
12042
|
if (m)
|
|
@@ -12077,7 +12077,7 @@ Qs.exports;
|
|
|
12077
12077
|
case He:
|
|
12078
12078
|
return i.name == o.name && i.message == o.message;
|
|
12079
12079
|
case ir:
|
|
12080
|
-
case
|
|
12080
|
+
case En:
|
|
12081
12081
|
return i == o + "";
|
|
12082
12082
|
case Ae:
|
|
12083
12083
|
var W = Go;
|
|
@@ -12088,7 +12088,7 @@ Qs.exports;
|
|
|
12088
12088
|
var K = G.get(i);
|
|
12089
12089
|
if (K)
|
|
12090
12090
|
return K == o;
|
|
12091
|
-
m |=
|
|
12091
|
+
m |= T, G.set(i, o);
|
|
12092
12092
|
var Y = eu(W(i), W(o), m, v, _, G);
|
|
12093
12093
|
return G.delete(i), Y;
|
|
12094
12094
|
case An:
|
|
@@ -12265,13 +12265,13 @@ Qs.exports;
|
|
|
12265
12265
|
case ii:
|
|
12266
12266
|
case Wr:
|
|
12267
12267
|
case ar:
|
|
12268
|
-
case
|
|
12268
|
+
case E:
|
|
12269
12269
|
case Q:
|
|
12270
12270
|
return kc(i, h);
|
|
12271
12271
|
case Ae:
|
|
12272
12272
|
return new m();
|
|
12273
12273
|
case Ut:
|
|
12274
|
-
case
|
|
12274
|
+
case En:
|
|
12275
12275
|
return new m(i);
|
|
12276
12276
|
case ir:
|
|
12277
12277
|
return Mm(i);
|
|
@@ -12345,10 +12345,10 @@ Qs.exports;
|
|
|
12345
12345
|
return o;
|
|
12346
12346
|
}
|
|
12347
12347
|
function jm(i, o) {
|
|
12348
|
-
var h = i[1], m = o[1], v = h | m, _ = v < (b |
|
|
12348
|
+
var h = i[1], m = o[1], v = h | m, _ = v < (b | S | k), G = m == k && h == Z || m == k && h == P && i[7].length <= o[8] || m == (k | P) && o[7].length <= o[8] && h == Z;
|
|
12349
12349
|
if (!(_ || G))
|
|
12350
12350
|
return i;
|
|
12351
|
-
m & b && (i[2] = o[2], v |= h & b ? 0 :
|
|
12351
|
+
m & b && (i[2] = o[2], v |= h & b ? 0 : L);
|
|
12352
12352
|
var W = o[3];
|
|
12353
12353
|
if (W) {
|
|
12354
12354
|
var C = i[3];
|
|
@@ -12443,7 +12443,7 @@ Qs.exports;
|
|
|
12443
12443
|
return "";
|
|
12444
12444
|
}
|
|
12445
12445
|
function $m(i, o) {
|
|
12446
|
-
return
|
|
12446
|
+
return Et(Fe, function(h) {
|
|
12447
12447
|
var m = "_." + h[0];
|
|
12448
12448
|
o & h[1] && !Ni(i, m) && i.push(m);
|
|
12449
12449
|
}), i.sort();
|
|
@@ -12553,13 +12553,13 @@ Qs.exports;
|
|
|
12553
12553
|
return o ? kt(i, 0, -1) : [];
|
|
12554
12554
|
}
|
|
12555
12555
|
var g0 = ge(function(i) {
|
|
12556
|
-
var o =
|
|
12556
|
+
var o = Ee(i, No);
|
|
12557
12557
|
return o.length && o[0] === i[0] ? Xo(o) : [];
|
|
12558
12558
|
}), y0 = ge(function(i) {
|
|
12559
|
-
var o = zt(i), h =
|
|
12559
|
+
var o = zt(i), h = Ee(i, No);
|
|
12560
12560
|
return o === zt(h) ? o = e : h.pop(), h.length && h[0] === i[0] ? Xo(h, oe(o, 2)) : [];
|
|
12561
12561
|
}), v0 = ge(function(i) {
|
|
12562
|
-
var o = zt(i), h =
|
|
12562
|
+
var o = zt(i), h = Ee(i, No);
|
|
12563
12563
|
return o = typeof o == "function" ? o : e, o && h.pop(), h.length && h[0] === i[0] ? Xo(h, e, o) : [];
|
|
12564
12564
|
});
|
|
12565
12565
|
function w0(i, o) {
|
|
@@ -12591,7 +12591,7 @@ Qs.exports;
|
|
|
12591
12591
|
}
|
|
12592
12592
|
var S0 = Sn(function(i, o) {
|
|
12593
12593
|
var h = i == null ? 0 : i.length, m = Co(i, o);
|
|
12594
|
-
return Ic(i,
|
|
12594
|
+
return Ic(i, Ee(o, function(v) {
|
|
12595
12595
|
return Mn(v, h) ? +v : v;
|
|
12596
12596
|
}).sort(zc)), m;
|
|
12597
12597
|
});
|
|
@@ -12643,10 +12643,10 @@ Qs.exports;
|
|
|
12643
12643
|
}
|
|
12644
12644
|
return -1;
|
|
12645
12645
|
}
|
|
12646
|
-
function
|
|
12646
|
+
function V0(i) {
|
|
12647
12647
|
return i && i.length ? Pc(i) : [];
|
|
12648
12648
|
}
|
|
12649
|
-
function
|
|
12649
|
+
function E0(i, o) {
|
|
12650
12650
|
return i && i.length ? Pc(i, oe(o, 2)) : [];
|
|
12651
12651
|
}
|
|
12652
12652
|
function A0(i) {
|
|
@@ -12692,14 +12692,14 @@ Qs.exports;
|
|
|
12692
12692
|
if (ze(h))
|
|
12693
12693
|
return o = Be(h.length, o), !0;
|
|
12694
12694
|
}), So(o, function(h) {
|
|
12695
|
-
return
|
|
12695
|
+
return Ee(i, _o(h));
|
|
12696
12696
|
});
|
|
12697
12697
|
}
|
|
12698
12698
|
function vu(i, o) {
|
|
12699
12699
|
if (!(i && i.length))
|
|
12700
12700
|
return [];
|
|
12701
12701
|
var h = la(i);
|
|
12702
|
-
return o == null ? h :
|
|
12702
|
+
return o == null ? h : Ee(h, function(m) {
|
|
12703
12703
|
return Lt(o, e, m);
|
|
12704
12704
|
});
|
|
12705
12705
|
}
|
|
@@ -12782,7 +12782,7 @@ Qs.exports;
|
|
|
12782
12782
|
return this.thru(aa);
|
|
12783
12783
|
}
|
|
12784
12784
|
function cg() {
|
|
12785
|
-
return
|
|
12785
|
+
return Ec(this.__wrapped__, this.__actions__);
|
|
12786
12786
|
}
|
|
12787
12787
|
var ug = gs(function(i, o, h) {
|
|
12788
12788
|
We.call(i, h) ? ++i[h] : Tn(i, h, 1);
|
|
@@ -12806,7 +12806,7 @@ Qs.exports;
|
|
|
12806
12806
|
return h = h === e ? 1 : fe(h), et(Ss(i, o), h);
|
|
12807
12807
|
}
|
|
12808
12808
|
function xu(i, o) {
|
|
12809
|
-
var h = de(i) ?
|
|
12809
|
+
var h = de(i) ? Et : Kn;
|
|
12810
12810
|
return h(i, oe(o, 3));
|
|
12811
12811
|
}
|
|
12812
12812
|
function bu(i, o) {
|
|
@@ -12830,7 +12830,7 @@ Qs.exports;
|
|
|
12830
12830
|
Tn(i, h, o);
|
|
12831
12831
|
});
|
|
12832
12832
|
function Ss(i, o) {
|
|
12833
|
-
var h = de(i) ?
|
|
12833
|
+
var h = de(i) ? Ee : Lc;
|
|
12834
12834
|
return h(i, oe(o, 3));
|
|
12835
12835
|
}
|
|
12836
12836
|
function _g(i, o, h, m) {
|
|
@@ -12870,7 +12870,7 @@ Qs.exports;
|
|
|
12870
12870
|
if (i == null)
|
|
12871
12871
|
return 0;
|
|
12872
12872
|
if (wt(i))
|
|
12873
|
-
return Is(i) ?
|
|
12873
|
+
return Is(i) ? Vr(i) : i.length;
|
|
12874
12874
|
var o = ot(i);
|
|
12875
12875
|
return o == Ae || o == Tt ? i.size : ko(i).length;
|
|
12876
12876
|
}
|
|
@@ -12913,7 +12913,7 @@ Qs.exports;
|
|
|
12913
12913
|
}
|
|
12914
12914
|
return Ln(i, m, o, h, v);
|
|
12915
12915
|
}), Lu = ge(function(i, o, h) {
|
|
12916
|
-
var m = b |
|
|
12916
|
+
var m = b | S;
|
|
12917
12917
|
if (h.length) {
|
|
12918
12918
|
var v = Dn(h, Or(Lu));
|
|
12919
12919
|
m |= z;
|
|
@@ -12927,7 +12927,7 @@ Qs.exports;
|
|
|
12927
12927
|
}
|
|
12928
12928
|
function Mu(i, o, h) {
|
|
12929
12929
|
o = h ? e : o;
|
|
12930
|
-
var m = Ln(i,
|
|
12930
|
+
var m = Ln(i, V, e, e, e, e, e, o);
|
|
12931
12931
|
return m.placeholder = Mu.placeholder, m;
|
|
12932
12932
|
}
|
|
12933
12933
|
function Gu(i, o, h) {
|
|
@@ -12977,9 +12977,9 @@ Qs.exports;
|
|
|
12977
12977
|
}
|
|
12978
12978
|
return Wt.cancel = Zt, Wt.flush = pt, Wt;
|
|
12979
12979
|
}
|
|
12980
|
-
var
|
|
12980
|
+
var Vg = ge(function(i, o) {
|
|
12981
12981
|
return gc(i, 1, o);
|
|
12982
|
-
}),
|
|
12982
|
+
}), Eg = ge(function(i, o, h) {
|
|
12983
12983
|
return gc(i, Dt(o) || 0, h);
|
|
12984
12984
|
});
|
|
12985
12985
|
function Ag(i) {
|
|
@@ -13020,7 +13020,7 @@ Qs.exports;
|
|
|
13020
13020
|
return Tu(2, i);
|
|
13021
13021
|
}
|
|
13022
13022
|
var Fg = Lm(function(i, o) {
|
|
13023
|
-
o = o.length == 1 && de(o[0]) ?
|
|
13023
|
+
o = o.length == 1 && de(o[0]) ? Ee(o[0], St(oe())) : Ee(et(o, 1), St(oe()));
|
|
13024
13024
|
var h = o.length;
|
|
13025
13025
|
return ge(function(m) {
|
|
13026
13026
|
for (var v = -1, _ = st(m.length, h); ++v < _; )
|
|
@@ -13145,7 +13145,7 @@ Qs.exports;
|
|
|
13145
13145
|
if (!Xe(i))
|
|
13146
13146
|
return !1;
|
|
13147
13147
|
var o = dt(i);
|
|
13148
|
-
return o == xn || o ==
|
|
13148
|
+
return o == xn || o == Vn || o == Je || o == Oi;
|
|
13149
13149
|
}
|
|
13150
13150
|
function Wu(i) {
|
|
13151
13151
|
return typeof i == "number" && i == fe(i);
|
|
@@ -13199,7 +13199,7 @@ Qs.exports;
|
|
|
13199
13199
|
}
|
|
13200
13200
|
var Pu = Hl ? St(Hl) : dm;
|
|
13201
13201
|
function Is(i) {
|
|
13202
|
-
return typeof i == "string" || !de(i) && ke(i) && dt(i) ==
|
|
13202
|
+
return typeof i == "string" || !de(i) && ke(i) && dt(i) == En;
|
|
13203
13203
|
}
|
|
13204
13204
|
function Gt(i) {
|
|
13205
13205
|
return typeof i == "symbol" || ke(i) && dt(i) == An;
|
|
@@ -13240,7 +13240,7 @@ Qs.exports;
|
|
|
13240
13240
|
var o = Zn(i), h = o % 1;
|
|
13241
13241
|
return o === o ? h ? o - h : o : 0;
|
|
13242
13242
|
}
|
|
13243
|
-
function
|
|
13243
|
+
function Vu(i) {
|
|
13244
13244
|
return i ? pr(fe(i), 0, ve) : 0;
|
|
13245
13245
|
}
|
|
13246
13246
|
function Dt(i) {
|
|
@@ -13258,7 +13258,7 @@ Qs.exports;
|
|
|
13258
13258
|
var h = qd.test(i);
|
|
13259
13259
|
return h || ef.test(i) ? Cf(i.slice(2), h ? 2 : 8) : Qd.test(i) ? pe : +i;
|
|
13260
13260
|
}
|
|
13261
|
-
function
|
|
13261
|
+
function Eu(i) {
|
|
13262
13262
|
return un(i, xt(i));
|
|
13263
13263
|
}
|
|
13264
13264
|
function wy(i) {
|
|
@@ -13301,10 +13301,10 @@ Qs.exports;
|
|
|
13301
13301
|
return jl(i, oe(o, 3), cn);
|
|
13302
13302
|
}
|
|
13303
13303
|
function Gy(i, o) {
|
|
13304
|
-
return jl(i, oe(o, 3),
|
|
13304
|
+
return jl(i, oe(o, 3), Eo);
|
|
13305
13305
|
}
|
|
13306
13306
|
function Zy(i, o) {
|
|
13307
|
-
return i == null ? i :
|
|
13307
|
+
return i == null ? i : Vo(i, oe(o, 3), xt);
|
|
13308
13308
|
}
|
|
13309
13309
|
function Wy(i, o) {
|
|
13310
13310
|
return i == null ? i : wc(i, oe(o, 3), xt);
|
|
@@ -13313,7 +13313,7 @@ Qs.exports;
|
|
|
13313
13313
|
return i && cn(i, oe(o, 3));
|
|
13314
13314
|
}
|
|
13315
13315
|
function Ry(i, o) {
|
|
13316
|
-
return i &&
|
|
13316
|
+
return i && Eo(i, oe(o, 3));
|
|
13317
13317
|
}
|
|
13318
13318
|
function Py(i) {
|
|
13319
13319
|
return i == null ? [] : ds(i, qe(i));
|
|
@@ -13325,13 +13325,13 @@ Qs.exports;
|
|
|
13325
13325
|
var m = i == null ? e : mr(i, o);
|
|
13326
13326
|
return m === e ? h : m;
|
|
13327
13327
|
}
|
|
13328
|
-
function
|
|
13328
|
+
function Vy(i, o) {
|
|
13329
13329
|
return i != null && nu(i, o, rm);
|
|
13330
13330
|
}
|
|
13331
13331
|
function pa(i, o) {
|
|
13332
13332
|
return i != null && nu(i, o, im);
|
|
13333
13333
|
}
|
|
13334
|
-
var
|
|
13334
|
+
var Ey = Bc(function(i, o, h) {
|
|
13335
13335
|
o != null && typeof o.toString != "function" && (o = $i.call(o)), i[o] = h;
|
|
13336
13336
|
}, ga(bt)), Ay = Bc(function(i, o, h) {
|
|
13337
13337
|
o != null && typeof o.toString != "function" && (o = $i.call(o)), We.call(i, o) ? i[o].push(h) : i[o] = [h];
|
|
@@ -13363,9 +13363,9 @@ Qs.exports;
|
|
|
13363
13363
|
if (i == null)
|
|
13364
13364
|
return h;
|
|
13365
13365
|
var m = !1;
|
|
13366
|
-
o =
|
|
13366
|
+
o = Ee(o, function(_) {
|
|
13367
13367
|
return _ = Un(_, i), m || (m = _.length > 1), _;
|
|
13368
|
-
}), un(i, $o(i), h), m && (h = Ft(h, f | g | y,
|
|
13368
|
+
}), un(i, $o(i), h), m && (h = Ft(h, f | g | y, Em));
|
|
13369
13369
|
for (var v = o.length; v--; )
|
|
13370
13370
|
Uo(h, o[v]);
|
|
13371
13371
|
return h;
|
|
@@ -13379,7 +13379,7 @@ Qs.exports;
|
|
|
13379
13379
|
function Fu(i, o) {
|
|
13380
13380
|
if (i == null)
|
|
13381
13381
|
return {};
|
|
13382
|
-
var h =
|
|
13382
|
+
var h = Ee($o(i), function(m) {
|
|
13383
13383
|
return [m];
|
|
13384
13384
|
});
|
|
13385
13385
|
return o = oe(o), Wc(i, h, function(m, v) {
|
|
@@ -13408,7 +13408,7 @@ Qs.exports;
|
|
|
13408
13408
|
var _ = i && i.constructor;
|
|
13409
13409
|
v ? h = m ? new _() : [] : Xe(i) ? h = Gn(_) ? kr(ns(i)) : {} : h = {};
|
|
13410
13410
|
}
|
|
13411
|
-
return (v ?
|
|
13411
|
+
return (v ? Et : cn)(i, function(G, W, C) {
|
|
13412
13412
|
return o(h, G, W, C);
|
|
13413
13413
|
}), h;
|
|
13414
13414
|
}
|
|
@@ -13416,10 +13416,10 @@ Qs.exports;
|
|
|
13416
13416
|
return i == null ? !0 : Uo(i, o);
|
|
13417
13417
|
}
|
|
13418
13418
|
function jy(i, o, h) {
|
|
13419
|
-
return i == null ? i :
|
|
13419
|
+
return i == null ? i : Vc(i, o, Bo(h));
|
|
13420
13420
|
}
|
|
13421
13421
|
function Jy(i, o, h, m) {
|
|
13422
|
-
return m = typeof m == "function" ? m : e, i == null ? i :
|
|
13422
|
+
return m = typeof m == "function" ? m : e, i == null ? i : Vc(i, o, Bo(h), m);
|
|
13423
13423
|
}
|
|
13424
13424
|
function Yr(i) {
|
|
13425
13425
|
return i == null ? [] : Mo(i, qe(i));
|
|
@@ -13473,7 +13473,7 @@ Qs.exports;
|
|
|
13473
13473
|
}), a1 = Uc("toLowerCase");
|
|
13474
13474
|
function l1(i, o, h) {
|
|
13475
13475
|
i = Ze(i), o = fe(o);
|
|
13476
|
-
var m = o ?
|
|
13476
|
+
var m = o ? Vr(i) : 0;
|
|
13477
13477
|
if (!o || m >= o)
|
|
13478
13478
|
return i;
|
|
13479
13479
|
var v = (o - m) / 2;
|
|
@@ -13481,12 +13481,12 @@ Qs.exports;
|
|
|
13481
13481
|
}
|
|
13482
13482
|
function c1(i, o, h) {
|
|
13483
13483
|
i = Ze(i), o = fe(o);
|
|
13484
|
-
var m = o ?
|
|
13484
|
+
var m = o ? Vr(i) : 0;
|
|
13485
13485
|
return o && m < o ? i + ws(o - m, h) : i;
|
|
13486
13486
|
}
|
|
13487
13487
|
function u1(i, o, h) {
|
|
13488
13488
|
i = Ze(i), o = fe(o);
|
|
13489
|
-
var m = o ?
|
|
13489
|
+
var m = o ? Vr(i) : 0;
|
|
13490
13490
|
return o && m < o ? ws(o - m, h) + i : i;
|
|
13491
13491
|
}
|
|
13492
13492
|
function h1(i, o, h) {
|
|
@@ -13595,7 +13595,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13595
13595
|
}
|
|
13596
13596
|
if (h >= _)
|
|
13597
13597
|
return i;
|
|
13598
|
-
var W = h -
|
|
13598
|
+
var W = h - Vr(m);
|
|
13599
13599
|
if (W < 1)
|
|
13600
13600
|
return m;
|
|
13601
13601
|
var C = G ? Hn(G, 0, W).join("") : i.slice(0, W);
|
|
@@ -13630,13 +13630,13 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13630
13630
|
return ha(h) ? h : new he(h);
|
|
13631
13631
|
}
|
|
13632
13632
|
}), G1 = Sn(function(i, o) {
|
|
13633
|
-
return
|
|
13633
|
+
return Et(o, function(h) {
|
|
13634
13634
|
h = hn(h), Tn(i, h, ca(i[h], i));
|
|
13635
13635
|
}), i;
|
|
13636
13636
|
});
|
|
13637
13637
|
function Z1(i) {
|
|
13638
13638
|
var o = i == null ? 0 : i.length, h = oe();
|
|
13639
|
-
return i = o ?
|
|
13639
|
+
return i = o ? Ee(i, function(m) {
|
|
13640
13640
|
if (typeof m[1] != "function")
|
|
13641
13641
|
throw new At(l);
|
|
13642
13642
|
return [h(m[0]), m[1]];
|
|
@@ -13669,10 +13669,10 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13669
13669
|
function C1(i) {
|
|
13670
13670
|
return Sc(Ft(i, f));
|
|
13671
13671
|
}
|
|
13672
|
-
function
|
|
13672
|
+
function V1(i, o) {
|
|
13673
13673
|
return Mc(i, Ft(o, f));
|
|
13674
13674
|
}
|
|
13675
|
-
var
|
|
13675
|
+
var E1 = ge(function(i, o) {
|
|
13676
13676
|
return function(h) {
|
|
13677
13677
|
return fi(h, i, o);
|
|
13678
13678
|
};
|
|
@@ -13685,7 +13685,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13685
13685
|
var m = qe(o), v = ds(o, m);
|
|
13686
13686
|
h == null && !(Xe(o) && (v.length || !m.length)) && (h = o, o = i, i = this, v = ds(o, qe(o)));
|
|
13687
13687
|
var _ = !(Xe(h) && "chain" in h) || !!h.chain, G = Gn(i);
|
|
13688
|
-
return
|
|
13688
|
+
return Et(v, function(W) {
|
|
13689
13689
|
var C = o[W];
|
|
13690
13690
|
i[W] = C, G && (i.prototype[W] = function() {
|
|
13691
13691
|
var K = this.__chain__;
|
|
@@ -13707,7 +13707,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13707
13707
|
return Gc(o, i);
|
|
13708
13708
|
});
|
|
13709
13709
|
}
|
|
13710
|
-
var k1 = Jo(
|
|
13710
|
+
var k1 = Jo(Ee), z1 = Jo(Bl), D1 = Jo(bo);
|
|
13711
13711
|
function Uu(i) {
|
|
13712
13712
|
return ra(i) ? _o(hn(i)) : ym(i);
|
|
13713
13713
|
}
|
|
@@ -13742,7 +13742,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13742
13742
|
return v;
|
|
13743
13743
|
}
|
|
13744
13744
|
function j1(i) {
|
|
13745
|
-
return de(i) ?
|
|
13745
|
+
return de(i) ? Ee(i, hn) : Gt(i) ? [i] : vt(hu(Ze(i)));
|
|
13746
13746
|
}
|
|
13747
13747
|
function J1(i) {
|
|
13748
13748
|
var o = ++ap;
|
|
@@ -13782,14 +13782,14 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13782
13782
|
function hv(i, o) {
|
|
13783
13783
|
return i && i.length ? Lo(i, oe(o, 2)) : 0;
|
|
13784
13784
|
}
|
|
13785
|
-
return x.after = Cg, x.ary = _u, x.assign = xy, x.assignIn = Au, x.assignInWith = Rs, x.assignWith = by, x.at = _y, x.before = Tu, x.bind = ca, x.bindAll = G1, x.bindKey = Lu, x.castArray = Ug, x.chain = wu, x.chunk = e0, x.compact = t0, x.concat = n0, x.cond = Z1, x.conforms = W1, x.constant = ga, x.countBy = ug, x.create = Ty, x.curry = Su, x.curryRight = Mu, x.debounce = Gu, x.defaults = Ly, x.defaultsDeep = Sy, x.defer =
|
|
13785
|
+
return x.after = Cg, x.ary = _u, x.assign = xy, x.assignIn = Au, x.assignInWith = Rs, x.assignWith = by, x.at = _y, x.before = Tu, x.bind = ca, x.bindAll = G1, x.bindKey = Lu, x.castArray = Ug, x.chain = wu, x.chunk = e0, x.compact = t0, x.concat = n0, x.cond = Z1, x.conforms = W1, x.constant = ga, x.countBy = ug, x.create = Ty, x.curry = Su, x.curryRight = Mu, x.debounce = Gu, x.defaults = Ly, x.defaultsDeep = Sy, x.defer = Vg, x.delay = Eg, x.difference = r0, x.differenceBy = i0, x.differenceWith = s0, x.drop = o0, x.dropRight = a0, x.dropRightWhile = l0, x.dropWhile = c0, x.fill = u0, x.filter = dg, x.flatMap = mg, x.flatMapDeep = gg, x.flatMapDepth = yg, x.flatten = mu, x.flattenDeep = h0, x.flattenDepth = d0, x.flip = Ag, x.flow = R1, x.flowRight = P1, x.fromPairs = f0, x.functions = Py, x.functionsIn = Cy, x.groupBy = vg, x.initial = m0, x.intersection = g0, x.intersectionBy = y0, x.intersectionWith = v0, x.invert = Ey, x.invertBy = Ay, x.invokeMap = xg, x.iteratee = ya, x.keyBy = bg, x.keys = qe, x.keysIn = xt, x.map = Ss, x.mapKeys = Fy, x.mapValues = ky, x.matches = C1, x.matchesProperty = V1, x.memoize = Gs, x.merge = zy, x.mergeWith = Xu, x.method = E1, x.methodOf = A1, x.mixin = va, x.negate = Zs, x.nthArg = F1, x.omit = Dy, x.omitBy = Oy, x.once = Xg, x.orderBy = _g, x.over = k1, x.overArgs = Fg, x.overEvery = z1, x.overSome = D1, x.partial = ua, x.partialRight = Zu, x.partition = Tg, x.pick = Ky, x.pickBy = Fu, x.property = Uu, x.propertyOf = O1, x.pull = _0, x.pullAll = yu, x.pullAllBy = T0, x.pullAllWith = L0, x.pullAt = S0, x.range = K1, x.rangeRight = Y1, x.rearg = kg, x.reject = Mg, x.remove = M0, x.rest = zg, x.reverse = aa, x.sampleSize = Zg, x.set = Uy, x.setWith = Hy, x.shuffle = Wg, x.slice = G0, x.sortBy = Pg, x.sortedUniq = V0, x.sortedUniqBy = E0, x.split = m1, x.spread = Dg, x.tail = A0, x.take = X0, x.takeRight = F0, x.takeRightWhile = k0, x.takeWhile = z0, x.tap = tg, x.throttle = Og, x.thru = Ls, x.toArray = Cu, x.toPairs = ku, x.toPairsIn = zu, x.toPath = j1, x.toPlainObject = Eu, x.transform = Ny, x.unary = Kg, x.union = D0, x.unionBy = O0, x.unionWith = K0, x.uniq = Y0, x.uniqBy = U0, x.uniqWith = H0, x.unset = By, x.unzip = la, x.unzipWith = vu, x.update = jy, x.updateWith = Jy, x.values = Yr, x.valuesIn = Qy, x.without = N0, x.words = Ku, x.wrap = Yg, x.xor = B0, x.xorBy = j0, x.xorWith = J0, x.zip = Q0, x.zipObject = q0, x.zipObjectDeep = $0, x.zipWith = eg, x.entries = ku, x.entriesIn = zu, x.extend = Au, x.extendWith = Rs, va(x, x), x.add = Q1, x.attempt = Yu, x.camelCase = t1, x.capitalize = Du, x.ceil = q1, x.clamp = qy, x.clone = Hg, x.cloneDeep = Bg, x.cloneDeepWith = jg, x.cloneWith = Ng, x.conformsTo = Jg, x.deburr = Ou, x.defaultTo = I1, x.divide = $1, x.endsWith = n1, x.eq = Qt, x.escape = r1, x.escapeRegExp = i1, x.every = hg, x.find = fg, x.findIndex = fu, x.findKey = My, x.findLast = pg, x.findLastIndex = pu, x.findLastKey = Gy, x.floor = ev, x.forEach = xu, x.forEachRight = bu, x.forIn = Zy, x.forInRight = Wy, x.forOwn = Iy, x.forOwnRight = Ry, x.get = fa, x.gt = Qg, x.gte = qg, x.has = Vy, x.hasIn = pa, x.head = gu, x.identity = bt, x.includes = wg, x.indexOf = p0, x.inRange = $y, x.invoke = Xy, x.isArguments = vr, x.isArray = de, x.isArrayBuffer = $g, x.isArrayLike = wt, x.isArrayLikeObject = ze, x.isBoolean = ey, x.isBuffer = Nn, x.isDate = ty, x.isElement = ny, x.isEmpty = ry, x.isEqual = iy, x.isEqualWith = sy, x.isError = ha, x.isFinite = oy, x.isFunction = Gn, x.isInteger = Wu, x.isLength = Ws, x.isMap = Iu, x.isMatch = ay, x.isMatchWith = ly, x.isNaN = cy, x.isNative = uy, x.isNil = dy, x.isNull = hy, x.isNumber = Ru, x.isObject = Xe, x.isObjectLike = ke, x.isPlainObject = wi, x.isRegExp = da, x.isSafeInteger = fy, x.isSet = Pu, x.isString = Is, x.isSymbol = Gt, x.isTypedArray = Kr, x.isUndefined = py, x.isWeakMap = my, x.isWeakSet = gy, x.join = w0, x.kebabCase = s1, x.last = zt, x.lastIndexOf = x0, x.lowerCase = o1, x.lowerFirst = a1, x.lt = yy, x.lte = vy, x.max = tv, x.maxBy = nv, x.mean = rv, x.meanBy = iv, x.min = sv, x.minBy = ov, x.stubArray = xa, x.stubFalse = ba, x.stubObject = U1, x.stubString = H1, x.stubTrue = N1, x.multiply = av, x.nth = b0, x.noConflict = X1, x.noop = wa, x.now = Ms, x.pad = l1, x.padEnd = c1, x.padStart = u1, x.parseInt = h1, x.random = e1, x.reduce = Lg, x.reduceRight = Sg, x.repeat = d1, x.replace = f1, x.result = Yy, x.round = lv, x.runInContext = R, x.sample = Gg, x.size = Ig, x.snakeCase = p1, x.some = Rg, x.sortedIndex = Z0, x.sortedIndexBy = W0, x.sortedIndexOf = I0, x.sortedLastIndex = R0, x.sortedLastIndexBy = P0, x.sortedLastIndexOf = C0, x.startCase = g1, x.startsWith = y1, x.subtract = cv, x.sum = uv, x.sumBy = hv, x.template = v1, x.times = B1, x.toFinite = Zn, x.toInteger = fe, x.toLength = Vu, x.toLower = w1, x.toNumber = Dt, x.toSafeInteger = wy, x.toString = Ze, x.toUpper = x1, x.trim = b1, x.trimEnd = _1, x.trimStart = T1, x.truncate = L1, x.unescape = S1, x.uniqueId = J1, x.upperCase = M1, x.upperFirst = ma, x.each = xu, x.eachRight = bu, x.first = gu, va(x, function() {
|
|
13786
13786
|
var i = {};
|
|
13787
13787
|
return cn(x, function(o, h) {
|
|
13788
13788
|
We.call(x.prototype, h) || (i[h] = o);
|
|
13789
13789
|
}), i;
|
|
13790
|
-
}(), { chain: !1 }), x.VERSION = n,
|
|
13790
|
+
}(), { chain: !1 }), x.VERSION = n, Et(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(i) {
|
|
13791
13791
|
x[i].placeholder = x;
|
|
13792
|
-
}),
|
|
13792
|
+
}), Et(["drop", "take"], function(i, o) {
|
|
13793
13793
|
_e.prototype[i] = function(h) {
|
|
13794
13794
|
h = h === e ? 1 : Be(fe(h), 0);
|
|
13795
13795
|
var m = this.__filtered__ && !o ? new _e(this) : this.clone();
|
|
@@ -13800,7 +13800,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13800
13800
|
}, _e.prototype[i + "Right"] = function(h) {
|
|
13801
13801
|
return this.reverse()[i](h).reverse();
|
|
13802
13802
|
};
|
|
13803
|
-
}),
|
|
13803
|
+
}), Et(["filter", "map", "takeWhile"], function(i, o) {
|
|
13804
13804
|
var h = o + 1, m = h == B || h == N;
|
|
13805
13805
|
_e.prototype[i] = function(v) {
|
|
13806
13806
|
var _ = this.clone();
|
|
@@ -13809,12 +13809,12 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13809
13809
|
type: h
|
|
13810
13810
|
}), _.__filtered__ = _.__filtered__ || m, _;
|
|
13811
13811
|
};
|
|
13812
|
-
}),
|
|
13812
|
+
}), Et(["head", "last"], function(i, o) {
|
|
13813
13813
|
var h = "take" + (o ? "Right" : "");
|
|
13814
13814
|
_e.prototype[i] = function() {
|
|
13815
13815
|
return this[h](1).value()[0];
|
|
13816
13816
|
};
|
|
13817
|
-
}),
|
|
13817
|
+
}), Et(["initial", "tail"], function(i, o) {
|
|
13818
13818
|
var h = "drop" + (o ? "" : "Right");
|
|
13819
13819
|
_e.prototype[i] = function() {
|
|
13820
13820
|
return this.__filtered__ ? new _e(this) : this[h](1);
|
|
@@ -13855,7 +13855,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13855
13855
|
}
|
|
13856
13856
|
return ae && me ? i.apply(this, W) : (le = this.thru(H), ae ? m ? le.value()[0] : le.value() : le);
|
|
13857
13857
|
});
|
|
13858
|
-
}),
|
|
13858
|
+
}), Et(["pop", "push", "shift", "sort", "splice", "unshift"], function(i) {
|
|
13859
13859
|
var o = Ji[i], h = /^(?:push|sort|unshift)$/.test(i) ? "tap" : "thru", m = /^(?:pop|shift)$/.test(i);
|
|
13860
13860
|
x.prototype[i] = function() {
|
|
13861
13861
|
var v = arguments;
|
|
@@ -13873,12 +13873,12 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
13873
13873
|
var m = h.name + "";
|
|
13874
13874
|
We.call(Fr, m) || (Fr[m] = []), Fr[m].push({ name: o, func: h });
|
|
13875
13875
|
}
|
|
13876
|
-
}), Fr[ys(e,
|
|
13876
|
+
}), Fr[ys(e, S).name] = [{
|
|
13877
13877
|
name: "wrapper",
|
|
13878
13878
|
func: e
|
|
13879
13879
|
}], _e.prototype.clone = Sp, _e.prototype.reverse = Mp, _e.prototype.value = Gp, x.prototype.at = ng, x.prototype.chain = rg, x.prototype.commit = ig, x.prototype.next = sg, x.prototype.plant = ag, x.prototype.reverse = lg, x.prototype.toJSON = x.prototype.valueOf = x.prototype.value = cg, x.prototype.first = x.prototype.head, oi && (x.prototype[oi] = og), x;
|
|
13880
|
-
},
|
|
13881
|
-
ur ? ((ur.exports =
|
|
13880
|
+
}, Er = ip();
|
|
13881
|
+
ur ? ((ur.exports = Er)._ = Er, yo._ = Er) : $e._ = Er;
|
|
13882
13882
|
}).call(Li);
|
|
13883
13883
|
})(Qs, Qs.exports);
|
|
13884
13884
|
var Ob = Qs.exports;
|
|
@@ -15229,13 +15229,13 @@ class s_ extends Sr {
|
|
|
15229
15229
|
const y = f[g], w = y.geometry;
|
|
15230
15230
|
if (this._activeFeatureFilter && !this._activeFeatureFilter(y.properties))
|
|
15231
15231
|
continue;
|
|
15232
|
-
let
|
|
15232
|
+
let T = null;
|
|
15233
15233
|
for (const b of d)
|
|
15234
15234
|
if (this._evaluateFilter(b.filter, y.properties, p, y.geometry.type)) {
|
|
15235
|
-
|
|
15235
|
+
T = b.style;
|
|
15236
15236
|
break;
|
|
15237
15237
|
}
|
|
15238
|
-
if (
|
|
15238
|
+
if (T) {
|
|
15239
15239
|
const b = {
|
|
15240
15240
|
isVectorTile: !0,
|
|
15241
15241
|
tileZ: e.z,
|
|
@@ -15244,13 +15244,13 @@ class s_ extends Sr {
|
|
|
15244
15244
|
rawCoordinates: w,
|
|
15245
15245
|
extent: this.EXTENT,
|
|
15246
15246
|
tileSize: this.TILE_SIZE
|
|
15247
|
-
},
|
|
15247
|
+
}, S = this._createFeatureInstance(
|
|
15248
15248
|
y.geometry,
|
|
15249
15249
|
y.geometry.type,
|
|
15250
|
-
|
|
15250
|
+
T,
|
|
15251
15251
|
y.properties
|
|
15252
15252
|
);
|
|
15253
|
-
|
|
15253
|
+
S && (S.userData.tileData = b, S.style = on.create(T), S.addTo(this), S.initializeGeometry(), u.push(S));
|
|
15254
15254
|
}
|
|
15255
15255
|
}
|
|
15256
15256
|
}), this._tileFeatureMap.set(s, u);
|
|
@@ -15857,7 +15857,7 @@ function Wd(a, t) {
|
|
|
15857
15857
|
function Id(a, t) {
|
|
15858
15858
|
const e = new Float32Array(a.length);
|
|
15859
15859
|
for (let n = 0; n < t.length; n += 3) {
|
|
15860
|
-
const r = t[n] * 3, s = t[n + 1] * 3, l = t[n + 2] * 3, c = a[r], u = a[r + 1], d = a[r + 2], p = a[s], f = a[s + 1], g = a[s + 2], y = a[l], w = a[l + 1],
|
|
15860
|
+
const r = t[n] * 3, s = t[n + 1] * 3, l = t[n + 2] * 3, c = a[r], u = a[r + 1], d = a[r + 2], p = a[s], f = a[s + 1], g = a[s + 2], y = a[l], w = a[l + 1], T = a[l + 2], b = p - c, S = f - u, L = g - d, Z = y - c, V = w - u, z = T - d, X = S * z - L * V, k = L * Z - b * z, P = b * V - S * Z, D = Math.sqrt(X * X + k * k + P * P), I = [0, 0, 1];
|
|
15861
15861
|
if (D > 0) {
|
|
15862
15862
|
const A = 1 / D;
|
|
15863
15863
|
I[0] = X * A, I[1] = k * A, I[2] = P * A;
|
|
@@ -15867,7 +15867,7 @@ function Id(a, t) {
|
|
|
15867
15867
|
}
|
|
15868
15868
|
return e;
|
|
15869
15869
|
}
|
|
15870
|
-
class
|
|
15870
|
+
class Vi extends Br {
|
|
15871
15871
|
constructor() {
|
|
15872
15872
|
super(...arguments);
|
|
15873
15873
|
/**
|
|
@@ -15984,12 +15984,12 @@ class g_ {
|
|
|
15984
15984
|
update() {
|
|
15985
15985
|
const { numTriangles: t, numParentTriangles: e, coords: n, gridSize: r } = this.martini, { terrain: s, errors: l } = this;
|
|
15986
15986
|
for (let c = t - 1; c >= 0; c--) {
|
|
15987
|
-
const u = c * 4, d = n[u + 0], p = n[u + 1], f = n[u + 2], g = n[u + 3], y = d + f >> 1, w = p + g >> 1,
|
|
15988
|
-
if (l[
|
|
15989
|
-
const
|
|
15990
|
-
l[
|
|
15991
|
-
l[
|
|
15992
|
-
l[
|
|
15987
|
+
const u = c * 4, d = n[u + 0], p = n[u + 1], f = n[u + 2], g = n[u + 3], y = d + f >> 1, w = p + g >> 1, T = y + w - p, b = w + d - y, S = (s[p * r + d] + s[g * r + f]) / 2, L = w * r + y, Z = Math.abs(S - s[L]);
|
|
15988
|
+
if (l[L] = Math.max(l[L], Z), c < e) {
|
|
15989
|
+
const V = (p + b >> 1) * r + (d + T >> 1), z = (g + b >> 1) * r + (f + T >> 1);
|
|
15990
|
+
l[L] = Math.max(
|
|
15991
|
+
l[L],
|
|
15992
|
+
l[V],
|
|
15993
15993
|
l[z]
|
|
15994
15994
|
);
|
|
15995
15995
|
}
|
|
@@ -16006,25 +16006,25 @@ class g_ {
|
|
|
16006
16006
|
const c = e - 1;
|
|
16007
16007
|
let u, d, p = 0;
|
|
16008
16008
|
n.fill(0);
|
|
16009
|
-
function f(
|
|
16010
|
-
const P =
|
|
16011
|
-
Math.abs(
|
|
16009
|
+
function f(L, Z, V, z, X, k) {
|
|
16010
|
+
const P = L + V >> 1, D = Z + z >> 1;
|
|
16011
|
+
Math.abs(L - X) + Math.abs(Z - k) > 1 && r[D * e + P] > t ? (f(X, k, L, Z, P, D), f(V, z, X, k, P, D)) : (u = Z * e + L, d = z * e + V, p = k * e + X, n[u] === 0 && (n[u] = ++s), n[d] === 0 && (n[d] = ++s), n[p] === 0 && (n[p] = ++s), l++);
|
|
16012
16012
|
}
|
|
16013
16013
|
f(0, 0, c, c, c, 0), f(c, c, 0, 0, 0, c);
|
|
16014
|
-
const g = s * 2, y = l * 3, w = new Uint16Array(g),
|
|
16014
|
+
const g = s * 2, y = l * 3, w = new Uint16Array(g), T = new Uint32Array(y);
|
|
16015
16015
|
let b = 0;
|
|
16016
|
-
function L
|
|
16017
|
-
const P =
|
|
16018
|
-
if (Math.abs(
|
|
16019
|
-
|
|
16016
|
+
function S(L, Z, V, z, X, k) {
|
|
16017
|
+
const P = L + V >> 1, D = Z + z >> 1;
|
|
16018
|
+
if (Math.abs(L - X) + Math.abs(Z - k) > 1 && r[D * e + P] > t)
|
|
16019
|
+
S(X, k, L, Z, P, D), S(V, z, X, k, P, D);
|
|
16020
16020
|
else {
|
|
16021
|
-
const I = n[Z * e +
|
|
16022
|
-
w[2 * I] =
|
|
16021
|
+
const I = n[Z * e + L] - 1, A = n[z * e + V] - 1, U = n[k * e + X] - 1;
|
|
16022
|
+
w[2 * I] = L, w[2 * I + 1] = Z, w[2 * A] = V, w[2 * A + 1] = z, w[2 * U] = X, w[2 * U + 1] = k, T[b++] = I, T[b++] = A, T[b++] = U;
|
|
16023
16023
|
}
|
|
16024
16024
|
}
|
|
16025
|
-
return
|
|
16026
|
-
attributes: this._getMeshAttributes(this.terrain, w,
|
|
16027
|
-
indices:
|
|
16025
|
+
return S(0, 0, c, c, c, 0), S(c, c, 0, 0, 0, c), {
|
|
16026
|
+
attributes: this._getMeshAttributes(this.terrain, w, T),
|
|
16027
|
+
indices: T
|
|
16028
16028
|
};
|
|
16029
16029
|
}
|
|
16030
16030
|
/**
|
|
@@ -16067,12 +16067,12 @@ class Rd {
|
|
|
16067
16067
|
async load(t) {
|
|
16068
16068
|
const { source: e, x: n, y: r, z: s } = t, { url: l, clipBounds: c } = Zd(e, n, r, s);
|
|
16069
16069
|
if (!l)
|
|
16070
|
-
return new
|
|
16070
|
+
return new Vi();
|
|
16071
16071
|
const u = await this.doLoad(l, { source: e, x: n, y: r, z: s, bounds: c });
|
|
16072
16072
|
return Ke.manager.parseEnd(l), u;
|
|
16073
16073
|
}
|
|
16074
16074
|
}
|
|
16075
|
-
class Pd extends
|
|
16075
|
+
class Pd extends Ei {
|
|
16076
16076
|
constructor(t = {}) {
|
|
16077
16077
|
super({ transparent: !0, side: $s, ...t });
|
|
16078
16078
|
}
|
|
@@ -16233,7 +16233,7 @@ function w_(a, t) {
|
|
|
16233
16233
|
}
|
|
16234
16234
|
const x_ = `{
|
|
16235
16235
|
"name": "@terra.gl/core",
|
|
16236
|
-
"version": "0.0.1-alpha.
|
|
16236
|
+
"version": "0.0.1-alpha.13",
|
|
16237
16237
|
"type": "module",
|
|
16238
16238
|
"files": [
|
|
16239
16239
|
"dist"
|
|
@@ -16379,7 +16379,7 @@ function b_(a, t) {
|
|
|
16379
16379
|
return typeof s == "function" ? s(t) : s;
|
|
16380
16380
|
});
|
|
16381
16381
|
}
|
|
16382
|
-
const { version:
|
|
16382
|
+
const { version: VT, author: ET } = JSON.parse(x_);
|
|
16383
16383
|
function AT(a, t = 100) {
|
|
16384
16384
|
return new Promise((e) => {
|
|
16385
16385
|
const n = setInterval(() => {
|
|
@@ -16387,16 +16387,16 @@ function AT(a, t = 100) {
|
|
|
16387
16387
|
}, t);
|
|
16388
16388
|
});
|
|
16389
16389
|
}
|
|
16390
|
-
function
|
|
16390
|
+
function Vd(a) {
|
|
16391
16391
|
return Ke.registerMaterialLoader(a), a;
|
|
16392
16392
|
}
|
|
16393
|
-
function
|
|
16393
|
+
function Ed(a) {
|
|
16394
16394
|
return Ke.registerGeometryLoader(a), a;
|
|
16395
16395
|
}
|
|
16396
16396
|
function __(a) {
|
|
16397
16397
|
return Ke.registerMeshLoader(a), a;
|
|
16398
16398
|
}
|
|
16399
|
-
|
|
16399
|
+
Vd(new v_());
|
|
16400
16400
|
const Ad = "dmFyIGNlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgbWU9KGosWixxKT0+WiBpbiBqP2NlKGosWix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cX0pOmpbWl09cTt2YXIgTj0oaixaLHEpPT5tZShqLHR5cGVvZiBaIT0ic3ltYm9sIj9aKyIiOloscSk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGooQSxwKXtjb25zdCBrPW5ldyBGbG9hdDMyQXJyYXkoQS5sZW5ndGgpO2ZvcihsZXQgVT0wO1U8cC5sZW5ndGg7VSs9Myl7Y29uc3QgYT1wW1VdKjMsZT1wW1UrMV0qMyxyPXBbVSsyXSozLHM9QVthXSx0PUFbYSsxXSxuPUFbYSsyXSxoPUFbZV0saT1BW2UrMV0sbz1BW2UrMl0sYz1BW3JdLHU9QVtyKzFdLG09QVtyKzJdLHc9aC1zLGw9aS10LGY9by1uLGc9Yy1zLE09dS10LFY9bS1uLGQ9bCpWLWYqTSx5PWYqZy13KlYsST13Kk0tbCpnLHo9TWF0aC5zcXJ0KGQqZCt5KnkrSSpJKSx4PVswLDAsMV07aWYoej4wKXtjb25zdCB2PTEvejt4WzBdPWQqdix4WzFdPXkqdix4WzJdPUkqdn1mb3IobGV0IHY9MDt2PDM7disrKWtbYSt2XT1rW2Urdl09a1tyK3ZdPXhbdl19cmV0dXJuIGt9Y2xhc3MgWntjb25zdHJ1Y3RvcihwPTI1Nyl7Tih0aGlzLCJncmlkU2l6ZSIpO04odGhpcywibnVtVHJpYW5nbGVzIik7Tih0aGlzLCJudW1QYXJlbnRUcmlhbmdsZXMiKTtOKHRoaXMsImluZGljZXMiKTtOKHRoaXMsImNvb3JkcyIpO3RoaXMuZ3JpZFNpemU9cDtjb25zdCBrPXAtMTtpZihrJmstMSl0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGdyaWQgc2l6ZSB0byBiZSAyXm4rMSwgZ290ICR7cH0uYCk7dGhpcy5udW1UcmlhbmdsZXM9ayprKjItMix0aGlzLm51bVBhcmVudFRyaWFuZ2xlcz10aGlzLm51bVRyaWFuZ2xlcy1rKmssdGhpcy5pbmRpY2VzPW5ldyBVaW50MzJBcnJheSh0aGlzLmdyaWRTaXplKnRoaXMuZ3JpZFNpemUpLHRoaXMuY29vcmRzPW5ldyBVaW50MTZBcnJheSh0aGlzLm51bVRyaWFuZ2xlcyo0KTtmb3IobGV0IFU9MDtVPHRoaXMubnVtVHJpYW5nbGVzO1UrKyl7bGV0IGE9VSsyLGU9MCxyPTAscz0wLHQ9MCxuPTAsaD0wO2ZvcihhJjE/cz10PW49azplPXI9aD1rOyhhPj49MSk+MTspe2NvbnN0IG89ZStzPj4xLGM9cit0Pj4xO2EmMT8ocz1lLHQ9cixlPW4scj1oKTooZT1zLHI9dCxzPW4sdD1oKSxuPW8saD1jfWNvbnN0IGk9VSo0O3RoaXMuY29vcmRzW2krMF09ZSx0aGlzLmNvb3Jkc1tpKzFdPXIsdGhpcy5jb29yZHNbaSsyXT1zLHRoaXMuY29vcmRzW2krM109dH19Y3JlYXRlVGlsZShwKXtyZXR1cm4gbmV3IHEocCx0aGlzKX19Y2xhc3MgcXtjb25zdHJ1Y3RvcihwLGspe04odGhpcywibWFydGluaSIpO04odGhpcywidGVycmFpbiIpO04odGhpcywiZXJyb3JzIik7Y29uc3QgVT1rLmdyaWRTaXplO2lmKHAubGVuZ3RoIT09VSpVKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdGVycmFpbiBkYXRhIG9mIGxlbmd0aCAke1UqVX0gKCR7VX0geCAke1V9KSwgZ290ICR7cC5sZW5ndGh9LmApO3RoaXMudGVycmFpbj1wLHRoaXMubWFydGluaT1rLHRoaXMuZXJyb3JzPW5ldyBGbG9hdDMyQXJyYXkocC5sZW5ndGgpLHRoaXMudXBkYXRlKCl9dXBkYXRlKCl7Y29uc3R7bnVtVHJpYW5nbGVzOnAsbnVtUGFyZW50VHJpYW5nbGVzOmssY29vcmRzOlUsZ3JpZFNpemU6YX09dGhpcy5tYXJ0aW5pLHt0ZXJyYWluOmUsZXJyb3JzOnJ9PXRoaXM7Zm9yKGxldCBzPXAtMTtzPj0wO3MtLSl7Y29uc3QgdD1zKjQsbj1VW3QrMF0saD1VW3QrMV0saT1VW3QrMl0sbz1VW3QrM10sYz1uK2k+PjEsdT1oK28+PjEsbT1jK3UtaCx3PXUrbi1jLGw9KGVbaCphK25dK2VbbyphK2ldKS8yLGY9dSphK2MsZz1NYXRoLmFicyhsLWVbZl0pO2lmKHJbZl09TWF0aC5tYXgocltmXSxnKSxzPGspe2NvbnN0IE09KGgrdz4+MSkqYSsobittPj4xKSxWPShvK3c+PjEpKmErKGkrbT4+MSk7cltmXT1NYXRoLm1heChyW2ZdLHJbTV0scltWXSl9fX1nZXRHZW9tZXRyeURhdGEocD0wKXtjb25zdHtncmlkU2l6ZTprLGluZGljZXM6VX09dGhpcy5tYXJ0aW5pLHtlcnJvcnM6YX09dGhpcztsZXQgZT0wLHI9MDtjb25zdCBzPWstMTtsZXQgdCxuLGg9MDtVLmZpbGwoMCk7ZnVuY3Rpb24gaShmLGcsTSxWLGQseSl7Y29uc3QgST1mK00+PjEsej1nK1Y+PjE7TWF0aC5hYnMoZi1kKStNYXRoLmFicyhnLXkpPjEmJmFbeiprK0ldPnA/KGkoZCx5LGYsZyxJLHopLGkoTSxWLGQseSxJLHopKToodD1nKmsrZixuPVYqaytNLGg9eSprK2QsVVt0XT09PTAmJihVW3RdPSsrZSksVVtuXT09PTAmJihVW25dPSsrZSksVVtoXT09PTAmJihVW2hdPSsrZSkscisrKX1pKDAsMCxzLHMscywwKSxpKHMscywwLDAsMCxzKTtjb25zdCBvPWUqMixjPXIqMyx1PW5ldyBVaW50MTZBcnJheShvKSxtPW5ldyBVaW50MzJBcnJheShjKTtsZXQgdz0wO2Z1bmN0aW9uIGwoZixnLE0sVixkLHkpe2NvbnN0IEk9ZitNPj4xLHo9ZytWPj4xO2lmKE1hdGguYWJzKGYtZCkrTWF0aC5hYnMoZy15KT4xJiZhW3oqaytJXT5wKWwoZCx5LGYsZyxJLHopLGwoTSxWLGQseSxJLHopO2Vsc2V7Y29uc3QgeD1VW2cqaytmXS0xLHY9VVtWKmsrTV0tMSxEPVVbeSprK2RdLTE7dVsyKnhdPWYsdVsyKngrMV09Zyx1WzIqdl09TSx1WzIqdisxXT1WLHVbMipEXT1kLHVbMipEKzFdPXksbVt3KytdPXgsbVt3KytdPXYsbVt3KytdPUR9fXJldHVybiBsKDAsMCxzLHMscywwKSxsKHMscywwLDAsMCxzKSx7YXR0cmlidXRlczp0aGlzLl9nZXRNZXNoQXR0cmlidXRlcyh0aGlzLnRlcnJhaW4sdSxtKSxpbmRpY2VzOm19fV9nZXRNZXNoQXR0cmlidXRlcyhwLGssVSl7Y29uc3QgYT1NYXRoLmZsb29yKE1hdGguc3FydChwLmxlbmd0aCkpLGU9YS0xLHI9ay5sZW5ndGgvMixzPW5ldyBGbG9hdDMyQXJyYXkociozKSx0PW5ldyBGbG9hdDMyQXJyYXkocioyKTtmb3IobGV0IGg9MDtoPHI7aCsrKXtjb25zdCBpPWtbaCoyXSxvPWtbaCoyKzFdLGM9byphK2k7c1szKmgrMF09aS9lLS41LHNbMypoKzFdPS41LW8vZSxzWzMqaCsyXT1wW2NdLHRbMipoKzBdPWkvZSx0WzIqaCsxXT0xLW8vZX1jb25zdCBuPWoocyxVKTtyZXR1cm57cG9zaXRpb246e3ZhbHVlOnMsc2l6ZTozfSx0ZXhjb29yZDp7dmFsdWU6dCxzaXplOjJ9LG5vcm1hbDp7dmFsdWU6bixzaXplOjN9fX19LyogQ29weXJpZ2h0IDIwMTUtMjAyMSBFc3JpLiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIEBwcmVzZXJ2ZSAqL2NvbnN0IGVlPWZ1bmN0aW9uKCl7dmFyIEE9e307QS5kZWZhdWx0Tm9EYXRhVmFsdWU9LTM0MDI3OTk5Mzg3OTAxNDg0ZTIyLEEuZGVjb2RlPWZ1bmN0aW9uKHIscyl7cz1zfHx7fTt2YXIgdD1zLmVuY29kZWRNYXNrRGF0YXx8cy5lbmNvZGVkTWFza0RhdGE9PT1udWxsLG49YShyLHMuaW5wdXRPZmZzZXR8fDAsdCksaD1zLm5vRGF0YVZhbHVlIT09bnVsbD9zLm5vRGF0YVZhbHVlOkEuZGVmYXVsdE5vRGF0YVZhbHVlLGk9cChuLHMucGl4ZWxUeXBlfHxGbG9hdDMyQXJyYXkscy5lbmNvZGVkTWFza0RhdGEsaCxzLnJldHVybk1hc2spLG89e3dpZHRoOm4ud2lkdGgsaGVpZ2h0Om4uaGVpZ2h0LHBpeGVsRGF0YTppLnJlc3VsdFBpeGVscyxtaW5WYWx1ZTppLm1pblZhbHVlLG1heFZhbHVlOm4ucGl4ZWxzLm1heFZhbHVlLG5vRGF0YVZhbHVlOmh9O3JldHVybiBpLnJlc3VsdE1hc2smJihvLm1hc2tEYXRhPWkucmVzdWx0TWFzaykscy5yZXR1cm5FbmNvZGVkTWFzayYmbi5tYXNrJiYoby5lbmNvZGVkTWFza0RhdGE9bi5tYXNrLmJpdHNldD9uLm1hc2suYml0c2V0Om51bGwpLHMucmV0dXJuRmlsZUluZm8mJihvLmZpbGVJbmZvPWsobikscy5jb21wdXRlVXNlZEJpdERlcHRocyYmKG8uZmlsZUluZm8uYml0RGVwdGhzPVUobikpKSxvfTt2YXIgcD1mdW5jdGlvbihyLHMsdCxuLGgpe3ZhciBpPTAsbz1yLnBpeGVscy5udW1CbG9ja3NYLGM9ci5waXhlbHMubnVtQmxvY2tzWSx1PU1hdGguZmxvb3Ioci53aWR0aC9vKSxtPU1hdGguZmxvb3Ioci5oZWlnaHQvYyksdz0yKnIubWF4WkVycm9yLGw9TnVtYmVyLk1BWF9WQUxVRSxmO3Q9dHx8KHIubWFzaz9yLm1hc2suYml0c2V0Om51bGwpO3ZhciBnLE07Zz1uZXcgcyhyLndpZHRoKnIuaGVpZ2h0KSxoJiZ0JiYoTT1uZXcgVWludDhBcnJheShyLndpZHRoKnIuaGVpZ2h0KSk7Zm9yKHZhciBWPW5ldyBGbG9hdDMyQXJyYXkodSptKSxkLHksST0wO0k8PWM7SSsrKXt2YXIgej1JIT09Yz9tOnIuaGVpZ2h0JWM7aWYoeiE9PTApZm9yKHZhciB4PTA7eDw9bzt4Kyspe3ZhciB2PXghPT1vP3U6ci53aWR0aCVvO2lmKHYhPT0wKXt2YXIgRD1JKnIud2lkdGgqbSt4KnUsVD1yLndpZHRoLXYsUz1yLnBpeGVscy5ibG9ja3NbaV0sQixMLEY7Uy5lbmNvZGluZzwyPyhTLmVuY29kaW5nPT09MD9CPVMucmF3RGF0YTooZShTLnN0dWZmZWREYXRhLFMuYml0c1BlclBpeGVsLFMubnVtVmFsaWRQaXhlbHMsUy5vZmZzZXQsdyxWLHIucGl4ZWxzLm1heFZhbHVlKSxCPVYpLEw9MCk6Uy5lbmNvZGluZz09PTI/Rj0wOkY9Uy5vZmZzZXQ7dmFyIGI7aWYodClmb3IoeT0wO3k8ejt5Kyspe2ZvcihEJjcmJihiPXRbRD4+M10sYjw8PUQmNyksZD0wO2Q8djtkKyspRCY3fHwoYj10W0Q+PjNdKSxiJjEyOD8oTSYmKE1bRF09MSksZj1TLmVuY29kaW5nPDI/QltMKytdOkYsbD1sPmY/ZjpsLGdbRCsrXT1mKTooTSYmKE1bRF09MCksZ1tEKytdPW4pLGI8PD0xO0QrPVR9ZWxzZSBpZihTLmVuY29kaW5nPDIpZm9yKHk9MDt5PHo7eSsrKXtmb3IoZD0wO2Q8djtkKyspZj1CW0wrK10sbD1sPmY/ZjpsLGdbRCsrXT1mO0QrPVR9ZWxzZSBmb3IobD1sPkY/RjpsLHk9MDt5PHo7eSsrKXtmb3IoZD0wO2Q8djtkKyspZ1tEKytdPUY7RCs9VH1pZihTLmVuY29kaW5nPT09MSYmTCE9PVMubnVtVmFsaWRQaXhlbHMpdGhyb3ciQmxvY2sgYW5kIE1hc2sgZG8gbm90IG1hdGNoIjtpKyt9fX1yZXR1cm57cmVzdWx0UGl4ZWxzOmcscmVzdWx0TWFzazpNLG1pblZhbHVlOmx9fSxrPWZ1bmN0aW9uKHIpe3JldHVybntmaWxlSWRlbnRpZmllclN0cmluZzpyLmZpbGVJZGVudGlmaWVyU3RyaW5nLGZpbGVWZXJzaW9uOnIuZmlsZVZlcnNpb24saW1hZ2VUeXBlOnIuaW1hZ2VUeXBlLGhlaWdodDpyLmhlaWdodCx3aWR0aDpyLndpZHRoLG1heFpFcnJvcjpyLm1heFpFcnJvcixlb2ZPZmZzZXQ6ci5lb2ZPZmZzZXQsbWFzazpyLm1hc2s/e251bUJsb2Nrc1g6ci5tYXNrLm51bUJsb2Nrc1gsbnVtQmxvY2tzWTpyLm1hc2subnVtQmxvY2tzWSxudW1CeXRlczpyLm1hc2subnVtQnl0ZXMsbWF4VmFsdWU6ci5tYXNrLm1heFZhbHVlfTpudWxsLHBpeGVsczp7bnVtQmxvY2tzWDpyLnBpeGVscy5udW1CbG9ja3NYLG51bUJsb2Nrc1k6ci5waXhlbHMubnVtQmxvY2tzWSxudW1CeXRlczpyLnBpeGVscy5udW1CeXRlcyxtYXhWYWx1ZTpyLnBpeGVscy5tYXhWYWx1ZSxub0RhdGFWYWx1ZTpyLm5vRGF0YVZhbHVlfX19LFU9ZnVuY3Rpb24ocil7Zm9yKHZhciBzPXIucGl4ZWxzLm51bUJsb2Nrc1gqci5waXhlbHMubnVtQmxvY2tzWSx0PXt9LG49MDtuPHM7bisrKXt2YXIgaD1yLnBpeGVscy5ibG9ja3Nbbl07aC5lbmNvZGluZz09PTA/dC5mbG9hdDMyPSEwOmguZW5jb2Rpbmc9PT0xP3RbaC5iaXRzUGVyUGl4ZWxdPSEwOnRbMF09ITB9cmV0dXJuIE9iamVjdC5rZXlzKHQpfSxhPWZ1bmN0aW9uKHIscyx0KXt2YXIgbj17fSxoPW5ldyBVaW50OEFycmF5KHIscywxMCk7aWYobi5maWxlSWRlbnRpZmllclN0cmluZz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaCksbi5maWxlSWRlbnRpZmllclN0cmluZy50cmltKCkhPT0iQ250WkltYWdlIil0aHJvdyJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmc6ICIrbi5maWxlSWRlbnRpZmllclN0cmluZztzKz0xMDt2YXIgaT1uZXcgRGF0YVZpZXcocixzLDI0KTtpZihuLmZpbGVWZXJzaW9uPWkuZ2V0SW50MzIoMCwhMCksbi5pbWFnZVR5cGU9aS5nZXRJbnQzMig0LCEwKSxuLmhlaWdodD1pLmdldFVpbnQzMig4LCEwKSxuLndpZHRoPWkuZ2V0VWludDMyKDEyLCEwKSxuLm1heFpFcnJvcj1pLmdldEZsb2F0NjQoMTYsITApLHMrPTI0LCF0KWlmKGk9bmV3IERhdGFWaWV3KHIscywxNiksbi5tYXNrPXt9LG4ubWFzay5udW1CbG9ja3NZPWkuZ2V0VWludDMyKDAsITApLG4ubWFzay5udW1CbG9ja3NYPWkuZ2V0VWludDMyKDQsITApLG4ubWFzay5udW1CeXRlcz1pLmdldFVpbnQzMig4LCEwKSxuLm1hc2subWF4VmFsdWU9aS5nZXRGbG9hdDMyKDEyLCEwKSxzKz0xNixuLm1hc2subnVtQnl0ZXM+MCl7dmFyIG89bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKG4ud2lkdGgqbi5oZWlnaHQvOCkpO2k9bmV3IERhdGFWaWV3KHIscyxuLm1hc2subnVtQnl0ZXMpO3ZhciBjPWkuZ2V0SW50MTYoMCwhMCksdT0yLG09MDtkb3tpZihjPjApZm9yKDtjLS07KW9bbSsrXT1pLmdldFVpbnQ4KHUrKyk7ZWxzZXt2YXIgdz1pLmdldFVpbnQ4KHUrKyk7Zm9yKGM9LWM7Yy0tOylvW20rK109d31jPWkuZ2V0SW50MTYodSwhMCksdSs9Mn13aGlsZSh1PG4ubWFzay5udW1CeXRlcyk7aWYoYyE9PS0zMjc2OHx8bTxvLmxlbmd0aCl0aHJvdyJVbmV4cGVjdGVkIGVuZCBvZiBtYXNrIFJMRSBlbmNvZGluZyI7bi5tYXNrLmJpdHNldD1vLHMrPW4ubWFzay5udW1CeXRlc31lbHNlIG4ubWFzay5udW1CeXRlc3xuLm1hc2subnVtQmxvY2tzWXxuLm1hc2subWF4VmFsdWV8fChuLm1hc2suYml0c2V0PW5ldyBVaW50OEFycmF5KE1hdGguY2VpbChuLndpZHRoKm4uaGVpZ2h0LzgpKSk7aT1uZXcgRGF0YVZpZXcocixzLDE2KSxuLnBpeGVscz17fSxuLnBpeGVscy5udW1CbG9ja3NZPWkuZ2V0VWludDMyKDAsITApLG4ucGl4ZWxzLm51bUJsb2Nrc1g9aS5nZXRVaW50MzIoNCwhMCksbi5waXhlbHMubnVtQnl0ZXM9aS5nZXRVaW50MzIoOCwhMCksbi5waXhlbHMubWF4VmFsdWU9aS5nZXRGbG9hdDMyKDEyLCEwKSxzKz0xNjt2YXIgbD1uLnBpeGVscy5udW1CbG9ja3NYLGY9bi5waXhlbHMubnVtQmxvY2tzWSxnPWwrKG4ud2lkdGglbD4wPzE6MCksTT1mKyhuLmhlaWdodCVmPjA/MTowKTtuLnBpeGVscy5ibG9ja3M9bmV3IEFycmF5KGcqTSk7Zm9yKHZhciBWPTAsZD0wO2Q8TTtkKyspZm9yKHZhciB5PTA7eTxnO3krKyl7dmFyIEk9MCx6PXIuYnl0ZUxlbmd0aC1zO2k9bmV3IERhdGFWaWV3KHIscyxNYXRoLm1pbigxMCx6KSk7dmFyIHg9e307bi5waXhlbHMuYmxvY2tzW1YrK109eDt2YXIgdj1pLmdldFVpbnQ4KDApO2lmKEkrKyx4LmVuY29kaW5nPXYmNjMseC5lbmNvZGluZz4zKXRocm93IkludmFsaWQgYmxvY2sgZW5jb2RpbmcgKCIreC5lbmNvZGluZysiKSI7aWYoeC5lbmNvZGluZz09PTIpe3MrKztjb250aW51ZX1pZih2IT09MCYmdiE9PTIpe2lmKHY+Pj02LHgub2Zmc2V0VHlwZT12LHY9PT0yKXgub2Zmc2V0PWkuZ2V0SW50OCgxKSxJKys7ZWxzZSBpZih2PT09MSl4Lm9mZnNldD1pLmdldEludDE2KDEsITApLEkrPTI7ZWxzZSBpZih2PT09MCl4Lm9mZnNldD1pLmdldEZsb2F0MzIoMSwhMCksSSs9NDtlbHNlIHRocm93IkludmFsaWQgYmxvY2sgb2Zmc2V0IHR5cGUiO2lmKHguZW5jb2Rpbmc9PT0xKWlmKHY9aS5nZXRVaW50OChJKSxJKysseC5iaXRzUGVyUGl4ZWw9diY2Myx2Pj49Nix4Lm51bVZhbGlkUGl4ZWxzVHlwZT12LHY9PT0yKXgubnVtVmFsaWRQaXhlbHM9aS5nZXRVaW50OChJKSxJKys7ZWxzZSBpZih2PT09MSl4Lm51bVZhbGlkUGl4ZWxzPWkuZ2V0VWludDE2KEksITApLEkrPTI7ZWxzZSBpZih2PT09MCl4Lm51bVZhbGlkUGl4ZWxzPWkuZ2V0VWludDMyKEksITApLEkrPTQ7ZWxzZSB0aHJvdyJJbnZhbGlkIHZhbGlkIHBpeGVsIGNvdW50IHR5cGUifWlmKHMrPUkseC5lbmNvZGluZyE9PTMpe3ZhciBELFQ7aWYoeC5lbmNvZGluZz09PTApe3ZhciBTPShuLnBpeGVscy5udW1CeXRlcy0xKS80O2lmKFMhPT1NYXRoLmZsb29yKFMpKXRocm93InVuY29tcHJlc3NlZCBibG9jayBoYXMgaW52YWxpZCBsZW5ndGgiO0Q9bmV3IEFycmF5QnVmZmVyKFMqNCksVD1uZXcgVWludDhBcnJheShEKSxULnNldChuZXcgVWludDhBcnJheShyLHMsUyo0KSk7dmFyIEI9bmV3IEZsb2F0MzJBcnJheShEKTt4LnJhd0RhdGE9QixzKz1TKjR9ZWxzZSBpZih4LmVuY29kaW5nPT09MSl7dmFyIEw9TWF0aC5jZWlsKHgubnVtVmFsaWRQaXhlbHMqeC5iaXRzUGVyUGl4ZWwvOCksRj1NYXRoLmNlaWwoTC80KTtEPW5ldyBBcnJheUJ1ZmZlcihGKjQpLFQ9bmV3IFVpbnQ4QXJyYXkoRCksVC5zZXQobmV3IFVpbnQ4QXJyYXkocixzLEwpKSx4LnN0dWZmZWREYXRhPW5ldyBVaW50MzJBcnJheShEKSxzKz1MfX19cmV0dXJuIG4uZW9mT2Zmc2V0PXMsbn0sZT1mdW5jdGlvbihyLHMsdCxuLGgsaSxvKXt2YXIgYz0oMTw8cyktMSx1PTAsbSx3PTAsbCxmLGc9TWF0aC5jZWlsKChvLW4pL2gpLE09ci5sZW5ndGgqNC1NYXRoLmNlaWwocyp0LzgpO2ZvcihyW3IubGVuZ3RoLTFdPDw9OCpNLG09MDttPHQ7bSsrKXtpZih3PT09MCYmKGY9clt1KytdLHc9MzIpLHc+PXMpbD1mPj4+dy1zJmMsdy09cztlbHNle3ZhciBWPXMtdztsPShmJmMpPDxWJmMsZj1yW3UrK10sdz0zMi1WLGwrPWY+Pj53fWlbbV09bDxnP24rbCpoOm99cmV0dXJuIGl9O3JldHVybiBBfSgpLHJlPWZ1bmN0aW9uKCl7dmFyIEE9e3Vuc3R1ZmY6ZnVuY3Rpb24oYSxlLHIscyx0LG4saCxpKXt2YXIgbz0oMTw8ciktMSxjPTAsdSxtPTAsdyxsLGYsZyxNPWEubGVuZ3RoKjQtTWF0aC5jZWlsKHIqcy84KTtpZihhW2EubGVuZ3RoLTFdPDw9OCpNLHQpZm9yKHU9MDt1PHM7dSsrKW09PT0wJiYobD1hW2MrK10sbT0zMiksbT49cj8odz1sPj4+bS1yJm8sbS09cik6KGY9ci1tLHc9KGwmbyk8PGYmbyxsPWFbYysrXSxtPTMyLWYsdys9bD4+Pm0pLGVbdV09dFt3XTtlbHNlIGZvcihnPU1hdGguY2VpbCgoaS1uKS9oKSx1PTA7dTxzO3UrKyltPT09MCYmKGw9YVtjKytdLG09MzIpLG0+PXI/KHc9bD4+Pm0tciZvLG0tPXIpOihmPXItbSx3PShsJm8pPDxmJm8sbD1hW2MrK10sbT0zMi1mLHcrPWw+Pj5tKSxlW3VdPXc8Zz9uK3cqaDppfSx1bnN0dWZmTFVUOmZ1bmN0aW9uKGEsZSxyLHMsdCxuKXt2YXIgaD0oMTw8ZSktMSxpPTAsbz0wLGM9MCx1PTAsbT0wLHcsbD1bXSxmPWEubGVuZ3RoKjQtTWF0aC5jZWlsKGUqci84KTthW2EubGVuZ3RoLTFdPDw9OCpmO3ZhciBnPU1hdGguY2VpbCgobi1zKS90KTtmb3Iobz0wO288cjtvKyspdT09PTAmJih3PWFbaSsrXSx1PTMyKSx1Pj1lPyhtPXc+Pj51LWUmaCx1LT1lKTooYz1lLXUsbT0odyZoKTw8YyZoLHc9YVtpKytdLHU9MzItYyxtKz13Pj4+dSksbFtvXT1tPGc/cyttKnQ6bjtyZXR1cm4gbC51bnNoaWZ0KHMpLGx9LHVuc3R1ZmYyOmZ1bmN0aW9uKGEsZSxyLHMsdCxuLGgsaSl7dmFyIG89KDE8PHIpLTEsYz0wLHUsbT0wLHc9MCxsLGYsZztpZih0KWZvcih1PTA7dTxzO3UrKyltPT09MCYmKGY9YVtjKytdLG09MzIsdz0wKSxtPj1yPyhsPWY+Pj53Jm8sbS09cix3Kz1yKTooZz1yLW0sbD1mPj4+dyZvLGY9YVtjKytdLG09MzItZyxsfD0oZiYoMTw8ZyktMSk8PHItZyx3PWcpLGVbdV09dFtsXTtlbHNle3ZhciBNPU1hdGguY2VpbCgoaS1uKS9oKTtmb3IodT0wO3U8czt1KyspbT09PTAmJihmPWFbYysrXSxtPTMyLHc9MCksbT49cj8obD1mPj4+dyZvLG0tPXIsdys9cik6KGc9ci1tLGw9Zj4+PncmbyxmPWFbYysrXSxtPTMyLWcsbHw9KGYmKDE8PGcpLTEpPDxyLWcsdz1nKSxlW3VdPWw8TT9uK2wqaDppfXJldHVybiBlfSx1bnN0dWZmTFVUMjpmdW5jdGlvbihhLGUscixzLHQsbil7dmFyIGg9KDE8PGUpLTEsaT0wLG89MCxjPTAsdT0wLG09MCx3PTAsbCxmPVtdLGc9TWF0aC5jZWlsKChuLXMpL3QpO2ZvcihvPTA7bzxyO28rKyl1PT09MCYmKGw9YVtpKytdLHU9MzIsdz0wKSx1Pj1lPyhtPWw+Pj53JmgsdS09ZSx3Kz1lKTooYz1lLXUsbT1sPj4+dyZoLGw9YVtpKytdLHU9MzItYyxtfD0obCYoMTw8YyktMSk8PGUtYyx3PWMpLGZbb109bTxnP3MrbSp0Om47cmV0dXJuIGYudW5zaGlmdChzKSxmfSxvcmlnaW5hbFVuc3R1ZmY6ZnVuY3Rpb24oYSxlLHIscyl7dmFyIHQ9KDE8PHIpLTEsbj0wLGgsaT0wLG8sYyx1LG09YS5sZW5ndGgqNC1NYXRoLmNlaWwocipzLzgpO2ZvcihhW2EubGVuZ3RoLTFdPDw9OCptLGg9MDtoPHM7aCsrKWk9PT0wJiYoYz1hW24rK10saT0zMiksaT49cj8obz1jPj4+aS1yJnQsaS09cik6KHU9ci1pLG89KGMmdCk8PHUmdCxjPWFbbisrXSxpPTMyLXUsbys9Yz4+PmkpLGVbaF09bztyZXR1cm4gZX0sb3JpZ2luYWxVbnN0dWZmMjpmdW5jdGlvbihhLGUscixzKXt2YXIgdD0oMTw8ciktMSxuPTAsaCxpPTAsbz0wLGMsdSxtO2ZvcihoPTA7aDxzO2grKylpPT09MCYmKHU9YVtuKytdLGk9MzIsbz0wKSxpPj1yPyhjPXU+Pj5vJnQsaS09cixvKz1yKToobT1yLWksYz11Pj4+byZ0LHU9YVtuKytdLGk9MzItbSxjfD0odSYoMTw8bSktMSk8PHItbSxvPW0pLGVbaF09YztyZXR1cm4gZX19LHA9e0hVRkZNQU5fTFVUX0JJVFNfTUFYOjEyLGNvbXB1dGVDaGVja3N1bUZsZXRjaGVyMzI6ZnVuY3Rpb24oYSl7Zm9yKHZhciBlPTY1NTM1LHI9NjU1MzUscz1hLmxlbmd0aCx0PU1hdGguZmxvb3Iocy8yKSxuPTA7dDspe3ZhciBoPXQ+PTM1OT8zNTk6dDt0LT1oO2RvIGUrPWFbbisrXTw8OCxyKz1lKz1hW24rK107d2hpbGUoLS1oKTtlPShlJjY1NTM1KSsoZT4+PjE2KSxyPShyJjY1NTM1KSsocj4+PjE2KX1yZXR1cm4gcyYxJiYocis9ZSs9YVtuXTw8OCksZT0oZSY2NTUzNSkrKGU+Pj4xNikscj0ociY2NTUzNSkrKHI+Pj4xNiksKHI8PDE2fGUpPj4+MH0scmVhZEhlYWRlckluZm86ZnVuY3Rpb24oYSxlKXt2YXIgcj1lLnB0cixzPW5ldyBVaW50OEFycmF5KGEsciw2KSx0PXt9O2lmKHQuZmlsZUlkZW50aWZpZXJTdHJpbmc9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHMpLHQuZmlsZUlkZW50aWZpZXJTdHJpbmcubGFzdEluZGV4T2YoIkxlcmMyIiwwKSE9PTApdGhyb3ciVW5leHBlY3RlZCBmaWxlIGlkZW50aWZpZXIgc3RyaW5nIChleHBlY3QgTGVyYzIgKTogIit0LmZpbGVJZGVudGlmaWVyU3RyaW5nO3IrPTY7dmFyIG49bmV3IERhdGFWaWV3KGEsciw4KSxoPW4uZ2V0SW50MzIoMCwhMCk7dC5maWxlVmVyc2lvbj1oLHIrPTQsaD49MyYmKHQuY2hlY2tzdW09bi5nZXRVaW50MzIoNCwhMCkscis9NCksbj1uZXcgRGF0YVZpZXcoYSxyLDEyKSx0LmhlaWdodD1uLmdldFVpbnQzMigwLCEwKSx0LndpZHRoPW4uZ2V0VWludDMyKDQsITApLHIrPTgsaD49ND8odC5udW1EaW1zPW4uZ2V0VWludDMyKDgsITApLHIrPTQpOnQubnVtRGltcz0xLG49bmV3IERhdGFWaWV3KGEsciw0MCksdC5udW1WYWxpZFBpeGVsPW4uZ2V0VWludDMyKDAsITApLHQubWljcm9CbG9ja1NpemU9bi5nZXRJbnQzMig0LCEwKSx0LmJsb2JTaXplPW4uZ2V0SW50MzIoOCwhMCksdC5pbWFnZVR5cGU9bi5nZXRJbnQzMigxMiwhMCksdC5tYXhaRXJyb3I9bi5nZXRGbG9hdDY0KDE2LCEwKSx0LnpNaW49bi5nZXRGbG9hdDY0KDI0LCEwKSx0LnpNYXg9bi5nZXRGbG9hdDY0KDMyLCEwKSxyKz00MCxlLmhlYWRlckluZm89dCxlLnB0cj1yO3ZhciBpLG87aWYoaD49MyYmKG89aD49ND81Mjo0OCxpPXRoaXMuY29tcHV0ZUNoZWNrc3VtRmxldGNoZXIzMihuZXcgVWludDhBcnJheShhLHItbyx0LmJsb2JTaXplLTE0KSksaSE9PXQuY2hlY2tzdW0pKXRocm93IkNoZWNrc3VtIGZhaWxlZC4iO3JldHVybiEwfSxjaGVja01pbk1heFJhbmdlczpmdW5jdGlvbihhLGUpe3ZhciByPWUuaGVhZGVySW5mbyxzPXRoaXMuZ2V0RGF0YVR5cGVBcnJheShyLmltYWdlVHlwZSksdD1yLm51bURpbXMqdGhpcy5nZXREYXRhVHlwZVNpemUoci5pbWFnZVR5cGUpLG49dGhpcy5yZWFkU3ViQXJyYXkoYSxlLnB0cixzLHQpLGg9dGhpcy5yZWFkU3ViQXJyYXkoYSxlLnB0cit0LHMsdCk7ZS5wdHIrPTIqdDt2YXIgaSxvPSEwO2ZvcihpPTA7aTxyLm51bURpbXM7aSsrKWlmKG5baV0hPT1oW2ldKXtvPSExO2JyZWFrfXJldHVybiByLm1pblZhbHVlcz1uLHIubWF4VmFsdWVzPWgsb30scmVhZFN1YkFycmF5OmZ1bmN0aW9uKGEsZSxyLHMpe3ZhciB0O2lmKHI9PT1VaW50OEFycmF5KXQ9bmV3IFVpbnQ4QXJyYXkoYSxlLHMpO2Vsc2V7dmFyIG49bmV3IEFycmF5QnVmZmVyKHMpLGg9bmV3IFVpbnQ4QXJyYXkobik7aC5zZXQobmV3IFVpbnQ4QXJyYXkoYSxlLHMpKSx0PW5ldyByKG4pfXJldHVybiB0fSxyZWFkTWFzazpmdW5jdGlvbihhLGUpe3ZhciByPWUucHRyLHM9ZS5oZWFkZXJJbmZvLHQ9cy53aWR0aCpzLmhlaWdodCxuPXMubnVtVmFsaWRQaXhlbCxoPW5ldyBEYXRhVmlldyhhLHIsNCksaT17fTtpZihpLm51bUJ5dGVzPWguZ2V0VWludDMyKDAsITApLHIrPTQsKG49PT0wfHx0PT09bikmJmkubnVtQnl0ZXMhPT0wKXRocm93ImludmFsaWQgbWFzayI7dmFyIG8sYztpZihuPT09MClvPW5ldyBVaW50OEFycmF5KE1hdGguY2VpbCh0LzgpKSxpLmJpdHNldD1vLGM9bmV3IFVpbnQ4QXJyYXkodCksZS5waXhlbHMucmVzdWx0TWFzaz1jLHIrPWkubnVtQnl0ZXM7ZWxzZSBpZihpLm51bUJ5dGVzPjApe289bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKHQvOCkpLGg9bmV3IERhdGFWaWV3KGEscixpLm51bUJ5dGVzKTt2YXIgdT1oLmdldEludDE2KDAsITApLG09Mix3PTAsbD0wO2Rve2lmKHU+MClmb3IoO3UtLTspb1t3KytdPWguZ2V0VWludDgobSsrKTtlbHNlIGZvcihsPWguZ2V0VWludDgobSsrKSx1PS11O3UtLTspb1t3KytdPWw7dT1oLmdldEludDE2KG0sITApLG0rPTJ9d2hpbGUobTxpLm51bUJ5dGVzKTtpZih1IT09LTMyNzY4fHx3PG8ubGVuZ3RoKXRocm93IlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjtjPW5ldyBVaW50OEFycmF5KHQpO3ZhciBmPTAsZz0wO2ZvcihnPTA7Zzx0O2crKylnJjc/KGY9b1tnPj4zXSxmPDw9ZyY3KTpmPW9bZz4+M10sZiYxMjgmJihjW2ddPTEpO2UucGl4ZWxzLnJlc3VsdE1hc2s9YyxpLmJpdHNldD1vLHIrPWkubnVtQnl0ZXN9cmV0dXJuIGUucHRyPXIsZS5tYXNrPWksITB9LHJlYWREYXRhT25lU3dlZXA6ZnVuY3Rpb24oYSxlLHIscyl7dmFyIHQ9ZS5wdHIsbj1lLmhlYWRlckluZm8saD1uLm51bURpbXMsaT1uLndpZHRoKm4uaGVpZ2h0LG89bi5pbWFnZVR5cGUsYz1uLm51bVZhbGlkUGl4ZWwqcC5nZXREYXRhVHlwZVNpemUobykqaCx1LG09ZS5waXhlbHMucmVzdWx0TWFzaztpZihyPT09VWludDhBcnJheSl1PW5ldyBVaW50OEFycmF5KGEsdCxjKTtlbHNle3ZhciB3PW5ldyBBcnJheUJ1ZmZlcihjKSxsPW5ldyBVaW50OEFycmF5KHcpO2wuc2V0KG5ldyBVaW50OEFycmF5KGEsdCxjKSksdT1uZXcgcih3KX1pZih1Lmxlbmd0aD09PWkqaClzP2UucGl4ZWxzLnJlc3VsdFBpeGVscz1wLnN3YXBEaW1lbnNpb25PcmRlcih1LGksaCxyLCEwKTplLnBpeGVscy5yZXN1bHRQaXhlbHM9dTtlbHNle2UucGl4ZWxzLnJlc3VsdFBpeGVscz1uZXcgcihpKmgpO3ZhciBmPTAsZz0wLE09MCxWPTA7aWYoaD4xKXtpZihzKXtmb3IoZz0wO2c8aTtnKyspaWYobVtnXSlmb3IoVj1nLE09MDtNPGg7TSsrLFYrPWkpZS5waXhlbHMucmVzdWx0UGl4ZWxzW1ZdPXVbZisrXX1lbHNlIGZvcihnPTA7ZzxpO2crKylpZihtW2ddKWZvcihWPWcqaCxNPTA7TTxoO00rKyllLnBpeGVscy5yZXN1bHRQaXhlbHNbVitNXT11W2YrK119ZWxzZSBmb3IoZz0wO2c8aTtnKyspbVtnXSYmKGUucGl4ZWxzLnJlc3VsdFBpeGVsc1tnXT11W2YrK10pfXJldHVybiB0Kz1jLGUucHRyPXQsITB9LHJlYWRIdWZmbWFuVHJlZTpmdW5jdGlvbihhLGUpe3ZhciByPXRoaXMuSFVGRk1BTl9MVVRfQklUU19NQVgscz1uZXcgRGF0YVZpZXcoYSxlLnB0ciwxNik7ZS5wdHIrPTE2O3ZhciB0PXMuZ2V0SW50MzIoMCwhMCk7aWYodDwyKXRocm93InVuc3VwcG9ydGVkIEh1ZmZtYW4gdmVyc2lvbiI7dmFyIG49cy5nZXRJbnQzMig0LCEwKSxoPXMuZ2V0SW50MzIoOCwhMCksaT1zLmdldEludDMyKDEyLCEwKTtpZihoPj1pKXJldHVybiExO3ZhciBvPW5ldyBVaW50MzJBcnJheShpLWgpO3AuZGVjb2RlQml0cyhhLGUsbyk7dmFyIGM9W10sdSxtLHcsbDtmb3IodT1oO3U8aTt1KyspbT11LSh1PG4/MDpuKSxjW21dPXtmaXJzdDpvW3UtaF0sc2Vjb25kOm51bGx9O3ZhciBmPWEuYnl0ZUxlbmd0aC1lLnB0cixnPU1hdGguY2VpbChmLzQpLE09bmV3IEFycmF5QnVmZmVyKGcqNCksVj1uZXcgVWludDhBcnJheShNKTtWLnNldChuZXcgVWludDhBcnJheShhLGUucHRyLGYpKTt2YXIgZD1uZXcgVWludDMyQXJyYXkoTSkseT0wLEksej0wO2ZvcihJPWRbMF0sdT1oO3U8aTt1KyspbT11LSh1PG4/MDpuKSxsPWNbbV0uZmlyc3QsbD4wJiYoY1ttXS5zZWNvbmQ9STw8eT4+PjMyLWwsMzIteT49bD8oeSs9bCx5PT09MzImJih5PTAseisrLEk9ZFt6XSkpOih5Kz1sLTMyLHorKyxJPWRbel0sY1ttXS5zZWNvbmR8PUk+Pj4zMi15KSk7dmFyIHg9MCx2PTAsRD1uZXcgaztmb3IodT0wO3U8Yy5sZW5ndGg7dSsrKWNbdV0hPT12b2lkIDAmJih4PU1hdGgubWF4KHgsY1t1XS5maXJzdCkpO3g+PXI/dj1yOnY9eDt2YXIgVD1bXSxTLEIsTCxGLGIsQztmb3IodT1oO3U8aTt1KyspaWYobT11LSh1PG4/MDpuKSxsPWNbbV0uZmlyc3QsbD4wKWlmKFM9W2wsbV0sbDw9dilmb3IoQj1jW21dLnNlY29uZDw8di1sLEw9MTw8di1sLHc9MDt3PEw7dysrKVRbQnx3XT1TO2Vsc2UgZm9yKEI9Y1ttXS5zZWNvbmQsQz1ELEY9bC0xO0Y+PTA7Ri0tKWI9Qj4+PkYmMSxiPyhDLnJpZ2h0fHwoQy5yaWdodD1uZXcgayksQz1DLnJpZ2h0KTooQy5sZWZ0fHwoQy5sZWZ0PW5ldyBrKSxDPUMubGVmdCksRj09PTAmJiFDLnZhbCYmKEMudmFsPVNbMV0pO3JldHVybntkZWNvZGVMdXQ6VCxudW1CaXRzTFVUUWljazp2LG51bUJpdHNMVVQ6eCx0cmVlOkQsc3R1ZmZlZERhdGE6ZCxzcmNQdHI6eixiaXRQb3M6eX19LHJlYWRIdWZmbWFuOmZ1bmN0aW9uKGEsZSxyLHMpe3ZhciB0PWUuaGVhZGVySW5mbyxuPXQubnVtRGltcyxoPWUuaGVhZGVySW5mby5oZWlnaHQsaT1lLmhlYWRlckluZm8ud2lkdGgsbz1pKmgsYz10aGlzLnJlYWRIdWZmbWFuVHJlZShhLGUpLHU9Yy5kZWNvZGVMdXQsbT1jLnRyZWUsdz1jLnN0dWZmZWREYXRhLGw9Yy5zcmNQdHIsZj1jLmJpdFBvcyxnPWMubnVtQml0c0xVVFFpY2ssTT1jLm51bUJpdHNMVVQsVj1lLmhlYWRlckluZm8uaW1hZ2VUeXBlPT09MD8xMjg6MCxkLHksSSx6PWUucGl4ZWxzLnJlc3VsdE1hc2sseCx2LEQsVCxTLEIsTCxGPTA7Zj4wJiYobCsrLGY9MCk7dmFyIGI9d1tsXSxDPWUuZW5jb2RlTW9kZT09PTEsUj1uZXcgcihvKm4pLE89UixYO2lmKG48Mnx8Qyl7Zm9yKFg9MDtYPG47WCsrKWlmKG4+MSYmKE89bmV3IHIoUi5idWZmZXIsbypYLG8pLEY9MCksZS5oZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWw9PT1pKmgpZm9yKEI9MCxUPTA7VDxoO1QrKylmb3IoUz0wO1M8aTtTKyssQisrKXtpZih5PTAseD1iPDxmPj4+MzItZyx2PXgsMzItZjxnJiYoeHw9d1tsKzFdPj4+NjQtZi1nLHY9eCksdVt2XSl5PXVbdl1bMV0sZis9dVt2XVswXTtlbHNlIGZvcih4PWI8PGY+Pj4zMi1NLHY9eCwzMi1mPE0mJih4fD13W2wrMV0+Pj42NC1mLU0sdj14KSxkPW0sTD0wO0w8TTtMKyspaWYoRD14Pj4+TS1MLTEmMSxkPUQ/ZC5yaWdodDpkLmxlZnQsIShkLmxlZnR8fGQucmlnaHQpKXt5PWQudmFsLGY9ZitMKzE7YnJlYWt9Zj49MzImJihmLT0zMixsKyssYj13W2xdKSxJPXktVixDPyhTPjA/SSs9RjpUPjA/SSs9T1tCLWldOkkrPUYsSSY9MjU1LE9bQl09SSxGPUkpOk9bQl09SX1lbHNlIGZvcihCPTAsVD0wO1Q8aDtUKyspZm9yKFM9MDtTPGk7UysrLEIrKylpZih6W0JdKXtpZih5PTAseD1iPDxmPj4+MzItZyx2PXgsMzItZjxnJiYoeHw9d1tsKzFdPj4+NjQtZi1nLHY9eCksdVt2XSl5PXVbdl1bMV0sZis9dVt2XVswXTtlbHNlIGZvcih4PWI8PGY+Pj4zMi1NLHY9eCwzMi1mPE0mJih4fD13W2wrMV0+Pj42NC1mLU0sdj14KSxkPW0sTD0wO0w8TTtMKyspaWYoRD14Pj4+TS1MLTEmMSxkPUQ/ZC5yaWdodDpkLmxlZnQsIShkLmxlZnR8fGQucmlnaHQpKXt5PWQudmFsLGY9ZitMKzE7YnJlYWt9Zj49MzImJihmLT0zMixsKyssYj13W2xdKSxJPXktVixDPyhTPjAmJnpbQi0xXT9JKz1GOlQ+MCYmeltCLWldP0krPU9bQi1pXTpJKz1GLEkmPTI1NSxPW0JdPUksRj1JKTpPW0JdPUl9fWVsc2UgZm9yKEI9MCxUPTA7VDxoO1QrKylmb3IoUz0wO1M8aTtTKyspaWYoQj1UKmkrUywhenx8eltCXSlmb3IoWD0wO1g8bjtYKyssQis9byl7aWYoeT0wLHg9Yjw8Zj4+PjMyLWcsdj14LDMyLWY8ZyYmKHh8PXdbbCsxXT4+PjY0LWYtZyx2PXgpLHVbdl0peT11W3ZdWzFdLGYrPXVbdl1bMF07ZWxzZSBmb3IoeD1iPDxmPj4+MzItTSx2PXgsMzItZjxNJiYoeHw9d1tsKzFdPj4+NjQtZi1NLHY9eCksZD1tLEw9MDtMPE07TCsrKWlmKEQ9eD4+Pk0tTC0xJjEsZD1EP2QucmlnaHQ6ZC5sZWZ0LCEoZC5sZWZ0fHxkLnJpZ2h0KSl7eT1kLnZhbCxmPWYrTCsxO2JyZWFrfWY+PTMyJiYoZi09MzIsbCsrLGI9d1tsXSksST15LVYsT1tCXT1JfWUucHRyPWUucHRyKyhsKzEpKjQrKGY+MD80OjApLGUucGl4ZWxzLnJlc3VsdFBpeGVscz1SLG4+MSYmIXMmJihlLnBpeGVscy5yZXN1bHRQaXhlbHM9cC5zd2FwRGltZW5zaW9uT3JkZXIoUixvLG4scikpfSxkZWNvZGVCaXRzOmZ1bmN0aW9uKGEsZSxyLHMsdCl7e3ZhciBuPWUuaGVhZGVySW5mbyxoPW4uZmlsZVZlcnNpb24saT0wLG89YS5ieXRlTGVuZ3RoLWUucHRyPj01PzU6YS5ieXRlTGVuZ3RoLWUucHRyLGM9bmV3IERhdGFWaWV3KGEsZS5wdHIsbyksdT1jLmdldFVpbnQ4KDApO2krKzt2YXIgbT11Pj42LHc9bT09PTA/NDozLW0sbD0odSYzMik+MCxmPXUmMzEsZz0wO2lmKHc9PT0xKWc9Yy5nZXRVaW50OChpKSxpKys7ZWxzZSBpZih3PT09MilnPWMuZ2V0VWludDE2KGksITApLGkrPTI7ZWxzZSBpZih3PT09NClnPWMuZ2V0VWludDMyKGksITApLGkrPTQ7ZWxzZSB0aHJvdyJJbnZhbGlkIHZhbGlkIHBpeGVsIGNvdW50IHR5cGUiO3ZhciBNPTIqbi5tYXhaRXJyb3IsVixkLHksSSx6LHgsdixELFQsUz1uLm51bURpbXM+MT9uLm1heFZhbHVlc1t0XTpuLnpNYXg7aWYobCl7Zm9yKGUuY291bnRlci5sdXQrKyxEPWMuZ2V0VWludDgoaSksaSsrLEk9TWF0aC5jZWlsKChELTEpKmYvOCksej1NYXRoLmNlaWwoSS80KSxkPW5ldyBBcnJheUJ1ZmZlcih6KjQpLHk9bmV3IFVpbnQ4QXJyYXkoZCksZS5wdHIrPWkseS5zZXQobmV3IFVpbnQ4QXJyYXkoYSxlLnB0cixJKSksdj1uZXcgVWludDMyQXJyYXkoZCksZS5wdHIrPUksVD0wO0QtMT4+PlQ7KVQrKztJPU1hdGguY2VpbChnKlQvOCksej1NYXRoLmNlaWwoSS80KSxkPW5ldyBBcnJheUJ1ZmZlcih6KjQpLHk9bmV3IFVpbnQ4QXJyYXkoZCkseS5zZXQobmV3IFVpbnQ4QXJyYXkoYSxlLnB0cixJKSksVj1uZXcgVWludDMyQXJyYXkoZCksZS5wdHIrPUksaD49Mz94PUEudW5zdHVmZkxVVDIodixmLEQtMSxzLE0sUyk6eD1BLnVuc3R1ZmZMVVQodixmLEQtMSxzLE0sUyksaD49Mz9BLnVuc3R1ZmYyKFYscixULGcseCk6QS51bnN0dWZmKFYscixULGcseCl9ZWxzZSBlLmNvdW50ZXIuYml0c3R1ZmZlcisrLFQ9ZixlLnB0cis9aSxUPjAmJihJPU1hdGguY2VpbChnKlQvOCksej1NYXRoLmNlaWwoSS80KSxkPW5ldyBBcnJheUJ1ZmZlcih6KjQpLHk9bmV3IFVpbnQ4QXJyYXkoZCkseS5zZXQobmV3IFVpbnQ4QXJyYXkoYSxlLnB0cixJKSksVj1uZXcgVWludDMyQXJyYXkoZCksZS5wdHIrPUksaD49Mz9zPT1udWxsP0Eub3JpZ2luYWxVbnN0dWZmMihWLHIsVCxnKTpBLnVuc3R1ZmYyKFYscixULGcsITEscyxNLFMpOnM9PW51bGw/QS5vcmlnaW5hbFVuc3R1ZmYoVixyLFQsZyk6QS51bnN0dWZmKFYscixULGcsITEscyxNLFMpKX19LHJlYWRUaWxlczpmdW5jdGlvbihhLGUscixzKXt2YXIgdD1lLmhlYWRlckluZm8sbj10LndpZHRoLGg9dC5oZWlnaHQsaT1uKmgsbz10Lm1pY3JvQmxvY2tTaXplLGM9dC5pbWFnZVR5cGUsdT1wLmdldERhdGFUeXBlU2l6ZShjKSxtPU1hdGguY2VpbChuL28pLHc9TWF0aC5jZWlsKGgvbyk7ZS5waXhlbHMubnVtQmxvY2tzWT13LGUucGl4ZWxzLm51bUJsb2Nrc1g9bSxlLnBpeGVscy5wdHI9MDt2YXIgbD0wLGY9MCxnPTAsTT0wLFY9MCxkPTAseT0wLEk9MCx6PTAseD0wLHY9MCxEPTAsVD0wLFM9MCxCPTAsTD0wLEYsYixDLFIsTyxYLEc9bmV3IHIobypvKSxsZT1oJW98fG8sdWU9biVvfHxvLEssUSxKPXQubnVtRGltcywkLEU9ZS5waXhlbHMucmVzdWx0TWFzayxZPWUucGl4ZWxzLnJlc3VsdFBpeGVscyxoZT10LmZpbGVWZXJzaW9uLFA9aGU+PTU/MTQ6MTUsXyxXPXQuek1heCxIO2ZvcihnPTA7Zzx3O2crKylmb3IoVj1nIT09dy0xP286bGUsTT0wO008bTtNKyspZm9yKGQ9TSE9PW0tMT9vOnVlLHY9ZypuKm8rTSpvLEQ9bi1kLCQ9MDskPEo7JCsrKXtpZihKPjE/KEg9WSx2PWcqbipvK00qbyxZPW5ldyByKGUucGl4ZWxzLnJlc3VsdFBpeGVscy5idWZmZXIsaSokKnUsaSksVz10Lm1heFZhbHVlc1skXSk6SD1udWxsLHk9YS5ieXRlTGVuZ3RoLWUucHRyLEY9bmV3IERhdGFWaWV3KGEsZS5wdHIsTWF0aC5taW4oMTAseSkpLGI9e30sTD0wLEk9Ri5nZXRVaW50OCgwKSxMKyssXz10LmZpbGVWZXJzaW9uPj01P0kmNDowLHo9ST4+NiYyNTUseD1JPj4yJlAseCE9PShNKm8+PjMmUCl8fF8mJiQ9PT0wKXRocm93ImludGVncml0eSBpc3N1ZSI7aWYoWD1JJjMsWD4zKXRocm93IGUucHRyKz1MLCJJbnZhbGlkIGJsb2NrIGVuY29kaW5nICgiK1grIikiO2lmKFg9PT0yKXtpZihfKWlmKEUpZm9yKGw9MDtsPFY7bCsrKWZvcihmPTA7ZjxkO2YrKylFW3ZdJiYoWVt2XT1IW3ZdKSx2Kys7ZWxzZSBmb3IobD0wO2w8VjtsKyspZm9yKGY9MDtmPGQ7ZisrKVlbdl09SFt2XSx2Kys7ZS5jb3VudGVyLmNvbnN0YW50KyssZS5wdHIrPUw7Y29udGludWV9ZWxzZSBpZihYPT09MCl7aWYoXyl0aHJvdyJpbnRlZ3JpdHkgaXNzdWUiO2lmKGUuY291bnRlci51bmNvbXByZXNzZWQrKyxlLnB0cis9TCxUPVYqZCp1LFM9YS5ieXRlTGVuZ3RoLWUucHRyLFQ9VDxTP1Q6UyxDPW5ldyBBcnJheUJ1ZmZlcihUJXU9PT0wP1Q6VCt1LVQldSksUj1uZXcgVWludDhBcnJheShDKSxSLnNldChuZXcgVWludDhBcnJheShhLGUucHRyLFQpKSxPPW5ldyByKEMpLEI9MCxFKWZvcihsPTA7bDxWO2wrKyl7Zm9yKGY9MDtmPGQ7ZisrKUVbdl0mJihZW3ZdPU9bQisrXSksdisrO3YrPUR9ZWxzZSBmb3IobD0wO2w8VjtsKyspe2ZvcihmPTA7ZjxkO2YrKylZW3YrK109T1tCKytdO3YrPUR9ZS5wdHIrPUIqdX1lbHNlIGlmKEs9cC5nZXREYXRhVHlwZVVzZWQoXyYmYzw2PzQ6Yyx6KSxRPXAuZ2V0T25lUGl4ZWwoYixMLEssRiksTCs9cC5nZXREYXRhVHlwZVNpemUoSyksWD09PTMpaWYoZS5wdHIrPUwsZS5jb3VudGVyLmNvbnN0YW50b2Zmc2V0KyssRSlmb3IobD0wO2w8VjtsKyspe2ZvcihmPTA7ZjxkO2YrKylFW3ZdJiYoWVt2XT1fP01hdGgubWluKFcsSFt2XStRKTpRKSx2Kys7dis9RH1lbHNlIGZvcihsPTA7bDxWO2wrKyl7Zm9yKGY9MDtmPGQ7ZisrKVlbdl09Xz9NYXRoLm1pbihXLEhbdl0rUSk6USx2Kys7dis9RH1lbHNlIGlmKGUucHRyKz1MLHAuZGVjb2RlQml0cyhhLGUsRyxRLCQpLEw9MCxfKWlmKEUpZm9yKGw9MDtsPFY7bCsrKXtmb3IoZj0wO2Y8ZDtmKyspRVt2XSYmKFlbdl09R1tMKytdK0hbdl0pLHYrKzt2Kz1EfWVsc2UgZm9yKGw9MDtsPFY7bCsrKXtmb3IoZj0wO2Y8ZDtmKyspWVt2XT1HW0wrK10rSFt2XSx2Kys7dis9RH1lbHNlIGlmKEUpZm9yKGw9MDtsPFY7bCsrKXtmb3IoZj0wO2Y8ZDtmKyspRVt2XSYmKFlbdl09R1tMKytdKSx2Kys7dis9RH1lbHNlIGZvcihsPTA7bDxWO2wrKyl7Zm9yKGY9MDtmPGQ7ZisrKVlbdisrXT1HW0wrK107dis9RH19Sj4xJiYhcyYmKGUucGl4ZWxzLnJlc3VsdFBpeGVscz1wLnN3YXBEaW1lbnNpb25PcmRlcihlLnBpeGVscy5yZXN1bHRQaXhlbHMsaSxKLHIpKX0sZm9ybWF0RmlsZUluZm86ZnVuY3Rpb24oYSl7cmV0dXJue2ZpbGVJZGVudGlmaWVyU3RyaW5nOmEuaGVhZGVySW5mby5maWxlSWRlbnRpZmllclN0cmluZyxmaWxlVmVyc2lvbjphLmhlYWRlckluZm8uZmlsZVZlcnNpb24saW1hZ2VUeXBlOmEuaGVhZGVySW5mby5pbWFnZVR5cGUsaGVpZ2h0OmEuaGVhZGVySW5mby5oZWlnaHQsd2lkdGg6YS5oZWFkZXJJbmZvLndpZHRoLG51bVZhbGlkUGl4ZWw6YS5oZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWwsbWljcm9CbG9ja1NpemU6YS5oZWFkZXJJbmZvLm1pY3JvQmxvY2tTaXplLGJsb2JTaXplOmEuaGVhZGVySW5mby5ibG9iU2l6ZSxtYXhaRXJyb3I6YS5oZWFkZXJJbmZvLm1heFpFcnJvcixwaXhlbFR5cGU6cC5nZXRQaXhlbFR5cGUoYS5oZWFkZXJJbmZvLmltYWdlVHlwZSksZW9mT2Zmc2V0OmEuZW9mT2Zmc2V0LG1hc2s6YS5tYXNrP3tudW1CeXRlczphLm1hc2subnVtQnl0ZXN9Om51bGwscGl4ZWxzOntudW1CbG9ja3NYOmEucGl4ZWxzLm51bUJsb2Nrc1gsbnVtQmxvY2tzWTphLnBpeGVscy5udW1CbG9ja3NZLG1heFZhbHVlOmEuaGVhZGVySW5mby56TWF4LG1pblZhbHVlOmEuaGVhZGVySW5mby56TWluLG5vRGF0YVZhbHVlOmEubm9EYXRhVmFsdWV9fX0sY29uc3RydWN0Q29uc3RhbnRTdXJmYWNlOmZ1bmN0aW9uKGEsZSl7dmFyIHI9YS5oZWFkZXJJbmZvLnpNYXgscz1hLmhlYWRlckluZm8uek1pbix0PWEuaGVhZGVySW5mby5tYXhWYWx1ZXMsbj1hLmhlYWRlckluZm8ubnVtRGltcyxoPWEuaGVhZGVySW5mby5oZWlnaHQqYS5oZWFkZXJJbmZvLndpZHRoLGk9MCxvPTAsYz0wLHU9YS5waXhlbHMucmVzdWx0TWFzayxtPWEucGl4ZWxzLnJlc3VsdFBpeGVscztpZih1KWlmKG4+MSl7aWYoZSlmb3IoaT0wO2k8bjtpKyspZm9yKGM9aSpoLHI9dFtpXSxvPTA7bzxoO28rKyl1W29dJiYobVtjK29dPXIpO2Vsc2UgZm9yKG89MDtvPGg7bysrKWlmKHVbb10pZm9yKGM9bypuLGk9MDtpPG47aSsrKW1bYytuXT10W2ldfWVsc2UgZm9yKG89MDtvPGg7bysrKXVbb10mJihtW29dPXIpO2Vsc2UgaWYobj4xJiZzIT09cilpZihlKWZvcihpPTA7aTxuO2krKylmb3IoYz1pKmgscj10W2ldLG89MDtvPGg7bysrKW1bYytvXT1yO2Vsc2UgZm9yKG89MDtvPGg7bysrKWZvcihjPW8qbixpPTA7aTxuO2krKyltW2MraV09dFtpXTtlbHNlIGZvcihvPTA7bzxoKm47bysrKW1bb109cn0sZ2V0RGF0YVR5cGVBcnJheTpmdW5jdGlvbihhKXt2YXIgZTtzd2l0Y2goYSl7Y2FzZSAwOmU9SW50OEFycmF5O2JyZWFrO2Nhc2UgMTplPVVpbnQ4QXJyYXk7YnJlYWs7Y2FzZSAyOmU9SW50MTZBcnJheTticmVhaztjYXNlIDM6ZT1VaW50MTZBcnJheTticmVhaztjYXNlIDQ6ZT1JbnQzMkFycmF5O2JyZWFrO2Nhc2UgNTplPVVpbnQzMkFycmF5O2JyZWFrO2Nhc2UgNjplPUZsb2F0MzJBcnJheTticmVhaztjYXNlIDc6ZT1GbG9hdDY0QXJyYXk7YnJlYWs7ZGVmYXVsdDplPUZsb2F0MzJBcnJheX1yZXR1cm4gZX0sZ2V0UGl4ZWxUeXBlOmZ1bmN0aW9uKGEpe3ZhciBlO3N3aXRjaChhKXtjYXNlIDA6ZT0iUzgiO2JyZWFrO2Nhc2UgMTplPSJVOCI7YnJlYWs7Y2FzZSAyOmU9IlMxNiI7YnJlYWs7Y2FzZSAzOmU9IlUxNiI7YnJlYWs7Y2FzZSA0OmU9IlMzMiI7YnJlYWs7Y2FzZSA1OmU9IlUzMiI7YnJlYWs7Y2FzZSA2OmU9IkYzMiI7YnJlYWs7Y2FzZSA3OmU9IkY2NCI7YnJlYWs7ZGVmYXVsdDplPSJGMzIifXJldHVybiBlfSxpc1ZhbGlkUGl4ZWxWYWx1ZTpmdW5jdGlvbihhLGUpe2lmKGU9PW51bGwpcmV0dXJuITE7dmFyIHI7c3dpdGNoKGEpe2Nhc2UgMDpyPWU+PS0xMjgmJmU8PTEyNzticmVhaztjYXNlIDE6cj1lPj0wJiZlPD0yNTU7YnJlYWs7Y2FzZSAyOnI9ZT49LTMyNzY4JiZlPD0zMjc2NzticmVhaztjYXNlIDM6cj1lPj0wJiZlPD02NTUzNjticmVhaztjYXNlIDQ6cj1lPj0tMjE0NzQ4MzY0OCYmZTw9MjE0NzQ4MzY0NzticmVhaztjYXNlIDU6cj1lPj0wJiZlPD00Mjk0OTY3Mjk2O2JyZWFrO2Nhc2UgNjpyPWU+PS0zNDAyNzk5OTM4NzkwMTQ4NGUyMiYmZTw9MzQwMjc5OTkzODc5MDE0ODRlMjI7YnJlYWs7Y2FzZSA3OnI9ZT49LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiYmZTw9MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2JyZWFrO2RlZmF1bHQ6cj0hMX1yZXR1cm4gcn0sZ2V0RGF0YVR5cGVTaXplOmZ1bmN0aW9uKGEpe3ZhciBlPTA7c3dpdGNoKGEpe2Nhc2UgMDpjYXNlIDE6ZT0xO2JyZWFrO2Nhc2UgMjpjYXNlIDM6ZT0yO2JyZWFrO2Nhc2UgNDpjYXNlIDU6Y2FzZSA2OmU9NDticmVhaztjYXNlIDc6ZT04O2JyZWFrO2RlZmF1bHQ6ZT1hfXJldHVybiBlfSxnZXREYXRhVHlwZVVzZWQ6ZnVuY3Rpb24oYSxlKXt2YXIgcj1hO3N3aXRjaChhKXtjYXNlIDI6Y2FzZSA0OnI9YS1lO2JyZWFrO2Nhc2UgMzpjYXNlIDU6cj1hLTIqZTticmVhaztjYXNlIDY6ZT09PTA/cj1hOmU9PT0xP3I9MjpyPTE7YnJlYWs7Y2FzZSA3OmU9PT0wP3I9YTpyPWEtMiplKzE7YnJlYWs7ZGVmYXVsdDpyPWE7YnJlYWt9cmV0dXJuIHJ9LGdldE9uZVBpeGVsOmZ1bmN0aW9uKGEsZSxyLHMpe3ZhciB0PTA7c3dpdGNoKHIpe2Nhc2UgMDp0PXMuZ2V0SW50OChlKTticmVhaztjYXNlIDE6dD1zLmdldFVpbnQ4KGUpO2JyZWFrO2Nhc2UgMjp0PXMuZ2V0SW50MTYoZSwhMCk7YnJlYWs7Y2FzZSAzOnQ9cy5nZXRVaW50MTYoZSwhMCk7YnJlYWs7Y2FzZSA0OnQ9cy5nZXRJbnQzMihlLCEwKTticmVhaztjYXNlIDU6dD1zLmdldFVJbnQzMihlLCEwKTticmVhaztjYXNlIDY6dD1zLmdldEZsb2F0MzIoZSwhMCk7YnJlYWs7Y2FzZSA3OnQ9cy5nZXRGbG9hdDY0KGUsITApO2JyZWFrO2RlZmF1bHQ6dGhyb3cidGhlIGRlY29kZXIgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGlzIHBpeGVsIHR5cGUifXJldHVybiB0fSxzd2FwRGltZW5zaW9uT3JkZXI6ZnVuY3Rpb24oYSxlLHIscyx0KXt2YXIgbj0wLGg9MCxpPTAsbz0wLGM9YTtpZihyPjEpaWYoYz1uZXcgcyhlKnIpLHQpZm9yKG49MDtuPGU7bisrKWZvcihvPW4saT0wO2k8cjtpKyssbys9ZSljW29dPWFbaCsrXTtlbHNlIGZvcihuPTA7bjxlO24rKylmb3Iobz1uLGk9MDtpPHI7aSsrLG8rPWUpY1toKytdPWFbb107cmV0dXJuIGN9fSxrPWZ1bmN0aW9uKGEsZSxyKXt0aGlzLnZhbD1hLHRoaXMubGVmdD1lLHRoaXMucmlnaHQ9cn0sVT17ZGVjb2RlOmZ1bmN0aW9uKGEsZSl7ZT1lfHx7fTt2YXIgcj1lLm5vRGF0YVZhbHVlLHM9MCx0PXt9O2lmKHQucHRyPWUuaW5wdXRPZmZzZXR8fDAsdC5waXhlbHM9e30sISFwLnJlYWRIZWFkZXJJbmZvKGEsdCkpe3ZhciBuPXQuaGVhZGVySW5mbyxoPW4uZmlsZVZlcnNpb24saT1wLmdldERhdGFUeXBlQXJyYXkobi5pbWFnZVR5cGUpO2lmKGg+NSl0aHJvdyJ1bnN1cHBvcnRlZCBsZXJjIHZlcnNpb24gMi4iK2g7cC5yZWFkTWFzayhhLHQpLG4ubnVtVmFsaWRQaXhlbCE9PW4ud2lkdGgqbi5oZWlnaHQmJiF0LnBpeGVscy5yZXN1bHRNYXNrJiYodC5waXhlbHMucmVzdWx0TWFzaz1lLm1hc2tEYXRhKTt2YXIgbz1uLndpZHRoKm4uaGVpZ2h0O3QucGl4ZWxzLnJlc3VsdFBpeGVscz1uZXcgaShvKm4ubnVtRGltcyksdC5jb3VudGVyPXtvbmVzd2VlcDowLHVuY29tcHJlc3NlZDowLGx1dDowLGJpdHN0dWZmZXI6MCxjb25zdGFudDowLGNvbnN0YW50b2Zmc2V0OjB9O3ZhciBjPSFlLnJldHVyblBpeGVsSW50ZXJsZWF2ZWREaW1zO2lmKG4ubnVtVmFsaWRQaXhlbCE9PTApaWYobi56TWF4PT09bi56TWluKXAuY29uc3RydWN0Q29uc3RhbnRTdXJmYWNlKHQsYyk7ZWxzZSBpZihoPj00JiZwLmNoZWNrTWluTWF4UmFuZ2VzKGEsdCkpcC5jb25zdHJ1Y3RDb25zdGFudFN1cmZhY2UodCxjKTtlbHNle3ZhciB1PW5ldyBEYXRhVmlldyhhLHQucHRyLDIpLG09dS5nZXRVaW50OCgwKTtpZih0LnB0cisrLG0pcC5yZWFkRGF0YU9uZVN3ZWVwKGEsdCxpLGMpO2Vsc2UgaWYoaD4xJiZuLmltYWdlVHlwZTw9MSYmTWF0aC5hYnMobi5tYXhaRXJyb3ItLjUpPDFlLTUpe3ZhciB3PXUuZ2V0VWludDgoMSk7aWYodC5wdHIrKyx0LmVuY29kZU1vZGU9dyx3PjJ8fGg8NCYmdz4xKXRocm93IkludmFsaWQgSHVmZm1hbiBmbGFnICIrdzt3P3AucmVhZEh1ZmZtYW4oYSx0LGksYyk6cC5yZWFkVGlsZXMoYSx0LGksYyl9ZWxzZSBwLnJlYWRUaWxlcyhhLHQsaSxjKX10LmVvZk9mZnNldD10LnB0cjt2YXIgbDtlLmlucHV0T2Zmc2V0PyhsPXQuaGVhZGVySW5mby5ibG9iU2l6ZStlLmlucHV0T2Zmc2V0LXQucHRyLE1hdGguYWJzKGwpPj0xJiYodC5lb2ZPZmZzZXQ9ZS5pbnB1dE9mZnNldCt0LmhlYWRlckluZm8uYmxvYlNpemUpKToobD10LmhlYWRlckluZm8uYmxvYlNpemUtdC5wdHIsTWF0aC5hYnMobCk+PTEmJih0LmVvZk9mZnNldD10LmhlYWRlckluZm8uYmxvYlNpemUpKTt2YXIgZj17d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHQscGl4ZWxEYXRhOnQucGl4ZWxzLnJlc3VsdFBpeGVscyxtaW5WYWx1ZTpuLnpNaW4sbWF4VmFsdWU6bi56TWF4LHZhbGlkUGl4ZWxDb3VudDpuLm51bVZhbGlkUGl4ZWwsZGltQ291bnQ6bi5udW1EaW1zLGRpbVN0YXRzOnttaW5WYWx1ZXM6bi5taW5WYWx1ZXMsbWF4VmFsdWVzOm4ubWF4VmFsdWVzfSxtYXNrRGF0YTp0LnBpeGVscy5yZXN1bHRNYXNrfTtpZih0LnBpeGVscy5yZXN1bHRNYXNrJiZwLmlzVmFsaWRQaXhlbFZhbHVlKG4uaW1hZ2VUeXBlLHIpKXt2YXIgZz10LnBpeGVscy5yZXN1bHRNYXNrO2ZvcihzPTA7czxvO3MrKylnW3NdfHwoZi5waXhlbERhdGFbc109cik7Zi5ub0RhdGFWYWx1ZT1yfXJldHVybiB0Lm5vRGF0YVZhbHVlPXIsZS5yZXR1cm5GaWxlSW5mbyYmKGYuZmlsZUluZm89cC5mb3JtYXRGaWxlSW5mbyh0KSksZn19LGdldEJhbmRDb3VudDpmdW5jdGlvbihhKXt2YXIgZT0wLHI9MCxzPXt9O2ZvcihzLnB0cj0wLHMucGl4ZWxzPXt9O3I8YS5ieXRlTGVuZ3RoLTU4OylwLnJlYWRIZWFkZXJJbmZvKGEscykscis9cy5oZWFkZXJJbmZvLmJsb2JTaXplLGUrKyxzLnB0cj1yO3JldHVybiBlfX07cmV0dXJuIFV9KCk7dmFyIG5lPWZ1bmN0aW9uKCl7dmFyIEE9bmV3IEFycmF5QnVmZmVyKDQpLHA9bmV3IFVpbnQ4QXJyYXkoQSksaz1uZXcgVWludDMyQXJyYXkoQSk7cmV0dXJuIGtbMF09MSxwWzBdPT09MX0oKSxpZT17ZGVjb2RlOmZ1bmN0aW9uKEEscCl7aWYoIW5lKXRocm93IkJpZyBlbmRpYW4gc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQuIjtwPXB8fHt9O3ZhciBrPXAuaW5wdXRPZmZzZXR8fDAsVT1uZXcgVWludDhBcnJheShBLGssMTApLGE9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFUpLGUscjtpZihhLnRyaW0oKT09PSJDbnRaSW1hZ2UiKWU9ZWUscj0xO2Vsc2UgaWYoYS5zdWJzdHJpbmcoMCw1KT09PSJMZXJjMiIpZT1yZSxyPTI7ZWxzZSB0aHJvdyJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmc6ICIrYTtmb3IodmFyIHM9MCx0PUEuYnl0ZUxlbmd0aC0xMCxuLGg9W10saSxvLGM9e3dpZHRoOjAsaGVpZ2h0OjAscGl4ZWxzOltdLHBpeGVsVHlwZTpwLnBpeGVsVHlwZSxtYXNrOm51bGwsc3RhdGlzdGljczpbXX0sdT0wO2s8dDspe3ZhciBtPWUuZGVjb2RlKEEse2lucHV0T2Zmc2V0OmssZW5jb2RlZE1hc2tEYXRhOm4sbWFza0RhdGE6byxyZXR1cm5NYXNrOnM9PT0wLHJldHVybkVuY29kZWRNYXNrOnM9PT0wLHJldHVybkZpbGVJbmZvOiEwLHJldHVyblBpeGVsSW50ZXJsZWF2ZWREaW1zOnAucmV0dXJuUGl4ZWxJbnRlcmxlYXZlZERpbXMscGl4ZWxUeXBlOnAucGl4ZWxUeXBlfHxudWxsLG5vRGF0YVZhbHVlOnAubm9EYXRhVmFsdWV8fG51bGx9KTtrPW0uZmlsZUluZm8uZW9mT2Zmc2V0LG89bS5tYXNrRGF0YSxzPT09MCYmKG49bS5lbmNvZGVkTWFza0RhdGEsYy53aWR0aD1tLndpZHRoLGMuaGVpZ2h0PW0uaGVpZ2h0LGMuZGltQ291bnQ9bS5kaW1Db3VudHx8MSxjLnBpeGVsVHlwZT1tLnBpeGVsVHlwZXx8bS5maWxlSW5mby5waXhlbFR5cGUsYy5tYXNrPW8pLHI+MSYmKG8mJmgucHVzaChvKSxtLmZpbGVJbmZvLm1hc2smJm0uZmlsZUluZm8ubWFzay5udW1CeXRlcz4wJiZ1KyspLHMrKyxjLnBpeGVscy5wdXNoKG0ucGl4ZWxEYXRhKSxjLnN0YXRpc3RpY3MucHVzaCh7bWluVmFsdWU6bS5taW5WYWx1ZSxtYXhWYWx1ZTptLm1heFZhbHVlLG5vRGF0YVZhbHVlOm0ubm9EYXRhVmFsdWUsZGltU3RhdHM6bS5kaW1TdGF0c30pfXZhciB3LGwsZjtpZihyPjEmJnU+MSl7Zm9yKGY9Yy53aWR0aCpjLmhlaWdodCxjLmJhbmRNYXNrcz1oLG89bmV3IFVpbnQ4QXJyYXkoZiksby5zZXQoaFswXSksdz0xO3c8aC5sZW5ndGg7dysrKWZvcihpPWhbd10sbD0wO2w8ZjtsKyspb1tsXT1vW2xdJmlbbF07Yy5tYXNrRGF0YT1vfXJldHVybiBjfX07Y29uc3QgdGU9ezA6N2UzLDE6NmUzLDI6NWUzLDM6NGUzLDQ6M2UzLDU6MjUwMCw2OjJlMyw3OjE1MDAsODo4MDAsOTo1MDAsMTA6MjAwLDExOjEwMCwxMjo0MCwxMzoxMiwxNDo1LDE1OjIsMTY6MSwxNzouNSwxODouMiwxOTouMSwyMDouMDF9O2Z1bmN0aW9uIGFlKEEpe2NvbnN0e2hlaWdodDpwLHdpZHRoOmsscGl4ZWxzOlV9PWllLmRlY29kZShBKSxhPW5ldyBGbG9hdDMyQXJyYXkocCprKTtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKylhW2VdPVVbMF1bZV07cmV0dXJue2FycmF5OmEsd2lkdGg6ayxoZWlnaHQ6cH19ZnVuY3Rpb24gc2UoQSxwLGspe2xldCBVPWFlKEEpO2tbMl0ta1swXTwxJiYoVT1mZShVLGspKTtjb25zdHthcnJheTphLHdpZHRoOmV9PVUscz1uZXcgWihlKS5jcmVhdGVUaWxlKGEpLHQ9dGVbcF18fDA7cmV0dXJuIHMuZ2V0R2VvbWV0cnlEYXRhKHQpfWZ1bmN0aW9uIGZlKEEscCl7ZnVuY3Rpb24gayhzLHQsbixoLGksbyxjLHUpe2NvbnN0IG09bmV3IEZsb2F0MzJBcnJheShpKm8pO2ZvcihsZXQgbD0wO2w8bztsKyspZm9yKGxldCBmPTA7ZjxpO2YrKyl7Y29uc3QgZz0obCtoKSp0KyhmK24pLE09bCppK2Y7bVtNXT1zW2ddfWNvbnN0IHc9bmV3IEZsb2F0MzJBcnJheSh1KmMpO2ZvcihsZXQgbD0wO2w8dTtsKyspZm9yKGxldCBmPTA7ZjxjO2YrKyl7Y29uc3QgZz1sKnUrZixNPU1hdGgucm91bmQoZipvL3UpLGQ9TWF0aC5yb3VuZChsKmkvYykqaStNO3dbZ109bVtkXX1yZXR1cm4gd31jb25zdCBVPW9lKHAsQS53aWR0aCksYT1VLnN3KzEsZT1VLnNoKzE7cmV0dXJue2FycmF5OmsoQS5hcnJheSxBLndpZHRoLFUuc3gsVS5zeSxVLnN3LFUuc2gsYSxlKSx3aWR0aDphLGhlaWdodDplfX1mdW5jdGlvbiBvZShBLHApe2NvbnN0IGs9TWF0aC5mbG9vcihBWzBdKnApLFU9TWF0aC5mbG9vcihBWzFdKnApLGE9TWF0aC5mbG9vcigoQVsyXS1BWzBdKSpwKSxlPU1hdGguZmxvb3IoKEFbM10tQVsxXSkqcCk7cmV0dXJue3N4Omssc3k6VSxzdzphLHNoOmV9fXNlbGYub25tZXNzYWdlPUE9Pntjb25zdCBwPUEuZGF0YSxrPXNlKHAuZGVtRGF0YSxwLnoscC5jbGlwQm91bmRzKTtzZWxmLnBvc3RNZXNzYWdlKGspfX0pKCk7Cg==", T_ = (a) => Uint8Array.from(atob(a), (t) => t.charCodeAt(0)), Mh = typeof self < "u" && self.Blob && new Blob([T_(Ad)], { type: "text/javascript;charset=utf-8" });
|
|
16401
16401
|
function L_(a) {
|
|
16402
16402
|
let t;
|
|
@@ -16441,17 +16441,17 @@ const S_ = function() {
|
|
|
16441
16441
|
return f.resultMask && (g.maskData = f.resultMask), c.returnEncodedMask && d.mask && (g.encodedMaskData = d.mask.bitset ? d.mask.bitset : null), c.returnFileInfo && (g.fileInfo = e(d), c.computeUsedBitDepths && (g.fileInfo.bitDepths = n(d))), g;
|
|
16442
16442
|
};
|
|
16443
16443
|
var t = function(l, c, u, d, p) {
|
|
16444
|
-
var f = 0, g = l.pixels.numBlocksX, y = l.pixels.numBlocksY, w = Math.floor(l.width / g),
|
|
16444
|
+
var f = 0, g = l.pixels.numBlocksX, y = l.pixels.numBlocksY, w = Math.floor(l.width / g), T = Math.floor(l.height / y), b = 2 * l.maxZError, S = Number.MAX_VALUE, L;
|
|
16445
16445
|
u = u || (l.mask ? l.mask.bitset : null);
|
|
16446
|
-
var Z,
|
|
16447
|
-
Z = new c(l.width * l.height), p && u && (
|
|
16448
|
-
for (var z = new Float32Array(w *
|
|
16449
|
-
var D = P !== y ?
|
|
16446
|
+
var Z, V;
|
|
16447
|
+
Z = new c(l.width * l.height), p && u && (V = new Uint8Array(l.width * l.height));
|
|
16448
|
+
for (var z = new Float32Array(w * T), X, k, P = 0; P <= y; P++) {
|
|
16449
|
+
var D = P !== y ? T : l.height % y;
|
|
16450
16450
|
if (D !== 0)
|
|
16451
16451
|
for (var I = 0; I <= g; I++) {
|
|
16452
16452
|
var A = I !== g ? w : l.width % g;
|
|
16453
16453
|
if (A !== 0) {
|
|
16454
|
-
var U = P * l.width *
|
|
16454
|
+
var U = P * l.width * T + I * w, j = l.width - A, B = l.pixels.blocks[f], q, N, ie;
|
|
16455
16455
|
B.encoding < 2 ? (B.encoding === 0 ? q = B.rawData : (s(
|
|
16456
16456
|
B.stuffedData,
|
|
16457
16457
|
B.bitsPerPixel,
|
|
@@ -16465,17 +16465,17 @@ const S_ = function() {
|
|
|
16465
16465
|
if (u)
|
|
16466
16466
|
for (k = 0; k < D; k++) {
|
|
16467
16467
|
for (U & 7 && (re = u[U >> 3], re <<= U & 7), X = 0; X < A; X++)
|
|
16468
|
-
U & 7 || (re = u[U >> 3]), re & 128 ? (
|
|
16468
|
+
U & 7 || (re = u[U >> 3]), re & 128 ? (V && (V[U] = 1), L = B.encoding < 2 ? q[N++] : ie, S = S > L ? L : S, Z[U++] = L) : (V && (V[U] = 0), Z[U++] = d), re <<= 1;
|
|
16469
16469
|
U += j;
|
|
16470
16470
|
}
|
|
16471
16471
|
else if (B.encoding < 2)
|
|
16472
16472
|
for (k = 0; k < D; k++) {
|
|
16473
16473
|
for (X = 0; X < A; X++)
|
|
16474
|
-
|
|
16474
|
+
L = q[N++], S = S > L ? L : S, Z[U++] = L;
|
|
16475
16475
|
U += j;
|
|
16476
16476
|
}
|
|
16477
16477
|
else
|
|
16478
|
-
for (
|
|
16478
|
+
for (S = S > ie ? ie : S, k = 0; k < D; k++) {
|
|
16479
16479
|
for (X = 0; X < A; X++)
|
|
16480
16480
|
Z[U++] = ie;
|
|
16481
16481
|
U += j;
|
|
@@ -16488,8 +16488,8 @@ const S_ = function() {
|
|
|
16488
16488
|
}
|
|
16489
16489
|
return {
|
|
16490
16490
|
resultPixels: Z,
|
|
16491
|
-
resultMask:
|
|
16492
|
-
minValue:
|
|
16491
|
+
resultMask: V,
|
|
16492
|
+
minValue: S
|
|
16493
16493
|
};
|
|
16494
16494
|
}, e = function(l) {
|
|
16495
16495
|
return {
|
|
@@ -16530,26 +16530,26 @@ const S_ = function() {
|
|
|
16530
16530
|
if (f = new DataView(l, c, 16), d.mask = {}, d.mask.numBlocksY = f.getUint32(0, !0), d.mask.numBlocksX = f.getUint32(4, !0), d.mask.numBytes = f.getUint32(8, !0), d.mask.maxValue = f.getFloat32(12, !0), c += 16, d.mask.numBytes > 0) {
|
|
16531
16531
|
var g = new Uint8Array(Math.ceil(d.width * d.height / 8));
|
|
16532
16532
|
f = new DataView(l, c, d.mask.numBytes);
|
|
16533
|
-
var y = f.getInt16(0, !0), w = 2,
|
|
16533
|
+
var y = f.getInt16(0, !0), w = 2, T = 0;
|
|
16534
16534
|
do {
|
|
16535
16535
|
if (y > 0)
|
|
16536
16536
|
for (; y--; )
|
|
16537
|
-
g[
|
|
16537
|
+
g[T++] = f.getUint8(w++);
|
|
16538
16538
|
else {
|
|
16539
16539
|
var b = f.getUint8(w++);
|
|
16540
16540
|
for (y = -y; y--; )
|
|
16541
|
-
g[
|
|
16541
|
+
g[T++] = b;
|
|
16542
16542
|
}
|
|
16543
16543
|
y = f.getInt16(w, !0), w += 2;
|
|
16544
16544
|
} while (w < d.mask.numBytes);
|
|
16545
|
-
if (y !== -32768 ||
|
|
16545
|
+
if (y !== -32768 || T < g.length)
|
|
16546
16546
|
throw "Unexpected end of mask RLE encoding";
|
|
16547
16547
|
d.mask.bitset = g, c += d.mask.numBytes;
|
|
16548
16548
|
} else d.mask.numBytes | d.mask.numBlocksY | d.mask.maxValue || (d.mask.bitset = new Uint8Array(Math.ceil(d.width * d.height / 8)));
|
|
16549
16549
|
f = new DataView(l, c, 16), d.pixels = {}, d.pixels.numBlocksY = f.getUint32(0, !0), d.pixels.numBlocksX = f.getUint32(4, !0), d.pixels.numBytes = f.getUint32(8, !0), d.pixels.maxValue = f.getFloat32(12, !0), c += 16;
|
|
16550
|
-
var
|
|
16551
|
-
d.pixels.blocks = new Array(Z *
|
|
16552
|
-
for (var z = 0, X = 0; X <
|
|
16550
|
+
var S = d.pixels.numBlocksX, L = d.pixels.numBlocksY, Z = S + (d.width % S > 0 ? 1 : 0), V = L + (d.height % L > 0 ? 1 : 0);
|
|
16551
|
+
d.pixels.blocks = new Array(Z * V);
|
|
16552
|
+
for (var z = 0, X = 0; X < V; X++)
|
|
16553
16553
|
for (var k = 0; k < Z; k++) {
|
|
16554
16554
|
var P = 0, D = l.byteLength - c;
|
|
16555
16555
|
f = new DataView(l, c, Math.min(10, D));
|
|
@@ -16598,15 +16598,15 @@ const S_ = function() {
|
|
|
16598
16598
|
}
|
|
16599
16599
|
return d.eofOffset = c, d;
|
|
16600
16600
|
}, s = function(l, c, u, d, p, f, g) {
|
|
16601
|
-
var y = (1 << c) - 1, w = 0,
|
|
16602
|
-
for (l[l.length - 1] <<= 8 *
|
|
16603
|
-
if (b === 0 && (
|
|
16604
|
-
|
|
16601
|
+
var y = (1 << c) - 1, w = 0, T, b = 0, S, L, Z = Math.ceil((g - d) / p), V = l.length * 4 - Math.ceil(c * u / 8);
|
|
16602
|
+
for (l[l.length - 1] <<= 8 * V, T = 0; T < u; T++) {
|
|
16603
|
+
if (b === 0 && (L = l[w++], b = 32), b >= c)
|
|
16604
|
+
S = L >>> b - c & y, b -= c;
|
|
16605
16605
|
else {
|
|
16606
16606
|
var z = c - b;
|
|
16607
|
-
|
|
16607
|
+
S = (L & y) << z & y, L = l[w++], b = 32 - z, S += L >>> b;
|
|
16608
16608
|
}
|
|
16609
|
-
f[
|
|
16609
|
+
f[T] = S < Z ? d + S * p : g;
|
|
16610
16610
|
}
|
|
16611
16611
|
return f;
|
|
16612
16612
|
};
|
|
@@ -16616,50 +16616,50 @@ const S_ = function() {
|
|
|
16616
16616
|
//methods ending with 2 are for the new byte order used by Lerc2.3 and above.
|
|
16617
16617
|
//originalUnstuff is used to unpack Huffman code table. code is duplicated to unstuffx for performance reasons.
|
|
16618
16618
|
unstuff: function(r, s, l, c, u, d, p, f) {
|
|
16619
|
-
var g = (1 << l) - 1, y = 0, w,
|
|
16620
|
-
if (r[r.length - 1] <<= 8 *
|
|
16619
|
+
var g = (1 << l) - 1, y = 0, w, T = 0, b, S, L, Z, V = r.length * 4 - Math.ceil(l * c / 8);
|
|
16620
|
+
if (r[r.length - 1] <<= 8 * V, u)
|
|
16621
16621
|
for (w = 0; w < c; w++)
|
|
16622
|
-
|
|
16622
|
+
T === 0 && (S = r[y++], T = 32), T >= l ? (b = S >>> T - l & g, T -= l) : (L = l - T, b = (S & g) << L & g, S = r[y++], T = 32 - L, b += S >>> T), s[w] = u[b];
|
|
16623
16623
|
else
|
|
16624
16624
|
for (Z = Math.ceil((f - d) / p), w = 0; w < c; w++)
|
|
16625
|
-
|
|
16625
|
+
T === 0 && (S = r[y++], T = 32), T >= l ? (b = S >>> T - l & g, T -= l) : (L = l - T, b = (S & g) << L & g, S = r[y++], T = 32 - L, b += S >>> T), s[w] = b < Z ? d + b * p : f;
|
|
16626
16626
|
},
|
|
16627
16627
|
unstuffLUT: function(r, s, l, c, u, d) {
|
|
16628
|
-
var p = (1 << s) - 1, f = 0, g = 0, y = 0, w = 0,
|
|
16629
|
-
r[r.length - 1] <<= 8 *
|
|
16628
|
+
var p = (1 << s) - 1, f = 0, g = 0, y = 0, w = 0, T = 0, b, S = [], L = r.length * 4 - Math.ceil(s * l / 8);
|
|
16629
|
+
r[r.length - 1] <<= 8 * L;
|
|
16630
16630
|
var Z = Math.ceil((d - c) / u);
|
|
16631
16631
|
for (g = 0; g < l; g++)
|
|
16632
|
-
w === 0 && (b = r[f++], w = 32), w >= s ? (
|
|
16633
|
-
return
|
|
16632
|
+
w === 0 && (b = r[f++], w = 32), w >= s ? (T = b >>> w - s & p, w -= s) : (y = s - w, T = (b & p) << y & p, b = r[f++], w = 32 - y, T += b >>> w), S[g] = T < Z ? c + T * u : d;
|
|
16633
|
+
return S.unshift(c), S;
|
|
16634
16634
|
},
|
|
16635
16635
|
unstuff2: function(r, s, l, c, u, d, p, f) {
|
|
16636
|
-
var g = (1 << l) - 1, y = 0, w,
|
|
16636
|
+
var g = (1 << l) - 1, y = 0, w, T = 0, b = 0, S, L, Z;
|
|
16637
16637
|
if (u)
|
|
16638
16638
|
for (w = 0; w < c; w++)
|
|
16639
|
-
|
|
16639
|
+
T === 0 && (L = r[y++], T = 32, b = 0), T >= l ? (S = L >>> b & g, T -= l, b += l) : (Z = l - T, S = L >>> b & g, L = r[y++], T = 32 - Z, S |= (L & (1 << Z) - 1) << l - Z, b = Z), s[w] = u[S];
|
|
16640
16640
|
else {
|
|
16641
|
-
var
|
|
16641
|
+
var V = Math.ceil((f - d) / p);
|
|
16642
16642
|
for (w = 0; w < c; w++)
|
|
16643
|
-
|
|
16643
|
+
T === 0 && (L = r[y++], T = 32, b = 0), T >= l ? (S = L >>> b & g, T -= l, b += l) : (Z = l - T, S = L >>> b & g, L = r[y++], T = 32 - Z, S |= (L & (1 << Z) - 1) << l - Z, b = Z), s[w] = S < V ? d + S * p : f;
|
|
16644
16644
|
}
|
|
16645
16645
|
return s;
|
|
16646
16646
|
},
|
|
16647
16647
|
unstuffLUT2: function(r, s, l, c, u, d) {
|
|
16648
|
-
var p = (1 << s) - 1, f = 0, g = 0, y = 0, w = 0,
|
|
16648
|
+
var p = (1 << s) - 1, f = 0, g = 0, y = 0, w = 0, T = 0, b = 0, S, L = [], Z = Math.ceil((d - c) / u);
|
|
16649
16649
|
for (g = 0; g < l; g++)
|
|
16650
|
-
w === 0 && (
|
|
16651
|
-
return
|
|
16650
|
+
w === 0 && (S = r[f++], w = 32, b = 0), w >= s ? (T = S >>> b & p, w -= s, b += s) : (y = s - w, T = S >>> b & p, S = r[f++], w = 32 - y, T |= (S & (1 << y) - 1) << s - y, b = y), L[g] = T < Z ? c + T * u : d;
|
|
16651
|
+
return L.unshift(c), L;
|
|
16652
16652
|
},
|
|
16653
16653
|
originalUnstuff: function(r, s, l, c) {
|
|
16654
|
-
var u = (1 << l) - 1, d = 0, p, f = 0, g, y, w,
|
|
16655
|
-
for (r[r.length - 1] <<= 8 *
|
|
16654
|
+
var u = (1 << l) - 1, d = 0, p, f = 0, g, y, w, T = r.length * 4 - Math.ceil(l * c / 8);
|
|
16655
|
+
for (r[r.length - 1] <<= 8 * T, p = 0; p < c; p++)
|
|
16656
16656
|
f === 0 && (y = r[d++], f = 32), f >= l ? (g = y >>> f - l & u, f -= l) : (w = l - f, g = (y & u) << w & u, y = r[d++], f = 32 - w, g += y >>> f), s[p] = g;
|
|
16657
16657
|
return s;
|
|
16658
16658
|
},
|
|
16659
16659
|
originalUnstuff2: function(r, s, l, c) {
|
|
16660
|
-
var u = (1 << l) - 1, d = 0, p, f = 0, g = 0, y, w,
|
|
16660
|
+
var u = (1 << l) - 1, d = 0, p, f = 0, g = 0, y, w, T;
|
|
16661
16661
|
for (p = 0; p < c; p++)
|
|
16662
|
-
f === 0 && (w = r[d++], f = 32, g = 0), f >= l ? (y = w >>> g & u, f -= l, g += l) : (
|
|
16662
|
+
f === 0 && (w = r[d++], f = 32, g = 0), f >= l ? (y = w >>> g & u, f -= l, g += l) : (T = l - f, y = w >>> g & u, w = r[d++], f = 32 - T, y |= (w & (1 << T) - 1) << l - T, g = T), s[p] = y;
|
|
16663
16663
|
return s;
|
|
16664
16664
|
}
|
|
16665
16665
|
}, t = {
|
|
@@ -16718,33 +16718,33 @@ const S_ = function() {
|
|
|
16718
16718
|
g = new Uint8Array(Math.ceil(u / 8)), f.bitset = g, y = new Uint8Array(u), s.pixels.resultMask = y, l += f.numBytes;
|
|
16719
16719
|
else if (f.numBytes > 0) {
|
|
16720
16720
|
g = new Uint8Array(Math.ceil(u / 8)), p = new DataView(r, l, f.numBytes);
|
|
16721
|
-
var w = p.getInt16(0, !0),
|
|
16721
|
+
var w = p.getInt16(0, !0), T = 2, b = 0, S = 0;
|
|
16722
16722
|
do {
|
|
16723
16723
|
if (w > 0)
|
|
16724
16724
|
for (; w--; )
|
|
16725
|
-
g[b++] = p.getUint8(
|
|
16725
|
+
g[b++] = p.getUint8(T++);
|
|
16726
16726
|
else
|
|
16727
|
-
for (
|
|
16728
|
-
g[b++] =
|
|
16729
|
-
w = p.getInt16(
|
|
16730
|
-
} while (
|
|
16727
|
+
for (S = p.getUint8(T++), w = -w; w--; )
|
|
16728
|
+
g[b++] = S;
|
|
16729
|
+
w = p.getInt16(T, !0), T += 2;
|
|
16730
|
+
} while (T < f.numBytes);
|
|
16731
16731
|
if (w !== -32768 || b < g.length)
|
|
16732
16732
|
throw "Unexpected end of mask RLE encoding";
|
|
16733
16733
|
y = new Uint8Array(u);
|
|
16734
|
-
var
|
|
16734
|
+
var L = 0, Z = 0;
|
|
16735
16735
|
for (Z = 0; Z < u; Z++)
|
|
16736
|
-
Z & 7 ? (
|
|
16736
|
+
Z & 7 ? (L = g[Z >> 3], L <<= Z & 7) : L = g[Z >> 3], L & 128 && (y[Z] = 1);
|
|
16737
16737
|
s.pixels.resultMask = y, f.bitset = g, l += f.numBytes;
|
|
16738
16738
|
}
|
|
16739
16739
|
return s.ptr = l, s.mask = f, !0;
|
|
16740
16740
|
},
|
|
16741
16741
|
readDataOneSweep: function(r, s, l, c) {
|
|
16742
|
-
var u = s.ptr, d = s.headerInfo, p = d.numDims, f = d.width * d.height, g = d.imageType, y = d.numValidPixel * t.getDataTypeSize(g) * p, w,
|
|
16742
|
+
var u = s.ptr, d = s.headerInfo, p = d.numDims, f = d.width * d.height, g = d.imageType, y = d.numValidPixel * t.getDataTypeSize(g) * p, w, T = s.pixels.resultMask;
|
|
16743
16743
|
if (l === Uint8Array)
|
|
16744
16744
|
w = new Uint8Array(r, u, y);
|
|
16745
16745
|
else {
|
|
16746
|
-
var b = new ArrayBuffer(y),
|
|
16747
|
-
|
|
16746
|
+
var b = new ArrayBuffer(y), S = new Uint8Array(b);
|
|
16747
|
+
S.set(new Uint8Array(r, u, y)), w = new l(b);
|
|
16748
16748
|
}
|
|
16749
16749
|
if (w.length === f * p)
|
|
16750
16750
|
c ? s.pixels.resultPixels = t.swapDimensionOrder(
|
|
@@ -16756,21 +16756,21 @@ const S_ = function() {
|
|
|
16756
16756
|
) : s.pixels.resultPixels = w;
|
|
16757
16757
|
else {
|
|
16758
16758
|
s.pixels.resultPixels = new l(f * p);
|
|
16759
|
-
var
|
|
16759
|
+
var L = 0, Z = 0, V = 0, z = 0;
|
|
16760
16760
|
if (p > 1) {
|
|
16761
16761
|
if (c) {
|
|
16762
16762
|
for (Z = 0; Z < f; Z++)
|
|
16763
|
-
if (
|
|
16764
|
-
for (z = Z,
|
|
16765
|
-
s.pixels.resultPixels[z] = w[
|
|
16763
|
+
if (T[Z])
|
|
16764
|
+
for (z = Z, V = 0; V < p; V++, z += f)
|
|
16765
|
+
s.pixels.resultPixels[z] = w[L++];
|
|
16766
16766
|
} else
|
|
16767
16767
|
for (Z = 0; Z < f; Z++)
|
|
16768
|
-
if (
|
|
16769
|
-
for (z = Z * p,
|
|
16770
|
-
s.pixels.resultPixels[z +
|
|
16768
|
+
if (T[Z])
|
|
16769
|
+
for (z = Z * p, V = 0; V < p; V++)
|
|
16770
|
+
s.pixels.resultPixels[z + V] = w[L++];
|
|
16771
16771
|
} else
|
|
16772
16772
|
for (Z = 0; Z < f; Z++)
|
|
16773
|
-
|
|
16773
|
+
T[Z] && (s.pixels.resultPixels[Z] = w[L++]);
|
|
16774
16774
|
}
|
|
16775
16775
|
return u += y, s.ptr = u, !0;
|
|
16776
16776
|
},
|
|
@@ -16785,26 +16785,26 @@ const S_ = function() {
|
|
|
16785
16785
|
return !1;
|
|
16786
16786
|
var g = new Uint32Array(f - p);
|
|
16787
16787
|
t.decodeBits(r, s, g);
|
|
16788
|
-
var y = [], w,
|
|
16788
|
+
var y = [], w, T, b, S;
|
|
16789
16789
|
for (w = p; w < f; w++)
|
|
16790
|
-
|
|
16791
|
-
var
|
|
16792
|
-
z.set(new Uint8Array(r, s.ptr,
|
|
16793
|
-
var X = new Uint32Array(
|
|
16790
|
+
T = w - (w < d ? 0 : d), y[T] = { first: g[w - p], second: null };
|
|
16791
|
+
var L = r.byteLength - s.ptr, Z = Math.ceil(L / 4), V = new ArrayBuffer(Z * 4), z = new Uint8Array(V);
|
|
16792
|
+
z.set(new Uint8Array(r, s.ptr, L));
|
|
16793
|
+
var X = new Uint32Array(V), k = 0, P, D = 0;
|
|
16794
16794
|
for (P = X[0], w = p; w < f; w++)
|
|
16795
|
-
|
|
16795
|
+
T = w - (w < d ? 0 : d), S = y[T].first, S > 0 && (y[T].second = P << k >>> 32 - S, 32 - k >= S ? (k += S, k === 32 && (k = 0, D++, P = X[D])) : (k += S - 32, D++, P = X[D], y[T].second |= P >>> 32 - k));
|
|
16796
16796
|
var I = 0, A = 0, U = new e();
|
|
16797
16797
|
for (w = 0; w < y.length; w++)
|
|
16798
16798
|
y[w] !== void 0 && (I = Math.max(I, y[w].first));
|
|
16799
16799
|
I >= l ? A = l : A = I;
|
|
16800
16800
|
var j = [], B, q, N, ie, re, ee;
|
|
16801
16801
|
for (w = p; w < f; w++)
|
|
16802
|
-
if (
|
|
16803
|
-
if (B = [
|
|
16804
|
-
for (q = y[
|
|
16802
|
+
if (T = w - (w < d ? 0 : d), S = y[T].first, S > 0)
|
|
16803
|
+
if (B = [S, T], S <= A)
|
|
16804
|
+
for (q = y[T].second << A - S, N = 1 << A - S, b = 0; b < N; b++)
|
|
16805
16805
|
j[q | b] = B;
|
|
16806
16806
|
else
|
|
16807
|
-
for (q = y[
|
|
16807
|
+
for (q = y[T].second, ee = U, ie = S - 1; ie >= 0; ie--)
|
|
16808
16808
|
re = q >>> ie & 1, re ? (ee.right || (ee.right = new e()), ee = ee.right) : (ee.left || (ee.left = new e()), ee = ee.left), ie === 0 && !ee.val && (ee.val = B[1]);
|
|
16809
16809
|
return {
|
|
16810
16810
|
decodeLut: j,
|
|
@@ -16817,54 +16817,54 @@ const S_ = function() {
|
|
|
16817
16817
|
};
|
|
16818
16818
|
},
|
|
16819
16819
|
readHuffman: function(r, s, l, c) {
|
|
16820
|
-
var u = s.headerInfo, d = u.numDims, p = s.headerInfo.height, f = s.headerInfo.width, g = f * p, y = this.readHuffmanTree(r, s), w = y.decodeLut,
|
|
16821
|
-
|
|
16822
|
-
var re = b[
|
|
16820
|
+
var u = s.headerInfo, d = u.numDims, p = s.headerInfo.height, f = s.headerInfo.width, g = f * p, y = this.readHuffmanTree(r, s), w = y.decodeLut, T = y.tree, b = y.stuffedData, S = y.srcPtr, L = y.bitPos, Z = y.numBitsLUTQick, V = y.numBitsLUT, z = s.headerInfo.imageType === 0 ? 128 : 0, X, k, P, D = s.pixels.resultMask, I, A, U, j, B, q, N, ie = 0;
|
|
16821
|
+
L > 0 && (S++, L = 0);
|
|
16822
|
+
var re = b[S], ee = s.encodeMode === 1, pe = new l(g * d), ve = pe, ue;
|
|
16823
16823
|
if (d < 2 || ee) {
|
|
16824
16824
|
for (ue = 0; ue < d; ue++)
|
|
16825
16825
|
if (d > 1 && (ve = new l(pe.buffer, g * ue, g), ie = 0), s.headerInfo.numValidPixel === f * p)
|
|
16826
16826
|
for (q = 0, j = 0; j < p; j++)
|
|
16827
16827
|
for (B = 0; B < f; B++, q++) {
|
|
16828
|
-
if (k = 0, I = re <<
|
|
16829
|
-
k = w[A][1],
|
|
16828
|
+
if (k = 0, I = re << L >>> 32 - Z, A = I, 32 - L < Z && (I |= b[S + 1] >>> 64 - L - Z, A = I), w[A])
|
|
16829
|
+
k = w[A][1], L += w[A][0];
|
|
16830
16830
|
else
|
|
16831
|
-
for (I = re <<
|
|
16832
|
-
if (U = I >>>
|
|
16833
|
-
k = X.val,
|
|
16831
|
+
for (I = re << L >>> 32 - V, A = I, 32 - L < V && (I |= b[S + 1] >>> 64 - L - V, A = I), X = T, N = 0; N < V; N++)
|
|
16832
|
+
if (U = I >>> V - N - 1 & 1, X = U ? X.right : X.left, !(X.left || X.right)) {
|
|
16833
|
+
k = X.val, L = L + N + 1;
|
|
16834
16834
|
break;
|
|
16835
16835
|
}
|
|
16836
|
-
|
|
16836
|
+
L >= 32 && (L -= 32, S++, re = b[S]), P = k - z, ee ? (B > 0 ? P += ie : j > 0 ? P += ve[q - f] : P += ie, P &= 255, ve[q] = P, ie = P) : ve[q] = P;
|
|
16837
16837
|
}
|
|
16838
16838
|
else
|
|
16839
16839
|
for (q = 0, j = 0; j < p; j++)
|
|
16840
16840
|
for (B = 0; B < f; B++, q++)
|
|
16841
16841
|
if (D[q]) {
|
|
16842
|
-
if (k = 0, I = re <<
|
|
16843
|
-
k = w[A][1],
|
|
16842
|
+
if (k = 0, I = re << L >>> 32 - Z, A = I, 32 - L < Z && (I |= b[S + 1] >>> 64 - L - Z, A = I), w[A])
|
|
16843
|
+
k = w[A][1], L += w[A][0];
|
|
16844
16844
|
else
|
|
16845
|
-
for (I = re <<
|
|
16846
|
-
if (U = I >>>
|
|
16847
|
-
k = X.val,
|
|
16845
|
+
for (I = re << L >>> 32 - V, A = I, 32 - L < V && (I |= b[S + 1] >>> 64 - L - V, A = I), X = T, N = 0; N < V; N++)
|
|
16846
|
+
if (U = I >>> V - N - 1 & 1, X = U ? X.right : X.left, !(X.left || X.right)) {
|
|
16847
|
+
k = X.val, L = L + N + 1;
|
|
16848
16848
|
break;
|
|
16849
16849
|
}
|
|
16850
|
-
|
|
16850
|
+
L >= 32 && (L -= 32, S++, re = b[S]), P = k - z, ee ? (B > 0 && D[q - 1] ? P += ie : j > 0 && D[q - f] ? P += ve[q - f] : P += ie, P &= 255, ve[q] = P, ie = P) : ve[q] = P;
|
|
16851
16851
|
}
|
|
16852
16852
|
} else
|
|
16853
16853
|
for (q = 0, j = 0; j < p; j++)
|
|
16854
16854
|
for (B = 0; B < f; B++)
|
|
16855
16855
|
if (q = j * f + B, !D || D[q])
|
|
16856
16856
|
for (ue = 0; ue < d; ue++, q += g) {
|
|
16857
|
-
if (k = 0, I = re <<
|
|
16858
|
-
k = w[A][1],
|
|
16857
|
+
if (k = 0, I = re << L >>> 32 - Z, A = I, 32 - L < Z && (I |= b[S + 1] >>> 64 - L - Z, A = I), w[A])
|
|
16858
|
+
k = w[A][1], L += w[A][0];
|
|
16859
16859
|
else
|
|
16860
|
-
for (I = re <<
|
|
16861
|
-
if (U = I >>>
|
|
16862
|
-
k = X.val,
|
|
16860
|
+
for (I = re << L >>> 32 - V, A = I, 32 - L < V && (I |= b[S + 1] >>> 64 - L - V, A = I), X = T, N = 0; N < V; N++)
|
|
16861
|
+
if (U = I >>> V - N - 1 & 1, X = U ? X.right : X.left, !(X.left || X.right)) {
|
|
16862
|
+
k = X.val, L = L + N + 1;
|
|
16863
16863
|
break;
|
|
16864
16864
|
}
|
|
16865
|
-
|
|
16865
|
+
L >= 32 && (L -= 32, S++, re = b[S]), P = k - z, ve[q] = P;
|
|
16866
16866
|
}
|
|
16867
|
-
s.ptr = s.ptr + (
|
|
16867
|
+
s.ptr = s.ptr + (S + 1) * 4 + (L > 0 ? 4 : 0), s.pixels.resultPixels = pe, d > 1 && !c && (s.pixels.resultPixels = t.swapDimensionOrder(
|
|
16868
16868
|
pe,
|
|
16869
16869
|
g,
|
|
16870
16870
|
d,
|
|
@@ -16875,7 +16875,7 @@ const S_ = function() {
|
|
|
16875
16875
|
{
|
|
16876
16876
|
var d = s.headerInfo, p = d.fileVersion, f = 0, g = r.byteLength - s.ptr >= 5 ? 5 : r.byteLength - s.ptr, y = new DataView(r, s.ptr, g), w = y.getUint8(0);
|
|
16877
16877
|
f++;
|
|
16878
|
-
var
|
|
16878
|
+
var T = w >> 6, b = T === 0 ? 4 : 3 - T, S = (w & 32) > 0, L = w & 31, Z = 0;
|
|
16879
16879
|
if (b === 1)
|
|
16880
16880
|
Z = y.getUint8(f), f++;
|
|
16881
16881
|
else if (b === 2)
|
|
@@ -16884,48 +16884,48 @@ const S_ = function() {
|
|
|
16884
16884
|
Z = y.getUint32(f, !0), f += 4;
|
|
16885
16885
|
else
|
|
16886
16886
|
throw "Invalid valid pixel count type";
|
|
16887
|
-
var
|
|
16888
|
-
if (
|
|
16889
|
-
for (s.counter.lut++, U = y.getUint8(f), f++, P = Math.ceil((U - 1) *
|
|
16887
|
+
var V = 2 * d.maxZError, z, X, k, P, D, I, A, U, j, B = d.numDims > 1 ? d.maxValues[u] : d.zMax;
|
|
16888
|
+
if (S) {
|
|
16889
|
+
for (s.counter.lut++, U = y.getUint8(f), f++, P = Math.ceil((U - 1) * L / 8), D = Math.ceil(P / 4), X = new ArrayBuffer(D * 4), k = new Uint8Array(X), s.ptr += f, k.set(new Uint8Array(r, s.ptr, P)), A = new Uint32Array(X), s.ptr += P, j = 0; U - 1 >>> j; )
|
|
16890
16890
|
j++;
|
|
16891
|
-
P = Math.ceil(Z * j / 8), D = Math.ceil(P / 4), X = new ArrayBuffer(D * 4), k = new Uint8Array(X), k.set(new Uint8Array(r, s.ptr, P)), z = new Uint32Array(X), s.ptr += P, p >= 3 ? I = a.unstuffLUT2(A,
|
|
16891
|
+
P = Math.ceil(Z * j / 8), D = Math.ceil(P / 4), X = new ArrayBuffer(D * 4), k = new Uint8Array(X), k.set(new Uint8Array(r, s.ptr, P)), z = new Uint32Array(X), s.ptr += P, p >= 3 ? I = a.unstuffLUT2(A, L, U - 1, c, V, B) : I = a.unstuffLUT(A, L, U - 1, c, V, B), p >= 3 ? a.unstuff2(z, l, j, Z, I) : a.unstuff(z, l, j, Z, I);
|
|
16892
16892
|
} else
|
|
16893
|
-
s.counter.bitstuffer++, j =
|
|
16893
|
+
s.counter.bitstuffer++, j = L, s.ptr += f, j > 0 && (P = Math.ceil(Z * j / 8), D = Math.ceil(P / 4), X = new ArrayBuffer(D * 4), k = new Uint8Array(X), k.set(new Uint8Array(r, s.ptr, P)), z = new Uint32Array(X), s.ptr += P, p >= 3 ? c == null ? a.originalUnstuff2(z, l, j, Z) : a.unstuff2(
|
|
16894
16894
|
z,
|
|
16895
16895
|
l,
|
|
16896
16896
|
j,
|
|
16897
16897
|
Z,
|
|
16898
16898
|
!1,
|
|
16899
16899
|
c,
|
|
16900
|
-
|
|
16900
|
+
V,
|
|
16901
16901
|
B
|
|
16902
|
-
) : c == null ? a.originalUnstuff(z, l, j, Z) : a.unstuff(z, l, j, Z, !1, c,
|
|
16902
|
+
) : c == null ? a.originalUnstuff(z, l, j, Z) : a.unstuff(z, l, j, Z, !1, c, V, B));
|
|
16903
16903
|
}
|
|
16904
16904
|
},
|
|
16905
16905
|
readTiles: function(r, s, l, c) {
|
|
16906
|
-
var u = s.headerInfo, d = u.width, p = u.height, f = d * p, g = u.microBlockSize, y = u.imageType, w = t.getDataTypeSize(y),
|
|
16907
|
-
s.pixels.numBlocksY = b, s.pixels.numBlocksX =
|
|
16908
|
-
var
|
|
16906
|
+
var u = s.headerInfo, d = u.width, p = u.height, f = d * p, g = u.microBlockSize, y = u.imageType, w = t.getDataTypeSize(y), T = Math.ceil(d / g), b = Math.ceil(p / g);
|
|
16907
|
+
s.pixels.numBlocksY = b, s.pixels.numBlocksX = T, s.pixels.ptr = 0;
|
|
16908
|
+
var S = 0, L = 0, Z = 0, V = 0, z = 0, X = 0, k = 0, P = 0, D = 0, I = 0, A = 0, U = 0, j = 0, B = 0, q = 0, N = 0, ie, re, ee, pe, ve, ue, ye = new l(g * g), Fe = p % g || g, Ue = d % g || g, je, Je, Qe = u.numDims, ht, yt = s.pixels.resultMask, He = s.pixels.resultPixels, xn = u.fileVersion, Vn = xn >= 5 ? 14 : 15, Ae, Ut = u.zMax, Rt;
|
|
16909
16909
|
for (Z = 0; Z < b; Z++)
|
|
16910
|
-
for (z = Z !== b - 1 ? g : Fe,
|
|
16911
|
-
for (X =
|
|
16912
|
-
if (Qe > 1 ? (Rt = He, A = Z * d * g +
|
|
16910
|
+
for (z = Z !== b - 1 ? g : Fe, V = 0; V < T; V++)
|
|
16911
|
+
for (X = V !== T - 1 ? g : Ue, A = Z * d * g + V * g, U = d - X, ht = 0; ht < Qe; ht++) {
|
|
16912
|
+
if (Qe > 1 ? (Rt = He, A = Z * d * g + V * g, He = new l(
|
|
16913
16913
|
s.pixels.resultPixels.buffer,
|
|
16914
16914
|
f * ht * w,
|
|
16915
16915
|
f
|
|
16916
|
-
), Ut = u.maxValues[ht]) : Rt = null, k = r.byteLength - s.ptr, ie = new DataView(r, s.ptr, Math.min(10, k)), re = {}, N = 0, P = ie.getUint8(0), N++, Ae = u.fileVersion >= 5 ? P & 4 : 0, D = P >> 6 & 255, I = P >> 2 &
|
|
16916
|
+
), Ut = u.maxValues[ht]) : Rt = null, k = r.byteLength - s.ptr, ie = new DataView(r, s.ptr, Math.min(10, k)), re = {}, N = 0, P = ie.getUint8(0), N++, Ae = u.fileVersion >= 5 ? P & 4 : 0, D = P >> 6 & 255, I = P >> 2 & Vn, I !== (V * g >> 3 & Vn) || Ae && ht === 0)
|
|
16917
16917
|
throw "integrity issue";
|
|
16918
16918
|
if (ue = P & 3, ue > 3)
|
|
16919
16919
|
throw s.ptr += N, "Invalid block encoding (" + ue + ")";
|
|
16920
16920
|
if (ue === 2) {
|
|
16921
16921
|
if (Ae)
|
|
16922
16922
|
if (yt)
|
|
16923
|
-
for (
|
|
16924
|
-
for (
|
|
16923
|
+
for (S = 0; S < z; S++)
|
|
16924
|
+
for (L = 0; L < X; L++)
|
|
16925
16925
|
yt[A] && (He[A] = Rt[A]), A++;
|
|
16926
16926
|
else
|
|
16927
|
-
for (
|
|
16928
|
-
for (
|
|
16927
|
+
for (S = 0; S < z; S++)
|
|
16928
|
+
for (L = 0; L < X; L++)
|
|
16929
16929
|
He[A] = Rt[A], A++;
|
|
16930
16930
|
s.counter.constant++, s.ptr += N;
|
|
16931
16931
|
continue;
|
|
@@ -16935,53 +16935,53 @@ const S_ = function() {
|
|
|
16935
16935
|
if (s.counter.uncompressed++, s.ptr += N, j = z * X * w, B = r.byteLength - s.ptr, j = j < B ? j : B, ee = new ArrayBuffer(
|
|
16936
16936
|
j % w === 0 ? j : j + w - j % w
|
|
16937
16937
|
), pe = new Uint8Array(ee), pe.set(new Uint8Array(r, s.ptr, j)), ve = new l(ee), q = 0, yt)
|
|
16938
|
-
for (
|
|
16939
|
-
for (
|
|
16938
|
+
for (S = 0; S < z; S++) {
|
|
16939
|
+
for (L = 0; L < X; L++)
|
|
16940
16940
|
yt[A] && (He[A] = ve[q++]), A++;
|
|
16941
16941
|
A += U;
|
|
16942
16942
|
}
|
|
16943
16943
|
else
|
|
16944
|
-
for (
|
|
16945
|
-
for (
|
|
16944
|
+
for (S = 0; S < z; S++) {
|
|
16945
|
+
for (L = 0; L < X; L++)
|
|
16946
16946
|
He[A++] = ve[q++];
|
|
16947
16947
|
A += U;
|
|
16948
16948
|
}
|
|
16949
16949
|
s.ptr += q * w;
|
|
16950
16950
|
} else if (je = t.getDataTypeUsed(Ae && y < 6 ? 4 : y, D), Je = t.getOnePixel(re, N, je, ie), N += t.getDataTypeSize(je), ue === 3)
|
|
16951
16951
|
if (s.ptr += N, s.counter.constantoffset++, yt)
|
|
16952
|
-
for (
|
|
16953
|
-
for (
|
|
16952
|
+
for (S = 0; S < z; S++) {
|
|
16953
|
+
for (L = 0; L < X; L++)
|
|
16954
16954
|
yt[A] && (He[A] = Ae ? Math.min(Ut, Rt[A] + Je) : Je), A++;
|
|
16955
16955
|
A += U;
|
|
16956
16956
|
}
|
|
16957
16957
|
else
|
|
16958
|
-
for (
|
|
16959
|
-
for (
|
|
16958
|
+
for (S = 0; S < z; S++) {
|
|
16959
|
+
for (L = 0; L < X; L++)
|
|
16960
16960
|
He[A] = Ae ? Math.min(Ut, Rt[A] + Je) : Je, A++;
|
|
16961
16961
|
A += U;
|
|
16962
16962
|
}
|
|
16963
16963
|
else if (s.ptr += N, t.decodeBits(r, s, ye, Je, ht), N = 0, Ae)
|
|
16964
16964
|
if (yt)
|
|
16965
|
-
for (
|
|
16966
|
-
for (
|
|
16965
|
+
for (S = 0; S < z; S++) {
|
|
16966
|
+
for (L = 0; L < X; L++)
|
|
16967
16967
|
yt[A] && (He[A] = ye[N++] + Rt[A]), A++;
|
|
16968
16968
|
A += U;
|
|
16969
16969
|
}
|
|
16970
16970
|
else
|
|
16971
|
-
for (
|
|
16972
|
-
for (
|
|
16971
|
+
for (S = 0; S < z; S++) {
|
|
16972
|
+
for (L = 0; L < X; L++)
|
|
16973
16973
|
He[A] = ye[N++] + Rt[A], A++;
|
|
16974
16974
|
A += U;
|
|
16975
16975
|
}
|
|
16976
16976
|
else if (yt)
|
|
16977
|
-
for (
|
|
16978
|
-
for (
|
|
16977
|
+
for (S = 0; S < z; S++) {
|
|
16978
|
+
for (L = 0; L < X; L++)
|
|
16979
16979
|
yt[A] && (He[A] = ye[N++]), A++;
|
|
16980
16980
|
A += U;
|
|
16981
16981
|
}
|
|
16982
16982
|
else
|
|
16983
|
-
for (
|
|
16984
|
-
for (
|
|
16983
|
+
for (S = 0; S < z; S++) {
|
|
16984
|
+
for (L = 0; L < X; L++)
|
|
16985
16985
|
He[A++] = ye[N++];
|
|
16986
16986
|
A += U;
|
|
16987
16987
|
}
|
|
@@ -17023,33 +17023,33 @@ const S_ = function() {
|
|
|
17023
17023
|
};
|
|
17024
17024
|
},
|
|
17025
17025
|
constructConstantSurface: function(r, s) {
|
|
17026
|
-
var l = r.headerInfo.zMax, c = r.headerInfo.zMin, u = r.headerInfo.maxValues, d = r.headerInfo.numDims, p = r.headerInfo.height * r.headerInfo.width, f = 0, g = 0, y = 0, w = r.pixels.resultMask,
|
|
17026
|
+
var l = r.headerInfo.zMax, c = r.headerInfo.zMin, u = r.headerInfo.maxValues, d = r.headerInfo.numDims, p = r.headerInfo.height * r.headerInfo.width, f = 0, g = 0, y = 0, w = r.pixels.resultMask, T = r.pixels.resultPixels;
|
|
17027
17027
|
if (w)
|
|
17028
17028
|
if (d > 1) {
|
|
17029
17029
|
if (s)
|
|
17030
17030
|
for (f = 0; f < d; f++)
|
|
17031
17031
|
for (y = f * p, l = u[f], g = 0; g < p; g++)
|
|
17032
|
-
w[g] && (
|
|
17032
|
+
w[g] && (T[y + g] = l);
|
|
17033
17033
|
else
|
|
17034
17034
|
for (g = 0; g < p; g++)
|
|
17035
17035
|
if (w[g])
|
|
17036
17036
|
for (y = g * d, f = 0; f < d; f++)
|
|
17037
|
-
|
|
17037
|
+
T[y + d] = u[f];
|
|
17038
17038
|
} else
|
|
17039
17039
|
for (g = 0; g < p; g++)
|
|
17040
|
-
w[g] && (
|
|
17040
|
+
w[g] && (T[g] = l);
|
|
17041
17041
|
else if (d > 1 && c !== l)
|
|
17042
17042
|
if (s)
|
|
17043
17043
|
for (f = 0; f < d; f++)
|
|
17044
17044
|
for (y = f * p, l = u[f], g = 0; g < p; g++)
|
|
17045
|
-
|
|
17045
|
+
T[y + g] = l;
|
|
17046
17046
|
else
|
|
17047
17047
|
for (g = 0; g < p; g++)
|
|
17048
17048
|
for (y = g * d, f = 0; f < d; f++)
|
|
17049
|
-
|
|
17049
|
+
T[y + f] = u[f];
|
|
17050
17050
|
else
|
|
17051
17051
|
for (g = 0; g < p * d; g++)
|
|
17052
|
-
|
|
17052
|
+
T[g] = l;
|
|
17053
17053
|
},
|
|
17054
17054
|
getDataTypeArray: function(r) {
|
|
17055
17055
|
var s;
|
|
@@ -17301,8 +17301,8 @@ const S_ = function() {
|
|
|
17301
17301
|
else if (p >= 4 && t.checkMinMaxRanges(r, u))
|
|
17302
17302
|
t.constructConstantSurface(u, y);
|
|
17303
17303
|
else {
|
|
17304
|
-
var w = new DataView(r, u.ptr, 2),
|
|
17305
|
-
if (u.ptr++,
|
|
17304
|
+
var w = new DataView(r, u.ptr, 2), T = w.getUint8(0);
|
|
17305
|
+
if (u.ptr++, T)
|
|
17306
17306
|
t.readDataOneSweep(r, u, f, y);
|
|
17307
17307
|
else if (p > 1 && d.imageType <= 1 && Math.abs(d.maxZError - 0.5) < 1e-5) {
|
|
17308
17308
|
var b = w.getUint8(1);
|
|
@@ -17313,9 +17313,9 @@ const S_ = function() {
|
|
|
17313
17313
|
t.readTiles(r, u, f, y);
|
|
17314
17314
|
}
|
|
17315
17315
|
u.eofOffset = u.ptr;
|
|
17316
|
-
var
|
|
17317
|
-
s.inputOffset ? (
|
|
17318
|
-
var
|
|
17316
|
+
var S;
|
|
17317
|
+
s.inputOffset ? (S = u.headerInfo.blobSize + s.inputOffset - u.ptr, Math.abs(S) >= 1 && (u.eofOffset = s.inputOffset + u.headerInfo.blobSize)) : (S = u.headerInfo.blobSize - u.ptr, Math.abs(S) >= 1 && (u.eofOffset = u.headerInfo.blobSize));
|
|
17318
|
+
var L = {
|
|
17319
17319
|
width: d.width,
|
|
17320
17320
|
height: d.height,
|
|
17321
17321
|
pixelData: u.pixels.resultPixels,
|
|
@@ -17333,10 +17333,10 @@ const S_ = function() {
|
|
|
17333
17333
|
if (u.pixels.resultMask && t.isValidPixelValue(d.imageType, l)) {
|
|
17334
17334
|
var Z = u.pixels.resultMask;
|
|
17335
17335
|
for (c = 0; c < g; c++)
|
|
17336
|
-
Z[c] || (
|
|
17337
|
-
|
|
17336
|
+
Z[c] || (L.pixelData[c] = l);
|
|
17337
|
+
L.noDataValue = l;
|
|
17338
17338
|
}
|
|
17339
|
-
return u.noDataValue = l, s.returnFileInfo && (
|
|
17339
|
+
return u.noDataValue = l, s.returnFileInfo && (L.fileInfo = t.formatFileInfo(u)), L;
|
|
17340
17340
|
}
|
|
17341
17341
|
},
|
|
17342
17342
|
getBandCount: function(r) {
|
|
@@ -17390,7 +17390,7 @@ var G_ = function() {
|
|
|
17390
17390
|
mask: null,
|
|
17391
17391
|
statistics: []
|
|
17392
17392
|
}, w = 0; e < u; ) {
|
|
17393
|
-
var
|
|
17393
|
+
var T = s.decode(a, {
|
|
17394
17394
|
inputOffset: e,
|
|
17395
17395
|
//for both lerc1 and lerc2
|
|
17396
17396
|
encodedMaskData: d,
|
|
@@ -17410,18 +17410,18 @@ var G_ = function() {
|
|
|
17410
17410
|
noDataValue: t.noDataValue || null
|
|
17411
17411
|
//lerc1 only
|
|
17412
17412
|
});
|
|
17413
|
-
e =
|
|
17414
|
-
minValue:
|
|
17415
|
-
maxValue:
|
|
17416
|
-
noDataValue:
|
|
17417
|
-
dimStats:
|
|
17413
|
+
e = T.fileInfo.eofOffset, g = T.maskData, c === 0 && (d = T.encodedMaskData, y.width = T.width, y.height = T.height, y.dimCount = T.dimCount || 1, y.pixelType = T.pixelType || T.fileInfo.pixelType, y.mask = g), l > 1 && (g && p.push(g), T.fileInfo.mask && T.fileInfo.mask.numBytes > 0 && w++), c++, y.pixels.push(T.pixelData), y.statistics.push({
|
|
17414
|
+
minValue: T.minValue,
|
|
17415
|
+
maxValue: T.maxValue,
|
|
17416
|
+
noDataValue: T.noDataValue,
|
|
17417
|
+
dimStats: T.dimStats
|
|
17418
17418
|
});
|
|
17419
17419
|
}
|
|
17420
|
-
var b,
|
|
17420
|
+
var b, S, L;
|
|
17421
17421
|
if (l > 1 && w > 1) {
|
|
17422
|
-
for (
|
|
17423
|
-
for (f = p[b],
|
|
17424
|
-
g[
|
|
17422
|
+
for (L = y.width * y.height, y.bandMasks = p, g = new Uint8Array(L), g.set(p[0]), b = 1; b < p.length; b++)
|
|
17423
|
+
for (f = p[b], S = 0; S < L; S++)
|
|
17424
|
+
g[S] = g[S] & f[S];
|
|
17425
17425
|
y.maskData = g;
|
|
17426
17426
|
}
|
|
17427
17427
|
return y;
|
|
@@ -17464,17 +17464,17 @@ function R_(a, t, e) {
|
|
|
17464
17464
|
}
|
|
17465
17465
|
function P_(a, t) {
|
|
17466
17466
|
function e(c, u, d, p, f, g, y, w) {
|
|
17467
|
-
const
|
|
17468
|
-
for (let
|
|
17469
|
-
for (let
|
|
17470
|
-
const Z = (
|
|
17471
|
-
|
|
17467
|
+
const T = new Float32Array(f * g);
|
|
17468
|
+
for (let S = 0; S < g; S++)
|
|
17469
|
+
for (let L = 0; L < f; L++) {
|
|
17470
|
+
const Z = (S + p) * u + (L + d), V = S * f + L;
|
|
17471
|
+
T[V] = c[Z];
|
|
17472
17472
|
}
|
|
17473
17473
|
const b = new Float32Array(w * y);
|
|
17474
|
-
for (let
|
|
17475
|
-
for (let
|
|
17476
|
-
const Z =
|
|
17477
|
-
b[Z] =
|
|
17474
|
+
for (let S = 0; S < w; S++)
|
|
17475
|
+
for (let L = 0; L < y; L++) {
|
|
17476
|
+
const Z = S * w + L, V = Math.round(L * g / w), X = Math.round(S * f / y) * f + V;
|
|
17477
|
+
b[Z] = T[X];
|
|
17478
17478
|
}
|
|
17479
17479
|
return b;
|
|
17480
17480
|
}
|
|
@@ -17494,8 +17494,8 @@ function C_(a, t) {
|
|
|
17494
17494
|
const e = Math.floor(a[0] * t), n = Math.floor(a[1] * t), r = Math.floor((a[2] - a[0]) * t), s = Math.floor((a[3] - a[1]) * t);
|
|
17495
17495
|
return { sx: e, sy: n, sw: r, sh: s };
|
|
17496
17496
|
}
|
|
17497
|
-
const
|
|
17498
|
-
class
|
|
17497
|
+
const V_ = 10;
|
|
17498
|
+
class E_ extends Rd {
|
|
17499
17499
|
constructor() {
|
|
17500
17500
|
super();
|
|
17501
17501
|
M(this, "info", {
|
|
@@ -17516,12 +17516,12 @@ class V_ extends Rd {
|
|
|
17516
17516
|
* @returns 返回解析后的BufferGeometry对象
|
|
17517
17517
|
*/
|
|
17518
17518
|
async doLoad(e, n) {
|
|
17519
|
-
this._workerPool.pool === 0 && this._workerPool.setWorkerLimit(
|
|
17519
|
+
this._workerPool.pool === 0 && this._workerPool.setWorkerLimit(V_);
|
|
17520
17520
|
const { z: r, bounds: s } = n, l = await this.fileLoader.loadAsync(e).catch(() => new Float32Array(256 * 256)), c = R_(l, r, s);
|
|
17521
|
-
return new
|
|
17521
|
+
return new Vi().setData(c);
|
|
17522
17522
|
}
|
|
17523
17523
|
}
|
|
17524
|
-
|
|
17524
|
+
Ed(new E_());
|
|
17525
17525
|
const Xd = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGModCl7cmV0dXJuIGEodC5kYXRhKX1mdW5jdGlvbiBhKHQpe2Z1bmN0aW9uIG4oZSx1KXtjb25zdCByPXUqNCxbaSxmLGcsbF09ZS5zbGljZShyLHIrNCk7cmV0dXJuIGw9PT0wPzA6LTFlNCsoaTw8MTZ8Zjw8OHxnKSouMX1jb25zdCBvPXQubGVuZ3RoPj4+MixzPW5ldyBGbG9hdDMyQXJyYXkobyk7Zm9yKGxldCBlPTA7ZTxvO2UrKylzW2VdPW4odCxlKTtyZXR1cm4gc31zZWxmLm9ubWVzc2FnZT10PT57Y29uc3Qgbj1jKHQuZGF0YS5pbWdEYXRhKTtzZWxmLnBvc3RNZXNzYWdlKG4pfX0pKCk7Cg==", A_ = (a) => Uint8Array.from(atob(a), (t) => t.charCodeAt(0)), Gh = typeof self < "u" && self.Blob && new Blob([A_(Xd)], { type: "text/javascript;charset=utf-8" });
|
|
17526
17526
|
function X_(a) {
|
|
17527
17527
|
let t;
|
|
@@ -17571,7 +17571,7 @@ class k_ extends Rd {
|
|
|
17571
17571
|
const r = await this.imageLoader.loadAsync(e).catch((d) => new Image()), s = ct.clamp((n.z + 2) * 3, 2, 64), l = z_(r, n.bounds, s);
|
|
17572
17572
|
let c;
|
|
17573
17573
|
this._workerPool.pool === 0 && this._workerPool.setWorkerLimit(F_), c = (await this._workerPool.postMessage({ imgData: l }, [l.data.buffer])).data;
|
|
17574
|
-
const u = new
|
|
17574
|
+
const u = new Vi();
|
|
17575
17575
|
return u.setData(c), u;
|
|
17576
17576
|
}
|
|
17577
17577
|
}
|
|
@@ -17581,7 +17581,7 @@ function z_(a, t, e) {
|
|
|
17581
17581
|
const s = new OffscreenCanvas(e, e).getContext("2d");
|
|
17582
17582
|
return s.imageSmoothingEnabled = !1, s.drawImage(a, n.sx, n.sy, n.sw, n.sh, 0, 0, e, e), s.getImageData(0, 0, e, e);
|
|
17583
17583
|
}
|
|
17584
|
-
|
|
17584
|
+
Ed(new k_());
|
|
17585
17585
|
function tr(a, t) {
|
|
17586
17586
|
this.x = a, this.y = t;
|
|
17587
17587
|
}
|
|
@@ -18683,7 +18683,7 @@ class fT extends Cd {
|
|
|
18683
18683
|
};
|
|
18684
18684
|
}
|
|
18685
18685
|
}
|
|
18686
|
-
|
|
18686
|
+
Vd(new fT());
|
|
18687
18687
|
const kd = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IF89MjMyODMwNjQzNjUzODY5NjNlLTI2LG09MTIsUD10eXBlb2YgVGV4dERlY29kZXI+InUiP251bGw6bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLGc9MCx5PTEsRj0yLHA9NTtjbGFzcyBNe2NvbnN0cnVjdG9yKHQ9bmV3IFVpbnQ4QXJyYXkoMTYpKXt0aGlzLmJ1Zj1BcnJheUJ1ZmZlci5pc1ZpZXcodCk/dDpuZXcgVWludDhBcnJheSh0KSx0aGlzLmRhdGFWaWV3PW5ldyBEYXRhVmlldyh0aGlzLmJ1Zi5idWZmZXIpLHRoaXMucG9zPTAsdGhpcy50eXBlPTAsdGhpcy5sZW5ndGg9dGhpcy5idWYubGVuZ3RofXJlYWRGaWVsZHModCxlLHI9dGhpcy5sZW5ndGgpe2Zvcig7dGhpcy5wb3M8cjspe2NvbnN0IHM9dGhpcy5yZWFkVmFyaW50KCksbj1zPj4zLG89dGhpcy5wb3M7dGhpcy50eXBlPXMmNyx0KG4sZSx0aGlzKSx0aGlzLnBvcz09PW8mJnRoaXMuc2tpcChzKX1yZXR1cm4gZX1yZWFkTWVzc2FnZSh0LGUpe3JldHVybiB0aGlzLnJlYWRGaWVsZHModCxlLHRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zKX1yZWFkRml4ZWQzMigpe2NvbnN0IHQ9dGhpcy5kYXRhVmlldy5nZXRVaW50MzIodGhpcy5wb3MsITApO3JldHVybiB0aGlzLnBvcys9NCx0fXJlYWRTRml4ZWQzMigpe2NvbnN0IHQ9dGhpcy5kYXRhVmlldy5nZXRJbnQzMih0aGlzLnBvcywhMCk7cmV0dXJuIHRoaXMucG9zKz00LHR9cmVhZEZpeGVkNjQoKXtjb25zdCB0PXRoaXMuZGF0YVZpZXcuZ2V0VWludDMyKHRoaXMucG9zLCEwKSt0aGlzLmRhdGFWaWV3LmdldFVpbnQzMih0aGlzLnBvcys0LCEwKSo0Mjk0OTY3Mjk2O3JldHVybiB0aGlzLnBvcys9OCx0fXJlYWRTRml4ZWQ2NCgpe2NvbnN0IHQ9dGhpcy5kYXRhVmlldy5nZXRVaW50MzIodGhpcy5wb3MsITApK3RoaXMuZGF0YVZpZXcuZ2V0SW50MzIodGhpcy5wb3MrNCwhMCkqNDI5NDk2NzI5NjtyZXR1cm4gdGhpcy5wb3MrPTgsdH1yZWFkRmxvYXQoKXtjb25zdCB0PXRoaXMuZGF0YVZpZXcuZ2V0RmxvYXQzMih0aGlzLnBvcywhMCk7cmV0dXJuIHRoaXMucG9zKz00LHR9cmVhZERvdWJsZSgpe2NvbnN0IHQ9dGhpcy5kYXRhVmlldy5nZXRGbG9hdDY0KHRoaXMucG9zLCEwKTtyZXR1cm4gdGhpcy5wb3MrPTgsdH1yZWFkVmFyaW50KHQpe2NvbnN0IGU9dGhpcy5idWY7bGV0IHIscztyZXR1cm4gcz1lW3RoaXMucG9zKytdLHI9cyYxMjcsczwxMjh8fChzPWVbdGhpcy5wb3MrK10scnw9KHMmMTI3KTw8NyxzPDEyOCl8fChzPWVbdGhpcy5wb3MrK10scnw9KHMmMTI3KTw8MTQsczwxMjgpfHwocz1lW3RoaXMucG9zKytdLHJ8PShzJjEyNyk8PDIxLHM8MTI4KT9yOihzPWVbdGhpcy5wb3NdLHJ8PShzJjE1KTw8MjgsRShyLHQsdGhpcykpfXJlYWRWYXJpbnQ2NCgpe3JldHVybiB0aGlzLnJlYWRWYXJpbnQoITApfXJlYWRTVmFyaW50KCl7Y29uc3QgdD10aGlzLnJlYWRWYXJpbnQoKTtyZXR1cm4gdCUyPT09MT8odCsxKS8tMjp0LzJ9cmVhZEJvb2xlYW4oKXtyZXR1cm4hIXRoaXMucmVhZFZhcmludCgpfXJlYWRTdHJpbmcoKXtjb25zdCB0PXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zLGU9dGhpcy5wb3M7cmV0dXJuIHRoaXMucG9zPXQsdC1lPj1tJiZQP1AuZGVjb2RlKHRoaXMuYnVmLnN1YmFycmF5KGUsdCkpOlIodGhpcy5idWYsZSx0KX1yZWFkQnl0ZXMoKXtjb25zdCB0PXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zLGU9dGhpcy5idWYuc3ViYXJyYXkodGhpcy5wb3MsdCk7cmV0dXJuIHRoaXMucG9zPXQsZX1yZWFkUGFja2VkVmFyaW50KHQ9W10sZSl7Y29uc3Qgcj10aGlzLnJlYWRQYWNrZWRFbmQoKTtmb3IoO3RoaXMucG9zPHI7KXQucHVzaCh0aGlzLnJlYWRWYXJpbnQoZSkpO3JldHVybiB0fXJlYWRQYWNrZWRTVmFyaW50KHQ9W10pe2NvbnN0IGU9dGhpcy5yZWFkUGFja2VkRW5kKCk7Zm9yKDt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkU1ZhcmludCgpKTtyZXR1cm4gdH1yZWFkUGFja2VkQm9vbGVhbih0PVtdKXtjb25zdCBlPXRoaXMucmVhZFBhY2tlZEVuZCgpO2Zvcig7dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEJvb2xlYW4oKSk7cmV0dXJuIHR9cmVhZFBhY2tlZEZsb2F0KHQ9W10pe2NvbnN0IGU9dGhpcy5yZWFkUGFja2VkRW5kKCk7Zm9yKDt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkRmxvYXQoKSk7cmV0dXJuIHR9cmVhZFBhY2tlZERvdWJsZSh0PVtdKXtjb25zdCBlPXRoaXMucmVhZFBhY2tlZEVuZCgpO2Zvcig7dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZERvdWJsZSgpKTtyZXR1cm4gdH1yZWFkUGFja2VkRml4ZWQzMih0PVtdKXtjb25zdCBlPXRoaXMucmVhZFBhY2tlZEVuZCgpO2Zvcig7dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEZpeGVkMzIoKSk7cmV0dXJuIHR9cmVhZFBhY2tlZFNGaXhlZDMyKHQ9W10pe2NvbnN0IGU9dGhpcy5yZWFkUGFja2VkRW5kKCk7Zm9yKDt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkU0ZpeGVkMzIoKSk7cmV0dXJuIHR9cmVhZFBhY2tlZEZpeGVkNjQodD1bXSl7Y29uc3QgZT10aGlzLnJlYWRQYWNrZWRFbmQoKTtmb3IoO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRGaXhlZDY0KCkpO3JldHVybiB0fXJlYWRQYWNrZWRTRml4ZWQ2NCh0PVtdKXtjb25zdCBlPXRoaXMucmVhZFBhY2tlZEVuZCgpO2Zvcig7dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZFNGaXhlZDY0KCkpO3JldHVybiB0fXJlYWRQYWNrZWRFbmQoKXtyZXR1cm4gdGhpcy50eXBlPT09Rj90aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvczp0aGlzLnBvcysxfXNraXAodCl7Y29uc3QgZT10Jjc7aWYoZT09PWcpZm9yKDt0aGlzLmJ1Zlt0aGlzLnBvcysrXT4xMjc7KTtlbHNlIGlmKGU9PT1GKXRoaXMucG9zPXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zO2Vsc2UgaWYoZT09PXApdGhpcy5wb3MrPTQ7ZWxzZSBpZihlPT09eSl0aGlzLnBvcys9ODtlbHNlIHRocm93IG5ldyBFcnJvcihgVW5pbXBsZW1lbnRlZCB0eXBlOiAke2V9YCl9d3JpdGVUYWcodCxlKXt0aGlzLndyaXRlVmFyaW50KHQ8PDN8ZSl9cmVhbGxvYyh0KXtsZXQgZT10aGlzLmxlbmd0aHx8MTY7Zm9yKDtlPHRoaXMucG9zK3Q7KWUqPTI7aWYoZSE9PXRoaXMubGVuZ3RoKXtjb25zdCByPW5ldyBVaW50OEFycmF5KGUpO3Iuc2V0KHRoaXMuYnVmKSx0aGlzLmJ1Zj1yLHRoaXMuZGF0YVZpZXc9bmV3IERhdGFWaWV3KHIuYnVmZmVyKSx0aGlzLmxlbmd0aD1lfX1maW5pc2goKXtyZXR1cm4gdGhpcy5sZW5ndGg9dGhpcy5wb3MsdGhpcy5wb3M9MCx0aGlzLmJ1Zi5zdWJhcnJheSgwLHRoaXMubGVuZ3RoKX13cml0ZUZpeGVkMzIodCl7dGhpcy5yZWFsbG9jKDQpLHRoaXMuZGF0YVZpZXcuc2V0SW50MzIodGhpcy5wb3MsdCwhMCksdGhpcy5wb3MrPTR9d3JpdGVTRml4ZWQzMih0KXt0aGlzLnJlYWxsb2MoNCksdGhpcy5kYXRhVmlldy5zZXRJbnQzMih0aGlzLnBvcyx0LCEwKSx0aGlzLnBvcys9NH13cml0ZUZpeGVkNjQodCl7dGhpcy5yZWFsbG9jKDgpLHRoaXMuZGF0YVZpZXcuc2V0SW50MzIodGhpcy5wb3MsdCYtMSwhMCksdGhpcy5kYXRhVmlldy5zZXRJbnQzMih0aGlzLnBvcys0LE1hdGguZmxvb3IodCpfKSwhMCksdGhpcy5wb3MrPTh9d3JpdGVTRml4ZWQ2NCh0KXt0aGlzLnJlYWxsb2MoOCksdGhpcy5kYXRhVmlldy5zZXRJbnQzMih0aGlzLnBvcyx0Ji0xLCEwKSx0aGlzLmRhdGFWaWV3LnNldEludDMyKHRoaXMucG9zKzQsTWF0aC5mbG9vcih0Kl8pLCEwKSx0aGlzLnBvcys9OH13cml0ZVZhcmludCh0KXtpZih0PSt0fHwwLHQ+MjY4NDM1NDU1fHx0PDApe0IodCx0aGlzKTtyZXR1cm59dGhpcy5yZWFsbG9jKDQpLHRoaXMuYnVmW3RoaXMucG9zKytdPXQmMTI3fCh0PjEyNz8xMjg6MCksISh0PD0xMjcpJiYodGhpcy5idWZbdGhpcy5wb3MrK109KHQ+Pj49NykmMTI3fCh0PjEyNz8xMjg6MCksISh0PD0xMjcpJiYodGhpcy5idWZbdGhpcy5wb3MrK109KHQ+Pj49NykmMTI3fCh0PjEyNz8xMjg6MCksISh0PD0xMjcpJiYodGhpcy5idWZbdGhpcy5wb3MrK109dD4+PjcmMTI3KSkpfXdyaXRlU1ZhcmludCh0KXt0aGlzLndyaXRlVmFyaW50KHQ8MD8tdCoyLTE6dCoyKX13cml0ZUJvb2xlYW4odCl7dGhpcy53cml0ZVZhcmludCgrdCl9d3JpdGVTdHJpbmcodCl7dD1TdHJpbmcodCksdGhpcy5yZWFsbG9jKHQubGVuZ3RoKjQpLHRoaXMucG9zKys7Y29uc3QgZT10aGlzLnBvczt0aGlzLnBvcz1xKHRoaXMuYnVmLHQsdGhpcy5wb3MpO2NvbnN0IHI9dGhpcy5wb3MtZTtyPj0xMjgmJlMoZSxyLHRoaXMpLHRoaXMucG9zPWUtMSx0aGlzLndyaXRlVmFyaW50KHIpLHRoaXMucG9zKz1yfXdyaXRlRmxvYXQodCl7dGhpcy5yZWFsbG9jKDQpLHRoaXMuZGF0YVZpZXcuc2V0RmxvYXQzMih0aGlzLnBvcyx0LCEwKSx0aGlzLnBvcys9NH13cml0ZURvdWJsZSh0KXt0aGlzLnJlYWxsb2MoOCksdGhpcy5kYXRhVmlldy5zZXRGbG9hdDY0KHRoaXMucG9zLHQsITApLHRoaXMucG9zKz04fXdyaXRlQnl0ZXModCl7Y29uc3QgZT10Lmxlbmd0aDt0aGlzLndyaXRlVmFyaW50KGUpLHRoaXMucmVhbGxvYyhlKTtmb3IobGV0IHI9MDtyPGU7cisrKXRoaXMuYnVmW3RoaXMucG9zKytdPXRbcl19d3JpdGVSYXdNZXNzYWdlKHQsZSl7dGhpcy5wb3MrKztjb25zdCByPXRoaXMucG9zO3QoZSx0aGlzKTtjb25zdCBzPXRoaXMucG9zLXI7cz49MTI4JiZTKHIscyx0aGlzKSx0aGlzLnBvcz1yLTEsdGhpcy53cml0ZVZhcmludChzKSx0aGlzLnBvcys9c313cml0ZU1lc3NhZ2UodCxlLHIpe3RoaXMud3JpdGVUYWcodCxGKSx0aGlzLndyaXRlUmF3TWVzc2FnZShlLHIpfXdyaXRlUGFja2VkVmFyaW50KHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsSSxlKX13cml0ZVBhY2tlZFNWYXJpbnQodCxlKXtlLmxlbmd0aCYmdGhpcy53cml0ZU1lc3NhZ2UodCxDLGUpfXdyaXRlUGFja2VkQm9vbGVhbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LFUsZSl9d3JpdGVQYWNrZWRGbG9hdCh0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LEwsZSl9d3JpdGVQYWNrZWREb3VibGUodCxlKXtlLmxlbmd0aCYmdGhpcy53cml0ZU1lc3NhZ2UodCxBLGUpfXdyaXRlUGFja2VkRml4ZWQzMih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LHYsZSl9d3JpdGVQYWNrZWRTRml4ZWQzMih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LE4sZSl9d3JpdGVQYWNrZWRGaXhlZDY0KHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsRyxlKX13cml0ZVBhY2tlZFNGaXhlZDY0KHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsSCxlKX13cml0ZUJ5dGVzRmllbGQodCxlKXt0aGlzLndyaXRlVGFnKHQsRiksdGhpcy53cml0ZUJ5dGVzKGUpfXdyaXRlRml4ZWQzMkZpZWxkKHQsZSl7dGhpcy53cml0ZVRhZyh0LHApLHRoaXMud3JpdGVGaXhlZDMyKGUpfXdyaXRlU0ZpeGVkMzJGaWVsZCh0LGUpe3RoaXMud3JpdGVUYWcodCxwKSx0aGlzLndyaXRlU0ZpeGVkMzIoZSl9d3JpdGVGaXhlZDY0RmllbGQodCxlKXt0aGlzLndyaXRlVGFnKHQseSksdGhpcy53cml0ZUZpeGVkNjQoZSl9d3JpdGVTRml4ZWQ2NEZpZWxkKHQsZSl7dGhpcy53cml0ZVRhZyh0LHkpLHRoaXMud3JpdGVTRml4ZWQ2NChlKX13cml0ZVZhcmludEZpZWxkKHQsZSl7dGhpcy53cml0ZVRhZyh0LGcpLHRoaXMud3JpdGVWYXJpbnQoZSl9d3JpdGVTVmFyaW50RmllbGQodCxlKXt0aGlzLndyaXRlVGFnKHQsZyksdGhpcy53cml0ZVNWYXJpbnQoZSl9d3JpdGVTdHJpbmdGaWVsZCh0LGUpe3RoaXMud3JpdGVUYWcodCxGKSx0aGlzLndyaXRlU3RyaW5nKGUpfXdyaXRlRmxvYXRGaWVsZCh0LGUpe3RoaXMud3JpdGVUYWcodCxwKSx0aGlzLndyaXRlRmxvYXQoZSl9d3JpdGVEb3VibGVGaWVsZCh0LGUpe3RoaXMud3JpdGVUYWcodCx5KSx0aGlzLndyaXRlRG91YmxlKGUpfXdyaXRlQm9vbGVhbkZpZWxkKHQsZSl7dGhpcy53cml0ZVZhcmludEZpZWxkKHQsK2UpfX1mdW5jdGlvbiBFKGksdCxlKXtjb25zdCByPWUuYnVmO2xldCBzLG47aWYobj1yW2UucG9zKytdLHM9KG4mMTEyKT4+NCxuPDEyOHx8KG49cltlLnBvcysrXSxzfD0obiYxMjcpPDwzLG48MTI4KXx8KG49cltlLnBvcysrXSxzfD0obiYxMjcpPDwxMCxuPDEyOCl8fChuPXJbZS5wb3MrK10sc3w9KG4mMTI3KTw8MTcsbjwxMjgpfHwobj1yW2UucG9zKytdLHN8PShuJjEyNyk8PDI0LG48MTI4KXx8KG49cltlLnBvcysrXSxzfD0obiYxKTw8MzEsbjwxMjgpKXJldHVybiBmKGkscyx0KTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHZhcmludCBub3QgbW9yZSB0aGFuIDEwIGJ5dGVzIil9ZnVuY3Rpb24gZihpLHQsZSl7cmV0dXJuIGU/dCo0Mjk0OTY3Mjk2KyhpPj4+MCk6KHQ+Pj4wKSo0Mjk0OTY3Mjk2KyhpPj4+MCl9ZnVuY3Rpb24gQihpLHQpe2xldCBlLHI7aWYoaT49MD8oZT1pJTQyOTQ5NjcyOTZ8MCxyPWkvNDI5NDk2NzI5NnwwKTooZT1+KC1pJTQyOTQ5NjcyOTYpLHI9figtaS80Mjk0OTY3Mjk2KSxlXjQyOTQ5NjcyOTU/ZT1lKzF8MDooZT0wLHI9cisxfDApKSxpPj0xODQ0Njc0NDA3MzcwOTU1MmUzfHxpPC0xODQ0Njc0NDA3MzcwOTU1MmUzKXRocm93IG5ldyBFcnJvcigiR2l2ZW4gdmFyaW50IGRvZXNuJ3QgZml0IGludG8gMTAgYnl0ZXMiKTt0LnJlYWxsb2MoMTApLFQoZSxyLHQpLEQocix0KX1mdW5jdGlvbiBUKGksdCxlKXtlLmJ1ZltlLnBvcysrXT1pJjEyN3wxMjgsaT4+Pj03LGUuYnVmW2UucG9zKytdPWkmMTI3fDEyOCxpPj4+PTcsZS5idWZbZS5wb3MrK109aSYxMjd8MTI4LGk+Pj49NyxlLmJ1ZltlLnBvcysrXT1pJjEyN3wxMjgsaT4+Pj03LGUuYnVmW2UucG9zXT1pJjEyN31mdW5jdGlvbiBEKGksdCl7Y29uc3QgZT0oaSY3KTw8NDt0LmJ1Zlt0LnBvcysrXXw9ZXwoKGk+Pj49Myk/MTI4OjApLGkmJih0LmJ1Zlt0LnBvcysrXT1pJjEyN3woKGk+Pj49Nyk/MTI4OjApLGkmJih0LmJ1Zlt0LnBvcysrXT1pJjEyN3woKGk+Pj49Nyk/MTI4OjApLGkmJih0LmJ1Zlt0LnBvcysrXT1pJjEyN3woKGk+Pj49Nyk/MTI4OjApLGkmJih0LmJ1Zlt0LnBvcysrXT1pJjEyN3woKGk+Pj49Nyk/MTI4OjApLGkmJih0LmJ1Zlt0LnBvcysrXT1pJjEyNykpKSkpfWZ1bmN0aW9uIFMoaSx0LGUpe2NvbnN0IHI9dDw9MTYzODM/MTp0PD0yMDk3MTUxPzI6dDw9MjY4NDM1NDU1PzM6TWF0aC5mbG9vcihNYXRoLmxvZyh0KS8oTWF0aC5MTjIqNykpO2UucmVhbGxvYyhyKTtmb3IobGV0IHM9ZS5wb3MtMTtzPj1pO3MtLSllLmJ1ZltzK3JdPWUuYnVmW3NdfWZ1bmN0aW9uIEkoaSx0KXtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl0LndyaXRlVmFyaW50KGlbZV0pfWZ1bmN0aW9uIEMoaSx0KXtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl0LndyaXRlU1ZhcmludChpW2VdKX1mdW5jdGlvbiBMKGksdCl7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspdC53cml0ZUZsb2F0KGlbZV0pfWZ1bmN0aW9uIEEoaSx0KXtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl0LndyaXRlRG91YmxlKGlbZV0pfWZ1bmN0aW9uIFUoaSx0KXtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl0LndyaXRlQm9vbGVhbihpW2VdKX1mdW5jdGlvbiB2KGksdCl7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspdC53cml0ZUZpeGVkMzIoaVtlXSl9ZnVuY3Rpb24gTihpLHQpe2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXQud3JpdGVTRml4ZWQzMihpW2VdKX1mdW5jdGlvbiBHKGksdCl7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspdC53cml0ZUZpeGVkNjQoaVtlXSl9ZnVuY3Rpb24gSChpLHQpe2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXQud3JpdGVTRml4ZWQ2NChpW2VdKX1mdW5jdGlvbiBSKGksdCxlKXtsZXQgcj0iIixzPXQ7Zm9yKDtzPGU7KXtjb25zdCBuPWlbc107bGV0IG89bnVsbCxoPW4+MjM5PzQ6bj4yMjM/MzpuPjE5MT8yOjE7aWYocytoPmUpYnJlYWs7bGV0IGEsZCx1O2g9PT0xP248MTI4JiYobz1uKTpoPT09Mj8oYT1pW3MrMV0sKGEmMTkyKT09PTEyOCYmKG89KG4mMzEpPDw2fGEmNjMsbzw9MTI3JiYobz1udWxsKSkpOmg9PT0zPyhhPWlbcysxXSxkPWlbcysyXSwoYSYxOTIpPT09MTI4JiYoZCYxOTIpPT09MTI4JiYobz0obiYxNSk8PDEyfChhJjYzKTw8NnxkJjYzLChvPD0yMDQ3fHxvPj01NTI5NiYmbzw9NTczNDMpJiYobz1udWxsKSkpOmg9PT00JiYoYT1pW3MrMV0sZD1pW3MrMl0sdT1pW3MrM10sKGEmMTkyKT09PTEyOCYmKGQmMTkyKT09PTEyOCYmKHUmMTkyKT09PTEyOCYmKG89KG4mMTUpPDwxOHwoYSY2Myk8PDEyfChkJjYzKTw8Nnx1JjYzLChvPD02NTUzNXx8bz49MTExNDExMikmJihvPW51bGwpKSksbz09PW51bGw/KG89NjU1MzMsaD0xKTpvPjY1NTM1JiYoby09NjU1MzYscis9U3RyaW5nLmZyb21DaGFyQ29kZShvPj4+MTAmMTAyM3w1NTI5Niksbz01NjMyMHxvJjEwMjMpLHIrPVN0cmluZy5mcm9tQ2hhckNvZGUobykscys9aH1yZXR1cm4gcn1mdW5jdGlvbiBxKGksdCxlKXtmb3IobGV0IHI9MCxzLG47cjx0Lmxlbmd0aDtyKyspe2lmKHM9dC5jaGFyQ29kZUF0KHIpLHM+NTUyOTUmJnM8NTczNDQpaWYobilpZihzPDU2MzIwKXtpW2UrK109MjM5LGlbZSsrXT0xOTEsaVtlKytdPTE4OSxuPXM7Y29udGludWV9ZWxzZSBzPW4tNTUyOTY8PDEwfHMtNTYzMjB8NjU1MzYsbj1udWxsO2Vsc2V7cz41NjMxOXx8cisxPT09dC5sZW5ndGg/KGlbZSsrXT0yMzksaVtlKytdPTE5MSxpW2UrK109MTg5KTpuPXM7Y29udGludWV9ZWxzZSBuJiYoaVtlKytdPTIzOSxpW2UrK109MTkxLGlbZSsrXT0xODksbj1udWxsKTtzPDEyOD9pW2UrK109czooczwyMDQ4P2lbZSsrXT1zPj42fDE5Mjooczw2NTUzNj9pW2UrK109cz4+MTJ8MjI0OihpW2UrK109cz4+MTh8MjQwLGlbZSsrXT1zPj4xMiY2M3wxMjgpLGlbZSsrXT1zPj42JjYzfDEyOCksaVtlKytdPXMmNjN8MTI4KX1yZXR1cm4gZX1mdW5jdGlvbiB4KGksdCl7dGhpcy54PWksdGhpcy55PXR9eC5wcm90b3R5cGU9e2Nsb25lKCl7cmV0dXJuIG5ldyB4KHRoaXMueCx0aGlzLnkpfSxhZGQoaSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fYWRkKGkpfSxzdWIoaSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fc3ViKGkpfSxtdWx0QnlQb2ludChpKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9tdWx0QnlQb2ludChpKX0sZGl2QnlQb2ludChpKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9kaXZCeVBvaW50KGkpfSxtdWx0KGkpe3JldHVybiB0aGlzLmNsb25lKCkuX211bHQoaSl9LGRpdihpKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9kaXYoaSl9LHJvdGF0ZShpKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9yb3RhdGUoaSl9LHJvdGF0ZUFyb3VuZChpLHQpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdGF0ZUFyb3VuZChpLHQpfSxtYXRNdWx0KGkpe3JldHVybiB0aGlzLmNsb25lKCkuX21hdE11bHQoaSl9LHVuaXQoKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl91bml0KCl9LHBlcnAoKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9wZXJwKCl9LHJvdW5kKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fcm91bmQoKX0sbWFnKCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLngqdGhpcy54K3RoaXMueSp0aGlzLnkpfSxlcXVhbHMoaSl7cmV0dXJuIHRoaXMueD09PWkueCYmdGhpcy55PT09aS55fSxkaXN0KGkpe3JldHVybiBNYXRoLnNxcnQodGhpcy5kaXN0U3FyKGkpKX0sZGlzdFNxcihpKXtjb25zdCB0PWkueC10aGlzLngsZT1pLnktdGhpcy55O3JldHVybiB0KnQrZSplfSxhbmdsZSgpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueSx0aGlzLngpfSxhbmdsZVRvKGkpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueS1pLnksdGhpcy54LWkueCl9LGFuZ2xlV2l0aChpKXtyZXR1cm4gdGhpcy5hbmdsZVdpdGhTZXAoaS54LGkueSl9LGFuZ2xlV2l0aFNlcChpLHQpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueCp0LXRoaXMueSppLHRoaXMueCppK3RoaXMueSp0KX0sX21hdE11bHQoaSl7Y29uc3QgdD1pWzBdKnRoaXMueCtpWzFdKnRoaXMueSxlPWlbMl0qdGhpcy54K2lbM10qdGhpcy55O3JldHVybiB0aGlzLng9dCx0aGlzLnk9ZSx0aGlzfSxfYWRkKGkpe3JldHVybiB0aGlzLngrPWkueCx0aGlzLnkrPWkueSx0aGlzfSxfc3ViKGkpe3JldHVybiB0aGlzLngtPWkueCx0aGlzLnktPWkueSx0aGlzfSxfbXVsdChpKXtyZXR1cm4gdGhpcy54Kj1pLHRoaXMueSo9aSx0aGlzfSxfZGl2KGkpe3JldHVybiB0aGlzLngvPWksdGhpcy55Lz1pLHRoaXN9LF9tdWx0QnlQb2ludChpKXtyZXR1cm4gdGhpcy54Kj1pLngsdGhpcy55Kj1pLnksdGhpc30sX2RpdkJ5UG9pbnQoaSl7cmV0dXJuIHRoaXMueC89aS54LHRoaXMueS89aS55LHRoaXN9LF91bml0KCl7cmV0dXJuIHRoaXMuX2Rpdih0aGlzLm1hZygpKSx0aGlzfSxfcGVycCgpe2NvbnN0IGk9dGhpcy55O3JldHVybiB0aGlzLnk9dGhpcy54LHRoaXMueD0taSx0aGlzfSxfcm90YXRlKGkpe2NvbnN0IHQ9TWF0aC5jb3MoaSksZT1NYXRoLnNpbihpKSxyPXQqdGhpcy54LWUqdGhpcy55LHM9ZSp0aGlzLngrdCp0aGlzLnk7cmV0dXJuIHRoaXMueD1yLHRoaXMueT1zLHRoaXN9LF9yb3RhdGVBcm91bmQoaSx0KXtjb25zdCBlPU1hdGguY29zKGkpLHI9TWF0aC5zaW4oaSkscz10LngrZSoodGhpcy54LXQueCktcioodGhpcy55LXQueSksbj10LnkrcioodGhpcy54LXQueCkrZSoodGhpcy55LXQueSk7cmV0dXJuIHRoaXMueD1zLHRoaXMueT1uLHRoaXN9LF9yb3VuZCgpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpc30sY29uc3RydWN0b3I6eH0seC5jb252ZXJ0PWZ1bmN0aW9uKGkpe2lmKGkgaW5zdGFuY2VvZiB4KXJldHVybiBpO2lmKEFycmF5LmlzQXJyYXkoaSkpcmV0dXJuIG5ldyB4KCtpWzBdLCtpWzFdKTtpZihpLnghPT12b2lkIDAmJmkueSE9PXZvaWQgMClyZXR1cm4gbmV3IHgoK2kueCwraS55KTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIFt4LCB5XSBvciB7eCwgeX0gcG9pbnQgZm9ybWF0Iil9O2NsYXNzIGt7Y29uc3RydWN0b3IodCxlLHIscyxuKXt0aGlzLnByb3BlcnRpZXM9e30sdGhpcy5leHRlbnQ9cix0aGlzLnR5cGU9MCx0aGlzLmlkPXZvaWQgMCx0aGlzLl9wYmY9dCx0aGlzLl9nZW9tZXRyeT0tMSx0aGlzLl9rZXlzPXMsdGhpcy5fdmFsdWVzPW4sdC5yZWFkRmllbGRzKGosdGhpcyxlKX1sb2FkR2VvbWV0cnkoKXtjb25zdCB0PXRoaXMuX3BiZjt0LnBvcz10aGlzLl9nZW9tZXRyeTtjb25zdCBlPXQucmVhZFZhcmludCgpK3QucG9zLHI9W107bGV0IHMsbj0xLG89MCxoPTAsYT0wO2Zvcig7dC5wb3M8ZTspe2lmKG88PTApe2NvbnN0IGQ9dC5yZWFkVmFyaW50KCk7bj1kJjcsbz1kPj4zfWlmKG8tLSxuPT09MXx8bj09PTIpaCs9dC5yZWFkU1ZhcmludCgpLGErPXQucmVhZFNWYXJpbnQoKSxuPT09MSYmKHMmJnIucHVzaChzKSxzPVtdKSxzJiZzLnB1c2gobmV3IHgoaCxhKSk7ZWxzZSBpZihuPT09NylzJiZzLnB1c2goc1swXS5jbG9uZSgpKTtlbHNlIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBjb21tYW5kICR7bn1gKX1yZXR1cm4gcyYmci5wdXNoKHMpLHJ9YmJveCgpe2NvbnN0IHQ9dGhpcy5fcGJmO3QucG9zPXRoaXMuX2dlb21ldHJ5O2NvbnN0IGU9dC5yZWFkVmFyaW50KCkrdC5wb3M7bGV0IHI9MSxzPTAsbj0wLG89MCxoPTEvMCxhPS0xLzAsZD0xLzAsdT0tMS8wO2Zvcig7dC5wb3M8ZTspe2lmKHM8PTApe2NvbnN0IHc9dC5yZWFkVmFyaW50KCk7cj13Jjcscz13Pj4zfWlmKHMtLSxyPT09MXx8cj09PTIpbis9dC5yZWFkU1ZhcmludCgpLG8rPXQucmVhZFNWYXJpbnQoKSxuPGgmJihoPW4pLG4+YSYmKGE9biksbzxkJiYoZD1vKSxvPnUmJih1PW8pO2Vsc2UgaWYociE9PTcpdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGNvbW1hbmQgJHtyfWApfXJldHVybltoLGQsYSx1XX10b0dlb0pTT04odCxlLHIpe2NvbnN0IHM9dGhpcy5leHRlbnQqTWF0aC5wb3coMixyKSxuPXRoaXMuZXh0ZW50KnQsbz10aGlzLmV4dGVudCplLGg9dGhpcy5sb2FkR2VvbWV0cnkoKTtmdW5jdGlvbiBhKGwpe3JldHVyblsobC54K24pKjM2MC9zLTE4MCwzNjAvTWF0aC5QSSpNYXRoLmF0YW4oTWF0aC5leHAoKDEtKGwueStvKSoyL3MpKk1hdGguUEkpKS05MF19ZnVuY3Rpb24gZChsKXtyZXR1cm4gbC5tYXAoYSl9bGV0IHU7aWYodGhpcy50eXBlPT09MSl7Y29uc3QgbD1bXTtmb3IoY29uc3QgViBvZiBoKWwucHVzaChWWzBdKTtjb25zdCBjPWQobCk7dT1sLmxlbmd0aD09PTE/e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpjWzBdfTp7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6Y319ZWxzZSBpZih0aGlzLnR5cGU9PT0yKXtjb25zdCBsPWgubWFwKGQpO3U9bC5sZW5ndGg9PT0xP3t0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpsWzBdfTp7dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczpsfX1lbHNlIGlmKHRoaXMudHlwZT09PTMpe2NvbnN0IGw9VyhoKSxjPVtdO2Zvcihjb25zdCBWIG9mIGwpYy5wdXNoKFYubWFwKGQpKTt1PWMubGVuZ3RoPT09MT97dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6Y1swXX06e3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6Y319ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInVua25vd24gZmVhdHVyZSB0eXBlIik7Y29uc3Qgdz17dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6dSxwcm9wZXJ0aWVzOnRoaXMucHJvcGVydGllc307cmV0dXJuIHRoaXMuaWQhPW51bGwmJih3LmlkPXRoaXMuaWQpLHd9fWsudHlwZXM9WyJVbmtub3duIiwiUG9pbnQiLCJMaW5lU3RyaW5nIiwiUG9seWdvbiJdO2Z1bmN0aW9uIGooaSx0LGUpe2k9PT0xP3QuaWQ9ZS5yZWFkVmFyaW50KCk6aT09PTI/TyhlLHQpOmk9PT0zP3QudHlwZT1lLnJlYWRWYXJpbnQoKTppPT09NCYmKHQuX2dlb21ldHJ5PWUucG9zKX1mdW5jdGlvbiBPKGksdCl7Y29uc3QgZT1pLnJlYWRWYXJpbnQoKStpLnBvcztmb3IoO2kucG9zPGU7KXtjb25zdCByPXQuX2tleXNbaS5yZWFkVmFyaW50KCldLHM9dC5fdmFsdWVzW2kucmVhZFZhcmludCgpXTt0LnByb3BlcnRpZXNbcl09c319ZnVuY3Rpb24gVyhpKXtjb25zdCB0PWkubGVuZ3RoO2lmKHQ8PTEpcmV0dXJuW2ldO2NvbnN0IGU9W107bGV0IHIscztmb3IobGV0IG49MDtuPHQ7bisrKXtjb25zdCBvPUooaVtuXSk7byE9PTAmJihzPT09dm9pZCAwJiYocz1vPDApLHM9PT1vPDA/KHImJmUucHVzaChyKSxyPVtpW25dXSk6ciYmci5wdXNoKGlbbl0pKX1yZXR1cm4gciYmZS5wdXNoKHIpLGV9ZnVuY3Rpb24gSihpKXtsZXQgdD0wO2ZvcihsZXQgZT0wLHI9aS5sZW5ndGgscz1yLTEsbixvO2U8cjtzPWUrKyluPWlbZV0sbz1pW3NdLHQrPShvLngtbi54KSoobi55K28ueSk7cmV0dXJuIHR9Y2xhc3MgWHtjb25zdHJ1Y3Rvcih0LGUpe3RoaXMudmVyc2lvbj0xLHRoaXMubmFtZT0iIix0aGlzLmV4dGVudD00MDk2LHRoaXMubGVuZ3RoPTAsdGhpcy5fcGJmPXQsdGhpcy5fa2V5cz1bXSx0aGlzLl92YWx1ZXM9W10sdGhpcy5fZmVhdHVyZXM9W10sdC5yZWFkRmllbGRzKCQsdGhpcyxlKSx0aGlzLmxlbmd0aD10aGlzLl9mZWF0dXJlcy5sZW5ndGh9ZmVhdHVyZSh0KXtpZih0PDB8fHQ+PXRoaXMuX2ZlYXR1cmVzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImZlYXR1cmUgaW5kZXggb3V0IG9mIGJvdW5kcyIpO3RoaXMuX3BiZi5wb3M9dGhpcy5fZmVhdHVyZXNbdF07Y29uc3QgZT10aGlzLl9wYmYucmVhZFZhcmludCgpK3RoaXMuX3BiZi5wb3M7cmV0dXJuIG5ldyBrKHRoaXMuX3BiZixlLHRoaXMuZXh0ZW50LHRoaXMuX2tleXMsdGhpcy5fdmFsdWVzKX19ZnVuY3Rpb24gJChpLHQsZSl7aT09PTE1P3QudmVyc2lvbj1lLnJlYWRWYXJpbnQoKTppPT09MT90Lm5hbWU9ZS5yZWFkU3RyaW5nKCk6aT09PTU/dC5leHRlbnQ9ZS5yZWFkVmFyaW50KCk6aT09PTI/dC5fZmVhdHVyZXMucHVzaChlLnBvcyk6aT09PTM/dC5fa2V5cy5wdXNoKGUucmVhZFN0cmluZygpKTppPT09NCYmdC5fdmFsdWVzLnB1c2goYihlKSl9ZnVuY3Rpb24gYihpKXtsZXQgdD1udWxsO2NvbnN0IGU9aS5yZWFkVmFyaW50KCkraS5wb3M7Zm9yKDtpLnBvczxlOyl7Y29uc3Qgcj1pLnJlYWRWYXJpbnQoKT4+Mzt0PXI9PT0xP2kucmVhZFN0cmluZygpOnI9PT0yP2kucmVhZEZsb2F0KCk6cj09PTM/aS5yZWFkRG91YmxlKCk6cj09PTQ/aS5yZWFkVmFyaW50NjQoKTpyPT09NT9pLnJlYWRWYXJpbnQoKTpyPT09Nj9pLnJlYWRTVmFyaW50KCk6cj09PTc/aS5yZWFkQm9vbGVhbigpOm51bGx9aWYodD09bnVsbCl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gZmVhdHVyZSB2YWx1ZSIpO3JldHVybiB0fWNsYXNzIHp7Y29uc3RydWN0b3IodCxlKXt0aGlzLmxheWVycz10LnJlYWRGaWVsZHMoWSx7fSxlKX19ZnVuY3Rpb24gWShpLHQsZSl7aWYoaT09PTMpe2NvbnN0IHI9bmV3IFgoZSxlLnJlYWRWYXJpbnQoKStlLnBvcyk7ci5sZW5ndGgmJih0W3IubmFtZV09cil9fWFzeW5jIGZ1bmN0aW9uIEsoaSx0LGUscil7dHJ5e2NvbnN0IHM9UShpLHQsZSxyKTtyZXR1cm57eDp0LHk6ZSx6OnIsbGF5ZXJzOnMsdGltZXN0YW1wOkRhdGUubm93KCksZGF0YUZvcm1hdDoibXZ0In19Y2F0Y2gocyl7dGhyb3cgY29uc29sZS5lcnJvcigi6Kej5p6Q55+i6YeP55Om54mH5pWw5o2u5pe25Ye66ZSZOiIscyksc319ZnVuY3Rpb24gUShpLHQsZSxyKXtjb25zdCBzPW5ldyBNKGkpLG49bmV3IHoocyksbz17fTtmb3IoY29uc3QgaCBpbiBuLmxheWVycyl7Y29uc3QgYT1uLmxheWVyc1toXSxkPVtdO2ZvcihsZXQgdT0wO3U8YS5sZW5ndGg7dSsrKXtjb25zdCBsPWEuZmVhdHVyZSh1KS50b0dlb0pTT04odCxlLHIpO2QucHVzaChsKX1vW2hdPWR9cmV0dXJuIG99c2VsZi5vbm1lc3NhZ2U9YXN5bmMgaT0+e2NvbnN0IHQ9aS5kYXRhO3RyeXtjb25zdCBlPWF3YWl0IEsodC5hcnJheUJ1ZmZlcix0LngsdC55LHQueik7c2VsZi5wb3N0TWVzc2FnZShlKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJXb3JrZXIgTVZUIOino+aekOWksei0pToiLGUpLHNlbGYucG9zdE1lc3NhZ2Uoe2Vycm9yOmUubWVzc2FnZX0pfX19KSgpOwo=", pT = (a) => Uint8Array.from(atob(a), (t) => t.charCodeAt(0)), Rh = typeof self < "u" && self.Blob && new Blob([pT(kd)], { type: "text/javascript;charset=utf-8" });
|
|
18688
18688
|
function mT(a) {
|
|
18689
18689
|
let t;
|
|
@@ -18773,7 +18773,7 @@ class yT {
|
|
|
18773
18773
|
* 创建包含矢量数据的几何体 (保持不变)
|
|
18774
18774
|
*/
|
|
18775
18775
|
createGeometryWithVectorData(t, e) {
|
|
18776
|
-
const n = new
|
|
18776
|
+
const n = new Vi();
|
|
18777
18777
|
return n.userData = {
|
|
18778
18778
|
vectorData: t,
|
|
18779
18779
|
tileInfo: {
|
|
@@ -18793,7 +18793,7 @@ class yT {
|
|
|
18793
18793
|
* 创建错误几何体 (保持不变)
|
|
18794
18794
|
*/
|
|
18795
18795
|
createErrorGeometry(t, e, n, r) {
|
|
18796
|
-
const s = new
|
|
18796
|
+
const s = new Vi();
|
|
18797
18797
|
return s.userData = {
|
|
18798
18798
|
vectorData: {
|
|
18799
18799
|
x: t,
|
|
@@ -19116,7 +19116,7 @@ let $r = class zd extends gl(
|
|
|
19116
19116
|
/** 加载钩子函数数组 */
|
|
19117
19117
|
//@ts-ignore
|
|
19118
19118
|
M(this, "_onLoadHooks");
|
|
19119
|
-
this.tilemap = this.initTileMap(l.basemap), this.center = this.options.center, this.viewer = new
|
|
19119
|
+
this.tilemap = this.initTileMap(l.basemap), this.center = this.options.center, this.viewer = new Vx(e, { ...l.viewer, map: this }), this.tilemap.receiveShadow = !0, this.viewer.scene.add(this.tilemap);
|
|
19120
19120
|
const c = this.tilemap.geo2world(new J(this.center[0], this.center[1], 0)), u = this.tilemap.geo2world(new J(this.center[0], this.center[1] - 0.03, this.center[2] || 1e3));
|
|
19121
19121
|
this.prjcenter = c, console.log(c, "centerPostion"), this.viewer.camera.position.copy(u), this.viewer.camera.lookAt(c), this.viewer.controls.target.copy(c), this._layerContainer = new xb(), this.viewer.scene.add(this._layerContainer), this.collisionEngine = new Db(this.viewer.renderer, {
|
|
19122
19122
|
padding: 8,
|
|
@@ -19317,18 +19317,22 @@ let $r = class zd extends gl(
|
|
|
19317
19317
|
_findFeaturesAt(e) {
|
|
19318
19318
|
const n = this, r = n.getRenderer(), s = n.getCamera(), l = r.domElement.getBoundingClientRect(), c = e.x / l.width * 2 - 1, u = -(e.y / l.height) * 2 + 1, d = new ul();
|
|
19319
19319
|
d.setFromCamera(new Ie(c, u), s);
|
|
19320
|
-
const p = n.getLayers().filter((y) => !y?.isSceneLayer),
|
|
19321
|
-
|
|
19322
|
-
|
|
19323
|
-
|
|
19324
|
-
|
|
19325
|
-
|
|
19326
|
-
|
|
19327
|
-
|
|
19320
|
+
const p = n.getLayers().filter((y) => !y?.isSceneLayer), g = d.intersectObjects(p, !0).map((y) => {
|
|
19321
|
+
let w = y.object, T = null;
|
|
19322
|
+
for (; w; ) {
|
|
19323
|
+
if (w instanceof rr) {
|
|
19324
|
+
T = w;
|
|
19325
|
+
break;
|
|
19326
|
+
}
|
|
19327
|
+
w = w.parent;
|
|
19328
|
+
}
|
|
19329
|
+
return T ? {
|
|
19330
|
+
feature: T,
|
|
19328
19331
|
distance: y.distance,
|
|
19329
19332
|
object: y.object
|
|
19330
|
-
};
|
|
19331
|
-
});
|
|
19333
|
+
} : null;
|
|
19334
|
+
}).filter((y) => !!y);
|
|
19335
|
+
return g.length ? g.sort((y, w) => y.distance - w.distance) : [];
|
|
19332
19336
|
}
|
|
19333
19337
|
/**
|
|
19334
19338
|
* 获取当前地图中心点(经纬度)
|
|
@@ -19460,7 +19464,7 @@ class TT extends fd {
|
|
|
19460
19464
|
* @returns
|
|
19461
19465
|
*/
|
|
19462
19466
|
M(this, "_eventCommon", (e) => {
|
|
19463
|
-
e.type === "click" && Date.now() - this._mouseDownTime > 300
|
|
19467
|
+
(e.type === "mousedown" || e.type === "touchstart") && (this._mouseDownTime = Date.now()), !(e.type === "click" && Date.now() - this._mouseDownTime > 300) && this._handleEvent(e, e.type);
|
|
19464
19468
|
});
|
|
19465
19469
|
}
|
|
19466
19470
|
addHooks() {
|
|
@@ -19481,7 +19485,8 @@ class TT extends fd {
|
|
|
19481
19485
|
*/
|
|
19482
19486
|
_handleEvent(e, n) {
|
|
19483
19487
|
const r = this.target;
|
|
19484
|
-
if (this._shouldIgnoreEvent())
|
|
19488
|
+
if (this._shouldIgnoreEvent() || (n === "mousemove" || n === "mouseenter" || n === "mouseleave" || n === "mouseover" || n === "mouseout" || n === "touchmove") && !r.getLayers().some((d) => !d.isSceneLayer && d._feaList?.length > 0))
|
|
19489
|
+
return;
|
|
19485
19490
|
const s = r._getEventPosition(e);
|
|
19486
19491
|
if (!s) return;
|
|
19487
19492
|
const l = r._findFeaturesAt(s);
|
|
@@ -19491,8 +19496,24 @@ class TT extends fd {
|
|
|
19491
19496
|
case "click":
|
|
19492
19497
|
this._handleClickEvent(c, e);
|
|
19493
19498
|
break;
|
|
19499
|
+
case "mousemove":
|
|
19500
|
+
case "mouseenter":
|
|
19501
|
+
case "mouseleave":
|
|
19502
|
+
case "mouseover":
|
|
19503
|
+
case "mouseout":
|
|
19504
|
+
case "touchmove":
|
|
19505
|
+
this.handleMoveEvent(c, e);
|
|
19506
|
+
break;
|
|
19494
19507
|
default:
|
|
19495
|
-
|
|
19508
|
+
if (c) {
|
|
19509
|
+
this._fireFeatureEvent(c, n, e);
|
|
19510
|
+
const u = c.getLayer();
|
|
19511
|
+
u && u.trigger("feature" + n, {
|
|
19512
|
+
feature: c,
|
|
19513
|
+
domEvent: e,
|
|
19514
|
+
type: "feature" + n
|
|
19515
|
+
});
|
|
19516
|
+
}
|
|
19496
19517
|
}
|
|
19497
19518
|
}
|
|
19498
19519
|
/**
|
|
@@ -19529,19 +19550,32 @@ class TT extends fd {
|
|
|
19529
19550
|
*/
|
|
19530
19551
|
_fireFeatureEvent(e, n, r) {
|
|
19531
19552
|
const s = this.target;
|
|
19532
|
-
let l =
|
|
19533
|
-
if (
|
|
19534
|
-
|
|
19553
|
+
let l = r, c, u;
|
|
19554
|
+
if ("touches" in r) {
|
|
19555
|
+
const g = r.touches[0] || r.changedTouches[0];
|
|
19556
|
+
if (!g) return;
|
|
19557
|
+
l = {
|
|
19558
|
+
currentTarget: r.currentTarget,
|
|
19559
|
+
clientX: g.clientX,
|
|
19560
|
+
clientY: g.clientY
|
|
19561
|
+
}, c = g.screenX, u = g.screenY;
|
|
19562
|
+
} else {
|
|
19563
|
+
const g = r;
|
|
19564
|
+
l = g, c = g.screenX, u = g.screenY;
|
|
19565
|
+
}
|
|
19566
|
+
const d = Dd(l, s.tilemap, s.viewer.camera);
|
|
19567
|
+
if (!d) return;
|
|
19568
|
+
const p = [d.x, d.y, d.z], f = {
|
|
19535
19569
|
target: e,
|
|
19536
19570
|
originEvent: r,
|
|
19537
|
-
coordinate:
|
|
19571
|
+
coordinate: p,
|
|
19538
19572
|
eventName: n,
|
|
19539
19573
|
screenXY: {
|
|
19540
|
-
X:
|
|
19541
|
-
Y:
|
|
19574
|
+
X: c,
|
|
19575
|
+
Y: u
|
|
19542
19576
|
}
|
|
19543
19577
|
};
|
|
19544
|
-
e.trigger(n,
|
|
19578
|
+
e.trigger(n, f);
|
|
19545
19579
|
}
|
|
19546
19580
|
// ============== 工具方法 ==============
|
|
19547
19581
|
/**
|
|
@@ -20063,7 +20097,7 @@ export {
|
|
|
20063
20097
|
i_ as TPoints,
|
|
20064
20098
|
Rn as Tile,
|
|
20065
20099
|
CT as TileCanvasLoader,
|
|
20066
|
-
|
|
20100
|
+
Vi as TileGeometry,
|
|
20067
20101
|
Rd as TileGeometryLoader,
|
|
20068
20102
|
wl as TileLoader,
|
|
20069
20103
|
o_ as TileLoadingManager,
|
|
@@ -20074,11 +20108,11 @@ export {
|
|
|
20074
20108
|
lt as VectorFeatureTypes,
|
|
20075
20109
|
vT as VectorTileLayer,
|
|
20076
20110
|
y_ as VectorTileRender,
|
|
20077
|
-
|
|
20111
|
+
Vx as Viewer,
|
|
20078
20112
|
zT as WMTSSource,
|
|
20079
20113
|
JT as WMTSTileLayer,
|
|
20080
20114
|
c_ as addSkirt,
|
|
20081
|
-
|
|
20115
|
+
ET as author,
|
|
20082
20116
|
Os as concatenateTypedArrays,
|
|
20083
20117
|
PT as convertGeometryToWGS84,
|
|
20084
20118
|
ZT as createBillboards,
|
|
@@ -20090,10 +20124,10 @@ export {
|
|
|
20090
20124
|
mh as getLocalInfoFromWorld,
|
|
20091
20125
|
Id as getNormals,
|
|
20092
20126
|
Zd as getSafeTileUrlAndBounds,
|
|
20093
|
-
|
|
20094
|
-
|
|
20127
|
+
Ed as registerDEMLoader,
|
|
20128
|
+
Vd as registerImgLoader,
|
|
20095
20129
|
__ as registerMeshLoader,
|
|
20096
20130
|
Sh as vector2ToWGS84,
|
|
20097
|
-
|
|
20131
|
+
VT as version,
|
|
20098
20132
|
AT as waitFor
|
|
20099
20133
|
};
|