@kalyptos/narcissus 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,7 +71,18 @@ function A(e, t) {
71
71
  length: e.getUint32(t + 48, !0)
72
72
  };
73
73
  }
74
- async function j(e) {
74
+ async function j(e, t) {
75
+ if (t < 16) throw Error("is shorter than a pack trailer");
76
+ let n = await e(t - 16, t), r = new DataView(n.buffer, n.byteOffset, n.byteLength);
77
+ if (String.fromCharCode(...n.subarray(8, 12)) !== "GMPK") throw Error("does not end in a pack trailer");
78
+ let i = r.getUint16(12, !0);
79
+ if (i !== 1) throw Error(`is version ${i}; narcissus reads 1`);
80
+ let a = r.getUint32(0, !0), o = r.getUint32(4, !0);
81
+ if (a + o * 52 !== t - 16) throw Error("has a page table that does not end at its trailer");
82
+ let s = await e(a, t - 16), c = new DataView(s.buffer, s.byteOffset, s.byteLength);
83
+ return Array.from({ length: o }, (e, t) => A(c, t * 52));
84
+ }
85
+ async function M(e) {
75
86
  let t = await O(e, a, ".idx");
76
87
  if (t.byteLength < 40) throw Error(".idx header is cut off");
77
88
  let n = t.getUint16(32, !0), r = t.getUint8(34), i = t.getUint16(36, !0), o = 40 + n * 52 + r * 9 + i * 11;
@@ -100,12 +111,12 @@ async function j(e) {
100
111
  });
101
112
  return c;
102
113
  }
