@scriptc/compiler 0.0.10 → 0.0.12

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 (111) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +63 -15
  2. package/ambient/scriptc.d.ts +2 -2
  3. package/dist/backend/cc.d.ts +2 -2
  4. package/dist/backend/emission/emit-async.js +1 -1
  5. package/dist/backend/emission/emit-exprs.js +131 -54
  6. package/dist/backend/emission/emit-exprs.js.map +1 -1
  7. package/dist/backend/emission/emit-island.js +1 -1
  8. package/dist/backend/emission/emit-shapes.js +1 -1
  9. package/dist/backend/emission/emit-walkers.d.ts +14 -14
  10. package/dist/backend/emission/emit-walkers.js +44 -44
  11. package/dist/backend/emission/emit-walkers.js.map +1 -1
  12. package/dist/backend/emission/emitter.d.ts +3 -3
  13. package/dist/backend/emission/emitter.js +33 -9
  14. package/dist/backend/emission/emitter.js.map +1 -1
  15. package/dist/backend/emission/may-throw.js +1 -1
  16. package/dist/backend/llvm/dyn.d.ts +10 -10
  17. package/dist/backend/llvm/dyn.js +26 -26
  18. package/dist/backend/llvm/dyn.js.map +1 -1
  19. package/dist/backend/llvm/emitter.js +156 -47
  20. package/dist/backend/llvm/emitter.js.map +1 -1
  21. package/dist/backend/llvm/shapes.js +1 -1
  22. package/dist/backend/llvm/walkers.js +2 -2
  23. package/dist/backend/llvm/walkers.js.map +1 -1
  24. package/dist/coverage/surface-manifest.js +16 -2
  25. package/dist/coverage/surface-manifest.js.map +1 -1
  26. package/dist/diagnostics/diagnostic.d.ts +21 -8
  27. package/dist/diagnostics/diagnostic.js +48 -14
  28. package/dist/diagnostics/diagnostic.js.map +1 -1
  29. package/dist/frontend/lowering/lib-boundary.js +5 -5
  30. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  31. package/dist/frontend/lowering/lower-assert.js +12 -12
  32. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  33. package/dist/frontend/lowering/lower-builtins.d.ts +63 -7
  34. package/dist/frontend/lowering/lower-builtins.js +327 -35
  35. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  36. package/dist/frontend/lowering/lower-calls.d.ts +4 -4
  37. package/dist/frontend/lowering/lower-calls.js +104 -70
  38. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  39. package/dist/frontend/lowering/lower-classes.d.ts +7 -0
  40. package/dist/frontend/lowering/lower-classes.js +82 -6
  41. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  42. package/dist/frontend/lowering/lower-containers.d.ts +9 -5
  43. package/dist/frontend/lowering/lower-containers.js +88 -26
  44. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  45. package/dist/frontend/lowering/lower-emitter.d.ts +70 -3
  46. package/dist/frontend/lowering/lower-emitter.js +438 -31
  47. package/dist/frontend/lowering/lower-emitter.js.map +1 -1
  48. package/dist/frontend/lowering/lower-exprs.d.ts +87 -12
  49. package/dist/frontend/lowering/lower-exprs.js +630 -125
  50. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  51. package/dist/frontend/lowering/lower-inspect.js +5 -5
  52. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  53. package/dist/frontend/lowering/lower-island.js +12 -3
  54. package/dist/frontend/lowering/lower-island.js.map +1 -1
  55. package/dist/frontend/lowering/lower-modules.d.ts +8 -5
  56. package/dist/frontend/lowering/lower-modules.js +157 -63
  57. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  58. package/dist/frontend/lowering/lower-namespaces.d.ts +24 -0
  59. package/dist/frontend/lowering/lower-namespaces.js +158 -16
  60. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  61. package/dist/frontend/lowering/lower-server.js +11 -11
  62. package/dist/frontend/lowering/lower-server.js.map +1 -1
  63. package/dist/frontend/lowering/lower-stmts.d.ts +1 -1
  64. package/dist/frontend/lowering/lower-stmts.js +271 -36
  65. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  66. package/dist/frontend/lowering/lower-stream.js +171 -20
  67. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  68. package/dist/frontend/lowering/lowerer.d.ts +27 -10
  69. package/dist/frontend/lowering/lowerer.js +156 -54
  70. package/dist/frontend/lowering/lowerer.js.map +1 -1
  71. package/dist/frontend/lowering/surfaces.d.ts +44 -0
  72. package/dist/frontend/lowering/surfaces.js +236 -5
  73. package/dist/frontend/lowering/surfaces.js.map +1 -1
  74. package/dist/frontend/npm.d.ts +12 -0
  75. package/dist/frontend/npm.js +30 -0
  76. package/dist/frontend/npm.js.map +1 -1
  77. package/dist/frontend/program.d.ts +25 -0
  78. package/dist/frontend/program.js +145 -136
  79. package/dist/frontend/program.js.map +1 -1
  80. package/dist/frontend/shared.d.ts +1 -1
  81. package/dist/frontend/shared.js +8 -8
  82. package/dist/frontend/shared.js.map +1 -1
  83. package/dist/frontend/types.d.ts +2 -2
  84. package/dist/frontend/types.js +15 -15
  85. package/dist/frontend/types.js.map +1 -1
  86. package/dist/index.d.ts +2 -1
  87. package/dist/index.js +169 -5
  88. package/dist/index.js.map +1 -1
  89. package/dist/ir/nodes.d.ts +174 -106
  90. package/dist/ir/nodes.js +69 -24
  91. package/dist/ir/nodes.js.map +1 -1
  92. package/dist/ir/validate.js +55 -36
  93. package/dist/ir/validate.js.map +1 -1
  94. package/dist/library/fence-eval.js +12 -2
  95. package/dist/library/fence-eval.js.map +1 -1
  96. package/dist/library/int-infer.d.ts +119 -0
  97. package/dist/library/int-infer.js +1314 -0
  98. package/dist/library/int-infer.js.map +1 -0
  99. package/dist/library/int-infer.test.d.ts +1 -0
  100. package/dist/library/int-infer.test.js +279 -0
  101. package/dist/library/int-infer.test.js.map +1 -0
  102. package/dist/library/profile.d.ts +34 -5
  103. package/dist/library/profile.js +77 -13
  104. package/dist/library/profile.js.map +1 -1
  105. package/dist/library/sidecar-validate.js +1 -1
  106. package/dist/library/sidecar-validate.js.map +1 -1
  107. package/dist/library/sidecar.d.ts +24 -1
  108. package/dist/library/sidecar.js +163 -16
  109. package/dist/library/sidecar.js.map +1 -1
  110. package/package.json +2 -2
  111. package/surface-manifest.json +210 -12
