universal-physics-tensor 0.4.5 → 0.5.0

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.
Files changed (78) hide show
  1. package/dist/dimensional/bridge-check.d.ts +6 -0
  2. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  3. package/dist/dimensional/bridge-check.js +6 -0
  4. package/dist/dimensional/bridge-check.js.map +1 -1
  5. package/dist/dimensional/connection-validators.d.ts +61 -3
  6. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  7. package/dist/dimensional/connection-validators.js +82 -9
  8. package/dist/dimensional/connection-validators.js.map +1 -1
  9. package/dist/dimensional/curvature.d.ts +336 -0
  10. package/dist/dimensional/curvature.d.ts.map +1 -0
  11. package/dist/dimensional/curvature.js +291 -0
  12. package/dist/dimensional/curvature.js.map +1 -0
  13. package/dist/dimensional/metric-validators.d.ts +12 -0
  14. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  15. package/dist/dimensional/metric-validators.js.map +1 -1
  16. package/dist/dimensional/tensor.d.ts.map +1 -1
  17. package/dist/dimensional/tensor.js +7 -2
  18. package/dist/dimensional/tensor.js.map +1 -1
  19. package/dist/dimensional/validator.d.ts +5 -3
  20. package/dist/dimensional/validator.d.ts.map +1 -1
  21. package/dist/dimensional/validator.js +59 -2
  22. package/dist/dimensional/validator.js.map +1 -1
  23. package/dist/index.d.ts +8 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +21 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/numerical/be37-covariant-eikonal.d.ts +96 -38
  28. package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
  29. package/dist/numerical/be37-covariant-eikonal.js +202 -39
  30. package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
  31. package/dist/numerical/connection-lowering-helpers.d.ts +8 -6
  32. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  33. package/dist/numerical/connection-lowering-helpers.js +25 -28
  34. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  35. package/dist/numerical/curvature-lowering-helpers.d.ts +162 -0
  36. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -0
  37. package/dist/numerical/curvature-lowering-helpers.js +378 -0
  38. package/dist/numerical/curvature-lowering-helpers.js.map +1 -0
  39. package/dist/numerical/errors.d.ts +16 -0
  40. package/dist/numerical/errors.d.ts.map +1 -1
  41. package/dist/numerical/errors.js +20 -0
  42. package/dist/numerical/errors.js.map +1 -1
  43. package/dist/numerical/float64-engine.d.ts +4 -2
  44. package/dist/numerical/float64-engine.d.ts.map +1 -1
  45. package/dist/numerical/float64-engine.js +35 -45
  46. package/dist/numerical/float64-engine.js.map +1 -1
  47. package/dist/numerical/gl4-integrator.d.ts +167 -0
  48. package/dist/numerical/gl4-integrator.d.ts.map +1 -0
  49. package/dist/numerical/gl4-integrator.js +276 -0
  50. package/dist/numerical/gl4-integrator.js.map +1 -0
  51. package/dist/numerical/index.d.ts +8 -0
  52. package/dist/numerical/index.d.ts.map +1 -1
  53. package/dist/numerical/index.js +4 -0
  54. package/dist/numerical/index.js.map +1 -1
  55. package/dist/numerical/lowering.d.ts +3 -4
  56. package/dist/numerical/lowering.d.ts.map +1 -1
  57. package/dist/numerical/lowering.js +216 -22
  58. package/dist/numerical/lowering.js.map +1 -1
  59. package/dist/numerical/mathts-engine.d.ts +2 -2
  60. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  61. package/dist/numerical/mathts-engine.js +13 -12
  62. package/dist/numerical/mathts-engine.js.map +1 -1
  63. package/dist/numerical/pderiv.d.ts.map +1 -1
  64. package/dist/numerical/pderiv.js +4 -18
  65. package/dist/numerical/pderiv.js.map +1 -1
  66. package/dist/numerical/perihelion-finder.d.ts +84 -0
  67. package/dist/numerical/perihelion-finder.d.ts.map +1 -0
  68. package/dist/numerical/perihelion-finder.js +261 -0
  69. package/dist/numerical/perihelion-finder.js.map +1 -0
  70. package/dist/numerical/strides.d.ts +26 -0
  71. package/dist/numerical/strides.d.ts.map +1 -0
  72. package/dist/numerical/strides.js +41 -0
  73. package/dist/numerical/strides.js.map +1 -0
  74. package/dist/numerical/tensor-engine.d.ts +4 -2
  75. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  76. package/dist/numerical/tensor-engine.js +4 -2
  77. package/dist/numerical/tensor-engine.js.map +1 -1
  78. package/package.json +1 -1