103
- function M(e, t, n) {
114
+ function N(e, t, n) {
104
115
  return `u/${e.level}/${e.e}/${e.n}.${t}.${n}`;
105
116
  }
106
- var N = /(?:^|\/)u\/(\d+)\/(-?\d+)\/(-?\d+)\.([0-9a-f]{16})\.(?:idx|pack|col)$/;
107
- function P(e) {
108
- let t = N.exec(e);
117
+ var P = /(?:^|\/)u\/(\d+)\/(-?\d+)\/(-?\d+)\.([0-9a-f]{16})\.(?:idx|pack|col)$/;
118
+ function F(e) {
119
+ let t = P.exec(e);
109
120
  return t ? {
110
121
  level: Number(t[1]),
111
122
  e: Number(t[2]),
@@ -113,7 +124,7 @@ function P(e) {
113
124
  hash: t[4]
114
125
  } : null;
115
126
  }
116
- function F(e) {
127
+ function I(e) {
117
128
  let { level: t, e: n, n: r } = e, i = 250 * 2 ** (t - 1), a = e.children.map(({ quadrant: e, idx: a }) => ({
118
129
  key: {
119
130
  level: t - 1,
@@ -137,7 +148,7 @@ function F(e) {
137
148
  }
138
149
  //#endregion
139
150
  //#region src/format/world.ts
140
- var ee = /* @__PURE__ */ new Set([
151
+ var L = /* @__PURE__ */ new Set([
141
152
  "version",
142
153
  "crs",
143
154
  "height",
@@ -145,62 +156,62 @@ var ee = /* @__PURE__ */ new Set([
145
156
  "roots",
146
157
  "extent"
147
158
  ]);
148
- function I(e) {
159
+ function R(e) {
149
160
  return /* @__PURE__ */ Error(`This world has ${e}.`);
150
161
  }
151
- function L(e, t) {
152
- if (typeof e != "object" || !e || Array.isArray(e)) throw I(t);
162
+ function z(e, t) {
163
+ if (typeof e != "object" || !e || Array.isArray(e)) throw R(t);
153
164
  return e;
154
165
  }
155
- function R(e, t) {
156
- if (typeof e != "string" || e === "") throw I(t);
166
+ function B(e, t) {
167
+ if (typeof e != "string" || e === "") throw R(t);
157
168
  return e;
158
169
  }
159
- function z(e, t) {
160
- if (!Array.isArray(e) || e.length !== 2 || !e.every(Number.isFinite) || e[0] > e[1]) throw I(t);
170
+ function V(e, t) {
171
+ if (!Array.isArray(e) || e.length !== 2 || !e.every(Number.isFinite) || e[0] > e[1]) throw R(t);
161
172
  return [e[0], e[1]];
162
173
  }
163
- function te(e) {
164
- let t = L(e, "an invalid root"), { level: n, e: r, n: i } = t;
165
- if (!Number.isInteger(n) || !Number.isInteger(r) || !Number.isInteger(i) || n < 0) throw I("an invalid root");
174
+ function ee(e) {
175
+ let t = z(e, "an invalid root"), { level: n, e: r, n: i } = t;
176
+ if (!Number.isInteger(n) || !Number.isInteger(r) || !Number.isInteger(i) || n < 0) throw R("an invalid root");
166
177
  let a = {
167
178
  level: n,
168
179
  e: r,
169
180
  n: i
170
- }, o = 250 * 2 ** a.level, s = R(t.idx, "a root without an index"), c = P(s);
171
- if (a.e % o !== 0 || a.n % o !== 0 || !s.endsWith(".idx") || !c || c.level !== a.level || c.e !== a.e || c.n !== a.n) throw I("a root whose index does not match its unit");
181
+ }, o = 250 * 2 ** a.level, s = B(t.idx, "a root without an index"), c = F(s);
182
+ if (a.e % o !== 0 || a.n % o !== 0 || !s.endsWith(".idx") || !c || c.level !== a.level || c.e !== a.e || c.n !== a.n) throw R("a root whose index does not match its unit");
172
183
  return {
173
184
  ...a,
174
185
  idx: s
175
186
  };
176
187
  }
177
- function ne(e) {
188
+ function te(e) {
178
189
  let t = e.split(/[?#]/)[0];
179
190
  return t.slice(0, t.lastIndexOf("/") + 1);
180
191
  }
181
- function re(e) {
182
- let t = L(e, "an unreadable world.json");
192
+ function ne(e) {
193
+ let t = z(e, "an unreadable world.json");
183
194
  if (t.version !== 1) throw Error(`This world is version ${String(t.version)}; narcissus reads 1.`);
184
- if (t.leaf !== 250) throw I(`${String(t.leaf)} m leaf units, not 250 m`);
185
- if (!Array.isArray(t.roots) || t.roots.length === 0) throw I("no roots");
186
- let n = L(t.extent, "no extent");
195
+ if (t.leaf !== 250) throw R(`${String(t.leaf)} m leaf units, not 250 m`);
196
+ if (!Array.isArray(t.roots) || t.roots.length === 0) throw R("no roots");
197
+ let n = z(t.extent, "no extent");
187
198
  return {
188
199
  version: 1,
189
- crs: R(t.crs, "no coordinate system"),
190
- height: R(t.height, "no height datum"),
200
+ crs: B(t.crs, "no coordinate system"),
201
+ height: B(t.height, "no height datum"),
191
202
  leaf: 250,
192
- roots: t.roots.map(te),
203
+ roots: t.roots.map(ee),
193
204
  extent: {
194
- e: z(n.e, "an invalid easting extent"),
195
- n: z(n.n, "an invalid northing extent"),
196
- h: z(n.h, "an invalid height extent")
205
+ e: V(n.e, "an invalid easting extent"),
206
+ n: V(n.n, "an invalid northing extent"),
207
+ h: V(n.h, "an invalid height extent")
197
208
  },
198
- extra: Object.fromEntries(Object.entries(t).filter(([e]) => !ee.has(e)))
209
+ extra: Object.fromEntries(Object.entries(t).filter(([e]) => !L.has(e)))
199
210
  };
200
211
  }
201
212
  //#endregion
202
213
  //#region src/format/col.ts
203
- async function ie(e) {
214
+ async function re(e) {
204
215
  let t = await O(e, o, ".col");
205
216
  if (t.byteLength < 60) throw Error(".col header is cut off");
206
217
  let n = t.getUint16(0, !0), r = 60 + 12 * n * n;
@@ -220,28 +231,28 @@ async function ie(e) {
220
231
  values: i
221
232
  };
222
233
  }
223
- function ae(e, t, n, r) {
234
+ function ie(e, t, n, r) {
224
235
  let { n: i, pitch: a, margin: o, values: s } = e, c = i - 1, l = Math.min(Math.max((t + o) / a - .5, 0), c), u = Math.min(Math.max((n + o) / a - .5, 0), c), d = Math.min(Math.floor(l), Math.max(c - 1, 0)), f = Math.min(Math.floor(u), Math.max(c - 1, 0)), p = Math.min(d + 1, c), m = Math.min(f + 1, c), h = l - d, g = u - f, _ = (1 - h) * (1 - g), v = h * (1 - g), y = (1 - h) * g, b = h * g, x = i * i;
225
236
  for (let e = 0, t = 0; e < 12; e++, t += x) r[e] = s[t + f * i + d] * _ + s[t + f * i + p] * v + s[t + m * i + d] * y + s[t + m * i + p] * b;
226
237
  return r;
227
238
  }
228
239
  //#endregion
229
240
  //#region src/format/page.ts
230
- var B = Float64Array.from({ length: 256 }, (e, t) => (t / 255 - .5) * Math.SQRT2);
231
- function oe(e, t, n, r, i) {
232
- let a = B[t], o = B[n], s = B[r];
241
+ var H = Float64Array.from({ length: 256 }, (e, t) => (t / 255 - .5) * Math.SQRT2);
242
+ function ae(e, t, n, r, i) {
243
+ let a = H[t], o = H[n], s = H[r];
233
244
  i[e] = Math.sqrt(Math.max(0, 1 - a * a - o * o - s * s)), i[e > 0 ? 0 : 1] = a, i[e > 1 ? 1 : 2] = o, i[e > 2 ? 2 : 3] = s;
234
245
  }
235
- function se(e, t, n, r, i) {
246
+ function oe(e, t, n, r, i) {
236
247
  let a = e[0], o = e[1], s = e[2], c = e[3], l = t * t, u = n * n, d = r * r, f = 1 - 2 * (s * s + c * c), p = 2 * (o * s - a * c), m = 2 * (o * c + a * s), h = 2 * (o * s + a * c), g = 1 - 2 * (o * o + c * c), _ = 2 * (s * c - a * o), v = 2 * (o * c - a * s), y = 2 * (s * c + a * o), b = 1 - 2 * (o * o + s * s);
237
248
  i[0] = 3 * Math.sqrt(f * f * l + p * p * u + m * m * d), i[1] = 3 * Math.sqrt(h * h * l + g * g * u + _ * _ * d), i[2] = 3 * Math.sqrt(v * v * l + y * y * u + b * b * d);
238
249
  }
239
- function ce(e) {
250
+ function se(e) {
240
251
  if (e.length < 128) throw Error("page payload is shorter than its header");
241
252
  return new DataView(e.buffer, e.byteOffset, e.byteLength);
242
253
  }
243
- function le(e) {
244
- let t = ce(e), n = t.getUint32(0, !0), r = t.getUint16(16, !0), i = 128 + (17 + (r > 0 ? 2 : 0)) * n, a = i + r * 9;
254
+ function ce(e) {
255
+ let t = se(e), n = t.getUint32(0, !0), r = t.getUint16(16, !0), i = 128 + (17 + (r > 0 ? 2 : 0)) * n, a = i + r * 9;
245
256
  if (e.length !== a) throw Error(`page payload holds ${e.length} bytes, its header needs ${a}`);
246
257
  return {
247
258
  view: t,
@@ -250,15 +261,15 @@ function le(e) {
250
261
  book: i
251
262
  };
252
263
  }
253
- function ue(e) {
264
+ function le(e) {
254
265
  return [
255
266
  e.getUint32(4, !0),
256
267
  e.getUint32(8, !0),
257
268
  e.getUint32(12, !0)
258
269
  ];
259
270
  }
260
- function de(e, t) {
261
- let { view: n, count: r, k: i, book: a } = le(e), o = /* @__PURE__ */ new Float32Array(27);
271
+ function ue(e, t) {
272
+ let { view: n, count: r, k: i, book: a } = ce(e), o = /* @__PURE__ */ new Float32Array(27);
262
273
  for (let e = 0; e < 27; e++) o[e] = n.getFloat32(20 + 4 * e, !0);
263
274
  i === 0 && o.fill(0, C.shScale);
264
275
  let s = new Uint32Array(r * 4), c = new Float32Array(Math.ceil(r / 256) * 6), l = /* @__PURE__ */ new Float64Array(768);
@@ -273,7 +284,7 @@ function de(e, t) {
273
284
  let t = e[p + n] | e[p + r + n] << 8;
274
285
  x = x + (t >>> 1 ^ -(t & 1)) & 65535, t = e[p + 2 * r + n] | e[p + 3 * r + n] << 8, S = S + (t >>> 1 ^ -(t & 1)) & 65535, t = e[p + 4 * r + n] | e[p + 5 * r + n] << 8, w = w + (t >>> 1 ^ -(t & 1)) & 65535;
275
286
  let c = e[h + n], E = e[g + n], D = e[g + r + n], O = e[g + 2 * r + n], k = e[v + n], A = e[v + r + n], j = e[v + 2 * r + n], M = n * 4;
276
- s[M] = x | S << 16, s[M + 1] = w | e[m + n] << 16 | c << 24, s[M + 2] = E | D << 8 | O << 16 | k << 24, s[M + 3] = A | j << 8, oe(c, E, D, O, y), se(y, l[k], l[256 + A], l[512 + j], b);
287
+ s[M] = x | S << 16, s[M + 1] = w | e[m + n] << 16 | c << 24, s[M + 2] = E | D << 8 | O << 16 | k << 24, s[M + 3] = A | j << 8, ae(c, E, D, O, y), oe(y, l[k], l[256 + A], l[512 + j], b);
277
288
  let N = x * u, P = S * d, F = w * f;
278
289
  i = Math.min(i, N - b[0]), a = Math.min(a, P - b[1]), o = Math.min(o, F - b[2]), _ = Math.max(_, N + b[0]), C = Math.max(C, P + b[1]), T = Math.max(T, F + b[2]);
279
290
  }
@@ -286,17 +297,17 @@ function de(e, t) {
286
297
  T
287
298
  ], t * 6);
288
299
  }
289
- let T = t ? pe(e, r, i, a, s, o, t) : fe(e, r, i, a);
300
+ let T = t ? fe(e, r, i, a, s, o, t) : de(e, r, i, a);
290
301
  return {
291
302
  count: r,
292
- quadrants: ue(n),
303
+ quadrants: le(n),
293
304
  geometry: s,
294
305
  colour: T,
295
306
  params: o,
296
307
  clusters: c
297
308
  };
298
309
  }
299
- function fe(e, t, n, r) {
310
+ function de(e, t, n, r) {
300
311
  let i = new Uint32Array(t * 3), a = 128 + _.dc * t, o = 128 + _.label * t;
301
312
  for (let s = 0; s < t; s++) {
302
313
  let c = s * 3;
@@ -306,7 +317,7 @@ function fe(e, t, n, r) {
306
317
  }
307
318
  return i;
308
319
  }
309
- function pe(t, n, r, i, a, o, s) {
320
+ function fe(t, n, r, i, a, o, s) {
310
321
  let c = 128 + _.dc * n, l = 128 + _.label * n, u = new Int8Array(t.buffer, t.byteOffset + i, r * 9), d = new Float32Array(n * 3), f = new Float32Array(n * 9), p = [
311
322
  Infinity,
312
323
  Infinity,
@@ -324,7 +335,7 @@ function pe(t, n, r, i, a, o, s) {
324
335
  for (let e = 0; e < r * 9; e++) w[e] = u[e] / 127 * o[C.shScale + e % 9];
325
336
  for (let i = 0; i < n; i++) {
326
337
  let o = a[i * 4];
327
- ae(s, v + (o & 65535) * b, y + (o >>> 16) * x, g);
338
+ ie(s, v + (o & 65535) * b, y + (o >>> 16) * x, g);
328
339
  for (let r = 0; r < 3; r++) {
329
340
  let a = i * 3 + r;
330
341
  d[a] = S[r * 256 + t[c + r * n + i]] + g[r] / e, p[r] = Math.min(p[r], d[a]), m[r] = Math.max(m[r], d[a]);
@@ -362,14 +373,14 @@ function pe(t, n, r, i, a, o, s) {
362
373
  }
363
374
  return O;
364
375
  }
365
- function me(e) {
366
- let t = ce(e);
376
+ function pe(e) {
377
+ let t = se(e);
367
378
  return {
368
379
  count: t.getUint32(0, !0),
369
- quadrants: ue(t)
380
+ quadrants: le(t)
370
381
  };
371
382
  }
372
- function V(e) {
383
+ function me(e) {
373
384
  return [
374
385
  e(0),
375
386
  e(1),
@@ -382,20 +393,20 @@ function he(t, n) {
382
393
  i[0] >>> 16,
383
394
  i[1] & 65535
384
395
  ], l = /* @__PURE__ */ new Float64Array(4);
385
- oe(o(i, 7), o(i, 8), o(i, 9), o(i, 10), l);
396
+ ae(o(i, 7), o(i, 8), o(i, 9), o(i, 10), l);
386
397
  let u = [];
387
398
  for (let e = 0; e < 9; e++) u.push((o(a, e + 3) << 24 >> 24) / 127 * r[C.shScale + e]);
388
399
  return {
389
- position: V((e) => r[C.origin + e] + c[e] * r[C.step + e]),
400
+ position: me((e) => r[C.origin + e] + c[e] * r[C.step + e]),
390
401
  rotation: [
391
402
  l[0],
392
403
  l[1],
393
404
  l[2],
394
405
  l[3]
395
406
  ],
396
- scale: V((e) => Math.exp(s(C.scaleMin, C.scaleMax, e, o(i, 11 + e)))),
407
+ scale: me((e) => Math.exp(s(C.scaleMin, C.scaleMax, e, o(i, 11 + e)))),
397
408
  alpha: o(i, 6) / 255,
398
- colour: V((t) => .5 + e * s(C.dcMin, C.dcMax, t, o(a, t))),
409
+ colour: me((t) => .5 + e * s(C.dcMin, C.dcMax, t, o(a, t))),
399
410
  sh: u
400
411
  };
401
412
  }
@@ -404,34 +415,34 @@ function he(t, n) {
404
415
  function ge(e) {
405
416
  return e instanceof Uint8Array || ArrayBuffer.isView(e) && e.constructor.name === "Uint8Array" && "BYTES_PER_ELEMENT" in e && e.BYTES_PER_ELEMENT === 1;
406
417
  }
407
- var H = (e) => e ? `"${e}" ` : "";
418
+ var _e = (e) => e ? `"${e}" ` : "";
408
419
  function U(e, t = "") {
409
- if (typeof e != "number") throw TypeError(H(t) + "expected number, got " + typeof e);
410
- if (!Number.isSafeInteger(e) || e < 0) throw RangeError(H(t) + "expected integer >= 0, got " + e);
420
+ if (typeof e != "number") throw TypeError(_e(t) + "expected number, got " + typeof e);
421
+ if (!Number.isSafeInteger(e) || e < 0) throw RangeError(_e(t) + "expected integer >= 0, got " + e);
411
422
  return e;
412
423
  }
413
424
  function W(e, t, n = "") {
414
425
  if (ge(e) && (t === void 0 || e.length === t)) return e;
415
426
  t !== void 0 && U(t, "length");
416
- let r = ge(e), i = t === void 0 ? "" : ` of length ${t}`, a = r ? `length=${e.length}` : `type=${typeof e}`, o = H(n) + "expected Uint8Array" + i + ", got " + a;
427
+ let r = ge(e), i = t === void 0 ? "" : ` of length ${t}`, a = r ? `length=${e.length}` : `type=${typeof e}`, o = _e(n) + "expected Uint8Array" + i + ", got " + a;
417
428
  throw r ? RangeError(o) : TypeError(o);
418
429
  }
419
- function _e(e) {
430
+ function ve(e) {
420
431
  return Uint8Array.from(W(e));
421
432
  }
422
- var ve = (e, t) => {
433
+ var ye = (e, t) => {
423
434
  if (typeof e != "object" || !e || Array.isArray(e)) throw TypeError((t === "object" ? "" : `"${t}" `) + "expected object, got type=" + typeof e);
424
- }, ye = (e, t) => {
425
- ve(e, t);
435
+ }, be = (e, t) => {
436
+ ye(e, t);
426
437
  let n = Object.getPrototypeOf(e);
427
438
  if (n !== Object.prototype && n !== null) throw TypeError(`"${t}" expected plain object`);
428
439
  if (Object.hasOwn(e, "__proto__")) throw TypeError(`"${t}.__proto__" is not allowed`);
429
440
  };
430
- function be(e, t = !0) {
441
+ function xe(e, t = !0) {
431
442
  if (e.destroyed) throw Error("hash was destroyed");
432
443
  if (t && e.finished) throw Error("digest() was already called");
433
444
  }
434
- function xe(e, t) {
445
+ function Se(e, t) {
435
446
  W(e, void 0, "output");
436
447
  let n = t.outputLen;
437
448
  if (!(e.length >= n)) throw RangeError("\"output\" expected length >= " + n);
@@ -439,37 +450,37 @@ function xe(e, t) {
439
450
  function G(e) {
440
451
  return new Uint32Array(e.buffer, e.byteOffset, Math.floor(e.byteLength / 4));
441
452
  }
442
- function K(...e) {
453
+ function Ce(...e) {
443
454
  for (let t = 0; t < e.length; t++) e[t].fill(0);
444
455
  }
445
- var Se = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68;
446
- function Ce(e) {
456
+ var we = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68;
457
+ function Te(e) {
447
458
  return e << 24 & 4278190080 | e << 8 & 16711680 | e >>> 8 & 65280 | e >>> 24 & 255;
448
459
  }
449
- var q = Se ? (e) => e : (e) => Ce(e) >>> 0;
450
- function we(e) {
451
- for (let t = 0; t < e.length; t++) e[t] = Ce(e[t]);
460
+ var K = we ? (e) => e : (e) => Te(e) >>> 0;
461
+ function Ee(e) {
462
+ for (let t = 0; t < e.length; t++) e[t] = Te(e[t]);
452
463
  return e;
453
464
  }
454
- var J = Se ? (e) => e : we, Te = typeof Uint8Array.from([]).toHex == "function" && typeof Uint8Array.fromHex == "function", Ee = /* @__PURE__ */ Array.from({ length: 256 }, (e, t) => t.toString(16).padStart(2, "0"));
455
- function De(e) {
456
- if (W(e), Te) return e.toHex();
465
+ var q = we ? (e) => e : Ee, De = typeof Uint8Array.from([]).toHex == "function" && typeof Uint8Array.fromHex == "function", Oe = /* @__PURE__ */ Array.from({ length: 256 }, (e, t) => t.toString(16).padStart(2, "0"));
466
+ function ke(e) {
467
+ if (W(e), De) return e.toHex();
457
468
  let t = "";
458
- for (let n = 0; n < e.length; n++) t += Ee[e[n]];
469
+ for (let n = 0; n < e.length; n++) t += Oe[e[n]];
459
470
  return t;
460
471
  }
461
- function Oe(e, t, n = "opts") {
462
- return ye(e, "defaults"), t !== void 0 && ye(t, n), Object.assign(Object.create(null), e, t);
472
+ function Ae(e, t, n = "opts") {
473
+ return be(e, "defaults"), t !== void 0 && be(t, n), Object.assign(Object.create(null), e, t);
463
474
  }
464
- function ke(e, t = {}) {
475
+ function je(e, t = {}) {
465
476
  if (typeof e != "function") throw TypeError("\"hashCons\" expected function, got type=" + typeof e);
466
- t = Oe({}, t, "info");
477
+ t = Ae({}, t, "info");
467
478
  let n = (t, n) => e(n).update(t).digest(), r = e(void 0);
468
479
  return n.outputLen = r.outputLen, n.blockLen = r.blockLen, n.canXOF = r.canXOF, n.create = (t) => e(t), Object.assign(n, t), Object.freeze(n);
469
480
  }
470
481
  //#endregion
471
482
  //#region node_modules/.pnpm/@noble+hashes@2.4.0/node_modules/@noble/hashes/_blake.js
472
- var Ae = /* @__PURE__ */ Uint8Array.from([
483
+ var Me = /* @__PURE__ */ Uint8Array.from([
473
484
  0,
474
485
  1,
475
486
  2,
@@ -726,15 +737,15 @@ var Ae = /* @__PURE__ */ Uint8Array.from([
726
737
  14,
727
738
  1,
728
739
  9
729
- ]), je = (e) => e / 2 ** 32 | 0, Me = (e) => e >>> 0, Ne = (e, t, n) => e >>> n | t << 32 - n, Pe = (e, t, n) => e << 32 - n | t >>> n, Fe = (e, t, n) => e << 64 - n | t >>> n - 32, Ie = (e, t, n) => e >>> n - 32 | t << 64 - n, Le = (e, t) => t, Re = (e, t) => e;
730
- function Y(e, t, n, r) {
740
+ ]), Ne = (e) => e / 2 ** 32 | 0, Pe = (e) => e >>> 0, Fe = (e, t, n) => e >>> n | t << 32 - n, Ie = (e, t, n) => e << 32 - n | t >>> n, Le = (e, t, n) => e << 64 - n | t >>> n - 32, Re = (e, t, n) => e >>> n - 32 | t << 64 - n, ze = (e, t) => t, Be = (e, t) => e;
741
+ function Ve(e, t, n, r) {
731
742
  let i = (t >>> 0) + (r >>> 0);
732
743
  return {
733
744
  h: e + n + (i / 2 ** 32 | 0) | 0,
734
745
  l: i | 0
735
746
  };
736
747
  }
737
- var ze = (e, t, n) => (e >>> 0) + (t >>> 0) + (n >>> 0), Be = (e, t, n, r) => t + n + r + (e / 2 ** 32 | 0) | 0, X = /* @__PURE__ */ Uint32Array.from([
748
+ var He = (e, t, n) => (e >>> 0) + (t >>> 0) + (n >>> 0), Ue = (e, t, n, r) => t + n + r + (e / 2 ** 32 | 0) | 0, J = /* @__PURE__ */ Uint32Array.from([
738
749
  4089235720,
739
750
  1779033703,
740
751
  2227873595,
@@ -751,26 +762,26 @@ var ze = (e, t, n) => (e >>> 0) + (t >>> 0) + (n >>> 0), Be = (e, t, n, r) => t
751
762
  528734635,
752
763
  327033209,
753
764
  1541459225
754
- ]), Z = /* @__PURE__ */ new Uint32Array(32);
755
- function Q(e, t, n, r, i, a) {
756
- let o = i[a], s = i[a + 1], c = Z[2 * e], l = Z[2 * e + 1], u = Z[2 * t], d = Z[2 * t + 1], f = Z[2 * n], p = Z[2 * n + 1], m = Z[2 * r], h = Z[2 * r + 1], g = ze(c, u, o);
757
- l = Be(g, l, d, s), c = g | 0;
765
+ ]), Y = /* @__PURE__ */ new Uint32Array(32);
766
+ function X(e, t, n, r, i, a) {
767
+ let o = i[a], s = i[a + 1], c = Y[2 * e], l = Y[2 * e + 1], u = Y[2 * t], d = Y[2 * t + 1], f = Y[2 * n], p = Y[2 * n + 1], m = Y[2 * r], h = Y[2 * r + 1], g = He(c, u, o);
768
+ l = Ue(g, l, d, s), c = g | 0;
758
769
  let _ = h ^ l, v = m ^ c;
759
- h = Le(_, v), m = Re(_, v), {h: p, l: f} = Y(p, f, h, m), _ = d ^ p, v = u ^ f, d = Ne(_, v, 24), u = Pe(_, v, 24), Z[2 * e] = c, Z[2 * e + 1] = l, Z[2 * t] = u, Z[2 * t + 1] = d, Z[2 * n] = f, Z[2 * n + 1] = p, Z[2 * r] = m, Z[2 * r + 1] = h;
770
+ h = ze(_, v), m = Be(_, v), {h: p, l: f} = Ve(p, f, h, m), _ = d ^ p, v = u ^ f, d = Fe(_, v, 24), u = Ie(_, v, 24), Y[2 * e] = c, Y[2 * e + 1] = l, Y[2 * t] = u, Y[2 * t + 1] = d, Y[2 * n] = f, Y[2 * n + 1] = p, Y[2 * r] = m, Y[2 * r + 1] = h;
760
771
  }
761
- function $(e, t, n, r, i, a) {
762
- let o = i[a], s = i[a + 1], c = Z[2 * e], l = Z[2 * e + 1], u = Z[2 * t], d = Z[2 * t + 1], f = Z[2 * n], p = Z[2 * n + 1], m = Z[2 * r], h = Z[2 * r + 1], g = ze(c, u, o);
763
- l = Be(g, l, d, s), c = g | 0;
772
+ function Z(e, t, n, r, i, a) {
773
+ let o = i[a], s = i[a + 1], c = Y[2 * e], l = Y[2 * e + 1], u = Y[2 * t], d = Y[2 * t + 1], f = Y[2 * n], p = Y[2 * n + 1], m = Y[2 * r], h = Y[2 * r + 1], g = He(c, u, o);
774
+ l = Ue(g, l, d, s), c = g | 0;
764
775
  let _ = h ^ l, v = m ^ c;
765
- h = Ne(_, v, 16), m = Pe(_, v, 16), {h: p, l: f} = Y(p, f, h, m), _ = d ^ p, v = u ^ f, d = Fe(_, v, 63), u = Ie(_, v, 63), Z[2 * e] = c, Z[2 * e + 1] = l, Z[2 * t] = u, Z[2 * t + 1] = d, Z[2 * n] = f, Z[2 * n + 1] = p, Z[2 * r] = m, Z[2 * r + 1] = h;
776
+ h = Fe(_, v, 16), m = Ie(_, v, 16), {h: p, l: f} = Ve(p, f, h, m), _ = d ^ p, v = u ^ f, d = Le(_, v, 63), u = Re(_, v, 63), Y[2 * e] = c, Y[2 * e + 1] = l, Y[2 * t] = u, Y[2 * t + 1] = d, Y[2 * n] = f, Y[2 * n + 1] = p, Y[2 * r] = m, Y[2 * r + 1] = h;
766
777
  }
767
- function Ve(e, t = {}, n, r, i) {
778
+ function We(e, t = {}, n, r, i) {
768
779
  if (U(n), e <= 0 || e > n) throw Error("\"dkLen\" must be 1.." + n + ", got " + e);
769
780
  let { key: a, salt: o, personalization: s } = t;
770
781
  if (a !== void 0 && (a.length < 1 || a.length > n)) throw Error("\"key\" expected to be undefined or of length=1.." + n);
771
782
  o !== void 0 && W(o, r, "salt"), s !== void 0 && W(s, i, "personalization");
772
783
  }
773
- var He = class {
784
+ var Ge = class {
774
785
  buffer;
775
786
  buffer32;
776
787
  finished = !1;
@@ -784,26 +795,26 @@ var He = class {
784
795
  U(e), U(t), this.blockLen = e, this.outputLen = t, this.buffer = new Uint8Array(e), this.buffer32 = G(this.buffer);
785
796
  }
786
797
  update(e) {
787
- be(this), W(e);
798
+ xe(this), W(e);
788
799
  let { blockLen: t, buffer: n, buffer32: r } = this, i = e.length, a = e.byteOffset, o = e.buffer;
789
800
  for (let s = 0; s < i;) {
790
- this.pos === t && (J(r), this.compress(r, 0, !1), J(r), this.pos = 0);
801
+ this.pos === t && (q(r), this.compress(r, 0, !1), q(r), this.pos = 0);
791
802
  let c = Math.min(t - this.pos, i - s), l = a + s;
792
803
  if (c === t && !(l % 4) && s + c < i) {
793
804
  let e = new Uint32Array(o, l, Math.floor((i - s) / 4));
794
- J(e);
805
+ q(e);
795
806
  for (let n = 0; s + t < i; n += r.length, s += t) this.length += t, this.compress(e, n, !1);
796
- J(e);
807
+ q(e);
797
808
  } else n.set(s === 0 && c === i ? e : e.subarray(s, s + c), this.pos), this.pos += c, this.length += c, s += c;
798
809
  }
799
810
  return this;
800
811
  }
801
812
  digestInto(e) {
802
- if (be(this), xe(e, this), e.byteOffset & 3) throw RangeError("\"output\" expected 4-byte aligned byteOffset, got " + e.byteOffset);
813
+ if (xe(this), Se(e, this), e.byteOffset & 3) throw RangeError("\"output\" expected 4-byte aligned byteOffset, got " + e.byteOffset);
803
814
  let { pos: t, buffer32: n } = this;
804
- this.finished = !0, this.buffer.fill(0, t), J(n), this.compress(n, 0, !0), J(n);
815
+ this.finished = !0, this.buffer.fill(0, t), q(n), this.compress(n, 0, !0), q(n);
805
816
  let r = this.get(), i = e === this.buffer ? n : G(e), a = Math.floor(this.outputLen / 4);
806
- for (let e = 0; e < a; e++) i[e] = q(r[e]);
817
+ for (let e = 0; e < a; e++) i[e] = K(r[e]);
807
818
  let o = this.outputLen % 4;
808
819
  if (!o) return;
809
820
  let s = a * 4, c = r[a];
@@ -822,41 +833,41 @@ var He = class {
822
833
  clone() {
823
834
  return this._cloneInto();
824
835
  }
825
- }, Ue = class extends He {
826
- v0l = X[0] | 0;
827
- v0h = X[1] | 0;
828
- v1l = X[2] | 0;
829
- v1h = X[3] | 0;
830
- v2l = X[4] | 0;
831
- v2h = X[5] | 0;
832
- v3l = X[6] | 0;
833
- v3h = X[7] | 0;
834
- v4l = X[8] | 0;
835
- v4h = X[9] | 0;
836
- v5l = X[10] | 0;
837
- v5h = X[11] | 0;
838
- v6l = X[12] | 0;
839
- v6h = X[13] | 0;
840
- v7l = X[14] | 0;
841
- v7h = X[15] | 0;
836
+ }, Ke = class extends Ge {
837
+ v0l = J[0] | 0;
838
+ v0h = J[1] | 0;
839
+ v1l = J[2] | 0;
840
+ v1h = J[3] | 0;
841
+ v2l = J[4] | 0;
842
+ v2h = J[5] | 0;
843
+ v3l = J[6] | 0;
844
+ v3h = J[7] | 0;
845
+ v4l = J[8] | 0;
846
+ v4h = J[9] | 0;
847
+ v5l = J[10] | 0;
848
+ v5h = J[11] | 0;
849
+ v6l = J[12] | 0;
850
+ v6h = J[13] | 0;
851
+ v7l = J[14] | 0;
852
+ v7h = J[15] | 0;
842
853
  constructor(e = {}) {
843
- e = Oe({}, e);
854
+ e = Ae({}, e);
844
855
  let t = e.dkLen === void 0 ? 64 : e.dkLen;
845
- super(128, t), Ve(t, e, 64, 16, 16);
856
+ super(128, t), We(t, e, 64, 16, 16);
846
857
  let { key: n, personalization: r, salt: i } = e, a = 0;
847
858
  if (n !== void 0 && (W(n, void 0, "key"), a = n.length), this.v0l ^= this.outputLen | a << 8 | 16842752, i !== void 0) {
848
859
  W(i, void 0, "salt");
849
- let e = G(_e(i));
850
- this.v4l ^= q(e[0]), this.v4h ^= q(e[1]), this.v5l ^= q(e[2]), this.v5h ^= q(e[3]);
860
+ let e = G(ve(i));
861
+ this.v4l ^= K(e[0]), this.v4h ^= K(e[1]), this.v5l ^= K(e[2]), this.v5h ^= K(e[3]);
851
862
  }
852
863
  if (r !== void 0) {
853
864
  W(r, void 0, "personalization");
854
- let e = G(_e(r));
855
- this.v6l ^= q(e[0]), this.v6h ^= q(e[1]), this.v7l ^= q(e[2]), this.v7h ^= q(e[3]);
865
+ let e = G(ve(r));
866
+ this.v6l ^= K(e[0]), this.v6h ^= K(e[1]), this.v7l ^= K(e[2]), this.v7h ^= K(e[3]);
856
867
  }
857
868
  if (n !== void 0) {
858
869
  let e = new Uint8Array(this.blockLen);
859
- e.set(n), this.update(e), K(e);
870
+ e.set(n), this.update(e), Ce(e);
860
871
  }
861
872
  }
862
873
  get() {
@@ -885,21 +896,223 @@ var He = class {
885
896
  }
886
897
  compress(e, t, n) {
887
898
  let { v0l: r, v0h: i, v1l: a, v1h: o, v2l: s, v2h: c, v3l: l, v3h: u, v4l: d, v4h: f, v5l: p, v5h: m, v6l: h, v6h: g, v7l: _, v7h: v } = this;
888
- Z[0] = r, Z[1] = i, Z[2] = a, Z[3] = o, Z[4] = s, Z[5] = c, Z[6] = l, Z[7] = u, Z[8] = d, Z[9] = f, Z[10] = p, Z[11] = m, Z[12] = h, Z[13] = g, Z[14] = _, Z[15] = v, Z.set(X, 16);
889
- let y = Me(this.length), b = je(this.length);
890
- Z[24] = X[8] ^ y, Z[25] = X[9] ^ b, n && (Z[28] = ~Z[28], Z[29] = ~Z[29]);
891
- let x = 0, S = Ae;
892
- for (let n = 0; n < 12; n++) Q(0, 4, 8, 12, e, t + 2 * S[x++]), $(0, 4, 8, 12, e, t + 2 * S[x++]), Q(1, 5, 9, 13, e, t + 2 * S[x++]), $(1, 5, 9, 13, e, t + 2 * S[x++]), Q(2, 6, 10, 14, e, t + 2 * S[x++]), $(2, 6, 10, 14, e, t + 2 * S[x++]), Q(3, 7, 11, 15, e, t + 2 * S[x++]), $(3, 7, 11, 15, e, t + 2 * S[x++]), Q(0, 5, 10, 15, e, t + 2 * S[x++]), $(0, 5, 10, 15, e, t + 2 * S[x++]), Q(1, 6, 11, 12, e, t + 2 * S[x++]), $(1, 6, 11, 12, e, t + 2 * S[x++]), Q(2, 7, 8, 13, e, t + 2 * S[x++]), $(2, 7, 8, 13, e, t + 2 * S[x++]), Q(3, 4, 9, 14, e, t + 2 * S[x++]), $(3, 4, 9, 14, e, t + 2 * S[x++]);
893
- this.v0l ^= Z[0] ^ Z[16], this.v0h ^= Z[1] ^ Z[17], this.v1l ^= Z[2] ^ Z[18], this.v1h ^= Z[3] ^ Z[19], this.v2l ^= Z[4] ^ Z[20], this.v2h ^= Z[5] ^ Z[21], this.v3l ^= Z[6] ^ Z[22], this.v3h ^= Z[7] ^ Z[23], this.v4l ^= Z[8] ^ Z[24], this.v4h ^= Z[9] ^ Z[25], this.v5l ^= Z[10] ^ Z[26], this.v5h ^= Z[11] ^ Z[27], this.v6l ^= Z[12] ^ Z[28], this.v6h ^= Z[13] ^ Z[29], this.v7l ^= Z[14] ^ Z[30], this.v7h ^= Z[15] ^ Z[31], K(Z);
899
+ Y[0] = r, Y[1] = i, Y[2] = a, Y[3] = o, Y[4] = s, Y[5] = c, Y[6] = l, Y[7] = u, Y[8] = d, Y[9] = f, Y[10] = p, Y[11] = m, Y[12] = h, Y[13] = g, Y[14] = _, Y[15] = v, Y.set(J, 16);
900
+ let y = Pe(this.length), b = Ne(this.length);
901
+ Y[24] = J[8] ^ y, Y[25] = J[9] ^ b, n && (Y[28] = ~Y[28], Y[29] = ~Y[29]);
902
+ let x = 0, S = Me;
903
+ for (let n = 0; n < 12; n++) X(0, 4, 8, 12, e, t + 2 * S[x++]), Z(0, 4, 8, 12, e, t + 2 * S[x++]), X(1, 5, 9, 13, e, t + 2 * S[x++]), Z(1, 5, 9, 13, e, t + 2 * S[x++]), X(2, 6, 10, 14, e, t + 2 * S[x++]), Z(2, 6, 10, 14, e, t + 2 * S[x++]), X(3, 7, 11, 15, e, t + 2 * S[x++]), Z(3, 7, 11, 15, e, t + 2 * S[x++]), X(0, 5, 10, 15, e, t + 2 * S[x++]), Z(0, 5, 10, 15, e, t + 2 * S[x++]), X(1, 6, 11, 12, e, t + 2 * S[x++]), Z(1, 6, 11, 12, e, t + 2 * S[x++]), X(2, 7, 8, 13, e, t + 2 * S[x++]), Z(2, 7, 8, 13, e, t + 2 * S[x++]), X(3, 4, 9, 14, e, t + 2 * S[x++]), Z(3, 4, 9, 14, e, t + 2 * S[x++]);
904
+ this.v0l ^= Y[0] ^ Y[16], this.v0h ^= Y[1] ^ Y[17], this.v1l ^= Y[2] ^ Y[18], this.v1h ^= Y[3] ^ Y[19], this.v2l ^= Y[4] ^ Y[20], this.v2h ^= Y[5] ^ Y[21], this.v3l ^= Y[6] ^ Y[22], this.v3h ^= Y[7] ^ Y[23], this.v4l ^= Y[8] ^ Y[24], this.v4h ^= Y[9] ^ Y[25], this.v5l ^= Y[10] ^ Y[26], this.v5h ^= Y[11] ^ Y[27], this.v6l ^= Y[12] ^ Y[28], this.v6h ^= Y[13] ^ Y[29], this.v7l ^= Y[14] ^ Y[30], this.v7h ^= Y[15] ^ Y[31], Ce(Y);
894
905
  }
895
906
  destroy() {
896
- this.destroyed = !0, K(this.buffer32), this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
907
+ this.destroyed = !0, Ce(this.buffer32), this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
897
908
  }
898
- }, We = /* @__PURE__ */ ke((e) => new Ue(e));
909
+ }, qe = /* @__PURE__ */ je((e) => new Ke(e));
899
910
  //#endregion
900
911
  //#region src/format/hash.ts
901
- function Ge(e) {
902
- return De(We(e, { dkLen: 8 }));
912
+ function Je(e) {
913
+ return ke(qe(e, { dkLen: 8 }));
914
+ }
915
+ //#endregion
916
+ //#region src/format/encode.ts
917
+ var Ye = 5e-4, Xe = 2048, Ze = 256, Q = (e, t, n) => Math.min(n, Math.max(t, e));
918
+ function Qe(e, t, n) {
919
+ return n > t ? Q(Math.round((e - t) / (n - t) * 255), 0, 255) : 0;
920
+ }
921
+ function $e(e, t) {
922
+ return t > 0 ? Q(Math.round(e / t * 127), -127, 127) : 0;
923
+ }
924
+ function et(e) {
925
+ return e &= 1023, e = (e | e << 16) & 50331903, e = (e | e << 8) & 50393103, e = (e | e << 4) & 51130563, (e | e << 2) & 153391689;
926
+ }
927
+ function tt(e, t, n) {
928
+ return et(e >> 6) | et(t >> 6) << 1 | et(n >> 6) << 2;
929
+ }
930
+ function nt(e, t) {
931
+ let n = /* @__PURE__ */ new Float32Array(9);
932
+ for (let r = 0; r < t; r++) for (let t = 0; t < 9; t++) n[t] = Math.max(n[t], Math.abs(e[r * 9 + t]));
933
+ return n;
934
+ }
935
+ function rt(e, t, n) {
936
+ let r = new Int8Array(t * 9);
937
+ for (let i = 0; i < t; i++) for (let t = 0; t < 9; t++) r[i * 9 + t] = $e(e[i * 9 + t], n[t]);
938
+ let i = (e) => r.subarray(e * 9, (e + 1) * 9), a = /* @__PURE__ */ new Map(), o = [], s = new Uint16Array(t);
939
+ for (let e = 0; e < t; e++) {
940
+ let t = i(e).join(), n = a.get(t);
941
+ n === void 0 && (n = o.length, a.set(t, n), o.push(e)), s[e] = n;
942
+ }
943
+ if (o.length > Xe) {
944
+ let e = o.length / Ze, n = Array.from({ length: Ze }, (t, n) => o[Math.floor(n * e)]);
945
+ o.splice(0, o.length, ...n);
946
+ for (let e = 0; e < t; e++) {
947
+ let t = Infinity;
948
+ for (let n = 0; n < Ze; n++) {
949
+ let i = 0;
950
+ for (let t = 0; t < 9; t++) i += (r[e * 9 + t] - r[o[n] * 9 + t]) ** 2;
951
+ i < t && (t = i, s[e] = n);
952
+ }
953
+ }
954
+ }
955
+ let c = new Int8Array(o.length * 9);
956
+ return o.forEach((e, t) => c.set(i(e), t * 9)), {
957
+ book: c,
958
+ labels: s
959
+ };
960
+ }
961
+ function it(e, t) {
962
+ let { count: r, position: i, rotation: a, scale: o, alpha: s, dc: c, sh: l } = e, u = [
963
+ Infinity,
964
+ Infinity,
965
+ Infinity
966
+ ], d = [
967
+ -Infinity,
968
+ -Infinity,
969
+ -Infinity
970
+ ], f = [...u], p = [...d], m = [...u], h = [...d];
971
+ for (let e = 0; e < r; e++) for (let t = 0; t < 3; t++) u[t] = Math.min(u[t], i[e * 3 + t]), d[t] = Math.max(d[t], i[e * 3 + t]), f[t] = Math.min(f[t], o[e * 3 + t]), p[t] = Math.max(p[t], o[e * 3 + t]), m[t] = Math.min(m[t], c[e * 3 + t]), h[t] = Math.max(h[t], c[e * 3 + t]);
972
+ let g = Ye * 2 ** t.g, v = Float32Array.from(u), y = Float32Array.from(u, (e, t) => Math.max(g, (d[t] - e) / 65535)), b = new Uint16Array(r * 3);
973
+ for (let e = 0; e < r; e++) for (let t = 0; t < 3; t++) {
974
+ let n = (i[e * 3 + t] - v[t]) / y[t];
975
+ b[e * 3 + t] = Q(Math.round(n), 0, 65535);
976
+ }
977
+ let x = n * 2 ** t.g, S = (t.i + .5) * x, C = (t.j + .5) * x, w = new Uint8Array(r), T = new Float64Array(r);
978
+ for (let e = 0; e < r; e++) {
979
+ let t = +(i[e * 3] >= S), n = +(i[e * 3 + 1] >= C);
980
+ w[e] = t + 2 * n, T[e] = w[e] * 2 ** 30 + tt(b[e * 3], b[e * 3 + 1], b[e * 3 + 2]);
981
+ }
982
+ let E = Uint32Array.from({ length: r }, (e, t) => t).sort((e, t) => T[e] - T[t]), D = [
983
+ 0,
984
+ 0,
985
+ 0
986
+ ];
987
+ for (let e = 1; e < 4; e++) D[e - 1] = w.filter((t) => t < e).length;
988
+ let O = l ? nt(l, r) : /* @__PURE__ */ new Float32Array(9), { book: k, labels: A } = l ? rt(l, r, O) : {
989
+ book: null,
990
+ labels: null
991
+ }, j = k ? k.length / 9 : 0, M = 17 + (j > 0 ? 2 : 0), N = new Uint8Array(128 + M * r + j * 9), P = new DataView(N.buffer);
992
+ P.setUint32(0, r, !0), D.forEach((e, t) => P.setUint32(4 + 4 * t, e, !0)), P.setUint16(16, j, !0), [
993
+ ...v,
994
+ ...y,
995
+ ...f,
996
+ ...p,
997
+ ...m,
998
+ ...h,
999
+ ...O
1000
+ ].forEach((e, t) => P.setFloat32(20 + 4 * t, e, !0));
1001
+ let F = (e) => 128 + e * r, I = new Float32Array([...u, ...d]), L = /* @__PURE__ */ new Float64Array(4), R = /* @__PURE__ */ new Float64Array(3), z = [
1002
+ 0,
1003
+ 0,
1004
+ 0
1005
+ ];
1006
+ for (let e = 0; e < r; e++) {
1007
+ let t = E[e];
1008
+ for (let n = 0; n < 3; n++) {
1009
+ let r = b[t * 3 + n] - z[n] << 16 >> 16, i = r < 0 ? -2 * r - 1 : 2 * r;
1010
+ z[n] = b[t * 3 + n], N[F(_.position + 2 * n) + e] = i & 255, N[F(_.position + 2 * n + 1) + e] = i >> 8;
1011
+ }
1012
+ N[F(_.alpha) + e] = Q(Math.round(s[t] * 255), 0, 255);
1013
+ let n = Math.hypot(...a.subarray(t * 4, t * 4 + 4));
1014
+ for (let e = 0; e < 4; e++) L[e] = a[t * 4 + e] / n;
1015
+ let r = 0;
1016
+ for (let e = 1; e < 4; e++) Math.abs(L[e]) > Math.abs(L[r]) && (r = e);
1017
+ let l = L[r] < 0 ? -1 : 1;
1018
+ N[F(_.rotationIndex) + e] = r;
1019
+ for (let t = 0, n = 0; t < 4; t++) {
1020
+ if (t === r) continue;
1021
+ let i = Math.round((l * L[t] / Math.SQRT2 + .5) * 255);
1022
+ N[F(_.rotation + n++) + e] = Q(i, 0, 255);
1023
+ }
1024
+ for (let n = 0; n < 3; n++) N[F(_.scale + n) + e] = Qe(o[t * 3 + n], f[n], p[n]), N[F(_.dc + n) + e] = Qe(c[t * 3 + n], m[n], h[n]);
1025
+ A && (N[F(_.label) + e] = A[t] & 255, N[F(_.label + 1) + e] = A[t] >> 8);
1026
+ let [u, d, g] = [
1027
+ 0,
1028
+ 1,
1029
+ 2
1030
+ ].map((e) => Math.exp(o[t * 3 + e]));
1031
+ oe(L, u, d, g, R);
1032
+ for (let e = 0; e < 3; e++) I[e] = Math.min(I[e], i[t * 3 + e] - R[e]), I[3 + e] = Math.max(I[3 + e], i[t * 3 + e] + R[e]);
1033
+ }
1034
+ return k && N.set(new Uint8Array(k.buffer), F(M)), {
1035
+ payload: N,
1036
+ row: {
1037
+ g: t.g,
1038
+ i: t.i,
1039
+ j: t.j,
1040
+ count: r,
1041
+ quadrants: D,
1042
+ box: I,
1043
+ offset: 0,
1044
+ length: 0
1045
+ }
1046
+ };
1047
+ }
1048
+ function at(e, t, n) {
1049
+ e.setUint8(t, n.g), e.setUint8(t + 1, n.i), e.setUint8(t + 2, n.j), e.setUint32(t + 4, n.count, !0), n.quadrants.forEach((n, r) => e.setUint32(t + 8 + 4 * r, n, !0)), n.box.forEach((n, r) => e.setFloat32(t + 20 + 4 * r, n, !0)), e.setUint32(t + 44, n.offset, !0), e.setUint32(t + 48, n.length, !0);
1050
+ }
1051
+ function ot(e) {
1052
+ let t = e.reduce((e, t) => e + t.blob.length, 0), n = new Uint8Array(t + e.length * 52 + 16), r = new DataView(n.buffer), a = 0;
1053
+ for (let { row: t, blob: r } of e) t.offset = a, t.length = r.length, n.set(r, a), a += r.length;
1054
+ for (let { row: t } of e) at(r, a, t), a += 52;
1055
+ return r.setUint32(a, t, !0), r.setUint32(a + 4, e.length, !0), ct(n, a + 8, i), r.setUint16(a + 12, 1, !0), n;
1056
+ }
1057
+ async function st(e) {
1058
+ let { count: t, position: r } = e;
1059
+ if (t === 0) throw Error("a layer needs at least one splat");
1060
+ let i = [Infinity, Infinity], a = [-Infinity, -Infinity];
1061
+ for (let e = 0; e < t; e++) for (let t = 0; t < 2; t++) i[t] = Math.min(i[t], r[e * 3 + t]), a[t] = Math.max(a[t], r[e * 3 + t]);
1062
+ let o = [Math.floor(i[0]), Math.floor(i[1])], s = Float64Array.from(r);
1063
+ for (let e = 0; e < t; e++) s[e * 3] -= o[0], s[e * 3 + 1] -= o[1];
1064
+ let c = Math.max(a[0] - o[0], a[1] - o[1]), l = 0;
1065
+ for (; n * 2 ** l <= c;) l++;
1066
+ let { payload: u, row: d } = it({
1067
+ ...e,
1068
+ position: s
1069
+ }, {
1070
+ g: l,
1071
+ i: 0,
1072
+ j: 0
1073
+ });
1074
+ return {
1075
+ pack: ot([{
1076
+ row: d,
1077
+ blob: await D(u)
1078
+ }]),
1079
+ origin: o
1080
+ };
1081
+ }
1082
+ function ct(e, t, n) {
1083
+ for (let r = 0; r < 4; r++) e[t + r] = n.charCodeAt(r);
1084
+ }
1085
+ function $(e) {
1086
+ return Uint8Array.from({ length: 8 }, (t, n) => parseInt(e.slice(2 * n, 2 * n + 2), 16));
1087
+ }
1088
+ async function lt(e, t) {
1089
+ let n = await D(e), r = new Uint8Array(8 + n.length);
1090
+ return ct(r, 0, t), new DataView(r.buffer).setUint16(4, 1, !0), r.set(n, 8), r;
1091
+ }
1092
+ async function ut(e) {
1093
+ let { rows: t, children: n, descendants: r } = e, i = new Uint8Array(40 + t.length * 52 + n.length * 9 + r.length * 11), o = new DataView(i.buffer);
1094
+ o.setUint8(0, e.level), o.setInt32(4, e.e, !0), o.setInt32(8, e.n, !0), i.set($(e.pack), 12), o.setUint32(20, e.packSize, !0), e.col && i.set($(e.col), 24), o.setUint16(32, t.length, !0), o.setUint8(34, n.length), o.setUint16(36, r.length, !0);
1095
+ let s = 40;
1096
+ for (let e of t) at(o, s, e), s += 52;
1097
+ for (let e of n) o.setUint8(s, e.quadrant), i.set($(e.idx), s + 1), s += 9;
1098
+ for (let e of r) o.setUint8(s, e.depth), o.setUint8(s + 1, e.column), o.setUint8(s + 2, e.row), i.set($(e.idx), s + 3), s += 11;
1099
+ return lt(i, a);
1100
+ }
1101
+ function dt(e) {
1102
+ let t = 3421674724, n = 2216829733;
1103
+ for (let r = 0; r < e.length; r++) {
1104
+ n = (n ^ e[r]) >>> 0;
1105
+ let i = n * 435;
1106
+ t = t * 435 + (n << 8 >>> 0) + Math.floor(i / 4294967296) >>> 0, n = i >>> 0;
1107
+ }
1108
+ return t.toString(16).padStart(8, "0") + n.toString(16).padStart(8, "0");
1109
+ }
1110
+ function ft(e) {
1111
+ return () => {
1112
+ e = e + 1831565813 | 0;
1113
+ let t = Math.imul(e ^ e >>> 15, 1 | e);
1114
+ return t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t, ((t ^ t >>> 14) >>> 0) / 2 ** 32;
1115
+ };
903
1116
  }
904
1117
  //#endregion
905
- export { r as A, y as B, h as C, x as D, p as E, n as F, C as I, _ as L, l as M, g as N, u as O, w as P, c as R, S, o as T, s as V, v as _, he as a, f as b, ne as c, j as d, P as f, E as g, D as h, me as i, i as j, a as k, re as l, M as m, de as n, ie as o, A as p, se as r, ae as s, Ge as t, F as u, e as v, m as w, b as x, t as y, d as z };
1118
+ export { p as A, C as B, t as C, h as D, S as E, i as F, s as G, c as H, l as I, g as L, u as M, a as N, m as O, r as P, w as R, e as S, b as T, d as U, _ as V, y as W, F as _, ft as a, E as b, pe as c, ie as d, te as f, M as g, j as h, it as i, x as j, o as k, he as l, I as m, ut as n, Je as o, ne as p, st as r, ue as s, dt as t, re as u, A as v, f as w, v as x, N as y, n as z };