@@ -78,22 +78,40 @@
78
78
  * getters are pure data returns exempt from the poisoned guard and every
79
79
  * runtime touch (ratified): callable before init and after a trap.
80
80
  *
81
- * Marshalling classes (design §4.2 + session ruling 3): f64, bool, string,
82
- * bytes for params and returns; u8/u32/i32 are PARAM-ONLY plumbing classes
83
- * in v1 (outbound integer returns wait for ask-4's prove-or-refuse
84
- * machinery); void is return-only. Unknown top-level fields are ignored
85
- * (reserved surface: determinism, identity/version echo); unknown fields
86
- * INSIDE `abi` and export entries are refused — a typo there silently
87
- * changes meaning. */
81
+ * Marshalling classes (design §4.2 + session ruling 3 + ask 4): f64, bool,
82
+ * string, bytes for params and returns; u8/u32/i32 are PARAM-ONLY plumbing
83
+ * classes; i64/u64 are ask-4's declared integer boundary classes (params:
84
+ * wrapper range-check inbound, compile-time proof at internal call sites;
85
+ * returns: prove-or-refuse over every value reaching them); void is
86
+ * return-only. Unknown fields are refused at EVERY level the loader reads
87
+ * — the root included (the anti-inert posture: profiles pin per compiler
88
+ * release, so an unknown root key is a typo or a misplaced section, never
89
+ * forward-compat surface; the ask-5 key names at the root refuse with a
90
+ * pointer to their `determinism.*` home, since a silently inert `fences`
91
+ * array is exactly the footgun the fence machinery refuses everywhere
92
+ * else). Only the INTERIOR of `determinism` keeps a reserved-and-ignored
93
+ * surface beyond the three ask-5 keys. */
88
94
  import { readFileSync } from "node:fs";
89
95
  import { dirname, isAbsolute, resolve } from "node:path";
90
96
  import { libProfileDiag } from "../diagnostics/diagnostic.js";
91
97
  import { resolveLibraryFences } from "./fence-eval.js";
92
- /** Marshalling classes legal in PARAMETER position (v1). */
93
- export const LIB_PARAM_CLASSES = ["f64", "bool", "string", "bytes", "u8", "u32", "i32"];
94
- /** Marshalling classes legal in RETURN position (v1): the value classes
95
- * plus void; the integer plumbing classes are param-only until ask 4. */
96
- export const LIB_RETURN_CLASSES = ["f64", "bool", "string", "bytes", "void"];
98
+ /** Marshalling classes legal in PARAMETER position: the v1 classes plus
99
+ * ask 4's declared integer boundary classes. An i64/u64 PARAMETER is an
100
+ * FFI edge contract on both sides: inbound host calls range-check in the
101
+ * marshalled wrapper (values past ±(2^53−1) cannot ride f64 exactly — the
102
+ * SC4012 host-contract trap), and internal call sites must PROVE the
103
+ * argument whole-in-range at compile time (library/int-infer.ts). */
104
+ export const LIB_PARAM_CLASSES = ["f64", "bool", "string", "bytes", "u8", "u32", "i32", "i64", "u64"];
105
+ /** Marshalling classes legal in RETURN position: the value classes, void,
106
+ * and ask 4's i64/u64 — an integer RETURN compiles only when every value
107
+ * reaching it is PROVEN whole and in range (prove-or-refuse; the wrapper's
108
+ * (int64_t)/(uint64_t) conversion is then exact by construction). The
109
+ * u8/u32/i32 plumbing classes stay param-only: they were ratified as
110
+ * inbound plumbing, and outbound integers are the proven classes'
111
+ * business. */
112
+ export const LIB_RETURN_CLASSES = ["f64", "bool", "string", "bytes", "void", "i64", "u64"];
113
+ /** Ask 4's declared integer classes (the prove-or-refuse pair). */
114
+ export const LIB_INT_CLASSES = ["i64", "u64"];
97
115
  const C_IDENT = /^[A-Za-z_][A-Za-z0-9_]*$/;