@@ -8,6 +8,7 @@
8
8
  * @module numerical/float64-engine
9
9
  */
10
10
  import { NumericalBackendError } from './errors.js';
11
+ import { rowMajorStrides, flatIndex, sameShape } from './strides.js';
11
12
  // ---------------------------------------------------------------------------
12
13
  // Private: forward-mode AD via dual numbers
13
14
  // ---------------------------------------------------------------------------
@@ -239,15 +240,6 @@ class Float64Tensor {
239
240
  this.shape = shape;
240
241
  this.data = data;
241
242
  }
242
- static rowMajorStrides(shape) {
243
- const strides = new Array(shape.length);
244
- let acc = 1;
245
- for (let k = shape.length - 1; k >= 0; k--) {
246
- strides[k] = acc;
247
- acc *= shape[k];
248
- }
249
- return strides;
250
- }
251
243
  static sizeOf(shape) {
252
244
  return shape.reduce((a, b) => a * b, 1);
253
245
  }
@@ -279,7 +271,7 @@ function flatten(data, shape) {
279
271
  function rebuild(t) {
280
272
  if (t.shape.length === 0)
281
273
  return t.data[0];
282
- const strides = Float64Tensor.rowMajorStrides(t.shape);
274
+ const strides = rowMajorStrides(t.shape);
283
275
  const build = (depth, offset) => {
284
276
  if (depth === t.shape.length - 1) {
285
277
  const row = [];
@@ -301,9 +293,6 @@ function asF64(t, op) {
301
293
  }
302
294
  return t;
303
295
  }
304
- function sameShape(a, b) {
305
- return a.length === b.length && a.every((v, i) => v === b[i]);
306
- }
307
296
  function elementwise(a, b, op, f) {
308
297
  if (!sameShape(a.shape, b.shape)) {
309
298
  throw new NumericalBackendError(`Float64ReferenceEngine.${op}: shape mismatch [${a.shape}] vs [${b.shape}]`);
@@ -331,15 +320,11 @@ function forEachIndex(shape, visit) {
331
320
  }
332
321
  }
333
322
  }
334
- function flatIndex(idx, strides) {
335
- let f = 0;
336
- for (let k = 0; k < idx.length; k++)
337
- f += idx[k] * strides[k];
338
- return f;
339
- }
340
323
  /**
341
- * The pure-TypeScript, zero-dependency `TensorEngine` — v0.3.5's default
342
- * engine and the correctness baseline for the conformance suite.
324
+ * The pure-TypeScript, zero-dependency `TensorEngine` — the correctness
325
+ * baseline and conformance reference. Fallback engine in v0.4.0+: active
326
+ * when @danielsimonjr/mathts-tensor is not installed (see engine-registry.ts).
327
+ * Was the default in v0.3.5 before MathTSEngine was introduced.
343
328
  * @public
344
329
  */
345
330
  export class Float64ReferenceEngine {
@@ -351,45 +336,46 @@ export class Float64ReferenceEngine {
351
336
  return rebuild(asF64(t, 'toNested'));
352
337
  }
353
338
  add(a, b) {
354
- // AD dispatch: dual path (forward-mode)
355
- if ('tangent' in a && 'tangent' in b) {
339
+ // AD dispatch: dual path (forward-mode) — instanceof is safe; both classes
340
+ // are private module-level and cannot be confused with unrelated types (TS-3).
341
+ if (a instanceof EngineDualTensor && b instanceof EngineDualTensor) {
356
342
  return a.add(b);
357
343
  }
358
344
  // AD dispatch: tape path (reverse-mode)
359
- if ('tape' in a && 'tape' in b) {
345
+ if (a instanceof EngineTapedTensor && b instanceof EngineTapedTensor) {
360
346
  return a.add(b);
361
347
  }
362
348
  return elementwise(asF64(a, 'add'), asF64(b, 'add'), 'add', (x, y) => x + y);
363
349
  }
364
350
  sub(a, b) {
365
351
  // AD dispatch: dual path (forward-mode)
366
- if ('tangent' in a && 'tangent' in b) {
352
+ if (a instanceof EngineDualTensor && b instanceof EngineDualTensor) {
367
353
  return a.sub(b);
368
354
  }
369
355
  // AD dispatch: tape path (reverse-mode)
370
- if ('tape' in a && 'tape' in b) {
356
+ if (a instanceof EngineTapedTensor && b instanceof EngineTapedTensor) {
371
357
  return a.sub(b);
372
358
  }
373
359
  return elementwise(asF64(a, 'sub'), asF64(b, 'sub'), 'sub', (x, y) => x - y);
374
360
  }
375
361
  mul(a, b) {
376
362
  // AD dispatch: dual path (forward-mode)
377
- if ('tangent' in a && 'tangent' in b) {
363
+ if (a instanceof EngineDualTensor && b instanceof EngineDualTensor) {
378
364
  return a.mul(b);
379
365
  }
380
366
  // AD dispatch: tape path (reverse-mode)
381
- if ('tape' in a && 'tape' in b) {
367
+ if (a instanceof EngineTapedTensor && b instanceof EngineTapedTensor) {
382
368
  return a.mul(b);
383
369
  }
384
370
  return elementwise(asF64(a, 'mul'), asF64(b, 'mul'), 'mul', (x, y) => x * y);
385
371
  }
386
372
  scale(t, k) {
387
373
  // AD dispatch: dual path (forward-mode)
388
- if ('tangent' in t) {
374
+ if (t instanceof EngineDualTensor) {
389
375
  return t.scale(k);
390
376
  }
391
377
  // AD dispatch: tape path (reverse-mode)
392
- if ('tape' in t) {
378
+ if (t instanceof EngineTapedTensor) {
393
379
  return t.scale(k);
394
380
  }
395
381
  const f = asF64(t, 'scale');
@@ -430,9 +416,9 @@ export class Float64ReferenceEngine {
430
416
  throw new NumericalBackendError(`transpose: perm length ${p.length} != rank ${rank}`);
431
417
  }
432
418
  const outShape = p.map((axis) => f.shape[axis]);
433
- const inStrides = Float64Tensor.rowMajorStrides(f.shape);
419
+ const inStrides = rowMajorStrides(f.shape);
434
420
  const out = new Float64Array(f.data.length);
435
- const outStrides = Float64Tensor.rowMajorStrides(outShape);
421
+ const outStrides = rowMajorStrides(outShape);
436
422
  forEachIndex(outShape, (outIdx) => {
437
423
  // outIdx[k] is the value of original axis p[k]; map back to input index.
438
424
  const inIdx = new Array(rank);
@@ -466,7 +452,7 @@ export class Float64ReferenceEngine {
466
452
  }
467
453
  einsum(spec, ...operands) {
468
454
  const ops = operands.map((o, i) => asF64(o, `einsum (operand ${i})`));
469
- const inStrides = ops.map((o) => Float64Tensor.rowMajorStrides(o.shape));
455
+ const inStrides = ops.map((o) => rowMajorStrides(o.shape));
470
456
  // Each free axis -> one output index variable; each contraction -> one
471
457
  // summed index variable. Determine the size of every variable and the
472
458
  // (operand, axis) sites that read it.
@@ -486,7 +472,7 @@ export class Float64ReferenceEngine {
486
472
  return sa;
487
473
  });
488
474
  const outShape = freeSizes;
489
- const outStrides = Float64Tensor.rowMajorStrides(outShape);
475
+ const outStrides = rowMajorStrides(outShape);
490
476
  const out = new Float64Array(Float64Tensor.sizeOf(outShape));
491
477
  // Guard (finding #2): every axis of a rank-≥1 operand MUST appear in the
492
478
  // spec as either a free axis or a contracted axis. An unreferenced axis
@@ -512,20 +498,24 @@ export class Float64ReferenceEngine {
512
498
  + `by the spec — every rank-≥1 operand axis must be a free or contracted axis`);
513
499
  }
514
500
  }
501
+ const freeAxesByOp = ops.map(() => []);
502
+ const contractAxesByOp = ops.map(() => []);
503
+ spec.free.forEach((fa, v) => {
504
+ freeAxesByOp[fa.operand].push({ varIdx: v, axis: fa.axis });
505
+ });
506
+ spec.contractions.forEach((c, v) => {
507
+ const [[oa, axa], [ob, axb]] = c.pair;
508
+ contractAxesByOp[oa].push({ varIdx: v, axis: axa });
509
+ contractAxesByOp[ob].push({ varIdx: v, axis: axb });
510
+ });
515
511
  // For a given assignment of (free vars, contract vars), compute the flat
516
- // index into each operand by summing the contributions of every axis that
517
- // reads a variable.
512
+ // index into each operand using the precomputed per-operand axis maps.
518
513
  const operandFlatIndex = (opIndex, freeVals, contractVals) => {
519
514
  const idx = new Array(ops[opIndex].shape.length).fill(0);
520
- spec.free.forEach((fa, v) => { if (fa.operand === opIndex)
521
- idx[fa.axis] = freeVals[v]; });
522
- spec.contractions.forEach((c, v) => {
523
- const [[oa, axa], [ob, axb]] = c.pair;
524
- if (oa === opIndex)
525
- idx[axa] = contractVals[v];
526
- if (ob === opIndex)
527
- idx[axb] = contractVals[v];
528
- });
515
+ for (const { varIdx, axis } of freeAxesByOp[opIndex])
516
+ idx[axis] = freeVals[varIdx];
517
+ for (const { varIdx, axis } of contractAxesByOp[opIndex])
518
+ idx[axis] = contractVals[varIdx];
529
519
  return flatIndex(idx, inStrides[opIndex]);
530
520
  };
531
521
  forEachIndex(outShape, (freeVals) => {
@@ -1 +1 @@
1
- {"version":3,"file":"float64-engine.js","sourceRoot":"","sources":["../../src/numerical/float64-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"float64-engine.js","sourceRoot":"","sources":["../../src/numerical/float64-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Gauss-Legendre 4th-order quadrature nodes c₁, c₂ — the two roots of the
3
+ * shifted Legendre polynomial P₂(x) on [0,1].
4
+ *
5
+ * c₁ = ½ − √3/6, c₂ = ½ + √3/6.
6
+ *
7
+ * @public
8
+ */
9
+ export declare const GL4_C: readonly [number, number];
10
+ /**
11
+ * GL4 Butcher matrix a_{ij} — the 2×2 collocation table for the implicit
12
+ * stages:
13
+ *
14
+ * [ 1/4 1/4 − √3/6 ]
15
+ * [ 1/4 + √3/6 1/4 ]
16
+ *
17
+ * (Hairer/Lubich/Wanner §II.1, Table 1.1.)
18
+ *
19
+ * @public
20
+ */
21
+ export declare const GL4_A: readonly [readonly [number, number], readonly [number, number]];
22
+ /**
23
+ * GL4 stage weights — the 2-point Gauss-Legendre quadrature weights on
24
+ * [0,1]: b₁ = b₂ = ½.
25
+ *
26
+ * @public
27
+ */
28
+ export declare const GL4_B: readonly [number, number];
29
+ /**
30
+ * Canonical (x, p) phase-space state for the geodesic flow on T*M.
31
+ *
32
+ * x^μ — coordinate 4-vector
33
+ * p_μ — covariant momentum, p_μ = g_μν dx^ν/dτ
34
+ *
35
+ * Decision #3 (v0.5.0): the canonical state is (x, p), not (x, v). The
36
+ * symplectic 2-form ω = dp_μ ∧ dx^μ is preserved by the GL4 flow only on
37
+ * this representation.
38
+ *
39
+ * @public
40
+ */
41
+ export interface GL4State {
42
+ /** Coordinate 4-vector x^μ. */
43
+ readonly x: readonly number[];
44
+ /** Covariant momentum p_μ = g_μν v^ν. */
45
+ readonly p: readonly number[];
46
+ }
47
+ /**
48
+ * Per-step snapshot recorded by the integrator. `v` (the contravariant
49
+ * 4-velocity v^μ = g^{μν} p_ν) is optional — emitted when the caller asks
50
+ * for it, since it requires an extra metric-inverse contraction.
51
+ *
52
+ * @public
53
+ */
54
+ export interface GL4Snapshot {
55
+ readonly tau: number;
56
+ readonly x: readonly number[];
57
+ readonly p: readonly number[];
58
+ readonly v?: readonly number[];
59
+ }
60
+ /**
61
+ * Options for `integrateGeodesicGL4` (lands in Task 3).
62
+ *
63
+ * @public
64
+ */
65
+ export interface GL4Options {
66
+ /** Number of integration steps (uniform-step baseline; may be subdivided
67
+ * by adaptive step-halving). */
68
+ readonly steps: number;
69
+ /** Final proper time τ_max (initial τ = 0). */
70
+ readonly tauMax: number;
71
+ /** Inverse-metric closure: `gInverseFn(x)[μ][ν] = g^{μν}(x)`. */
72
+ readonly gInverseFn: (x: readonly number[]) => readonly (readonly number[])[];
73
+ /**
74
+ * Partial derivatives of the inverse metric.
75
+ * Index order: `dgInverseFn(x)[lambda][mu][nu] = ∂_lambda g^{mu nu}` at coords x.
76
+ * (I2: axis semantics pinned here to prevent silent transposition bugs.)
77
+ */
78
+ readonly dgInverseFn: (x: readonly number[]) => readonly (readonly (readonly number[])[])[];
79
+ /** Picard fixed-point tolerance (default chosen in Task 2). */
80
+ readonly picardTol?: number;
81
+ /** Picard fixed-point iteration cap (default chosen in Task 2). */
82
+ readonly picardMaxIter?: number;
83
+ /** Adaptive step-halving floor (I4). If step-halving reaches h_min, throws with diagnostic. */
84
+ readonly hMin?: number;
85
+ /** Minimum radial coordinate (or domain analog) — abort integration if
86
+ * the trajectory crosses inside this radius (e.g., the Schwarzschild
87
+ * event horizon at r = r_s). */
88
+ readonly domainMinRadius?: number;
89
+ }
90
+ /**
91
+ * Result of `solveGL4Stage` — the two converged stage values plus the
92
+ * iteration count actually consumed. Consumed by the upcoming
93
+ * `integrateGeodesicGL4` step driver (Task 3).
94
+ *
95
+ * @internal
96
+ */
97
+ export interface StageSolveResult {
98
+ readonly stageX: readonly [readonly number[], readonly number[]];
99
+ readonly stageP: readonly [readonly number[], readonly number[]];
100
+ readonly iterations: number;
101
+ }
102
+ /**
103
+ * Picard fixed-point solver for the GL4 implicit stage system.
104
+ *
105
+ * Per Design §3 Task 1a, the implicit system is:
106
+ * X_i = x_n + h · Σ_j a_{ij} · g^{·ν}(X_j) P_{j,ν}
107
+ * P_{i,μ} = p_n − h · Σ_j a_{ij} · ½ (∂_μ g^νρ)(X_j) P_{j,ν} P_{j,ρ}
108
+ *
109
+ * Data flow (F15 / M1): stage values (X_j, P_j) at iterate k feed forward
110
+ * to update (X_i, P_i) at iterate k+1. This is Picard iteration (NOT
111
+ * Newton) — no Jacobian assembly or LU decomposition. Convergence is
112
+ * linear with contraction rate ≈ h·|∂f/∂x|. For Mercury (h ≈ 150 s),
113
+ * expect 30–40 iterations at tol=1e-12. GL4's symplecticity is guaranteed
114
+ * by the Butcher tableau, not by the inner solver's convergence speed
115
+ * (Sanz-Serna 1988; Hairer/Lubich/Wanner §II.1).
116
+ *
117
+ * The `dgInverseFn` index order is `dg[λ][μ][ν] = ∂_λ g^{μν}` (Task 0 I2
118
+ * pin, also recorded on `GL4Options.dgInverseFn`). When we evaluate
119
+ * `dp_μ = −½ (∂_μ g^{νρ}) P_ν P_ρ` we therefore read
120
+ * `dgInvAtXj[mu][nu][rho]` — `mu` is the differentiation axis (λ in the
121
+ * pinned order) and `(nu, rho)` are the upper metric indices.
122
+ *
123
+ * Throws `GL4ConvergenceError` with message matching
124
+ * `/Picard iteration did not converge/` if `picardMaxIter` is exhausted.
125
+ *
126
+ * @internal
127
+ */
128
+ export declare function solveGL4Stage(state: GL4State, h: number, gInverseFn: (x: readonly number[]) => readonly (readonly number[])[], dgInverseFn: (x: readonly number[]) => readonly (readonly (readonly number[])[])[], opts: {
129
+ picardTol: number;
130
+ picardMaxIter: number;
131
+ }): StageSolveResult;
132
+ /**
133
+ * GL4 symplectic integrator on the canonical (x, p) geodesic Hamiltonian.
134
+ *
135
+ * H(x, p) = ½ g^{μν}(x) p_μ p_ν
136
+ *
137
+ * Drives the implicit Picard stage solver (`solveGL4Stage`) for each step,
138
+ * with **adaptive step-halving on Picard non-convergence** (Adam+Eve I4,
139
+ * replaces the single-retry R8): if Picard fails at step size h, retry at
140
+ * h/2, h/4, … down to `hMin` (default `h · 1e-9`); throw
141
+ * `GL4ConvergenceError` with a diagnostic message only when h_min is also
142
+ * exhausted.
143
+ *
144
+ * Symplecticity (preservation of ω = dp_μ ∧ dx^μ) is a property of the
145
+ * Butcher tableau, not of the inner Picard solver — see Sanz-Serna 1988,
146
+ * Hairer/Lubich/Wanner §II.1. Hamiltonian drift over long integrations is
147
+ * bounded; for non-resonant systems it remains O(h^p) over exponentially
148
+ * long times (`p = 4` for GL4).
149
+ *
150
+ * **Domain guard.** If `domainMinRadius` is provided and `initialState.x[1]`
151
+ * (radial coordinate) is below the bound, throws `NumericalBackendError`
152
+ * synchronously with a `/domain/i`-matching message. The mid-trajectory
153
+ * domain crossing is not checked here — callers needing that supply a
154
+ * `gInverseFn` that throws on out-of-domain input.
155
+ *
156
+ * @param initialState — canonical (x, p) at τ = 0.
157
+ * @param options — see {@link GL4Options} for picardTol, picardMaxIter,
158
+ * hMin (step-halving floor), domainMinRadius.
159
+ * @returns `steps + 1` snapshots: index `0` is the initial state, index `n`
160
+ * is the state after `n` steps (τ = n · h).
161
+ * @throws NumericalBackendError if `initialState.x[1] < domainMinRadius`.
162
+ * @throws GL4ConvergenceError if Picard fails even after step-halving to h_min.
163
+ *
164
+ * @public
165
+ */
166
+ export declare function integrateGeodesicGL4(initialState: GL4State, options: GL4Options): readonly GL4Snapshot[];
167
+ //# sourceMappingURL=gl4-integrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gl4-integrator.d.ts","sourceRoot":"","sources":["../../src/numerical/gl4-integrator.ts"],"names":[],"mappings":"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"}