98
116
  class ProfileError extends Error {
99
117
  detail;
@@ -155,6 +173,19 @@ export function loadLibraryProfile(profilePath) {
155
173
  const format = req(p["profile_format"], "profile_format", "number");
156
174
  if (format !== 1)
157
175
  throw new ProfileError(`unsupported profile_format ${format} (this scriptc reads format 1)`);
176
+ // Root keys are strict (checked AFTER the format gate, so a future
177
+ // format's profile refuses as the wrong format, not as a typo). The
178
+ // ask-5 key names get the pointed message: a `fences` array pasted at
179
+ // the root would otherwise be silently inert — the exact footgun the
180
+ // fence machinery refuses everywhere else.
181
+ for (const k of Object.keys(p)) {
182
+ if (["profile_format", "name", "entry", "emission", "abi", "exports", "sidecar", "determinism"].includes(k))
183
+ continue;
184
+ if (k === "fences" || k === "teachings" || k === "remediations") {
185
+ throw new ProfileError(`'${k}' at the profile root does nothing — the ask-5 determinism surface lives under 'determinism.${k}'; move it there`);
186
+ }
187
+ throw new ProfileError(`unknown field '${k}' (root keys are strict: a typo here would silently change the build; remove it)`);
188
+ }
158
189
  const name = req(p["name"], "name", "string");
159
190
  if (name === "")
160
191
  throw new ProfileError("'name' must be a non-empty identity string");
@@ -206,7 +237,7 @@ export function loadLibraryProfile(profilePath) {
206
237
  const returns = req(ee["returns"], `${path}.returns`, "string");
207
238
  if (!LIB_RETURN_CLASSES.includes(returns)) {
208
239
  const detail = returns === "u8" || returns === "u32" || returns === "i32"
209
- ? `'${path}.returns': integer classes are parameter-only in v1 — outbound integer returns wait for the prove-or-refuse machinery (ask 4); return f64 and convert on the host side`
240
+ ? `'${path}.returns': the u8/u32/i32 plumbing classes are parameter-only — an outbound integer return is declared i64 or u64 and compiles only when every value reaching it proves whole and in ±(2^53 − 1) (ask 4's prove-or-refuse)`
210
241
  : `'${path}.returns' must be one of ${LIB_RETURN_CLASSES.join("/")}, got '${returns}'`;
211
242
  throw new ProfileError(detail);
212
243
  }
@@ -224,6 +255,7 @@ export function loadLibraryProfile(profilePath) {
224
255
  "path", "wire_version", "abi_version", "snapshot_format",
225
256
  "build_id_symbol", "abi_version_symbol", "model", "msg",
226
257
  "init_export", "update_export", "subscriptions_export", "source_hash",
258
+ "integer_slots",
227
259
  ]);
228
260
  const s = sc;
229
261
  const intField = (key) => {
@@ -255,6 +287,37 @@ export function loadLibraryProfile(profilePath) {
255
287
  if (sourceHash !== "module-graph") {
256
288
  throw new ProfileError(`'sidecar.source_hash' names an unknown hashing contract '${sourceHash}' (this scriptc implements "module-graph")`);
257
289
  }
290
+ // Ask 4's declared integer boundary slots: each entry names a
291
+ // contract slot by its sidecar path and picks the integer class.
292
+ // Path RESOLUTION happens at sidecar build (the contract must
293
+ // exist first); here the shape is pinned — a typo'd key or class
294
+ // would silently change an ABI obligation.
295
+ const integerSlots = [];
296
+ const isRaw = s["integer_slots"];
297
+ if (isRaw !== undefined && isRaw !== null) {
298
+ if (!Array.isArray(isRaw))
299
+ throw new ProfileError("'sidecar.integer_slots' must be an array");
300
+ const seenSlots = new Set();
301
+ isRaw.forEach((entry, i) => {
302
+ const epath = `sidecar.integer_slots[${i}]`;
303
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
304
+ throw new ProfileError(`'${epath}' must be an object`);
305
+ }
306
+ rejectUnknownKeys(entry, epath, ["slot", "class"]);
307
+ const ee2 = entry;
308
+ const slot = req(ee2["slot"], `${epath}.slot`, "string");
309
+ if (slot === "")
310
+ throw new ProfileError(`'${epath}.slot' must be a non-empty slot path`);
311
+ const cls = req(ee2["class"], `${epath}.class`, "string");
312
+ if (cls !== "i64" && cls !== "u64") {
313
+ throw new ProfileError(`'${epath}.class' must be "i64" or "u64", got '${cls}'`);
314
+ }
315
+ if (seenSlots.has(slot))
316
+ throw new ProfileError(`'${epath}.slot' repeats slot path '${slot}'`);
317
+ seenSlots.add(slot);
318
+ integerSlots.push({ slot, cls });
319
+ });
320
+ }
258
321
  sidecar = {
259
322
  path,
260
323
  wireVersion: intField("wire_version"),
@@ -268,6 +331,7 @@ export function loadLibraryProfile(profilePath) {
268
331
  updateExport: nameField("update_export", "update"),
269
332
  subscriptionsExport: nameField("subscriptions_export", "subscriptions"),
270
333
  sourceHash: "module-graph",
334
+ integerSlots,
271
335
  };
272
336
  if (sidecar.model === sidecar.msg) {
273
337
  throw new ProfileError(`'sidecar.msg' must differ from 'sidecar.model' ('${sidecar.model}')`);
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/library/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/library/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CA4F0C;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAsB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAoD,MAAM,iBAAiB,CAAC;AAEzG;;;;;qEAKqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAC/G;;;;;;eAMe;AACf,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEpG,mEAAmE;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAwGvD,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAE3C,MAAM,YAAa,SAAQ,KAAK;IACT;IAArB,YAAqB,MAAc;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QADK,WAAM,GAAN,MAAM,CAAQ;IAEnC,CAAC;CACF;AAED,SAAS,GAAG,CAAI,CAAU,EAAE,IAAY,EAAE,IAAqC;IAC7E,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,eAAe,IAAI,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,CAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,CAAU,EAAE,IAAY,EAAE,MAAc,EAAE,QAAiB;IAC9E,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,CAAC,GAAG,GAAG,CAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,mCAAmC,CAAC,GAAG,CAAC,CAAC;IAC9F,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,yCAAyC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,IAAY,EAAE,KAAwB;IAC5E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,YAAY,CAAC,kBAAkB,IAAI,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;AACH,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,kBAAkB,CAChC,WAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,MAAc,EAA+C,EAAE,CAAC,CAAC;QAC7E,EAAE,EAAE,KAAK;QACT,WAAW,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACnD,CAAC,CAAC;IACH,IAAI,KAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,wBAAyB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,8BAA+B,CAAW,CAAC,OAAO,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC;QACH,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,YAAY,CAAC,+BAA+B,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,CAAS,CAAC,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC5E,IAAI,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,8BAA8B,MAAM,gCAAgC,CAAC,CAAC;QAC/G,mEAAmE;QACnE,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,2CAA2C;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,SAAS;YACtH,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,cAAc,EAAE,CAAC;gBAChE,MAAM,IAAI,YAAY,CACpB,IAAI,CAAC,+FAA+F,CAAC,kBAAkB,CACxH,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,kFAAkF,CAAC,CAAC;QAChI,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAS,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,4CAA4C,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,GAAG,CAAS,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,QAAQ,KAAK,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,kDAAkD,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAG,GAAG,CAAS,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,YAAY,CAAC,0CAA0C,QAAQ,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAC;QACpD,CAAC;QACD,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAC1H,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,CAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CAAC,uDAAuD,MAAM,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAE,CAAC;QACpF,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,0BAA0B,EAAE,MAAM,EAAE,KAAK,CAAE,CAAC;QAC9G,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3F,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEzG,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,4BAA4B,CAAC,CAAC;QACrF,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;YAC7B,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAC;YACxD,CAAC;YACD,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;YACtE,MAAM,EAAE,GAAG,CAA4B,CAAC;YACxC,MAAM,UAAU,GAAG,GAAG,CAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,UAAU,KAAK,EAAE;gBAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,0CAA0C,CAAC,CAAC;YAClG,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,EAAE,KAAK,CAAE,CAAC;YAC3E,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,2BAA2B,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAE,iBAAuC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,MAAM,IAAI,YAAY,CACpB,IAAI,IAAI,WAAW,CAAC,qBAAqB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CACjG,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAkB,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAS,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxE,IAAI,CAAE,kBAAwC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjE,MAAM,MAAM,GACV,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK;oBACxD,CAAC,CAAC,IAAI,IAAI,4NAA4N;oBACtO,CAAC,CAAC,IAAI,IAAI,4BAA4B,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,OAAO,GAAG,CAAC;gBAC3F,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAyB,EAAE,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,qEAAqE;QACrE,yCAAyC;QACzC,IAAI,OAAO,GAAgC,IAAI,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACpC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,6BAA6B,CAAC,CAAC;YACvG,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;gBAC/B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB;gBACxD,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK;gBACvD,aAAa,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa;gBACrE,eAAe;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,EAA6B,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;gBACvC,MAAM,CAAC,GAAG,GAAG,CAAS,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,YAAY,CAAC,YAAY,GAAG,yCAAyC,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;YACF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,QAAuB,EAAU,EAAE;gBACjE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;oBAAE,OAAO,QAAQ,CAAC;gBAC/D,MAAM,CAAC,GAAG,GAAG,CAAS,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,CAAC,KAAK,EAAE;oBAAE,MAAM,IAAI,YAAY,CAAC,YAAY,GAAG,4BAA4B,CAAC,CAAC;gBAClF,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;YACF,IAAI,IAAI,GAAkB,IAAI,CAAC;YAC/B,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,GAAG,CAAS,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,EAAE;oBAAE,MAAM,IAAI,YAAY,CAAC,kDAAkD,CAAC,CAAC;gBACzF,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClB,MAAM,IAAI,YAAY,CAAC,6EAA6E,CAAC,CAAC;gBACxG,CAAC;gBACD,IAAI,GAAG,CAAC,CAAC;YACX,CAAC;YACD,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAS,CAAC,CAAC,aAAa,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACpI,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,IAAI,YAAY,CACpB,4DAA4D,UAAU,4CAA4C,CACnH,CAAC;YACJ,CAAC;YACD,8DAA8D;YAC9D,iEAAiE;YACjE,8DAA8D;YAC9D,iEAAiE;YACjE,2CAA2C;YAC3C,MAAM,YAAY,GAA2C,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,MAAM,IAAI,YAAY,CAAC,0CAA0C,CAAC,CAAC;gBAC9F,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACzB,MAAM,KAAK,GAAG,yBAAyB,CAAC,GAAG,CAAC;oBAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxE,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;oBACzD,CAAC;oBACD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;oBACnD,MAAM,GAAG,GAAG,KAAgC,CAAC;oBAC7C,MAAM,IAAI,GAAG,GAAG,CAAS,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACjE,IAAI,IAAI,KAAK,EAAE;wBAAE,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,sCAAsC,CAAC,CAAC;oBACzF,MAAM,GAAG,GAAG,GAAG,CAAS,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAClE,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;wBACnC,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,wCAAwC,GAAG,GAAG,CAAC,CAAC;oBAClF,CAAC;oBACD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,6BAA6B,IAAI,GAAG,CAAC,CAAC;oBAC/F,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACpB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,GAAG;gBACR,IAAI;gBACJ,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACrC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC;gBACnC,cAAc,EAAE,QAAQ,CAAC,iBAAiB,CAAC;gBAC3C,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,yBAAyB,EAAE,MAAM,EAAE,KAAK,CAAE;gBAC3F,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,4BAA4B,EAAE,MAAM,EAAE,KAAK,CAAE;gBACpG,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC/B,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;gBAC3B,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;gBAC5C,YAAY,EAAE,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC;gBAClD,mBAAmB,EAAE,SAAS,CAAC,sBAAsB,EAAE,eAAe,CAAC;gBACvE,UAAU,EAAE,cAAc;gBAC1B,YAAY;aACb,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;gBAClC,MAAM,IAAI,YAAY,CAAC,oDAAoD,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,8BAA8B;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,GAAkB,EAAE,IAAY,EAAQ,EAAE;YACvD,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO;YACzB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,YAAY,CAAC,WAAW,GAAG,wBAAwB,IAAI,QAAQ,IAAI,sCAAsC,CAAC,CAAC;YACvH,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,KAAK,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACrC,KAAK,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;QACtD,KAAK,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAC3C,KAAK,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;YACxD,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC;YACjF,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,kEAAkE;QAClE,sEAAsE;QACtE,sEAAsE;QACtE,gEAAgE;QAChE,sEAAsE;QACtE,iEAAiE;QACjE,sBAAsB;QACtB,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,IAAI,MAAM,GAA2B,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,8BAA8B,CAAC;QACrD,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACvC,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,IAAY,EAAQ,EAAE;YACvD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,YAAY,CACpB,IAAI,IAAI,6MAA6M,CACtN,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjD,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,QAAQ,KAAK,4DAA4D,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACxF,MAAM,SAAS,GAAG,CAAC,KAAmC,EAAE,IAA4B,EAAQ,EAAE;gBAC5F,MAAM,CAAC,GAAI,GAA+B,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAAE,OAAO;gBACvF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;oBAClE,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,SAAS;oBACpC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzB,MAAM,IAAI,YAAY,CACpB,gBAAgB,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iIAAiI,CACjL,CAAC;oBACJ,CAAC;oBACD,cAAc,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC/C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC;YACF,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAClC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAExC,kEAAkE;YAClE,qEAAqE;YACrE,qEAAqE;YACrE,gEAAgE;YAChE,8DAA8D;YAC9D,MAAM,SAAS,GAAI,GAA+B,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;oBAAE,MAAM,IAAI,YAAY,CAAC,uCAAuC,CAAC,CAAC;gBAC/F,MAAM,KAAK,GAAuB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACvD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC;oBACxC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5D,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,qBAAqB,CAAC,CAAC;oBACxD,CAAC;oBACD,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;oBACxE,MAAM,EAAE,GAAG,CAA4B,CAAC;oBACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;wBAC9D,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,8CAA8C,CAAC,CAAC;oBACjF,CAAC;oBACD,MAAM,IAAI,GAAqB,EAAE,IAAI,EAAE,CAAC;oBACxC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC3B,MAAM,EAAE,GAAG,GAAG,CAAS,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACzD,IAAI,EAAE,KAAK,EAAE;4BAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,4CAA4C,CAAC,CAAC;wBAC5F,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAG,GAAG,CAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAC;wBACrE,IAAI,MAAM,KAAK,EAAE;4BAAE,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,iDAAiD,CAAC,CAAC;wBACrG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACvB,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,aAAa,CAAU,EAAE,CAAC;wBACzD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,SAAS;4BAAE,SAAS;wBACtC,MAAM,IAAI,GAAG,GAAG,CAAS,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAClE,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;wBACzC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBACrB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAAE,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC1D,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxF,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACP,aAAa,EAAE,CAAC;gBAChB,IAAI;gBACJ,KAAK;gBACL,QAAQ;gBACR,MAAM;gBACN,UAAU;gBACV,kBAAkB;gBAClB,aAAa;gBACb,iBAAiB;gBACjB,OAAO,EAAE,OAAO;gBAChB,OAAO;gBACP,YAAY,EAAE,KAAK;gBACnB,SAAS;gBACT,YAAY;gBACZ,MAAM;aACP;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,YAAY;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED;;oEAEoE;AACpE,MAAM,UAAU,eAAe,CAAC,OAAuB,EAAE,IAAY;IACnE,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtH,CAAC;AAED;;;;;;0EAM0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,IAAY;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,SAAS;QAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,WAAW,CAAC;IAC5E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -483,7 +483,7 @@ export function validateSidecar(doc) {
483
483
  else {
484
484
  const declared = new Set();
485
485
  for (const e of integerSlots) {
486
- if (!isDict(e) || typeof e["slot"] !== "string" || e["class"] !== "i64") {
486
+ if (!isDict(e) || typeof e["slot"] !== "string" || (e["class"] !== "i64" && e["class"] !== "u64")) {
487
487
  bad("V1", "integer_slots carries a malformed entry");
488
488
  continue;
489
489
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar-validate.js","sourceRoot":"","sources":["../../src/library/sidecar-validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar-validate.js","sourceRoot":"","sources":["../../src/library/sidecar-validate.ts"],"names":[],"mappings":"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"}
@@ -131,7 +131,7 @@ export interface SidecarDoc {
131
131
  };
132
132
  integer_slots: {
133
133
  slot: string;
134
- class: "i64";
134
+ class: "i64" | "u64";
135
135
  }[];
136
136
  deterministic: boolean;
137
137
  async_free: boolean;
@@ -180,10 +180,33 @@ export interface SidecarBuildInput {
180
180
  sourceHash: string;
181
181
  deterministic: boolean;
182
182
  }
183
+ /** The declared integer slots (ask 4), resolved by the projection into
184
+ * the facts the boundary inference maps onto lowered IR: helper slots by
185
+ * function name and IR parameter index (the schema's helper param index
186
+ * skips the model receiver, so `index` is already shifted +1), and
187
+ * record-field slots by the containing record's projected field-name
188
+ * list plus the target field (IR record shapes intern structurally by
189
+ * field name, so the list is the join key). */
190
+ export interface SidecarIntegerSlotFacts {
191
+ helpers: {
192
+ fnName: string;
193
+ kind: "param" | "return";
194
+ index?: number;
195
+ cls: "i64" | "u64";
196
+ path: string;
197
+ }[];
198
+ records: {
199
+ fieldNames: string[];
200
+ targetField: string;
201
+ cls: "i64" | "u64";
202
+ path: string;
203
+ }[];
204
+ }
183
205
  export type SidecarBuildResult = {
184
206
  ok: true;
185
207
  doc: SidecarDoc;
186
208
  json: string;
209
+ integerSlotFacts: SidecarIntegerSlotFacts;
187
210
  } | {
188
211
  ok: false;
189
212
  diagnostics: ScrDiagnostic[];
@@ -28,10 +28,20 @@
28
28
  * table derives from the aliased declaration, the alias adds no entry
29
29
  * and no reordering.
30
30
  *
31
- * Not-yet facts emit the schema's stated absent forms, never invented
32
- * values: `integer_slots` is `[]` with every numeric slot spelled `f64`
33
- * (the pre-ask-4 sequencing the schema names valid — the empty list is
34
- * itself an attestation), and `deterministic` is computed from the module
31
+ * Integer slots (ask 4): the profile's `sidecar.integer_slots` declares
32
+ * specific number slots i64/u64 by slot path; the projection spells each
33
+ * declared slot's TypeRef/descriptor `i64` (the frozen format-1
34
+ * vocabulary — u64 is the stricter compile-time obligation over the same
35
+ * wire spelling), refuses paths that resolve to no plain number slot,
36
+ * and emits `integer_slots` as the resolved-decision list, in profile
37
+ * declaration order, each entry recording the DECLARED class ({i64, u64}
38
+ * — the flattening is TypeRef-only). The list is an ATTESTATION (schema
39
+ * §5's invariant):
40
+ * compileLibrary runs the integer-boundary inference before writing any
41
+ * artifact, so a sidecar carrying an entry means every value that can
42
+ * reach that slot proved whole-in-range. Undeclared numeric slots keep
43
+ * spelling `f64` and the empty list stays a valid attestation that no
44
+ * slot was integer-classed. `deterministic` is computed from the module
35
45
  * graph (ir/nodes.ts's conservative ambient-surface scan), never
36
46
  * defaulted. */
37
47
  import { Buffer } from "node:buffer";
@@ -183,6 +193,16 @@ class Projector {
183
193
  flatArms = new Map();
184
194
  flattening = new Set();
185
195
  synthCounter = 0;
196
+ /** The profile's declared integer slots (ask 4), by slot path; entries
197
+ * move to `intConsumed` as the projection spells them — a declared path
198
+ * the projection never touches refuses (a typo'd path would silently
199
+ * drop an ABI obligation). */
200
+ intDeclared = new Map();
201
+ intConsumed = new Map();
202
+ /** The record-field slots' resolution facts for the inference: the
203
+ * containing record's full projected field-name list plus the target
204
+ * field (ir shapes intern structurally by field names). */
205
+ intRecordFacts = [];
186
206
  constructor(facts, config, entryLoc) {
187
207
  this.facts = facts;
188
208
  this.config = config;
@@ -192,6 +212,50 @@ class Projector {
192
212
  facts.types.forEach((decl, index) => this.byName.set(decl.name, classify(decl, index)));
193
213
  for (const m of facts.multiSiteTypes)
194
214
  this.multiSite.set(m.name, m.sites);
215
+ for (const e of config.integerSlots)
216
+ this.intDeclared.set(e.slot, e.cls);
217
+ }
218
+ /** Spell a projected slot i64 when the profile declared it (ask 4).
219
+ * Only a PLAIN NUMBER slot can be integer-declared: optionals, slices,
220
+ * and named types refuse — the declaration must match the wire shape
221
+ * the schema freezes. The document spells i64 for both classes (the
222
+ * frozen format-1 vocabulary has no u64; u64 is the stricter
223
+ * compile-time obligation over the same wire spelling). */
224
+ intify(ref, slotPath, loc) {
225
+ const cls = this.intDeclared.get(slotPath);
226
+ if (cls === undefined)
227
+ return ref;
228
+ if (ref.kind !== "f64") {
229
+ throw new SidecarError(`the profile declares integer slot '${slotPath}' (${cls}), but that slot is not a plain number slot (it projects as '${ref.kind}')`, loc);
230
+ }
231
+ this.intConsumed.set(slotPath, cls);
232
+ return { kind: "i64" };
233
+ }
234
+ /** intify for a struct field (declared or synthesized), recording the
235
+ * record-resolution fact the inference maps onto interned IR shapes. */
236
+ intifyStructField(ref, container, field, allFields, loc) {
237
+ const slotPath = `${container}.${field}`;
238
+ const before = this.intConsumed.has(slotPath);
239
+ const out = this.intify(ref, slotPath, loc);
240
+ if (!before && this.intConsumed.has(slotPath)) {
241
+ this.intRecordFacts.push({
242
+ fieldNames: allFields,
243
+ targetField: field,
244
+ cls: this.intConsumed.get(slotPath),
245
+ path: slotPath,
246
+ });
247
+ }
248
+ return out;
249
+ }
250
+ /** A declared slot path that the whole projection never spelled: the
251
+ * path names nothing (or names a slot outside the schema's integer
252
+ * grammar), and silently ignoring it would drop an ABI obligation. */
253
+ checkIntConsumed() {
254
+ for (const [slot, cls] of this.intDeclared) {
255
+ if (!this.intConsumed.has(slot)) {
256
+ throw new SidecarError(`the profile declares integer slot '${slot}' (${cls}), but the projected contract has no number slot at that path (paths: 'Type.field', 'Union.arm', '<msg>.arm', '<msg>.arm.numberField', 'helpers.<name>.params[i]', 'helpers.<name>.return'; a profile export's integer class is declared on its 'exports' entry — the C signature itself attests it, never integer_slots)`, this.entryLoc);
257
+ }
258
+ }
195
259
  }
196
260
  lookup(name, loc) {
197
261
  const c = this.byName.get(name);
@@ -387,7 +451,10 @@ class Projector {
387
451
  if (seen.has(f.name))
388
452
  throw new SidecarError(`record '${name}' repeats field '${f.name}'`, f.loc);
389
453
  seen.add(f.name);
390
- entry.fields.push({ name: f.name, type: this.fieldRef(f, name) });
454
+ entry.fields.push({
455
+ name: f.name,
456
+ type: this.intifyStructField(this.fieldRef(f, name), name, f.name, c.fields.map((x) => x.name), f.loc),
457
+ });
391
458
  }
392
459
  this.table.set(name, { kind: "struct", entry, anchor: c.index, sub: -1 });
393
460
  return;
@@ -397,7 +464,21 @@ class Projector {
397
464
  // in unionArms).
398
465
  const entry = { name, arms: [] };
399
466
  for (const arm of this.unionArms(name, loc)) {
400
- entry.arms.push({ name: arm.name, payload: this.armPayloadRef(name, arm) });
467
+ let payload = this.armPayloadRef(name, arm);
468
+ const slotPath = `${name}.${arm.name}`;
469
+ const before = this.intConsumed.has(slotPath);
470
+ payload = this.intify(payload, slotPath, arm.loc);
471
+ if (!before && this.intConsumed.has(slotPath)) {
472
+ // The one intifiable arm shape is a single number payload
473
+ // field; its IR record carries the 'kind' discriminant too.
474
+ this.intRecordFacts.push({
475
+ fieldNames: [...arm.fields.map((f) => f.name), "kind"],
476
+ targetField: arm.fields[0].name,
477
+ cls: this.intConsumed.get(slotPath),
478
+ path: slotPath,
479
+ });
480
+ }
481
+ entry.arms.push({ name: arm.name, payload });
401
482
  }
402
483
  this.table.set(name, { kind: "union", entry, anchor: c.index, sub: -1 });
403
484
  }
@@ -435,7 +516,10 @@ class Projector {
435
516
  if (seen.has(f.name))
436
517
  throw new SidecarError(`the inline record at '${container}.${member}' repeats field '${f.name}'`, f.loc);
437
518
  seen.add(f.name);
438
- entry.fields.push({ name: f.name, type: this.fieldRef(f, name) });
519
+ entry.fields.push({
520
+ name: f.name,
521
+ type: this.intifyStructField(this.fieldRef(f, name), name, f.name, fields.map((x) => x.name), f.loc),
522
+ });
439
523
  }
440
524
  return name;
441
525
  }
@@ -453,11 +537,37 @@ class Projector {
453
537
  !second.optional &&
454
538
  first.shape.k === "number" &&
455
539
  (second.shape.k === "text" || second.shape.k === "bytes")) {
456
- return { kind: "number_bytes", number_field: first.name, number_class: "f64", bytes_field: second.name };
540
+ // The number half is an ask-4 declarable slot:
541
+ // `<msg>.<arm>.<numberField>` (the schema's number_bytes path).
542
+ const slotPath = `${msgName}.${arm.name}.${first.name}`;
543
+ const numRef = this.intify({ kind: "f64" }, slotPath, first.loc);
544
+ if (numRef.kind === "i64") {
545
+ this.intRecordFacts.push({
546
+ fieldNames: [first.name, second.name, "kind"],
547
+ targetField: first.name,
548
+ cls: this.intConsumed.get(slotPath),
549
+ path: slotPath,
550
+ });
551
+ }
552
+ return { kind: "number_bytes", number_field: first.name, number_class: numRef.kind, bytes_field: second.name };
457
553
  }
458
554
  }
459
555
  if (fields.length === 1 && !fields[0].optional) {
460
- const ref = this.fieldRef(fields[0], msgName);
556
+ let ref = this.fieldRef(fields[0], msgName);
557
+ if (ref.kind === "f64") {
558
+ // A plain number payload is an ask-4 declarable slot: `<msg>.<arm>`.
559
+ const slotPath = `${msgName}.${arm.name}`;
560
+ const before = this.intConsumed.has(slotPath);
561
+ ref = this.intify(ref, slotPath, arm.loc);
562
+ if (!before && this.intConsumed.has(slotPath)) {
563
+ this.intRecordFacts.push({
564
+ fieldNames: [fields[0].name, "kind"],
565
+ targetField: fields[0].name,
566
+ cls: this.intConsumed.get(slotPath),
567
+ path: slotPath,
568
+ });
569
+ }
570
+ }
461
571
  switch (ref.kind) {
462
572
  case "bytes":
463
573
  return { kind: "bytes" };
@@ -510,6 +620,7 @@ export function buildSidecar(input) {
510
620
  return { ok: false, diagnostics };
511
621
  try {
512
622
  const projector = new Projector(facts, config, entryLoc);
623
+ const helperIntFacts = [];
513
624
  // The model: the designated root state type, a record in the table.
514
625
  const modelClass = projector.lookup(config.model, entryLoc);
515
626
  if (modelClass.c !== "struct") {
@@ -553,7 +664,13 @@ export function buildSidecar(input) {
553
664
  if (p.shape === null) {
554
665
  throw new SidecarError(`helper '${fn.name}' parameter ${i + 2} ('${p.name}') has no type annotation`, fn.loc);
555
666
  }
556
- params.push(projector.shapeRef(p.shape, `helpers_${fn.name}`, p.name, fn.loc));
667
+ const pPath = `helpers.${fn.name}.params[${i}]`;
668
+ const ref = projector.intify(projector.shapeRef(p.shape, `helpers_${fn.name}`, p.name, fn.loc), pPath, fn.loc);
669
+ if (projector.intConsumed.has(pPath)) {
670
+ // IR param 0 is the model receiver the schema's index skips.
671
+ helperIntFacts.push({ fnName: fn.name, kind: "param", index: i + 1, cls: projector.intConsumed.get(pPath), path: pPath });
672
+ }
673
+ params.push(ref);
557
674
  });
558
675
  if (fn.returns === null) {
559
676
  throw new SidecarError(`helper '${fn.name}' has no return type annotation`, fn.loc);
@@ -564,7 +681,11 @@ export function buildSidecar(input) {
564
681
  // Helper-return synthesized names are two-part like everything else:
565
682
  // container 'helpers', member the helper's name — `helpers_<name>`,
566
683
  // never a '_return' suffix (the ratified spelling).
567
- const returns = projector.shapeRef(fn.returns, "helpers", fn.name, fn.loc);
684
+ const rPath = `helpers.${fn.name}.return`;
685
+ const returns = projector.intify(projector.shapeRef(fn.returns, "helpers", fn.name, fn.loc), rPath, fn.loc);
686
+ if (projector.intConsumed.has(rPath)) {
687
+ helperIntFacts.push({ fnName: fn.name, kind: "return", cls: projector.intConsumed.get(rPath), path: rPath });
688
+ }
568
689
  if (helpers.some((h) => h.name === fn.name)) {
569
690
  throw new SidecarError(`helper '${fn.name}' is declared twice`, fn.loc);
570
691
  }
@@ -636,6 +757,9 @@ export function buildSidecar(input) {
636
757
  throw new SidecarError(`envMsgs targets arm '${e.msg}', whose payload descriptor is '${payload.kind}' — the host delivers an environment value as bytes`, facts.envMsgs.loc);
637
758
  }
638
759
  }
760
+ // Every declared integer slot must have been spelled by now — the
761
+ // whole contract (model, msg, helpers, channels) is projected.
762
+ projector.checkIntConsumed();
639
763
  const doc = {
640
764
  format: SIDECAR_FORMAT,
641
765
  wire_version: config.wireVersion,
@@ -662,17 +786,40 @@ export function buildSidecar(input) {
662
786
  env_msgs: envMsgs,
663
787
  },
664
788
  abi: { prefix: profile.prefix, exports, snapshot_format: config.snapshotFormat },
665
- // The pre-ask-4 absent form the schema names valid: every numeric
666
- // slot above spelled f64, and the empty list is itself the
667
- // attestation that no slot was integer-classed.
668
- integer_slots: [],
789
+ // Ask 4's resolved integer-class decisions, one entry per declared
790
+ // slot in profile declaration order, each recording the DECLARED
791
+ // class ({i64, u64} — the integer_slots vocabulary; only the
792
+ // TypeRef/descriptor spellings above flatten to i64, the frozen
793
+ // format-1 type vocabulary, because unsigned-ness is a
794
+ // boundary-slot refinement, not a type-table concept). The V10
795
+ // bijection with the i64-spelled slots above holds by construction
796
+ // (intify is the only i64 speller and checkIntConsumed just proved
797
+ // every declaration was spelled). The list is an ATTESTATION: the
798
+ // compiler refuses the build before writing any artifact when an
799
+ // integer-slot proof fails, so a sidecar carrying these entries
800
+ // means every listed slot's obligations — including u64's
801
+ // non-negative range — were discharged (§5). Profile-export
802
+ // param/return classes are deliberately ABSENT: integer_slots is
803
+ // the document-side complement (its entries mirror the document's
804
+ // own i64-spelled slots — V10), while an export's class is
805
+ // declared on the profile's exports entry and attested by the
806
+ // artifact's own C signature (int64_t/uint64_t) under the same
807
+ // prove-or-refuse gate; repeating it here would duplicate a fact
808
+ // the ABI already states and break the V10 bijection (abi.exports
809
+ // is a symbol list carrying no TypeRefs).
810
+ integer_slots: config.integerSlots.map((e) => ({ slot: e.slot, class: e.cls })),
669
811
  deterministic: input.deterministic,
670
812
  // Structural in library mode: the SC4005 gate refused any graph
671
813
  // reaching async/timer/event-loop surface before emission, so a
672
814
  // sidecar exists only for async_free graphs.
673
815
  async_free: true,
674
816
  };
675
- return { ok: true, doc, json: JSON.stringify(doc, null, 2) + "\n" };
817
+ return {
818
+ ok: true,
819
+ doc,
820
+ json: JSON.stringify(doc, null, 2) + "\n",
821
+ integerSlotFacts: { helpers: helperIntFacts, records: projector.intRecordFacts },
822
+ };
676
823
  }
677
824
  catch (e) {
678
825
  if (e instanceof SidecarRefusal) {